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

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


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

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


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

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

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

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


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



Tags:


Thanks:


Alexander

Avatar
Date: 5/15/2012
Reply


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

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


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

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

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

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


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





1) Вопроса не понял. Поток идёт постоянно. Можно узнать когда он переходит в состояние Online, есть соответствующий метод
2) Слово "Gui" как бы намекает предназначение... :) Асинхронно или синхронно зависит от флага трейдера. По умолчанию - асинк.
Thanks: Макс

Макс

Avatar
Date: 5/15/2012
Reply


Quote:

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

Может я не верно считаю, что сделки приходят не по одной, а пачками?
Интересует как понять, что мы сейчас обрабатываем последнюю сделку из посделней пачки?
Thanks:

Alexander

Avatar
Date: 5/15/2012
Reply


Макс
Quote:

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

Может я не верно считаю, что сделки приходят не по одной, а пачками?
Интересует как понять, что мы сейчас обрабатываем последнюю сделку из посделней пачки?


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

Макс

Avatar
Date: 5/22/2012
Reply


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

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


я пробую так:
Code

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

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

Alexander

Avatar
Date: 5/22/2012
Reply


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

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


я пробую так:
Code

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