a.dobryn
|
Date: 3/28/2011
а как корректно обрабатывать новые сделки? в обработчике своих сделок было Code foreach (var myTrade in myTrades) ...
и в итоге обрабатывалась одна сделка, все в порядке =) а если таким же образом обрабатывать все сделки, их в IEnumerable<Trade> trades целая куча. Как нужно делать, брать просто последнюю? Или, наоборот, первую? Какая самая "свежая" из них? =) upd: хм, и первая и последняя давностью 2,5 часа [confused]
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 3/28/2011
D_Alex upd: хм, и первая и последняя давностью 2,5 часа [confused] Потому что при старте экспорта все сделки передаются всем скопом.
|
|
Thanks:
|
|
|
|
|
a.dobryn
|
Date: 3/28/2011
Mikhail Sukhov D_Alex upd: хм, и первая и последняя давностью 2,5 часа [confused] Потому что при старте экспорта все сделки передаются всем скопом. то есть надо дождаться, пока свежие будут? и если да, то как?
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 3/28/2011
D_Alex Mikhail Sukhov D_Alex upd: хм, и первая и последняя давностью 2,5 часа [confused] Потому что при старте экспорта все сделки передаются всем скопом. то есть надо дождаться, пока свежие будут? и если да, то как? Запоминаем время начала экспорта. Ждем когда появятся сделки с таким временем. Только понятие свежее тут сильно сказано. Все сделки - это устаревшие данные. Другое дело - насколько. И мне кажется, что это лучше делать через логику работы с программой, чем закладывать в код.
|
|
|
|
|
a.dobryn
|
Date: 3/28/2011
Mikhail Sukhov D_Alex Mikhail Sukhov D_Alex upd: хм, и первая и последняя давностью 2,5 часа [confused] Потому что при старте экспорта все сделки передаются всем скопом. то есть надо дождаться, пока свежие будут? и если да, то как? Запоминаем время начала экспорта. Ждем когда появятся сделки с таким временем. Только понятие свежее тут сильно сказано. Все сделки - это устаревшие данные. Другое дело - насколько. И мне кажется, что это лучше делать через логику работы с программой, чем закладывать в код. свежие - те, которые после старта программы появились =) точно, что-то не подумала я по времени смотреть
|
|
Thanks:
|
|
|
|
|
IlyaILH
|
Date: 3/28/2011
Михаил, подскажите, что я делаю не так.
Я реализовал следующее:
Подписался на событие NewSecurities
Trader.ProcessDataError - идет без ошибок.
Trader.NewSecurities += securities => { foreach (Security tool in securities) { MessageBox.Show(tool.Id +" "+ tool.State.ToString()); } };
На этот код, мне выводится не понятно что, но предположительно данные из таблицы Все сделки.
Помогите разобраться с таблицей Инструменты.
Спасибо.
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 3/28/2011
IlyaILH Trader.NewSecurities += securities => { foreach (Security tool in securities) { MessageBox.Show(tool.Id +" "+ tool.State.ToString()); } };
На этот код, мне выводится не понятно что, но предположительно данные из таблицы Все сделки.
Выделенное можете как-то подробнее описать? Код выводит идентификатор инструмента и его состояние. Причем здесь сделки?
|
|
Thanks:
|
|
|
|
|
MCTuTeJ|19951995
|
Date: 3/29/2011
Михаил,а Code ReRegisterOrder(order,()=>newPrice,()=>newVolume,true) это тоже самое, что и Code Trader.CancelOrder(order); Order newOrder = new Order(); newOrder.Portfolio=order.Portfolio; newOrder.Security = order.Security; newOrder.Price = newPrice; newOrder.Direction= order.Direction; newOrder.Volume= newVolume; Trader.RegisterOrder;
?
|
|
Thanks:
|
|
|
|
|
MCTuTeJ|19951995
|
Date: 3/29/2011
Есть такая проблема: В стратегии мониторятся различные параметры и исходя из них переставляется заявка: Code // если заявка ещё активна (не отменена), то перерегистрировать заявку if (!(order.State==OrderStates.Done)) { newOrder= this.ReRegisterOrder(order,()=>TheorOptPrice,()=>newOrder.Volume,true); orderIdList.Add(newOrder.Id); }
Проблема в том, что иногда заявка исполняется после проверки на исполнение, в результате чего происходит ошибка - программа пытается передвинуть исполненную заявку. Не подскажете как это лечится ?
|
|
Thanks:
|
|
|
|
|
a.dobryn
|
Date: 3/29/2011
Code this.Trader.NewMyTrades += trades => this.GuiAsync(() => _myTradesWindow.Trades.AddRange(trades)); this.Trader.NewTrades += trades => this.GuiAsync(() => _tradesWindow.Trades.AddRange(trades));
в таком случае обработка этих событий идет как-то в 2 потока, или по очереди?
|
|
Thanks:
|
|
|
|