Manuals
RU EN

Продукты · 20

API котировок Forex и Crypto

Продукты 5 мин чтения

API котировок — источник цены для терминала, тикера и свечного графика. Платформа БО или Forex цену не выдумывает: она читает ленту. REST удобен для истории свечей и снапшота рынка; WebSocket — для тиков, когда polling уже не успевает. Если график замер, сначала смотрят ответ API, не вёрстку кнопки «Купить».

На практике у интегратора два контракта. Первый — список инструментов и их символы. Второй — поток: last, bid/ask, timestamp, иногда объём. Без единого словаря символов таблица рынка показывает BTCUSDT, а терминал подписывается на BTCUSD — и оба «работают», просто в разных вселенных.

REST: что должно быть в ответе

Минимум для свечи: symbol, open, high, low, close, time. Для тикера достаточно last и change24h, но метка времени всё равно нужна — иначе не отличите кэш от живого рынка. Открывайте endpoint в браузере или через клиент и смотрите, что time свежий относительно выбранного таймфрейма.

  • Коды ответа: 200 с телом, а не пустой 200 с нулевым массивом.
  • Единый формат времени (секунды или миллисекунды — выберите один).
  • Стабильные имена полей: клиент не должен гадать между price и last.
  • Ограничение частоты: лимиты без понятной ошибки дают «рандомные» зависания UI.

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

WebSocket: тики без лишних HTTP

Сокет нужен, когда REST-опрос раз в секунду уже грузит и сервер, и браузер. Клиент подписывается на набор символов, сервер пушит обновления. Обрыв сокета без reconnect в UI выглядит как «рынок встал», хотя REST истории ещё жив. Настройте переподключение и индикатор статуса ленты в терминале.

Не тащите в один кадр сотни пар «на всякий случай». Подписка должна следовать за экраном: открыли EURUSD — слушаете EURUSD. Иначе на слабом VDS и на телефоне клиента получите очередь сообщений и пропуски тиков. Разбор потока — WebSocket-котировки.

  1. Проверьте hello/subscribe и что в кадре есть символ и цена.
  2. Убейте сеть на секунду: UI должен переподключиться, а не зависнуть молча.
  3. Сверьте last из WS с REST-снапшотом того же символа.

Символы и маппинг

EURUSD, EUR/USD, EUR_USD — три разных ключа, пока вы не свели их в словарь. То же для крипты: BTCUSDT с биржи и BTC/USDT в карточке сайта. Маппинг держите в одном месте: конфиг скрипта котировок, не размазанный по шаблонам.

Если API отдаёт биржевой тикер, а кабинет брокера — «человеческое» имя, преобразуйте на границе datafeed. Иначе TradingView Library откроет пустой график при живой таблице. Связка с графиком — TradingView Library, общая лента — котировки.

Доступ с домена платформы

Локальный .loc с другой машины до хоста API часто не достучится: firewall, hosts, whitelist. Боевой домен терминала должен быть явно разрешён на стороне котировок. CORS для браузерных запросов — отдельная проверка: curl с сервера зелёный, fetch из JS — красный.

HTTPS к HTTP API с https-страницы режется браузером. Самоподписанный сертификат на API при жёсткой политике тоже. Для стенда лучше один нормальный сертификат или единый reverse-proxy, чем смесь схем.

Задержка. Для демо секундная лента нормальна. Для показа клиенту важнее ровная доставка и совпадение символов, чем гнаться за микросекундами.

Нагрузка и кэш

Кэшировать снапшот рынка на 1–2 секунды для публичной таблицы — разумно. Кэшировать тик для расчёта экспирации БО на минуту — уже ложь в PnL. Разделяйте: витрина может жить на коротком кэше, торговый контур — на свежем потоке.

Логируйте на стороне API редкие события: пустой источник, отвал апстрима, деградацию до последней известной цены. В кабинете админа полезна метка «лента stale» — поддержка сразу видит причину пустого графика.

Проверка перед запуском регистрации

Чеклист интегратора короткий и жёсткий. Открыть REST истории по трём символам. Подписать WS на один символ и подержать минуту. Открыть терминал и убедиться, что last на графике и в стакане/строке цены не разъезжаются. Пройти учебную сделку и сверить цену входа с лентой.

Для крипто-витрины дополнительно проверьте капитализацию и объёмы, если они с того же API: CoinMarket-скрипт. Для тикера в шапке — тикер криптовалют. Для графика на карточке — графики крипты.

Связь с брокером

White-label БО и Forex потребляют один и тот же класс API, но по-разному. Опционам важна цена в момент экспирации; Forex — непрерывный поток для маржи и свопа. Не подменяйте торговый поток витринным кэшем «чтобы сэкономить». Экономия закончится тикетами «не та цена закрытия».

Документацию для заказчика пишите языком эксплуатации: URL, заголовки, пример кадра, таблица символов, SLA по задержке, контакты эскалации при отвале апстрима. Без этого через квартал никто не вспомнит, почему в конфиге три alias на одну пару.

Итого: API котировок — контракт между рынком и вашим PHP-скриптом. REST для истории, WebSocket для тиков, единый словарь символов, доступ с домена платформы. Пока этот контур зелёный, терминал и график выглядят живыми; когда красный — чинить надо ленту, а не кнопку ордера. См. также white label и продуктовые контуры БО / Forex.

Документ для заказчика

В приложении к сдаче API приложите один JSON пример тика, один пример свечи, таблицу alias символов и список доменов whitelist. Без этого через месяц поддержка будет угадывать, почему новый поддомен терминала не видит ленту. Отдельно укажите лимиты: запросов в минуту на REST, число WS-подписок на соединение, поведение при 429.

Если апстрим биржи деградирует, зафиксируйте политику: отдавать last known с флагом stale или закрывать торговлю. Молчаливая подмена тухлой цены в торговом контуре хуже явного баннера в терминале.

Частые вопросы

Api котировок forex websocket?

Терминал не рисует цену сам. Ему нужна лента: REST или WebSocket.

Сколько времени занимает «API котировок Forex и Crypto»?

Ориентир по тексту мануала — около 5 мин. На практике зависит от хостинга и подготовки базы.

Нужен ли отдельный сервер?

Для большинства скриптов достаточно хостинга или VDS с PHP и MySQL. Подбор сервера — в разделе VDS и требованиях к PHP/MySQL.

Tradingview library интеграция php?

Разбор рядом в мануале по этому запросу. tradingview library интеграция php

Скрипт курсов криптовалют свой сайт?

Разбор рядом в мануале по этому запросу. скрипт курсов криптовалют свой сайт

Раздел
Котировки и графики

Курсы, графики и live-поток цен для витрины или брокера.