Перейти к основному содержанию
У каждой страницы спреда есть стабильный адрес, который можно собрать в своей программе или боте. Грамматика ниже используется и ботом Spreader, и каждой ссылкой, которую пишет сайт.

Формат

Регистр не важен для биржи, типа, монеты и котировки: OKX:Perp:btc/usdt и okx:perp:BTC/USDT — одно и то же. Порядок двух параметров не важен. long — нога, которую вы покупаете, short — нога, которую продаёте.

Читаемая форма: COIN/QUOTE

Так внешняя программа собирает ссылку и так сайт пишет почти все свои ссылки. Монета и котировка — как их называет биржа, а не как Spreader называет актив: контракт на тысячу PEPE на Binance — 1000PEPE/USDT, а не PEPE/USDT, золото на Bybit TradFi — XAUUSD+/USD.
Котировку можно опустить (okx:perp:ETH), когда у монеты одна котировка на этой бирже и в этом типе. При нескольких котировках страница показывает список для выбора.

Точная форма: символ биржи

Имя маркета буква в букву, как его называет биржа: BTC-USDT-SWAP на OKX, xyz:GOLD на builder-DEX Hyperliquid, PF_XBTUSD на Kraken. Она нужна, когда читаемой формы недостаточно:
  • Двойники: у биржи два маркета одного типа по одной монете и котировке, например xyz:AAOI и para:AAOI на Hyperliquid, AAPLx/USD и AAPLSPV/USD на Kraken, два токена Binance Alpha с одним тикером. Такие маркеты сайт пишет по символу, чтобы ссылка всегда открывала именно тот маркет, который вы нажали.
  • Снятые с торгов маркеты: только точная форма открывает их страницу с плашкой о снятии и сохранённой историей.

Кодирование

: и / пишутся как есть. Кодируются только символы, запрещённые в адресе: & → %26, пробел → %20, $ → %24, нелатинские буквы — как UTF-8. bybitfi:perp:AT&T/USD становится bybitfi:perp:AT%26T/USD. Браузеры делают это сами. В коде используйте стандартный кодировщик компонентов URL и верните : и / обратно.

Что сервер делает с набранным адресом

Сервер не угадывает. Для каждой ноги, в пределах биржи и типа (для margin — среди спотовых маркетов с маржинальной торговлей):
  1. Точное имя. Если NAME равно символу маркета, это он, в любом статусе (так открываются снятые с торгов маркеты). Если NAME содержит /, часть до последнего / равна символу, а часть после — его котировке, это тоже он (hyperliquid:perp:xyz:GOLD/USDC).
  2. По монете и котировке среди торгуемых и снимаемых маркетов: часть до последнего / — монета, после — котировка. Ровно один маркет: он. Несколько: страница Ноге лонг подходят несколько маркетов — выберите с точной ссылкой на каждого кандидата. Ни одного: Ноге лонг не подходит ни один маркет. Котировки этой монеты там: … с котировками монеты на этой бирже.
  3. Без котировки (okx:perp:ETH): одна котировка — этот маркет. Несколько: список.
Пара целиком должна быть двумя разными маркетами одного актива в допустимом типе: спот только длинной ногой, маржа только короткой, спот против спота только на разных биржах. Иначе страница показывает Ноги принадлежат разным активам, Обе ноги указывают на один маркет или Не удалось разобрать ногу лонг, но никогда не пустой экран. Адрес, который нельзя разобрать вовсе, включая старую форму /spread?p=…, открывает сканер.

Как сайт пишет свои ссылки

Каждый объект маркета, который сайт отправляет в браузер, несёт готовый токен ноги: читаемую форму, если у маркета нет двойника среди торгуемых маркетов того же типа, монеты и котировки, иначе символ. Когда вы открываете пару нажатием без ссылки (поиск, Конструктор пары, стрелки), страница заменяет адрес в браузере на читаемую форму без записи в истории, так что скопированный адрес всегда одинаков.