Вы смотрите курс в Google, а затем видите другую цифру в своём банке, у эмитента карты и в платёжном приложении. Цифра в Google — это, как правило, среднерыночный обменный курс (mid-market rate), а разница между ним и тем, что с вас реально берут, и есть то место, где прячется основная часть стоимости конвертации валют. Если вы создаёте продукт, который работает с деньгами в нескольких валютах, понимать эту разницу необходимо.
В этом руководстве объясняется, что такое среднерыночный курс, как он связан с bid, ask и спредом, почему обычные клиенты редко его получают и как работать с ним в коде, используя эндпоинты из документации Finexly API.
Что такое среднерыночный обменный курс?
Среднерыночный обменный курс (также mid rate, межбанковский курс или spot mid) — это середина между ценой, по которой покупатели готовы купить валюту, и ценой, по которой продавцы готовы её продать. Это самое близкое к «справедливой» цене валютной пары в данный момент значение — без комиссий и наценок.
Каждая валютная пара котируется двумя ценами:
- Bid (цена покупки): цена, по которой дилер покупает у вас базовую валюту.
- Ask (цена продажи, или offer): цена, по которой дилер продаёт вам базовую валюту.
Ask всегда выше bid. Среднерыночный курс находится ровно посередине между ними.
mid = (bid + ask) / 2
spread = ask - bidНапример, если EUR/USD котируется с bid 1,0840 и ask 1,0842, среднерыночный курс равен 1,0841, а спред — 0,0002, то есть 2 пипса. Эти числа приведены исключительно для иллюстрации. Если пипсы вам незнакомы, прочитайте наше руководство о том, что такое пипс на форекс.
Bid, ask и спред: три числа за каждой котировкой
Спред — это цена мгновенной сделки. Дилер, готовый и покупать, и продавать в любой момент, принимает на себя риск запасов, поэтому берёт небольшую разницу между ценой покупки и ценой продажи. На глубоком межбанковском рынке спреды по основным парам могут составлять доли пипса. По экзотическим парам и на тонких рынках они заметно шире.
Размер спреда обычно определяют три фактора:
- Ликвидность: активно торгуемые пары, такие как EUR/USD или USD/JPY, имеют узкие спреды. У экзотических пар они широкие. См. основные, второстепенные и экзотические валютные пары.
- Волатильность: вокруг решений центральных банков или выхода важных данных дилеры расширяют спреды, чтобы защитить себя.
- Размер сделки и время: вне основных торговых сессий и в выходные спреды, как правило, шире.
Среднерыночный курс и курс, который вы получаете на самом деле
Теперь неудобная часть. Среднерыночный курс — это ориентир, а не цена, по которой обычно можно совершить сделку. Розничные клиенты редко его получают, потому что провайдерам нужно где-то зарабатывать. Типичный розничный курс строится так:
customer_rate = mid_rate × (1 - markup) # when the customer sells the base currency
customer_rate = mid_rate × (1 + markup) # when the customer buys the base currencyНаценка добавляется поверх любой явной комиссии. Именно поэтому провайдер, рекламирующий «без комиссий», всё равно может быть дорогим: стоимость заложена в обменный курс. Честный способ сравнивать провайдеров — измерять полную стоимость относительно среднерыночного курса:
cost_pct = (mid_rate - customer_rate) / mid_rate × 100Учтите, что некоторые провайдеры действительно конвертируют по среднерыночному курсу и взимают отдельную прозрачную комиссию. Обе модели могут быть честными; важно, чтобы вы видели итоговую сумму и могли её сравнить. Та же логика применима к картам за рубежом, где динамическая конвертация валюты (DCC) часто добавляет большую скрытую наценку.
Откуда берётся среднерыночный курс?
Единого официального среднерыночного курса не существует. Валютный рынок — децентрализованный внебиржевой рынок. Банки, дилеры и торговые площадки публикуют собственные котировки, а поставщики данных их агрегируют. «Среднерыночный курс», который вы видите онлайн, — обычно смесь нескольких источников ликвидности, непрерывно обновляемая в торговые часы, поэтому два провайдера могут показывать немного разные значения в один и тот же момент.
Существуют и бенчмарки на фиксированные моменты дня, например лондонский фиксинг в 16:00, который используется для оценки портфелей. Подробнее о том, как поставщики данных формируют свои цифры, читайте в материале откуда API курсов валют берут данные.
Почему разработчикам важно знать среднерыночный курс
Если вы создаёте продукт, работающий с несколькими валютами, среднерыночный курс — ваш референсный курс. Типичные применения:
- Отображение цен: показывать клиентам ориентировочную сконвертированную цену на странице товара.
- Прозрачные комиссии: показывать пользователям mid rate рядом с вашим курсом, чтобы наценка была видна.
- Бухгалтерия и отчётность: переоценивать остатки и фиксировать прибыли и убытки относительно единого ориентира.
- Контроль маржи: считать, сколько наценки вы реально зарабатываете на каждой конвертации.
- Аудит провайдеров: замечать, когда курс платёжного партнёра отклоняется от рынка.
Практическое правило: храните mid rate и применённый курс раздельно. Если сохранять только курс, по которому взяли деньги, позже нельзя будет доказать, какой была ваша наценка.
Получение среднерыночного курса через Finexly
Получите актуальный курс одним запросом:
curl "https://api.finexly.com/v1/latest?base=EUR&symbols=USD&apikey=YOUR_API_KEY"Python: расчёт наценки и клиентского курса
import requests
API_KEY = "YOUR_API_KEY"
def get_mid_rate(base: str, quote: str) -> float:
r = requests.get(
"https://api.finexly.com/v1/latest",
params={"base": base, "symbols": quote, "apikey": API_KEY},
timeout=10,
)
r.raise_for_status()
return r.json()["rates"][quote]
def customer_quote(amount: float, base: str, quote: str, markup_pct: float):
mid = get_mid_rate(base, quote)
applied = mid * (1 - markup_pct / 100)
return {
"mid_rate": mid,
"applied_rate": applied,
"customer_receives": round(amount * applied, 2),
"markup_cost": round(amount * (mid - applied), 2),
}
print(customer_quote(1000, "EUR", "USD", markup_pct=1.5))Считайте курс, возвращаемый API, вашим референсным mid rate и применяйте поверх него собственную явную наценку. Контролируйте количество знаков после запятой, следуя нашему руководству по округлению валют.
JavaScript: показ сравнения курсов пользователям
const API_KEY = "YOUR_API_KEY";
async function compareRates(base, quote, providerRate) {
const res = await fetch(
`https://api.finexly.com/v1/latest?base=${base}&symbols=${quote}&apikey=${API_KEY}`
);
const { rates } = await res.json();
const mid = rates[quote];
const hiddenCostPct = ((mid - providerRate) / mid) * 100;
return { mid, providerRate, hiddenCostPct: hiddenCostPct.toFixed(2) };
}
compareRates("EUR", "USD", 1.0680).then(console.log);Как сравнивать провайдеров со среднерыночным курсом
Простой повторяемый метод подходит для любой конвертации:
- Получите среднерыночный курс пары в тот же момент, что и котировка провайдера.
- Рассчитайте сумму, которую вы получили бы по mid rate.
- Рассчитайте сумму, которую провайдер реально выдаёт после комиссий и наценки.
- Разделите разницу на сумму по mid rate, чтобы получить процент полной стоимости.
Повторите это в разное время, потому что спреды расширяются и сужаются. Исторические данные помогают составить справедливую картину за недели, а не по одному снимку; см. наше руководство по API исторических курсов.
Распространённые ошибки
- Считать mid rate торгуемой ценой. Это ориентир. Реальные сделки проходят по bid или ask.
- Путать обратные курсы. Mid для EUR/USD не равен в точности обратной величине mid для USD/EUR, как только в вашем ценообразовании участвуют спреды. Выберите одно направление и придерживайтесь его.
- Кэшировать слишком долго. Курсы постоянно меняются. Кэшируйте на секунды или минуты в зависимости от задачи, а не на часы.
- Прятать наценку в курсе. Регуляторы во многих странах всё чаще ожидают чёткого раскрытия стоимости. Показ mid rate — сигнал доверия.
- Округлять слишком рано. Округляйте только итоговую сумму, а не промежуточные курсы.
Часто задаваемые вопросы
Что такое среднерыночный обменный курс простыми словами?
Это середина между ценой покупки и ценой продажи валютной пары на мировом рынке. Он не включает комиссий и наценок, поэтому служит полезным ориентиром честности.
Среднерыночный курс — это то же самое, что межбанковский курс?
Эти термины используют почти как синонимы. Оба описывают курс, вокруг которого банки и дилеры торгуют между собой, хотя точные значения немного различаются в зависимости от источника данных.
Почему банки не дают мне среднерыночный курс?
Банки и платёжные провайдеры зарабатывают на спреде и наценке при каждой конвертации. Некоторые провайдеры используют mid rate и берут явную комиссию — поэтому всегда сравнивайте полную стоимость.
Как узнать реальный среднерыночный курс валютной пары?
Используйте надёжный источник в реальном времени, например API курсов валют, и сравните его с курсом, который вам предлагают. Процентная разница — ваша фактическая стоимость.
Можно ли получить среднерыночный курс через API?
Да. API курсов валют возвращает актуальные референсные курсы, которые можно использовать как mid rate, добавляя собственную наценку или сравнивая с котировками сторонних провайдеров, как показано в коде выше.
Создайте прозрачное ценообразование в валютах
Готовы интегрировать курсы валют в реальном времени в свой проект? Получите бесплатный API-ключ Finexly — без кредитной карты. Начните с 1000 бесплатных запросов в месяц и переходите на тарифные планы по мере роста. Также вы можете проверить любой курс в конвертере валют до начала разработки или сравнить валютные API, чтобы выбрать подходящий.
Explore More
Vlado Grigirov
Senior Currency Markets Analyst & Financial Strategist
Vlado Grigirov is a senior currency markets analyst and financial strategist with over 14 years of experience in foreign exchange markets, cross-border finance, and currency risk management. He has wo...
View full profile →