Tiger API
Документация по работе с Tiger Websocket API
Назначение
Tiger API — локальный сервер сигналов (WebSocket) для связи скринеров и других внешних сервисов с терминалом Tiger.com Windows.
В текущей версии принимает команду setLinkSymbol и мгновенно открывает переданный тикер в указанной группе линковки, чтобы инструмент на графике и/или стакане обновился без ручных действий.
Где включать в терминале
Откройте меню: Настройки → Локальный сервер сигналов → Включить сервер сигналов → Сохранить.
По умолчанию для WebSocket-сервера используется порт 7819.
Подключив тумблер, можно использовать команду setLinkSymbol и другие WS-сообщения, описанные ниже.
Текущий формат запроса
{ "type": "setLinkSymbol", "e": "BINANCE", "m": "SPOT", "symbol": "BTCUSDT", "linkGroup": "A" }
Правила валидации
Все поля обязательные;
Регистр значений не важен (сервер нормализует и эхо-возвращает в каноническом виде, см. примеры ниже);
m: только SPOT или FUTURES (в ответе нормализуется в Spot/Futures);linkGroup: строка (буква A–Z или цифра 0–11; словари групп см. справочник ниже)
Примеры запросов и ответов
Успешный запрос
Пример
socket.send('{"type":"setLinkSymbol","e":"BINANCE","m":"SPOT","symbol":"BTCUSDT","linkGroup":"A"}');
{ "title": "Successful request", "message": "Symbol linked successfully.", "request": { "e": "BINANCE", "m": "Spot", "symbol": "BTCUSDT", "linkGroup": "A", " type": "SetLinkSymbol" }, "response": { "type": "successfully", "timestamp": "2025-09-01T13:18:50.2327892+03:00" } }
Неверный тип команды или битый JSON
Пример 1: неизвестный тип (ключи валидные, но значение поля type неверно)
socket.send('{"type":"InvalidType","e":"BINANCE","m":"SPOT","symbol":"BTCUSDT","linkGroup":"A"}');
{ "title": "Invalid JSON (syntax error)", "message": "Invalid JSON. Connection will close.", "request": { "type": "InvalidType", "e": "BINANCE", "m": "SPOT", "symbol": "BTCUSDT", "linkGroup": "A" }, "response": { "type": "error", "error": { "message": "Invalid JSON format", "code": 400 }, "timestamp": "2025-09-01T13:20:30.6586708+03:00" }, "connection_close": { "code": 1007, "reason": "Invalid JSON format" } }
Пример 2: невалидный JSON
socket.send('"type": "InvalidType", "e": "BINANCE", "m": "SPOT", "symbol": "BTCUSDT", "linkGroup": "A"}');
{ "title": "Invalid JSON (syntax error)", "message": "Invalid JSON. Connection will close.", "request": null, "response": { "type": "error", "error": { "message": "Invalid JSON format", "code": 400 }, "timestamp": "2025-09-01T13:21:21.996182+03:00" }, "connection_close": { "code": 1007, "reason": "Invalid JSON format" } }
Поведение соединения: при синтаксической ошибке JSON сервер присылает ошибку и закрывает соединение с кодом 1007.
Ошибка валидации полей (соединение не закрывается)
Пропущены обязательные поля
socket.send('{"type":"setLinkSymbol","e":"","m":"SPOT","symbol":"","linkGroup":""}');
{ "title": "Missing required fields", "message": "Some fields are missing.", "request": { "e": "", "m": "Spot", "symbol": "", "linkGroup": "", "type": "SetLinkSymbol" }, "response": { "type": "error", "error": { "message": "'e' is empty, 'symbol' is empty, 'linkGroup' is empty", "code": 400 }, "timestamp": "2025-09-01T13:26:53.6306133+03:00" } }
Несуществующий символ
socket.send('{"type":"setLinkSymbol","e":"BINANCE","m":"SPOT","symbol":"BTCUSDT1","linkGroup":"A"}');
{ "title": "Symbol not found", "message": "Trading symbol not found.", "request": { "e": "BINANCE", "m": "Spot", "symbol": "BTCUSDT1", "linkGroup": "A", "type": "SetLinkSymbol" }, "response": { "type": "error", "error": { "message": "Symbol not found", "code": 400 }, "timestamp": "2025-09-01T13:28:10.9152168+03:00" } }
Некорректная группа линковки
socket.send('{"type":"setLinkSymbol","e":"BINANCE","m":"SPOT","symbol":"BTCUSDT","linkGroup":"AX"}');
{ "title": "Invalid link group", "message": "Link group not found.", "request": { "e": "BINANCE", "m": "Spot", "symbol": "BTCUSDT", "linkGroup": "AX", "type": "SetLinkSymbol" }, "response": { "type": "error", "error": { "message": "linkedGroup not found", "code": 400 }, "timestamp": "2025-09-01T13:30:20.101782+03:00" } }
Ping/Pong
Поддерживаются два варианта пинга.
JSON
socket.send('{"type":"ping","title":"some title","message":"some message"}');
{ "title": "Pong", "message": "Response 'pong' to 'ping'.", "request": { "title": "some title", "message": "some message", "type": "Ping" }, "response": { "type": "successfully", "timestamp": "2025-09- 01T13:35:34.0389026+03:00" } }
Справочник по значениям
Биржи (e)
Список поддерживаемых бирж и коннекторов:
BINANCE
BINANCE-FUT
BYBIT
OKX
MEXC
BITMEX
Bitfinex
Gate.io
Bitget
TigerX
Передаваемое значение регистронезависимо. 
Тип рынка (m)
SPOT или FUTURES (регистр не важен; в ответе нормализуется до Spot/Futures). 
Группы линковки (linkGroup)
Передаётся строка. Допустимые группы — буквенные A–Z и цифровые 0–11. Цветовые соответствия и полный справочник доступны в проектной заметке№
Буквенные группы
A: #FFF9C4
B: #93FF9D
C: #1DEAC5
D: #D380FF
E: #FFA5A9
F: #EFE95F
G: #30F74C
H: #01AC8D
I: #9CA6FF
J: #C2595B
K: #CFC937
L: #05D759
M: #0DB9D7
N: #7455F2
O: #A95A7D
P: #EBA14C
Q: #08DA8E
R: #2586E0
S: #1A46DF
T: #905BA0
U: #F56334
V: #05A964
W: #00879A
X: #4D23F5
Y: #6C26EE
Z: #3C3C3C
Цифровые группы
0: #FFAA00
1: #FF4E00
2: #CB3400
3: #87EA09
4: #31DA06
5: #178905
6: #00E0FF
7: #0A7AE0
8: #0A42D2
9: #9655F2
10: #A700FF
11: #6509D5
Поведение соединения и коды ошибок
Синтаксическая ошибка JSON (невозможность распарсить, либо некорректная команда type) → ошибка с code 400 и закрытие соединения с WebSocket-кодом 1007.
Ошибки валидации содержимого (пустые поля, несуществующий символ, неверная группа) → ошибка с code 400, соединение остаётся открытым.
Сообщения и примеры в этом разделе см. выше.
Примеры push сообщений
Рекомендации клиенту
На синтаксические ошибки JSON (закрытие 1007) — переподключение с экспоненциальной задержкой и предварительной локальной валидацией JSON перед отправкой.
На ошибки валидации содержимого — исправление полей и повторная отправка без переподключения.
Поддерживать keep-alive через периодический ping (текстовый или JSON).
Last updated