Блог им. Sundancer0369

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Коротко

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

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

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

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

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

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
4.6К | ★7
8 комментариев
На домашнем мини-сервере. VPS для Квика слабоват, даже, если там 8 ядер/16потоков/16Г в движуху может тормозить и запаздывать. Выделенный физический  сервер — совсем другое дело. Но, тоже есть минусы, что то у них там отвалилось, они накатили вчерашний или еще хуже прошлонедельный бэкап. Вроде все работает, но часть файлов/правок и т.д ушло не в бытие, а ты и не знаешь об этом, до какого то времени. На своем компе/сервере все знаешь, что да как, но бесперебойность работы висит на тебе . 
avatar
Речь идет о том, что информация передаваемая в и получаемая из Quik касается только заявок, лимитов и таблицы параметров, все обезличенные сделки сервер получает из ISS Moex
avatar
Опять робот обод и болты
avatar
ты зачем нам свой ИИ  текст сюда кинул
avatar
А я и сам ИИ
avatar
скрипт висит на VDS. 3 процессора и 6 гб оперативы для QUIK достаточно. При дисконекте переконективается скриптом автологином. Добавленные свечи обрабатывает и решает что дальше делать с позицией. При ребуте сервера QUIK со скриптами запускается из автозагрузки.  За объемами следит отдельный скрипт он ежеминутно собирает все объемы от скриптов по одному инструменту и выставляет итоговую заявку. Каждые 2 часа скрипт маякует в Макс что живой. Проблемы очень редки в основном профилактика у провайдера VDS или сбои у самого QUIK.
avatar
Робот на домашнем компьютере — это когда ты в отпуске думаешь не о море, а о том, не прилетело ли Windows обновление.
А в чем собсна проблема? Ну, обновилось перегрузилось Quik автозагрузился скрипты запущенные на момент его выключения продолжают работать.
Есть, правда у Квика идиотский прикол, что нужно все настроить обновить/запустить, а потом его нужно закрыть крестиком с работающими скриптами. тогда он запомнит это состояние и при перезапуске продолжит работу включенных на момент выключения скриптов
avatar
Речь о коммерческой аренде робота, когда робот один на сервере, тики из ISS Moex и 1000 клиентов с квиками
avatar

Читайте на SMART-LAB:
Фото
Интер РАО. РСБУ за Q3 26г. Процентные доходы падают, генерация слабеет - чего ждать от МСФО?
Вышел отчет по РСБУ за Q3 2026г. от компании Интер РАО: 👉Выручка — 15,60 млрд руб. (-17,1% г/г) 👉Себестоимость — 11,80 млрд руб....
Фото
EUR/USD: евро получил временную передышку, но давление сохраняется
Общий динамика валютной пары за прошедший период выглядит как движение в боковом коридоре: после первоначальной попытки восстановления снижение...
Фото
ВСК: киберстрахование может стать одним из драйверов роста страхового рынка
Председатель совета директоров и основатель Страхового Дома ВСК Сергей Цикалюк выступил на Форуме лидеров страхового рынка, где рассказал о...
Фото
Актуальный состав портфеля и взгляд на рынок.
Здравствуйте! Сегодня проходила встреча с годовыми подписчиками. К сожалению, не смог присутствовать лично, подготовил для встречи...

теги блога Sundancer0369

....все тэги



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