4.1 OrdersChanged срабатывает 2 раза

4.1 OrdersChanged срабатывает 2 раза
Atom
4/17/2012
Макс


4.1 OrdersChanged срабатывает 2 раза

Code

    //изменение заявок
    Trader.OrdersChanged += orders => this.GuiAsync(() =>
    {
    
        log("Кол-во изменивших статус заявок: " + orders.Count());
        foreach (Order order in orders)
        {
            log(" Заявка:" + order.Id + "  " + order.Security.Code + " Статус:" + order.State + "" + order.Direction + " цена:" + order.Price + " Остаток=" + order.Balance);


        }


    });




12:16:36.958 Кол-во изменивших статус заявок: 1
12:16:36.958 Заявка:2764620701 GZM2 Статус:DoneSell цена:16728 Остаток=1
12:16:36.963 Кол-во изменивших статус заявок: 1
12:16:36.963 Заявка:2764620701 GZM2 Статус:DoneSell цена:16728 Остаток=1
12:16:36.968 Кол-во изменивших статус заявок: 1


В 4.0.23 такого не было

Tags:


Thanks:


< 1 2 
Alexander

Avatar
Date: 4/18/2012
Reply


Сделал небольшой фикс, смотрите после апдейта рефов на codeplex
Thanks:

FiNick

Avatar
Date: 5/14/2012
Reply


Еще раз подниму вопрос, т.к. не все тут ясно.
Допустим приходит некий сигнал на заход в позицию. Я выставляю заявку на покупку 20-ти контрактов. Через 30мс сигнал пропадает и я должен отменить/закрыть позицию. Я ставлю заявку на отмену.
Через 30мс приходит событие OrderChanged, в котором говорится что моя заявка отменена, и мой робот соответственно забывает про эту заявку и про то, что вообще какую-то позицию собирался набрать.
НО! Через еще 20мс опять приходит событие OrderChanged, в котором говорится что моя заявка не просто отменена, а по ней еще успел пройти обьем 10 контрактов. Мой робот на это не реагирует, т.к. уже забыл про отмененную заявку.
Вопрос! Вроде как после первого события заявка уже Done, как мне понять, что по ней еще что-то придти может?
Thanks:

Alexander

Avatar
Date: 5/14/2012
Reply


После снятия 1 заявки биржа присылает ответ сколько лотов осталось (order.Balance).
Что мы и проставляем. Поэтому можете посмотреть в событии OrderChanged на order.Balance

Да, получается что потом тоже может придти OrderChanged, даже после Done, но изменений в заявке кроме LastChangeTime не будет - Balance останется прежним. Какие предложения чтоб этого не было?
Thanks:

Alexander

Avatar
Date: 5/14/2012
Reply


Как вариант - если биржа присылает ответ по транзакции снятия что Balance > 1 и Balance != Volume - не посылать событие изменения заявки.
Thanks:

FiNick

Avatar
Date: 5/14/2012
Reply


Alexander Mukhanchikov
После снятия 1 заявки биржа присылает ответ сколько лотов осталось (order.Balance).
Что мы и проставляем. Поэтому можете посмотреть в событии OrderChanged на order.Balance


Очень странно. Мне сначало пришло что Balance == 20, а потом что Balance == 10. В обоих случаях IsCanceled == true.
Thanks:

Alexander

Avatar
Date: 5/14/2012
Reply


FiNick
Alexander Mukhanchikov
После снятия 1 заявки биржа присылает ответ сколько лотов осталось (order.Balance).
Что мы и проставляем. Поэтому можете посмотреть в событии OrderChanged на order.Balance


Очень странно. Мне сначало пришло что Balance == 20, а потом что Balance == 10. В обоих случаях IsCanceled == true.



Версия PlazaTrader насколько старая? Должна быть хотя бы майская.
Thanks:

FiNick

Avatar
Date: 5/14/2012
Reply


Не майская, попробую новую поставить. Просто лень было тестить, как в новой версии перерегистрация реализована, потому не обновлял.
Thanks:
< 1 2 

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy