← Zurück

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

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

War dieses Thema hilfreich?

Thema teilen

Kommentare (8)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

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 Autor

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

Mikhail Sukhov
Mikhail Sukhov

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

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