Получить все сделки потока

Получить все сделки потока
Atom
5/15/2012
Макс


Допустим приходит пачка из 10-ти новых сделок и каждая сделка прогоняется через :


 //новые сделки
    Trader.NewTrades += trades => this.GuiAsync(() =>
      {

при прогоне 5-й сделки робот получает сигнал на вход, что не верно, т.к. не извесны результаты остальных 5-ти сделок. В связи с этим 2 вопроса к разработчикам:

  1. Есть ли какой-то признак того, что мы разобрали все полученные на данный момент сделки?

Мне в голову приходит :


if (_ins1.LastTrade.Price == trades.Last().Price && _ins1.LastTrade.Time.ToString("HHmmssfff") == trades.Last().Time.ToString("HHmmssfff"))

  1. Trader.NewTrades += trades => this.GuiAsync(() => Работает асинхронно? Т.е. допустим при прогоне 5-й сделки получили сигнал - начали отправлять заявку, она еще не ушла и тут в другом потоке начинаем разбирать 6-ю сделку и снова получаем сигнал и снова пытаемся отправить заявку?

Tags:


Thanks:


Alexander

Avatar
Date: 5/15/2012
Reply


Макс: Допустим приходит пачка из 10-ти новых сделок и каждая сделка прогоняется через :

//новые сделки Trader.NewTrades += trades => this.GuiAsync(() => {

> 
> при прогоне 5-й сделки робот получает сигнал на вход, что не верно, т.к. не извесны результаты остальных 5-ти сделок.
> В связи с этим 2 вопроса к разработчикам:
> 
> 1. Есть ли какой-то признак того, что мы разобрали все полученные на данный момент сделки?
> 
> Мне в голову приходит :
> ```csharp

if (_ins1.LastTrade.Price == trades.Last().Price && _ins1.LastTrade.Time.ToString("HHmmssfff") == trades.Last().Time.ToString("HHmmssfff"))

  1. Trader.NewTrades += trades => this.GuiAsync(() => Работает асинхронно? Т.е. допустим при прогоне 5-й сделки получили сигнал - начали отправлять заявку, она еще не ушла и тут в другом потоке начинаем разбирать 6-ю сделку и снова получаем сигнал и снова пытаемся отправить заявку?
  1. Вопроса не понял. Поток идёт постоянно. Можно узнать когда он переходит в состояние Online, есть соответствующий метод
  2. Слово "Gui" как бы намекает предназначение... :) Асинхронно или синхронно зависит от флага трейдера. По умолчанию - асинк.
Thanks: Макс

Макс

Avatar
Date: 5/15/2012
Reply


  1. Вопроса не понял. Поток идёт постоянно. Можно узнать когда он переходит в состояние Online, есть соответствующий метод Может я не верно считаю, что сделки приходят не по одной, а пачками? Интересует как понять, что мы сейчас обрабатываем последнюю сделку из посделней пачки?
Thanks:

Alexander

Avatar
Date: 5/15/2012
Reply


  1. Вопроса не понял. Поток идёт постоянно. Можно узнать когда он переходит в состояние Online, есть соответствующий метод Может я не верно считаю, что сделки приходят не по одной, а пачками? Интересует как понять, что мы сейчас обрабатываем последнюю сделку из посделней пачки?

Сделки приходят по событию Inserted Есть событие End у потока. Можно подписаться на него.

Thanks: Макс

Макс

Avatar
Date: 5/22/2012
Reply


А можно как-нибудь узнать с каким номером ревизии пришла сделка? Типа


//новые сделки
   Trader.NewTrades += trades => this.GuiAsync(() =>
                        {
                            log("Обрабатываем сделку=" + trades.Last().Id + " ревизия=" + trades.Last().[b]RevisionId[/b]);

я пробую так:


log("Обрабатываем сделку=" + trades.Last().Id + " ревизия=" + Trader.TableRegistry.TradeFuture.Revision);

но Trader.TableRegistry.TradeFuture.Revision иногда предыдущий показывает

Thanks:

Alexander

Avatar
Date: 5/22/2012
Reply


Макс: А можно как-нибудь узнать с каким номером ревизии пришла сделка? Типа

//новые сделки Trader.NewTrades += trades => this.GuiAsync(() => { log("Обрабатываем сделку=" + trades.Last().Id + " ревизия=" + trades.Last().[b]RevisionId[/b]);

> 
> я пробую так:
> ```csharp

log("Обрабатываем сделку=" + trades.Last().Id + " ревизия=" + Trader.TableRegistry.TradeFuture.Revision);

но Trader.TableRegistry.TradeFuture.Revision иногда предыдущий показывает

Подписаться на Inserted и самому получать сделки \ ревизии из потока напрямую.

Thanks:


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

loading
clippy