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:
esper:
Вариац. маржа - ?
Да, это недоделка. Было желание вычислять текущее значение денег на ФОРТС, но не потом сдался. Надо это куда-то деть. Предлагаю в Portfolio.Leverage.
esper:
Акт. покупка - ?
Акт. продажа - ?
Их сумма записывается в Position.BlockedValue
С этим можно сказать разобрались. А вот еще такой вопрос, есть портфель по деривативам, подписываюсь на новую запись в таблице и на изменение данных, событие изменения данных возникает до события новой записи, это нормальная ситуация?
|
|
|
|
Спасибо:
|
|
|
|
|
|
Mikhail Sukhov
|
Дата: 25.02.2011
esper:
А вот еще такой вопрос, есть портфель по деривативам, подписываюсь на новую запись в таблице и на изменение данных, событие изменения данных возникает до события новой записи, это нормальная ситуация?
Не могу воспроизвести.
|
|
|
|
Спасибо:
|
|
|
|
|
|
esper
|
Дата: 26.02.2011
Mikhail Sukhov:
esper:
А вот еще такой вопрос, есть портфель по деривативам, подписываюсь на новую запись в таблице и на изменение данных, событие изменения данных возникает до события новой записи, это нормальная ситуация?
Не могу воспроизвести.
У меня тоже не всегда удается повторить эту ситуацию, если удасться найти что приводит к ней, то отпишусь здесь.
|
|
|
|
Спасибо:
|
|
|
|
|
|
freelancer
|
Дата: 02.03.2011
Здравствуйте. Все цены инструмента (лучшая покупка, продажа и т.д.) у меня равны нулю почему-то (событие SecuritiesChanged). И даже в примере "Sample". Почему так ? Версия - последняя
|
|
|
|
Спасибо:
|
|
|
|
|