Назад к блогу

Фиксированный vs плавающий курс: руководство для разработчиков по валютным режимам (2026)

V
Vlado Grigirov
May 03, 2026
Exchange Rates Currency API Forex Education Developer Guide Finexly

Фиксированный vs плавающий курс: руководство для разработчиков по валютным режимам (2026)

Если вы когда-нибудь обращались к валютному API и видели, что USD/HKD еле двигается, а USD/JPY проходит 200 пунктов до обеда, вы уже встретили в дикой природе разницу между фиксированным и плавающим курсами. Снаружи оба режима выглядят одинаково — просто число в одном и том же JSON-ответе — но ведут себя радикально по-разному, и приложения, которые вы строите поверх, должны это учитывать.

Это руководство объясняет фиксированный vs плавающий курсы глазами разработчика. Разберём, как работает каждый режим, какие валюты входят в каждый лагерь в 2026 году, как определить режим программно через валютное API и как писать код, который не падает при срыве пега. К концу вы будете точно знать, чего ждать от каждого курса, который трогает ваше приложение, — и какой защитный код стоит выпустить до того, как узнаете об этом тяжёлым путём.

Что такое фиксированный курс?

Фиксированный курс (он же привязанный курс, peg) — это режим, при котором центральный банк намеренно удерживает стоимость своей валюты на целевом уровне относительно другой валюты, корзины валют или — исторически — товара вроде золота.

Привязка обеспечивается одним из двух механизмов:

  1. Активная интервенция — центральный банк покупает или продаёт собственную валюту на открытом рынке за счёт валютных резервов всякий раз, когда курс уходит от цели.
  2. Валютный комитет (currency board) — национальная валюта полностью обеспечена резервами в якорной валюте по фиксированному коэффициенту. Каждая выпущенная единица покрыта 1 к 1 (или в коэффициенте пега) на балансе ЦБ.

Гонконгский доллар, например, привязан к доллару США примерно на уровне HKD 7,80 = USD 1,00 с 1983 года в режиме валютного комитета. Саудовский риял держит SAR 3,75 = USD 1,00 с 1986 года. Оба — учебные жёсткие пеги.

Жёсткие, мягкие и ползучие пеги

Не все фиксированные режимы одинаковы. МВФ выстраивает пеги в спектр:

  • Жёсткий пег (hard peg) — полностью зафиксирован на одном курсе, защищается без исключений (HKD, SAR, AED, BHD).
  • Конвенциональный пег — зафиксирован на целевом курсе в узком коридоре (обычно ±1 %), с интервенциями ЦБ (DKK к EUR, JOD, OMR).
  • Ползучий пег (crawling peg) — целевой курс сдвигается по заранее объявленному графику, обычно для управления инфляционными разрывами (исторически — Вьетнам и ряд латиноамериканских стран).
  • Стабилизированный режим — курс остаётся в узком коридоре минимум шесть месяцев даже без официально объявленного пега (категория МВФ де-факто).

Для разработчиков это важно: профиль волатильности у каждого режима свой — жёсткий пег ходит на базисные пункты, ползучий — на известную величину в день, стабилизированный режим может в любой момент сменить классификацию.

Что такое плавающий курс?

Плавающий курс определяется валютным рынком — спрос и предложение трейдеров, импортёров, экспортёров, центробанков, хеджеров и спекулянтов толкают цену в реальном времени. Никакого целевого уровня и никаких обязательств вмешиваться.

Большинство крупных валют плавают: USD, EUR, GBP, JPY, AUD, CAD, NZD, CHF, NOK, SEK, MXN, BRL, ZAR и большая часть других свободно торгуемых единиц. Вместе они дают подавляющую долю примерно 7,5 трлн долларов суточного оборота, который BIS зафиксировал в Триеннале 2022 года, — и эта доля с тех пор только растёт.

Чистое плавание vs управляемое плавание

На практике «плавание» — это континуум:

  • Свободное / чистое плавание — ЦБ не вмешивается. Валюта идёт туда, куда ведёт рынок. USD, EUR, AUD — учебные примеры.
  • Управляемое (грязное) плавание — ЦБ изредка вмешивается, чтобы сгладить избыточную волатильность или сбить однобокое движение, но не защищает конкретный уровень. Японская иена — известный пример управляемого плавания; Банк Японии публично вмешивался в 2022, 2024 и снова в начале 2026 года, когда USD/JPY пробивал психологические уровни.

