Блог им. Sergey_gt

Робот под Quik

Робот под Quik

Задача, которая была поставлена показалась мне на первый взгляд достаточно тривиальной. Нужно было выставить заявки и по их исполнению пересчитать параметры и выставить новые. Все вроде просто. Но есть один нюанс, как в старом анекдоте. А как выяснилось позже нюансов очень много.Начну с того, что в процедуре getOrderByNumber  order_id нифига не order_id, а order_num   С нее, то все и началось :-)И так если задача стоит выставить одну заявку, то какие могут быть проблемы, допустим для пересекающихся средних или типа того, но если у нас массив заявок и исполнение каждой влечет за собой пересчет всего алгоритма. Если сравнивать Qpile и Lua то, помимо всего прочего здесь есть функции обратного вызова, которые сулят много всяких вкусностей: таких как событийное исполнение наших процедур. Но в тот же момент могут создать своеобразную многопоточность.А здесь по подробней.Есть OnOrder,OnTransReply, OnTrade именно в таком порядке их срабатывание мне кажется логичным(в документации не указана их последовательность). Честно говоря, на это я убил целую неделю. Эти функции выполняются в другом порядке. Они мне были нужны для того, что бы ухватиться за отправленную заявку. У каждой заявки отправленной через Lua или Qpile есть id. Но нам интересен order_num. Это тот уникальный номер, который в системе присваивается каждой транзакции. По нему очень удобно следить за тем, что с ней происходит. Моя задача была найти в потоке транзакций мою и отследить ее состояние. В идеале мне хотелось получить ее номер на первой стадии, а в момент исполнения произвести ряд манипуляций, но есть нюанс :-) Во первых функции исполняются в последовательности OnTransReply, OnTrade, OnOrder.Функция OnTransReply(ответ терминала на транзакцию пользователя) может вернуть nil, а может вернуть нашу заветную цифру, как карта ляжет так в документации и написано :-). То есть рассчитывать не можем.OnTrade (получение сделки) вроде все сделка совершилась, а нихрена. Эта функция не отдает order_id. Получается, что только когда все произошло на функции OnOrder(получение новой заявки) у нас есть доступ к order_num и order_id для отслеживания транзакции.Еще конечно очень жаль, что при тестировании стратегий в Quik на демо счете вполне нормальным является отправка транзакции в течении 3мин-3часов. И вываливание различных ошибок:Communication gate is downНевозможно выполнение транзакций по классу «Фьючерсы FORTS». Шлюз с торговой системой недоступен.Error del.Trans:  Указанная транзакция по указанному классу не найдена: «SPBFUT».Net error: [10053] Software caused connection abortИ т.д. и т.п.В конечном итоге робот был передан заказчику и я рассчитываю что все ок.
Хотелось написать больше про написания робота, но сейчас уже ломы.
463 | ★6
5 комментариев
Я тоже буду у Вас заказывать роботов..!!!!++++++++++++++
avatar
MasterDm, спасибо. Пишу также индикаторы. Обращайтесь.
avatar
Жалко заказчика… :)
avatar
Hedgehog, почему? Кстати, заметил что вы торгуете фигуры как и я. Я потерял свой торговый привод после поломки SSD и буду его в ближайшее время восстанавливать. И выставлю на продажу. Думаю он вам понравится.
avatar

Читайте на SMART-LAB:
Фото
Комментарий аналитиков БКС. Биткойн: активная фаза снижения в рамках фазы «дораспределения»
По состоянию на начало февраля биткойн скорректировался к уровню $60 тыс., предварительно реализовав технический отскок, о котором мы писали...
Фото
Евро и фунт разошлись: ЕС получает “позитив данных”, UK - “налог неопределенности”
EUR/USD начал неделю резким движением вверх бросая вызов 1.19. Доллар теряет опору из-за переоценки будущих ставок ФРС, евро в этот момент...
Фото
«Селигдару» присвоен ESG-рейтинг A от рейтингового агентства RAEX
RAEX оценило на высоком уровне практики устойчивого развития Холдинга, присвоив ему по результатам проведенного анализа ESG-рейтинг класса...
Фото
РУСАГРО: выкупить акции и спасти Мошковича - могут ли акции вырасти на 100% от текущих ценах, подробный разбор 
Начинаем покрытие компании РУСАГРО этим постом, надеюсь удастся под микроскопом разглядеть инвестиционную привлекательность или хотя бы сделать...

теги блога Сергей o-s-a.net

....все тэги



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