Блог им. Sundancer0369

Робот на сервере, QUIK у вас: схема, при которой деньги и ключи остаются на вашей стороне

Робот на домашнем компьютере — это когда ты в отпуске думаешь не о море, а о том, не прилетело ли Windows обновление.

У меня так и было. Машина под столом, QUIK запущен, робот рядом. И всё отлично ровно до того дня, когда провайдер моргнул, пока я стоял в очереди в аэропорту.

Расскажу, как мы работаем сейчас: робот живёт на сервере, терминал остаётся у клиента, и один сервер тянет сразу много терминалов. А главное — скажу сразу, иначе дальше никто читать не будет: деньги и счёт остаются у клиента, и это не обещание, а свойство схемы.

Робот на сервере, QUIK у вас: схема, при которой деньги и ключи остаются на вашей стороне

Как это выглядит

Робот делает две вещи: смотрит на рынок и ставит заявки. Обычно и то и другое идёт через терминал. Мы эти потоки развели.

Котировки берём мимо QUIK — прямо с ISS МосБиржи, это открытый интерфейс самой биржи. Терминал в этом не участвует вообще.

Заявки идут через терминал клиента. На сервере — служба-шлюз, в QUIK у клиента — скрипт на QLua, встроенном языке терминала. Служба говорит скрипту «поставь заявку», скрипт передаёт терминалу, терминал — брокеру. Назад тем же путём: принята, исполнена, снята.

Всё. Больше у клиента ничего не стоит. Ни программ, ни служб, ни «установите наш клиент» — только текстовый скрипт внутри QUIK, который он открывает блокнотом и читает.

Почему котировки мимо терминала

Логичный вопрос: терминал же и так всё получает, зачем огород.

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

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

Третье, бытовое: данные одинаковы для всех. Не надо разбираться, почему у одного клиента стакан другой, а у второго таблица настроена не так.

«А вы мне счёт не почистите?»

Это первый вопрос, который задают. Правильный вопрос, кстати.

Робот не подключается к брокеру. Вообще. Он разговаривает с терминалом, который клиент уже запустил и уже авторизовал под собой. Ни паролей, ни ключей API, ни доступа в личный кабинет у нас нет и быть не может.

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

Выключается всё одной кнопкой в QUIK — клиент останавливает скрипт, и робот остаётся наедине со своими расчётами.

Один сервер, много терминалов

Вот ради чего всё затевалось.

Мозги в одном месте: стратегии, расчёт объёма, лимиты, журнал, мониторинг. Исполнение у каждого своё — его счёт, его брокер, его комиссия.

Что это меняет на практике:

— Поправил стратегию — поправил у всех. Не надо обзванивать десять человек с просьбой обновиться.

— Клиенту не надо ничего настраивать. Закинул скрипт в терминал — работает.

— Видно всё сразу: позиции и заявки по всем счетам в одной панели, логи в одном месте. Когда что-то идёт не так, не приходится собирать картину по телефону.

— Стратегии и объёмы у всех разные, но это просто разные настройки на сервере, а не десять разных программ.

Где эта схема трещит

Теперь без рекламы.

Терминал всё равно должен быть включён. Это главный минус, и я говорю о нём до начала работы, а не после. QUIK стоит у клиента, выключили машину — робот бессилен. Лечится дешёвой виртуалкой, где терминал живёт круглосуточно, но это отдельные деньги каждый месяц.

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

Lua падает тихо. Одна ошибка в скрипте — и он мёртв, а терминал работает как ни в чём не бывало. Снаружи всё прекрасно: QUIK запущен, связь есть. Поэтому нужен отдельный признак «скрипт жив», а не «терминал запущен».

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

Версии разъезжаются. Клиенты обновляют QUIK когда вздумается. Протокол должен работать и со свежим терминалом, и с полугодовалым.

Коротко

Котировки — с биржи, команды — через терминал клиента, мозги — на сервере, деньги — на счёте клиента и больше нигде. Ставить клиенту нечего, кроме скрипта в QUIK.

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

А у вас робот где живёт — под столом или на сервере? И если на сервере, то как решили вопрос с включённым терминалом: своя виртуалка, VPS у брокера, что-то ещё? Собрать бы в одном месте, кто как выкрутился.

Как эта система выглядит целиком — панель, стратегии, журналы:

ngcorp.pro/projects/trading-bots-platform/

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
1.7К | ★2
2 комментария
На домашнем мини-сервере. VPS для Квика слабоват, даже, если там 8 ядер/16потоков/16Г в движуху может тормозить и запаздывать. Выделенный физический  сервер — совсем другое дело. Но, тоже есть минусы, что то у них там отвалилось, они накатили вчерашний или еще хуже прошлонедельный бэкап. Вроде все работает, но часть файлов/правок и т.д ушло не в бытие, а ты и не знаешь об этом, до какого то времени. На своем компе/сервере все знаешь, что да как, но бесперебойность работы висит на тебе . 
avatar
Речь идет о том, что информация передаваемая в и получаемая из Quik касается только заявок, лимитов и таблицы параметров, все обезличенные сделки сервер получает из ISS Moex
avatar

Читайте на SMART-LAB:
Фото
Три четверти россиян готовы переехать в другой регион ради повышения на работе
Каждый пятый (22%) не раздумывая согласится покинуть родной город ради карьеры, свыше половины (55%) россиян пойдут на переезд только если...
Фото
Собрали самое важное из еженедельного отчёта наших аналитиков
✅Ипотека По итогам 9 месяцев 2026 года банки предоставили 0,8 млн ипотечных кредитов (+33% г/г). Из них 371 тыс. выдано с господдержкой — лишь...
Фото
Операционные результаты за 9 месяцев 2026 года
Сегодня мы подводим операционные итоги за 9 месяцев 2026 года ✈️ Группа «Аэрофлот» перевезла 42,2 млн пассажиров, что сопоставимо с аналогичным...
Фото
Длинные ОФЗ: сколько можно заработать за 3 года, если взять текущие доходности около 17%?
Пока с начала текущего года заработать на длинных ОФЗ особо не получается (-0,56% с учетом НКД). Ожидания усиления инфляционных и прочих рисков...

теги блога Sundancer0369

....все тэги



UPDONW
Новый дизайн