С точки зрения разработчика граница между управляемым плаванием и стабилизированным режимом размыта, и валюты могут её пересекать. Поэтому никогда не вшивайте в код предположения о том, насколько валюта «должна» двигаться.

Почему это важно разработчикам

Соблазн обращаться со всеми курсами как с одной задачей: дёрнуть endpoint, получить число, перемножить, выкатить. Но режим за котировкой определяет почти всё, что важно в проде:

  • Реально нужная частота обновлений. Привязанной валюте редко нужен суб-секундный поллинг. Крупной плавающей — нужен.
  • Ширина допуска. Сдвиг 1 % в HKD/USD — заголовок; 1 % в EUR/USD — вторник.
  • Что значит «устаревшие данные». Спот 30-минутной давности годится для счёта в SAR/USD; опасен для живой торговли JPY.
  • Как обрабатывать выбросы. Прокол HKD за пределы коридора — это либо реальный срыв, либо плохой тик. Плавающим валютам нужна другая логика аномалий.
  • Нужны ли вообще форварды. Спот и форвард у жёстких пегов сходятся через паритет процентных ставок; у плавающих — расходятся.

Строить одну модель волатильности на все валюты приложения — самая частая ошибка, которую видим в код-ревью. МВФ сейчас классифицирует около 80 экономик в каком-либо фиксированном или стабилизированном режиме и 65 — как плавающие или свободно плавающие. Ваш код должен знать, кто есть кто.

Главные привязанные валюты в 2026 году

Рабочий справочник самых активных привязанных валют, с которыми ваше приложение скорее всего столкнётся, по последнему ежегодному отчёту МВФ о валютных режимах:

ВалютаКодПривязка кПрибл. курсРежим
Гонконгский долларHKDUSD7,80 (коридор 7,75–7,85)Валютный комитет
Саудовский риялSARUSD3,75Конвенциональный пег
Дирхам ОАЭAEDUSD3,6725Конвенциональный пег
Бахрейнский динарBHDUSD0,376Конвенциональный пег
Катарский риялQARUSD3,64Конвенциональный пег
Оманский риалOMRUSD0,385Конвенциональный пег
Иорданский динарJODUSD0,709Конвенциональный пег
Ливанский фунтLBPUSD (де-юре)нестабиленКризисный режим
Датская кронаDKKEUR7,46 (ERM II ±2,25 %)Конвенциональный пег
Болгарский левBGNEUR1,9558Валютный комитет
Западноафриканский CFAXOFEUR655,957Конвенциональный пег
Центральноафриканский CFAXAFEUR655,957Конвенциональный пег
Коморский франкKMFEUR491,968Конвенциональный пег
Тихоокеанский франкXPFEUR119,3317Конвенциональный пег
Что из этого вытекает в реальном коде:

  • Блок Залива — фактически одна валюта (USD) в шести разных ISO-кодах.
  • Блок, привязанный к евро, шире, чем многим кажется: DKK, BGN, CFA-франки и другие движутся как если бы были евро.
  • Один пег в таблице сломан. Ливанский фунт имеет де-юре привязку, но торгуется в разы выше на параллельном рынке; никогда не доверяйте только официальному курсу.

Главные плавающие валюты в 2026 году

Для сравнения, плавающая сторона включает ожидаемое плюс длинный хвост развивающихся рынков:

  • Майоры G10: USD, EUR, JPY, GBP, CHF, AUD, CAD, NZD, NOK, SEK
  • Активно плавающие EM: MXN, BRL, ZAR, INR, IDR, KRW, TWD, TRY, PLN, HUF, CZK, ILS, CLP, COP, PEN, THB, PHP, MYR
  • Сырьевые плавающие: AUD, CAD, NZD, NOK, BRL, ZAR — сильно коррелируют с нефтью и сырьём.

Если вы запрашиваете любую из них через Finexly API, ждите движения каждую секунду, пока соответствующий рынок открыт. Поллинг, кеширование и обработку ошибок подбирайте соответственно.

Определяем валютные режимы программно

Не нужно вести список вручную — разумную аппроксимацию можно вывести из самих данных. Небольшая Python-утилита, классифицирующая валютную пару по реализованной волатильности за 30 дней через исторический endpoint Finexly:

import os
import statistics
from datetime import date, timedelta
import requests

API_KEY = os.environ["FINEXLY_API_KEY"]
BASE = "https://api.finexly.com/v1"

