Получить все сделки потока
Atom Ответить
14.05.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"))


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



Теги:


Спасибо:




5 Ответов
Alexander

Фотография
Дата: 14.05.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"))


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





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

Макс

Фотография
Дата: 14.05.2012
Ответить


Цитата:

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

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

Alexander

Фотография
Дата: 14.05.2012
Ответить


Макс Перейти
Цитата:

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

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


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

Макс

Фотография
Дата: 22.05.2012
Ответить


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

//новые сделки
   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 иногда предыдущий показывает
Автор топика
Спасибо:

Alexander

Фотография
Дата: 22.05.2012
Ответить


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

//новые сделки
   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 иногда предыдущий показывает


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


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

loading
clippy