Алексей (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
OnTransReply возвращает order_num = nil
 
Например
STOP_ORDER_KIND=ACTIVATED_BY_ORDER_TAKE_PROFIT_AND_STOP_LIMI­T_ORDER
OnTransReply возвращает order_num = nil
 
Daniil Pozdnyakov, спасибо, буду изучать. Правда там не все типы, но насколько я понимаю все, которых нет в файле, это комбинация основных?
OnTransReply возвращает order_num = nil
 
С проскальзыванием понятно, вдруг не мне не хватило, будем продавать/покупать в рамках проскальзывания.
OnTransReply возвращает order_num = nil
 
Вот только сколько ни смотрел, сколько не читал, все как один говорят/пишут вот тут надо эту цену поставить, тут цена должна быть чуть меньше/больше, а тут вот такая. Т.е. никакого понимания не дают.
OnTransReply возвращает order_num = nil
 
Не стал плодить темы, вобщем с order_num разобрался, спасибо. Пришел к выводу что надо брать из таблицы заявок еще и статус заявки, так как бы надежнее :) Сейчас разбираюсь с простым и по исполнению тэйк профитом и стоп лоссом. Вообще в голове сумбур полный, ибо они работают как на покупку так и на продажу. Хочу для начала разобраться с простым. Читаю документацию и вижу это
Код
Тэйк-профит и стоп-лимит Лукойл, покупка 1 лота, активация тэйк-профита при достижении цены 2000 с отступом в 5% и защитным спрэдом в 3%, стоп-цена 2222, цена лимитированной заявки 2255, время действия с 10:00:01 по 19:45:45
ACTION=NEW_STOP_ORDER; 
TRANS_ID=10055; 
CLASSCODE= TQBR; 
SECCODE=LKOH; 
ACCOUNT=L01-00000F00; 
CLIENT_CODE=Q7; 
OPERATION=B; 
QUANTITY=1; 
PRICE=2255; 
STOPPRICE=2000; 
STOP_ORDER_KIND=TAKE_PROFIT_AND_STOP_LIMIT_ORDER; OFFSET=5; 
OFFSET_UNITS=PERCENTS; 
SPREAD=3; 
SPREAD_UNITS=PERCENTS; 
MARKET_TAKE_PROFIT=NO; 
STOPPRICE2=2222; 
IS_ACTIVE_IN_TIME=YES; 
ACTIVE_FROM_TIME=100001; 
ACTIVE_TO_TIME=194545; 
MARKET_STOP_LIMIT=NO
В частности недопонимаю когда ее выставлять? Вижу, что операция продажа. Следовательно чтобы что то выставить на продажу надо сначала купить?
Как я понимаю здесь, при достижении цены 2000 на уже купленной акции активируется тейк профит? Или же я неверно понимаю логику тэйк профит, активируется когда цена достигнет 2000 + 5% и -3% защитного спреда? При этом условии акция будет продана?
Не понятно что такое стоп цена 2222?
Да и цена лимитированной заявки 2255 вообще не вписывается в логику.
OnTransReply возвращает order_num = nil
 
Цитата
Anton написал:
Спасение в том, чтобы не закладывать никакой порядок колбеков и даже факт их появления.
Но ведь колбэки именно под это и заточены.
Цитата
Владимир написал:
оставил только OnTrade
Только этот колбэк не катит, ибо он приходить только после факта сделки. А у меня логика другая, заявка может сниматься еще до факта сделки, но чтобы убить заявку до сделки, нужен order_num, а кроме как из OnOrder или OnTransReply я больше не знаю способов как его получить. Разве что кроме как прямо из таблицы заявок TABLE order NUMBER indx getOrderByNumber(STRING class_code, NUMBER order_id), Но опять же надо знать order_id, а получить его можно только из OnOrder или OnTransReply еще до факта сделки. Правда order_id я не проверял...
OnTransReply возвращает order_num = nil
 
Anton, спасибо за пояснение. В принципе нечто подобное я себе и представлял. Но остается открытым вопрос, что же делать то? Но из вашего пояснения получается, что OnTransReply может вызываться на каждую заявку неоднократно? Если это так, достаточно ли фильтровать те, что пришли с order_num = nil и тупо ждать коллбэк с заполненным этим полем, он обязательно появится?
QApplication, спасибо, обязательно гляну.
OnTransReply возвращает order_num = nil
 
Принципиально у меня тоже самое, насчет price не проверял, но order_num = nil это точно.  
OnTransReply возвращает order_num = nil
 

Здравствуйте. Только начал знакомится со скриптами Lua в Quik. Возникла проблема. Если вкратце, отправляю заявку sendTransaction с необходимыми параметрами. В терминале вижу, что заявка принята и отображается как активная, OnTransReply возвращает status = 3, trans_id ровно тот что и присваивал при отправке заявки. Все прекрасно ровно до тех пор, пока мне не понадобится, например, снять заявку. Начинаются чудеса какие-то. Параметр order_num = nil, но в терминале то в таблице заявок я прекрасно вижу эти номера. Почитав документацию, там некоторые параметры, помеченные звездочкой,

* – параметр может иметь значение nil

НО! Интересует, при каких же условиях они будут возвращаться как nil? Ни слова об этом в документации.
Опять же таки, как поступить если нужен order_num?
1. Обрабатывать OnTransReply только на status?
2. Обрабатывать коллбэк OnOrder? Опять же таки я не нашел в документации ни слова о том при каком условии он вызывается? Только при условии что trans_reply.status = 3 или вообще при любой попытке отправить заявку, даже неудачной? В первом случае получив и обработав OnOrder можно не запариваться с OnTransReply и его статусом по идее, разве что для информации. Во втором случае в коллбэке OnOrder обязательно нужно проверить trans_reply.status. И опять же появляется другой вопрос, в какой последовательности оба этих коллбэка идут??? Если OnOrder может прийти раньше OnTransReply, то получается полнейшая ерунда, order_num в OnTransReply я получить не могу, а OnOrder не могу обработать, т.к. понятия не имею о статусе заявки...

Страницы: 1
Наверх