def regime(base: str, quote: str, days: int = 30) -> dict:
    end = date.today()
    start = end - timedelta(days=days)
    url = f"{BASE}/timeseries"
    params = {
        "base": base,
        "symbols": quote,
        "start_date": start.isoformat(),
        "end_date": end.isoformat(),
        "api_key": API_KEY,
    }
    rates = requests.get(url, params=params, timeout=10).json()["rates"]
    series = [day[quote] for day in rates.values()]
    returns = [
        (series[i] / series[i - 1]) - 1
        for i in range(1, len(series))
    ]
    vol = statistics.pstdev(returns) * (252 ** 0.5)  # annualized
    if vol < 0.005:
        label = "hard peg"
    elif vol < 0.02:
        label = "soft peg / stabilized"
    elif vol < 0.10:
        label = "managed float"
    else:
        label = "free float"
    return {"pair": f"{base}/{quote}", "annual_vol": round(vol, 4), "regime": label}

for pair in [("USD", "HKD"), ("USD", "SAR"), ("EUR", "DKK"),
             ("USD", "JPY"), ("USD", "TRY"), ("EUR", "USD")]:
    print(regime(*pair))

Типичный вывод:

{'pair': 'USD/HKD', 'annual_vol': 0.0021, 'regime': 'hard peg'}
{'pair': 'USD/SAR', 'annual_vol': 0.0008, 'regime': 'hard peg'}
{'pair': 'EUR/DKK', 'annual_vol': 0.0009, 'regime': 'hard peg'}
{'pair': 'USD/JPY', 'annual_vol': 0.0918, 'regime': 'managed float'}
{'pair': 'USD/TRY', 'annual_vol': 0.2771, 'regime': 'free float'}
{'pair': 'EUR/USD', 'annual_vol': 0.0734, 'regime': 'managed float'}

Пороги выше — практические, а не академические; подгоните под свою терпимость. Главная мысль: код должен реагировать на реализованную волатильность, а не на декларации.

cURL-эквивалент для разовых проверок:

curl "https://api.finexly.com/v1/timeseries?base=USD&symbols=HKD&start_date=2026-04-01&end_date=2026-05-01&api_key=$FINEXLY_API_KEY"

И та же идея на JavaScript для дашбордов:

async function realizedVol(base, quote) {
  const end = new Date().toISOString().slice(0, 10);
  const start = new Date(Date.now() - 30 * 86400e3).toISOString().slice(0, 10);
  const url = `https://api.finexly.com/v1/timeseries?base=${base}&symbols=${quote}&start_date=${start}&end_date=${end}&api_key=${process.env.FINEXLY_API_KEY}`;
  const data = await fetch(url).then(r => r.json());
  const series = Object.values(data.rates).map(d => d[quote]);
  const rets = series.slice(1).map((v, i) => v / series[i] - 1);
  const mean = rets.reduce((a, b) => a + b, 0) / rets.length;
  const variance = rets.reduce((a, b) => a + (b - mean) ** 2, 0) / rets.length;
  return Math.sqrt(variance) * Math.sqrt(252);
}

console.log(await realizedVol("USD", "HKD"));
console.log(await realizedVol("USD", "JPY"));

Как обрабатывать срывы пега: когда «стабильная» валюта вдруг перестаёт быть стабильной

Опасный режим отказа для разработчиков — не медленный дрейф, а внезапный срыв. История полна примеров:

  • Швейцария, январь 2015 — Швейцарский национальный банк без предупреждения отказался от уровня EUR/CHF 1,20, и франк за минуты вырос примерно на 30 %. Несколько FX-брокеров обанкротились.
  • Аргентина, декабрь 2023 — официальный песо был резко девальвирован; приложения, использовавшие только официальный курс, выдавали странные результаты пользователям, торгующим по параллельному.
  • Египет, март 2024 — после долгого управляемого ослабления EGP де-факто отпустили в плавание за ночь, USD/EGP удвоился за день.

Надёжная интеграция трактует любой «фиксированный» курс как фиксированный до доказательства обратного. Два защитных паттерна стоит выкатить по умолчанию:

  1. Допустимые коридоры с предохранителями. Кешируйте ожидаемый коридор для каждой пары; если живая котировка вне коридора — отказывайте в конвертации и поднимайте алерт, а не считайте по ошибочному курсу.
  2. Сверка нескольких источников. Для бизнес-критичных конверсий сверяйте курс основного провайдера с независимой эталонной точкой. Расхождение значит, что что-то не так — в источнике, в кеше или в реальности.

