Последовательность функций обратного вызова

Страницы: 1
RSS
Последовательность функций обратного вызова
 
Всем добрый день!

При подаче и обработке лимитных заявок давно использую простую последовательность:

sendTransaction(...)( задание TRANS_ID) --> OnTransReply(...)(получение номера заявки order_num )-->OnTrade(...)(обработка исполнения заявки с номером  order_num)
Функцию OnOrder() тут не использую благо до сих пор не было необходимости.

Попытка сделать подобную схему для стоп-заявки типа тэйк-профит поставила в тупик - полученный от  OnTransReply при выставлении стоп-заявки order_num бесполезен т.к. после срабатывания условий тэйка  сервером выставляется новая заявка с новым номером  order_num который нужно как-то отфильтровать и получить.

Прошу у знатоков совета по оформлению последовательности функций обратного вызова для этого типа заявок.
 
Цитата
Kolossi написал:
Всем добрый день!

При подаче и обработке лимитных заявок давно использую простую последовательность:

sendTransaction(...)( задание TRANS_ID) --> OnTransReply(...)(получение номера заявки order_num )-->OnTrade(...)(обработка исполнения заявки с номером  order_num)
Функцию OnOrder() тут не использую благо до сих пор не было необходимости.

Попытка сделать подобную схему для стоп-заявки типа тэйк-профит поставила в тупик - полученный от  OnTransReply при выставлении стоп-заявки order_num бесполезен т.к. после срабатывания условий тэйка  сервером выставляется новая заявка с новым номером  order_num который нужно как-то отфильтровать и получить.

Прошу у знатоков совета по оформлению последовательности функций обратного вызова для этого типа заявок.
1)   OnTransReply   работает если заявку выставляете или снимаете скриптом.  
Если Выставляете или передвигаете руками, то работает лишь OnOrder.
Т е Ваш робот пропускает мимо ушей все что делает человек.
----------------  
2)  Аналогично OnStopOrder.
В получаемой  им информации есть
linkedorder NUMBER Номер заявки в торговой системе, зарегистрированной по наступлению условия  стоп-цены
 
Цитата
срабатывания условий тэйка  сервером выставляется новая заявка с новым  номером  order_num который нужно как-то отфильтровать и получить

При срабатывании стоп ордера происходит отправка транзакции сервером брокера. В случае успеха отправки (может не пройти), в стоп ордере, точнее в таблице stop_orders для записи вашего ордера, будет заполнено поле linked_order. Это и есть тот номер лимитного ордера, который отправлен по факту активации стоп ордера. По нему и ищите, фильтруйте. Правда, как и всегда при клиент-серверном взаимодействии, событие смены статуса стоп ордера и событие заполнения linked_order, и появление его в таблице orders, не мгновенные. И необходимо организовать методы ожидания.
 
То, что искал - фильтрация таблицы из OnStopOrder по полю linked_ordер.
Ну и наверное по битовому флагу исполнения заявки.

Всем ответившим спасибо!
Страницы: 1
Читают тему
Наверх