← Назад

[Bug] не верно расчитывается PositionManager.Position

Не всегда верно расчитывается PositionManager.Position Заметил это когда продовал фьюч РТС. продал два контракта по одному, позиция была равна -1. Проявляется не всегда.

Комментарии (8)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

President
President

обсуждалось тут: http://stocksharp.com/forum/1703/PositionManager-stratieghii/ и тут: http://stocksharp.com/forum/1733/-ISSUE--Strategy-PositionManager-Position-tormozit/ summary: works as designed. хотя designed с первого взгляда не вполне очевидно ;)

Alexander
Alexander

President: обсуждалось тут: http://stocksharp.com/forum/1703/PositionManager-stratieghii/ и тут: http://stocksharp.com/forum/1733/-ISSUE--Strategy-PositionManager-Position-tormozit/ summary: works as designed. хотя designed с первого взгляда не вполне очевидно ;)

Немного ответ не понятен. Почему неверный подсчёт позиции - works as designed?

И кстати, какие ваши мнение - как должна считаться позиция? По каким событиям и каким образом?

President
President

Alexander:

President: обсуждалось тут: http://stocksharp.com/forum/1703/PositionManager-stratieghii/ и тут: http://stocksharp.com/forum/1733/-ISSUE--Strategy-PositionManager-Position-tormozit/ summary: works as designed. хотя designed с первого взгляда не вполне очевидно ;)

Немного ответ не понятен. Почему неверный подсчёт позиции - works as designed?

И кстати, какие ваши мнение - как должна считаться позиция? По каким событиям и каким образом?

лично мне нужно чтобы позиция считалась по трейдам и обновлялась ДО вызова MyNewTrades.

Сейчас она считается или по трейдам или по выставленным ордерам (тоже полезная вещь) в зависимости от параметра и обновляется ПОСЛЕ вызова MyNewTrades. при этом считается ПРАВИЛЬНО. просто позже. :) Однако я уже не уверен что движок всегда должен сам пересчитывать позицию до вызова MyNewTrades: смотрите - мне нужна позиция, комуто нужен PnL, комуто нужен Slippage .. если все их считать ДО MyNewTrades то вызов MyNewTrades будет отдаляться на доли секунды, а эти доли секунд могут быть критичны. Сейчас я думаю что самым оптимальным было бы иметь возможность задавать приоритеты евентов и рассчетов - типа сделать такую схему: 1.RecalcPosition 2.MyNewTrades 3.OnProcess 4.RecalcPnL 5.RecalcSlippage 6.Recalc... 7.NewOrder 8.OrderChanged. ...

чтобы явно указать что мне позиция важнее MyNewTrades а все остальное менее важно.

но пока это не сделано меня устраивает как сейчас - я все позиции считаю сам. правда уже обжегся один раз на невызове NewMyTrades и как следствие неправильной позиции так что теперь еще делаю переодическую синхронизацию с квиком.

Mikhail Sukhov
Mikhail Sukhov

President: лично мне нужно чтобы позиция считалась по трейдам и обновлялась ДО вызова MyNewTrades.

Такое невозможно в принципе. Позиция считается на основании каких-то данных (не телепатически же она рассчитывает свое значение). В случае расчета по сделкам - это событие NewMyTrades. Не будет этого события, не будет данных для расчета позы, и, следовательно, не будет обновление позиции.

President
President

Mikhail Sukhov:

President: лично мне нужно чтобы позиция считалась по трейдам и обновлялась ДО вызова MyNewTrades.

Такое невозможно в принципе. Позиция считается на основании каких-то данных (не телепатически же она рассчитывает свое значение). В случае расчета по сделкам - это событие NewMyTrades. Не будет этого события, не будет данных для расчета позы, и, следовательно, не будет обновление позиции.

телепатия тут и не нужна - я имел ввиду что можно было бы на прилет трейда из квика сначала пересчитать позицию, а потом райзить евент NewMyTrades для его подписчиков

Mikhail Sukhov
Mikhail Sukhov

President:

Mikhail Sukhov:

President: лично мне нужно чтобы позиция считалась по трейдам и обновлялась ДО вызова MyNewTrades.

Такое невозможно в принципе. Позиция считается на основании каких-то данных (не телепатически же она рассчитывает свое значение). В случае расчета по сделкам - это событие NewMyTrades. Не будет этого события, не будет данных для расчета позы, и, следовательно, не будет обновление позиции.

телепатия тут и не нужна - я имел ввиду что можно было бы на прилет трейда из квика сначала пересчитать позицию, а потом райзить евент NewMyTrades для его подписчиков

Прилет трейда из Квика != изменению позиции по стратегии. Менеджер позы по стратегии учитывает только те сделки, которые совершены в рамках стратегии.

vader
vader Автор

в версии 3.2.6 поменялась логика PositionManager.Position?

Mikhail Sukhov
Mikhail Sukhov

vader: в версии 3.2.6 поменялась логика PositionManager.Position?

Незначительно.