Минимальная обёртка проверки на адекватность (Python):

EXPECTED = {
    ("USD", "HKD"): (7.75, 7.85),
    ("USD", "SAR"): (3.74, 3.76),
    ("EUR", "DKK"): (7.43, 7.49),
}

def safe_rate(base, quote, live_rate):
    band = EXPECTED.get((base, quote))
    if band and not (band[0] <= live_rate <= band[1]):
        raise ValueError(
            f"{base}/{quote} = {live_rate} outside expected band {band}; "
            "possible peg break or bad data — alert ops before pricing."
        )
    return live_rate

Именно такой код мешает отчёту об инциденте утром во вторник превратиться в цикл возвратов во второй половине дня.

Делаем приложения, которые переживут оба режима

Чек-лист для команд, выпускающих мульти-валютные продукты в 2026:

  • Помечайте каждую поддерживаемую валюту её режимом (hard peg, conventional peg, managed float, free float) на этапе сборки и используйте тег как feature flag для кеша, алертов и UI.
  • Задавайте TTL кеша по режимам. 24 часа подходят жёсткому пегу; 30 секунд — крупной плавающей; для трейдинговых приложений лучше WebSocket-фид.
  • Показывайте режим пользователю, когда это уместно. «Привязана к USD — обычно стабильна» успокаивает международных покупателей; «Волатильна — курс часто обновляется» правильно настраивает ожидания на чекаутах развивающихся рынков.
  • Тестируйте сценарии срыва на staging. Вкатывайте синтетический сдвиг 5 % в привязанной паре и проверяйте, что предохранители срабатывают.
  • Подпишитесь на календари центробанков. HKMA, SAMA и BCEAO публикуют заседания; крупные изменения пегов редки, но навсегда не запрещены.
  • Берите провайдера с полной картой. Finexly покрывает 170+ валют, включая все крупные пеги, плюс эталонные курсы МВФ и данные параллельных рынков, где они есть. См. тарифы для бесплатных и платных уровней или сравнение валютных API при оценке альтернатив.

Часто задаваемые вопросы

В чём разница между фиксированным и плавающим курсом?

Фиксированный курс центральный банк держит на целевом значении к другой валюте или корзине, обычно за счёт резервов и интервенций. Плавающий определяется спросом и предложением, без или почти без вмешательства. Фиксированные стабильнее, плавающие лучше реагируют на экономические условия.

Что лучше — фиксированный или плавающий?

Универсального ответа нет — это компромисс. Фиксированные дают предсказуемость для торговли и инфляционных ожиданий, но требуют больших резервов и сковывают денежно-кредитную политику. Плавающие позволяют ЦБ реагировать на внутренние условия, но добавляют валютную волатильность. Большинство крупных открытых экономик плавают; маленькие открытые и нефтеэкспортёры часто привязывают.

У США фиксированный или плавающий курс?

Доллар свободно плавает. ФРС не таргетирует уровень USD к другой валюте. Но поскольку столько других валют привязано к доллару, USD выступает фактическим якорем для значительной части мировой валютной системы.

Что происходит при срыве пега?

Срыв пега — резкий и крупный сдвиг ранее удерживаемой валюты — за часы способен девальвировать или ревальвировать её на 10 %, 30 % и более. Приложения, не валидирующие котировки против ожидаемых коридоров, могут считать по неправильной цене, расчётно завершать сделки по ошибочному курсу или показывать пользователям бессмысленные числа. Всегда внедряйте проверки на адекватность для привязанных пар.

Можно ли только по данным понять, привязана ли валюта?

Посчитайте реализованную волатильность пары к её якорю за последний месяц. Жёсткие пеги обычно дают аннуализированно ниже 0,5 %; плавающие — выше 5–10 %. Сниппеты на Python и JavaScript выше показывают одну практическую реализацию. Совместите с публикуемой МВФ классификацией как с эталоном.

Начните с Finexly

Готовы интегрировать курсы в реальном времени, которые одинаково корректно работают и для привязанных, и для плавающих валют? Получите бесплатный API-ключ Finexly — без банковской карты. Бесплатный план — 1 000 запросов в месяц, полный доступ к 170+ валютам, включая все основные пеги, и одна и та же структура JSON, запрашиваете вы HKD или TRY. Соберите один раз — обработайте любой режим.

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 →