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


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

Теги:


Спасибо:




8 Ответов
President

Фотография
Благотворитель
Дата: 29.07.2011
Ответить


обсуждалось
тут: https://stocksharp.ru/fo...tionManager-stratieghii/
и тут: https://stocksharp.ru/fo...nager-Position-tormozit/
summary: works as designed. хотя designed с первого взгляда не вполне очевидно ;)
Спасибо:

Alexander

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


President Перейти
обсуждалось
тут: https://stocksharp.ru/fo...tionManager-stratieghii/
и тут: https://stocksharp.ru/fo...nager-Position-tormozit/
summary: works as designed. хотя designed с первого взгляда не вполне очевидно ;)


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

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

President

Фотография
Благотворитель
Дата: 29.07.2011
Ответить


Alexander Перейти
President Перейти
обсуждалось
тут: https://stocksharp.ru/fo...tionManager-stratieghii/
и тут: https://stocksharp.ru/fo...nager-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

Фотография
Автор статей Программист Трейдер
Дата: 29.07.2011
Ответить


President Перейти

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


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

President

Фотография
Благотворитель
Дата: 29.07.2011
Ответить


Mikhail Sukhov Перейти
President Перейти

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


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


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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 29.07.2011
Ответить


President Перейти
Mikhail Sukhov Перейти
President Перейти

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


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


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


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

vader

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


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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 05.08.2011
Ответить


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


Незначительно.
Спасибо:


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

loading
clippy