skuvv
|
Дата: 22.02.2011
Опять про Replace. Попробывал пару вариантов и безуспешно. Верхний вариант с отслеживанием нового ордера (по TransactionId), нижние отслеживание старого ордера Код //Ecng.Trading.BusinessEntities.Order _NewOrder = _trader.ReRegisterOrder(Order, newPrice, (int)newQty); 21.02.2011 22:16:59 [Sending New Order] GZH1 Price: 19745 Qty: 1 21.02.2011 22:17:00 [parse_order] 79897973 21.02.2011 22:17:00 [_trader_OrdersChanged] order status Active 21.02.2011 22:17:00 [_trader_OrdersChanged] Thread: EventDispatcher thread #заявки 21.02.2011 22:17:00 [_trader_OrdersChanged] order Accepted Done 21.02.2011 22:17:00 [parse_order] 79897973 21.02.2011 22:17:00 [_trader_OrdersChanged] order status Active 21.02.2011 22:17:00 [_trader_OrdersChanged] Thread: EventDispatcher thread #заявки 21.02.2011 22:17:00 [parse_order] 79897973 21.02.2011 22:17:00 [_trader_OrdersChanged] order status Active 21.02.2011 22:17:31 [Replace] 19715 x 1 21.02.2011 22:17:31 [parse_order] 79897974 21.02.2011 22:17:31 [_trader_OrdersChanged] order status NULL 21.02.2011 22:17:31 [_trader_OrdersChanged] Thread: null 21.02.2011 22:17:32 [_trader_OrdersChanged] Thread: EventDispatcher thread #заявки 21.02.2011 22:17:32 [_trader_OrdersChanged] Thread: EventDispatcher thread #заявки 21.02.2011 22:17:32 [parse_order] 79897974 21.02.2011 22:17:32 [_trader_OrdersChanged] order status NULL ->в квике новая заявка без transaction id
//_trader.ReRegisterOrder(Order, newPrice, (int)newQty); 21.02.2011 23:29:53 [Sending New Order] GZH1 Price: 19799 Qty: 1 21.02.2011 23:29:53 [parse_order] 84292206 21.02.2011 23:29:54 [_trader_OrdersChanged] order status Active 21.02.2011 23:29:54 [_trader_OrdersChanged] order Accepted Done 21.02.2011 23:29:55 [_trader_OrdersChanged] Thread: EventDispatcher thread #заявки 21.02.2011 23:29:55 [parse_order] 84292206 21.02.2011 23:29:55 [_trader_OrdersChanged] order status Active 21.02.2011 23:29:55 [_trader_OrdersChanged] Thread: EventDispatcher thread #заявки 21.02.2011 23:29:55 [parse_order] 84292206 21.02.2011 23:29:55 [_trader_OrdersChanged] order status Active 21.02.2011 23:29:59 [Replace] 19759 x 1 21.02.2011 23:30:00 [_trader_OrdersChanged] Thread: null 21.02.2011 23:30:00 [parse_order] 84292206 21.02.2011 23:30:00 [_trader_OrdersChanged] order status Done 21.02.2011 23:30:00 [_trader_OrdersChanged] order Replaced Done 21.02.2011 23:30:01 [_trader_OrdersChanged] Thread: EventDispatcher thread #заявки 21.02.2011 23:30:01 [parse_order] 84292206 21.02.2011 23:30:01 [_trader_OrdersChanged] order status Done 21.02.2011 23:30:01 [_trader_OrdersChanged] order Replaced Done 21.02.2011 23:30:01 [_trader_OrdersChanged] Thread: EventDispatcher thread #заявки 21.02.2011 23:32:15 [Replace] 19752 x 1 ->нет events//в квике новая заявка без transaction id
_trader.ReRegisterOrder(OrderList.ElementAt(index).Key, _order); 21.02.2011 23:48:30 [Sending New Order] GZH1 Price: 19809 Qty: 1 21.02.2011 23:48:31 [parse_order] 85085851 21.02.2011 23:48:31 [_trader_OrdersChanged] order status Active 21.02.2011 23:48:31 [_trader_OrdersChanged] order Accepted Done 21.02.2011 23:48:31 [_trader_OrdersChanged] Thread: EventDispatcher thread #заявки 21.02.2011 23:48:32 [parse_order] 85085851 21.02.2011 23:48:32 [_trader_OrdersChanged] order status Active 21.02.2011 23:48:32 [_trader_OrdersChanged] Thread: EventDispatcher thread #заявки 21.02.2011 23:48:32 [parse_order] 85085851 21.02.2011 23:48:32 [_trader_OrdersChanged] order status Active 21.02.2011 23:48:36 [Replace] 19803 x 1 ->нет events//в квике нет новой заявки
|
|
Спасибо:
|
|
|
|
|
a.dobryn
|
Дата: 24.02.2011
Mikhail Sukhov D_Alex а что произойдет, если пробовать снять заявку, у которой статус Done? кроме сообщения о невозможности сделать это. Как можно отловить подобное событие? ITrader.OrdersFailed глупый вопрос, а после этого события и выдачи messagebox, функция, в которой находилась строка CancelOrder продолжает работать дальше? написано так: Код MainWindow.Instance.CancelOrder(MainWindow.Instance._ordersWindow.Orders[orderNum]); if (MainWindow.Instance._ordersWindow.Orders[orderNum].IsCanceled() == false) { ..... //в итоге в том случае, если заявка уже исполнена и возникла ошибка, сюда не приходит }
|
|
Спасибо:
|
|
|
|
|
a.dobryn
|
Дата: 24.02.2011
и еще вопрос - можно как-то узнать, что заявка была именно снята, а не исполнена, и наоборот?
upd: ой, я подобный вопрос уже спрашивала. Надо использовать метод TraderHelper..::.IsCanceled
|
|
Спасибо:
|
|
|
|
|
skuvv
|
Дата: 24.02.2011
D_Alex и еще вопрос - можно как-то узнать, что заявка была именно снята, а не исполнена, и наоборот?
upd: ой, я подобный вопрос уже спрашивала. Надо использовать метод TraderHelper..::.IsCanceled Метод подходит если не планируется делать Replace заявки, после Replace IsCanceled=true
|
|
Спасибо:
|
|
|
|
|
a.dobryn
|
Дата: 24.02.2011
skuvv D_Alex и еще вопрос - можно как-то узнать, что заявка была именно снята, а не исполнена, и наоборот?
upd: ой, я подобный вопрос уже спрашивала. Надо использовать метод TraderHelper..::.IsCanceled Метод подходит если не планируется делать Replace заявки, после Replace IsCanceled=true не планирую =) спасибо за информацию =)
|
|
Спасибо:
|
|
|
|
|
a.dobryn
|
Дата: 24.02.2011
D_Alex Mikhail Sukhov D_Alex а что произойдет, если пробовать снять заявку, у которой статус Done? кроме сообщения о невозможности сделать это. Как можно отловить подобное событие? ITrader.OrdersFailed глупый вопрос, а после этого события и выдачи messagebox, функция, в которой находилась строка CancelOrder продолжает работать дальше? написано так: Код MainWindow.Instance.CancelOrder(MainWindow.Instance._ordersWindow.Orders[orderNum]); if (MainWindow.Instance._ordersWindow.Orders[orderNum].IsCanceled() == false) { ..... //в итоге в том случае, если заявка уже исполнена и возникла ошибка, сюда не приходит } проблема решена, надо использовать try{} catch(), так как "невозможно снять заявку" это exception
|
|
Спасибо:
|
|
|
|
|
esper
|
Дата: 25.02.2011
Mikhail Sukhov Да, это недоделка. Было желание вычислять текущее значение денег на ФОРТС, но не потом сдался. Надо это куда-то деть. Предлагаю в Portfolio.Leverage. esper Акт. покупка - ? Акт. продажа - ?
Их сумма записывается в Position.BlockedValue С этим можно сказать разобрались. А вот еще такой вопрос, есть портфель по деривативам, подписываюсь на новую запись в таблице и на изменение данных, событие изменения данных возникает до события новой записи, это нормальная ситуация?
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 25.02.2011
esper А вот еще такой вопрос, есть портфель по деривативам, подписываюсь на новую запись в таблице и на изменение данных, событие изменения данных возникает до события новой записи, это нормальная ситуация?
Не могу воспроизвести.
|
|
Спасибо:
|
|
|
|
|
esper
|
Дата: 26.02.2011
Mikhail Sukhov esper А вот еще такой вопрос, есть портфель по деривативам, подписываюсь на новую запись в таблице и на изменение данных, событие изменения данных возникает до события новой записи, это нормальная ситуация?
Не могу воспроизвести. У меня тоже не всегда удается повторить эту ситуацию, если удасться найти что приводит к ней, то отпишусь здесь.
|
|
Спасибо:
|
|
|
|
|
freelancer
|
Дата: 02.03.2011
Здравствуйте. Все цены инструмента (лучшая покупка, продажа и т.д.) у меня равны нулю почему-то (событие SecuritiesChanged). И даже в примере "Sample". Почему так ? Версия - последняя
|
|
Спасибо:
|
|
|
|