trader.NewTrades не показывает сделки

trader.NewTrades не показывает сделки
Atom
7/14/2011
raf


На момент запуска программы в терминале уже присутствовали следующие заявки и сделки:

  1. Список заявок в терминале SmartX Список сделок в терминале SmartX

  2. Список сделок в терминале SmartX Список сделок в терминале SmartX

Фрагмент исполняемого кода

#region debug_events
_trader.NewOrders += orders => 
{ 
     orders.ForEach(order => Log.Add("_debug1 " + order.Id.ToString()));
};
_trader.NewTrades += trades =>
{
     trades.ForEach(trade => Log.Add("_debug2 " + trade.Id.ToString()));
};
_trader.NewMyTrades += mytrades =>
{
     mytrades.ForEach(mytrade => Log.Add("_debug3 " + mytrade.Trade.Id.ToString()));
};
#endregion debug_events

Результат работы программы Список сделок в терминале SmartX

Почему после запуска программы из сделок отобразилась только одна - по событию NewMyTrades (почему три остальные не пришил?) И почему по событию NewTrades совсем ничего не пришло?


Tags:


Thanks:


Alexander

Avatar
Date: 7/14/2011
Reply


Каким образом стартуете экспорт?

Thanks:

raf

Avatar
Date: 7/14/2011
Reply


public MainWindow()
{
    _trader = new SmartTrader(...);
    _trader.Connected += OnConnected;

    +#region debug_events
}
 
public void OnConnected()
{
    _trader.StartExport();
    Log.Add("Export data '_trader.StartExport()' started ");
}

...Событие NewMyTrades выводит только самую последнюю по времени сделку

Thanks:

Alexander

Avatar
Date: 7/14/2011
Reply


А экспорт стартуется - в лог пишется что старт произошёл? Просто вызова Connect тут нет в это коде.

Что выводит ProcessDataError?

Thanks:

raf

Avatar
Date: 7/15/2011
Reply


Коннект по кнопке MenuItemConnect_Click(){_trader.Connect();}

ProcessDataError после коннекта сразу выдает

System.ComponentModel.Win32Exception: Отказано в доступе в System.Diagnostics.ProcessManager.OpenProcess(Int32 processId, Int32 access, Boolean throwIfExited) в System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited) в System.Diagnostics.Process.Kill() в StockSharp.Smart.SmartTrader.KillSmartComProcess() в StockSharp.Smart.SmartTrader.OnConnect()

Далее прием данных ошибками не сопровождается.

PS Сегодня по-началу, когда было две сделки, NewMyTrades вывел обе. Теперь их уже 4 - выводит опять только последнюю сделку.

Thanks:

Alexander

Avatar
Date: 7/15/2011
Reply


Так правильно - у вас он не может убть процесс SmartCom2, который уже запущен. Из-за этого и дальнейшие ошибки. Вначале надо с ProcessDataError разобраться - там ошибок быть не должно.

Права есть? Работаете под администратором? А если убить его через панельзадач? Другие программы, работающие со смарткомом запущены?

Thanks:

raf

Avatar
Date: 7/15/2011
Reply


Работаю под Администратором. После перезагрузки компьютера первый запуск программы ошибок не дал, но результат работы NewMyTrades не поменялся: по прежнему выдает только последнюю сделку. Следовательно проблема с ошибкой "System.ComponentModel.Win32Exception: Отказано в доступе" не связана.

Thanks:

raf

Avatar
Date: 7/15/2011
Reply


есть подозрения, что сделки не хранятся на сервере, а только в самом торговом терминале. это я проверю...

что касается "System.ComponentModel.Win32Exception: Отказано в доступе"... Как я пнимаю, это ошибка не имеет последствий? Чтобы все-таки ее побороть что необходимо сделать? похоже

~MainWindow()
{
   ApplicationState._trader.StopExport();
   ApplicationState._trader.Disconnect();
   ApplicationState._trader.Dispose();
}

недостаточено. Другие программы, работающие со смарткомом не запущены.

Thanks:

Alexander

Avatar
Date: 7/15/2011
Reply


А зачем деструктор? Делайте всё по Closing.

Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy