← 戻る

Правило 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.

このトピックは参考になりましたか?

トピックを共有

コメント (6)

ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください

Alexander
Alexander

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

Serg
Serg

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

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

Alexander
Alexander

Serg:

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

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

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

profts
profts 著者

Появилась еще одна проблема. 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 корректирующая позицию по второму инструменту. Как считаете такой подход будет более правильным?