Вопрос по SecurityChanged
А кто знает в каких именно случаях возникает SequrityChanged? Я раньше всегда считал что оно возникает по изменению Bid Ask и по совершению сделки. Добавил обработку SequrityChanged в SampleSmart
Code
// подписываемся на событие разрыва соединения
Trader.ConnectionError += error => this.GuiAsync(() =>
{
// заблокируем кнопку Экспорт (так как соединение было потеряно)
ChangeConnectStatus(false);
MessageBox.Show(this, error.ToString(), "Ошибка соединения");
});
Trader.ProcessDataError += error => this.GuiAsync(() => MessageBox.Show(this, error.ToString(), "Ошибка обработки данных"));
Trader.NewSecurities += securities => this.GuiAsync(() => _securitiesWindow.AddSecurities(securities));
Trader.NewMyTrades += trades => this.GuiAsync(() =>
_myTradesWindow.Trades.AddRange(trades));
Trader.NewTrades += trades => this.GuiAsync(() =>
{
foreach (var trade in trades)
{
LastTradeID=trade.Id;
Console.WriteLine(" Trade id " + trade.Id+" Trade price "+trade.Price);
}
_tradesWindow.Trades.AddRange(trades);
}
);
Trader.SecuritiesChanged += Secs =>
{
foreach (Security Sec in Secs)
{
if (Sec.LastTrade != null)
Console.WriteLine("sec " + Sec.Code + " sec trade id " + Sec.LastTrade.Id + "sec trade price " + Sec.LastTrade.Price + " last trade id " + LastTradeID);
}
};
получил любопытный результат.
Code
sec RIU2 sec trade id 0sec trade price 140410 last trade id 599469678
sec RIU2 sec trade id 0sec trade price 140410 last trade id 599469678
sec RIU2 sec trade id 0sec trade price 140410 last trade id 599469678
sec RIU2 sec trade id 0sec trade price 140410 last trade id 599469678
Trade id 599469685 Trade price 140415
Trade id 599469686 Trade price 140415
Trade id 599469687 Trade price 140420
Trade id 599469688 Trade price 140420
Trade id 599469689 Trade price 140420
Trade id 599469690 Trade price 140420
Trade id 599469691 Trade price 140425
Trade id 599469692 Trade price 140425
Trade id 599469693 Trade price 140425
Trade id 599469694 Trade price 140430
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
sec RIU2 sec trade id 0sec trade price 140430 last trade id 599469694
Trade id 599469696 Trade price 140425
sec RIU2 sec trade id 0sec trade price 140425 last trade id 599469696
похоже SequrityChanged приходит не после каждой сделки. Причем не приходит даже после сделок с другой ценой.
И еще вопрос почему в обработчик Trader.SequrityChanged LastTrade всегда приходит с Id==0?