Блог им. asf-trade

Как ваш робот контролирует риски неверно выставленных брокером лимитов?

Я тут довольно сильно увлекся робототехникой, и мне вот интересно:

кто и каким образом контролирует риск выставления брокером «левого лимита» или позиций? Как ваш робот пережил сбой 19 декабря?


У меня роботы сами считают все, и если у них расходятся данные с лимитами полученными от брокера (не всегда косячит биржа — гораздо чаже брокер может выставить ересь) они сигналят об этом остановив работу.

А как у вас? Поделитесь опытом. :)
★3
25 комментариев
у меня все сделки пишет в файл и не привязан к счету… так что если неа счете глюк — ему реально ПОФИГ, даже не дернется, но есть риск — что он чего-то не запишет… по факту такого не было
avatar
а как ты поймешь что лимит левый? по своим сделкам? я в августе этого год попал очень сильно — заявки выставлялись, сделки проходили (менялась позиция по инструментам), а вот в таблице сделок не появлялись мои сделки. мой алгоритм не был на это расчитан — в итоге я набрал на весь депозит против рынка :)
кстати перед этим брокер уведомил о «возможных технических проблемах с отображением информации в таблицах» — только мой робот не читал уведомления, а меня естественно не было возле терминала :)))
avatar
vfreeman,

я потом и спрашиваю — у кого какой опыт :)
avatar
asf-trade, получилось, что у меня опыта не было :)
кста, а с какой платформой работаешь?
avatar
То же об этом задумался — как бы мой робот отреагировал на недавний глюк, посмотрел еще раз код. Робот ведет свой внутренни учет, все пишет в лог, торгует фиксированным количеством контрактов и данные брокера почти не смотрит. Ему это сбой по барабану:) Робот не скальпер — 2-4 сделки в день.
avatar
Радик Мингазов, «и данные брокера почти не смотрит» — вы явно что-то курите! а что является результатом открытия позиции? запулил заявку по рынку значит открылась позиция?
avatar
vfreeman, сервер сразу же отвечает о результате обработки поданной заявки, она либо исполнена, либо не исполнена. Если исполнена — позиция открыта.
avatar
Радик Мингазов, это шутка? заявка может быть ЗАРЕГИСТРИРОВАНА, а потом может быть ИСПОЛНЕНА. а еще может ИЗМЕНИТЬСЯ позиция по инструменты. после исполнения в таблице может ПОЯВИТЬСЯ запись о сделке. это 4 состояния которые НЕОБХОДИМО отследить.
avatar
vfreeman, не нужно в случае позиционных роботов, которые делают 2-3 сделки в день. Проще визуально контролировать.

Если робот делает сотни сделок, то там да. Нужен контроль более существенный.
escoman, у меня нет высокочастотных алгоритмов, но после этого сбоя я серьезно задумался :) а на счет визуального контроля — по закону Мерфи — тебя не будет возле терминала, когда нужно было быть :)
avatar
vfreeman, и что предлагаешь? в качестве альтернативы.
escoman, задача нетривиальная — для начала надо определить критерии, по которым можно вычислить что биржа левак гонит и как минимум не торговать. я пока решения не нашел.
avatar
vfreeman, :) вот. именно в этом и дело!

А порой биржа не гонит, а просто тормозит. Открытые позиции в Квике обновляются с запаздыванием…

Вариантов масса. Иногда ещё и брокерское ПО глючит. Взять хотя бы тот же SmartCOM.
escoman, повторю пост свой
«заявка может быть ЗАРЕГИСТРИРОВАНА, а потом может быть ИСПОЛНЕНА. а еще может ИЗМЕНИТЬСЯ позиция по инструменты. после исполнения в таблице может ПОЯВИТЬСЯ запись о сделке. это 4 состояния которые НЕОБХОДИМО отследить.»
если в алгоритме нет хотя бы этих 4-х состояний — это значит, что автор кода не попадал в неприятные ситуации :)
avatar
vfreeman, причем это про торговлю ОДНИМ контрактом. а еще бывают ЧАСТИЧНО исполненные заявки :)))))
avatar
vfreeman, ну в большинстве позиционных роботов заявки отправляются по рынку. :)

Кстати, тут ещё нужно не забывать про планки. :) Я думаю, в большинстве роботов частных трейдеров даже эта проблема не предусмотрена. :)
vfreeman, кстати, помню такие баги были в Финамовском Квике.

Пришла цена вверх на планку. Квик выше планки не принимает заявки. Через некоторое время у других брокеров планку расширили, и уже цена пошла дальше, а в Финаме так и осталась планка висеть. :)) И висела ещё несколько минут. :))
vfreeman, ну как вариант можно сделать, как у меня.

У нас в программе SAT один робот может запускать других роботов. Когда возникает сигнал, то робот-торговая-стратегия запускает робота-открывальщика-позиции. Робот-открывальщик создаёт заявку и отслеживает её исполнение на всех этапах. Потом возвращает результат роботу-торговцу — успешно или нет открылась позиция. У меня так сделан робот-открывальщик позиции лучшей ценой в стакане.
позицию свою считает сам: анализирует какие сделки выставил, какие исполнились и т.п.
avatar
trade-research, опять же — а что является результатом открытия позиции?
avatar
vfreeman, ответ процедуры SendAsync Плазы о том, что заявка исполнена полностью или частично.
avatar
Проблема в том, что на одном счёте могут быть запущены сразу два-три робота для выравнивания общего эквити.
Поэтому тут уже не проконтроллируешь простым сравнением внутренней переменной и данных по позициям от брокера…
escoman, тут только контроллировать исполнение сделок. Изменение состояния заявки на «Исполнена».

Сравнивать кол-во в роботе с кол-вом у брокера нельзя. Т.к. данные приходящие от брокера могут существенно запаздывать. Особенно в случае с Квиком.
Никак — стоит количество штук, акций, контрактов. В штуках.
И всё.

У меня иная проблема: умная голова и руки :))) ДВА РАЗА уже робот (на 1-2-3) фьючах делал 100% прибыль в тестовом режиме. И тут я умный такой влезал и возвращал все на место. Думал сделаю получше, робот тупой, ща выйдет, прибыль упустит… И делал. Два раза уже. со 100% прибыли до стартовой суммы возвращал :)))!
Бля!!! не пускайте меня ничего делать руками! дайте замок металлический с ключом!
avatar

теги блога asf-trade

....все тэги



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