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

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


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

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


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

Фрагмент исполняемого кода
Code
#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


Code
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 после коннекта сразу выдает

Quote:
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: Отказано в доступе"... Как я пнимаю, это ошибка не имеет последствий? Чтобы все-таки ее побороть что необходимо сделать? похоже

Code
~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