← Voltar

Правило Order.NewTades() и обновление Order.Balance

Столкнулся с такой проблемой...

При появлении события новой сделки по заявке, нужно достать пройденный объем по данной заявке.

this .When(MicexOrder.NewTrades()) .Do(trades => Volume(MicexOrder));

private void Volume(Order IspolnennaySdelka) { IspolnenVol = IspolnennaySdelka.Volume - IspolnennaySdelka.Balance; //IspolnenVolKotir = IspolnennaySdelka.GetMatchedVolume(); }

Но Balance не всегда успевает обновиться и на выходе получаю пройденный объем = 0. Т.е. правило уже срабатывает и заявка полностью исполняется, но в методе Volume() данная заявка еще Aсtivе и Balance = Volume.

Este tópico foi útil?

Compartilhar tópico

Comentários (6)

Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário

Alexander
Alexander

Стандартная ситуация - таблицы из квика обновляются в разных потоках. И порядок их обновления никак не регламентируется.

Serg
Serg

Alexander Mukhanchikov: Стандартная ситуация - таблицы из квика обновляются в разных потоках. И порядок их обновления никак не регламентируется.

Александр, а на какую информацию, в своих разработках, вы стараетесь делать акцент(на что реагируют ваши роботы) изменение заявки или появление сделки?

Alexander
Alexander

Serg:

Alexander Mukhanchikov: Стандартная ситуация - таблицы из квика обновляются в разных потоках. И порядок их обновления никак не регламентируется.

Александр, а на какую информацию, в своих разработках, вы стараетесь делать акцент(на что реагируют ваши роботы) изменение заявки или появление сделки?

Изменение позиции

profts
profts Autor

Появилась еще одна проблема. MicexOrder постоянно меняется и к каждой заявке добавляется правило :

this .When(MicexOrder.NewTrades()) .Do(trades => Volume(MicexOrder));

Как в метод Volume передать именно ту заявку, по которой произошло событие?

.When(MicexOrder.NewTrades()) .Do<Order>(???)

vader
vader

Мне кажется вот так this .When(MicexOrder.NewTrades()) .Do(Volume);

Только лучше переименуйте метод Volume в другой, чтобы не спутать его со свойством стратегии.

Serg
Serg

а я вот в арбитражных стратегиях оперирую сделками, нагородил свой огород по контролю за позициями))). И меня давно уже грызет чувство что это не самый простой и качественный вар. Альтернативой,как раз, рассматриваю событие изменение позиции по одному из инструментов, в котором будет запускаться дочерняя стратегия типа DeltaHedge корректирующая позицию по второму инструменту. Как считаете такой подход будет более правильным?