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


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

Код

    //изменение заявок
    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 такого не было

Теги:


Спасибо:


< 1 2 
Alexander

Фотография
Дата: 18.04.2012
Ответить


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

FiNick

Фотография
Дата: 14.05.2012
Ответить


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

Alexander

Фотография
Дата: 14.05.2012
Ответить


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

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

Alexander

Фотография
Дата: 14.05.2012
Ответить


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

FiNick

Фотография
Дата: 14.05.2012
Ответить


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


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

Alexander

Фотография
Дата: 14.05.2012
Ответить


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


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



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

FiNick

Фотография
Дата: 14.05.2012
Ответить


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

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy