Как правильно рассчитать профит совокупной позиции в пунктах для кроссов? - страница 4

 
Renat Akhtyamov:

видимо нет

а вообще. хороший вопрос

тоже давно хотел посчитать и проверить, но пока руки не доходили

Рассмотрим на примере:

1) случай :    открыто 2 ордера 1-й  0.02 лот, 2-й  0.04 лот  и депозит 2000.

2) случай :                                 1-й  0.03 лот, 2-й  0.06 лот  и депозит 2000+прирост депо. 

Предполагается, что в обоих случаях ордера были открыты по тем же ценам и в то же самое время.

Исходим из предположения, что относительная просадка  пропорциональна совокупному лоту и обратно пропорциональна величине депозита и при одинаковом отношении величины депозита к величине совокупного лота относительная просадка должна быть одинакова.

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

уравнение:

2000/0.06=(2000+прирост депо)/0.09;  33333.(3)=22222.(2)+11.(1)*прирост депо;  прирост депо=(33333.(3)-22222.(2))/11.(1) ; прирост депо=1000;

Подведём итог. Для данного случая имеем такой результат:

Чтобы относительная просадка не увеличилась при приросте депо на 1000 имеем право увеличить начальный лот на 0.01. Так я и делаю. Только делал интуитивно, а теперь вроде как подтверждается расчётом. Хотя на всякий не помешало бы проверить это например для  случая 5 наращиваемых ордеров с коэфф наращивания 3. Если будет тоже самое, тогда была бы полная уверенность.

 
khorosh:

Рассмотрим на примере:

...

Я бы посчитал чуток по другому

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

Допустим депозит 10000. Для расчета объема ордера мы применяем согласно Вашему рассказу формулу:

лот=депозит/20000.

Хорошо, лот посчитали. Найдем приращение в 1 пункт в деньгах.

Прибавим депозит на 10000, найдем новое значение лота. Найдем приращение в 1 пункт в деньгах.

Возьмем теперь соотношение депозитов и сравним с соотношением приращений в 1 пункт в деньгах.

Сделаем вывод - больше/меньше или равно.

Для мажоров - равно и такая формула реинвеста уместна, т.е.:

10000/20000=0.5, приращение 5

20000/20000=1.0, приращение 10

10000/20000=0.5 и 5/10=0.5

Для кроссов надо считать.
 
Renat Akhtyamov:

Я бы посчитал чуток по другому

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

Допустим депозит 10000. Для расчета объема ордера мы применяем согласно Вашему рассказу формулу:

лот=депозит/20000.

Хорошо, лот посчитали. Найдем приращение в 1 пункт в деньгах.

Прибавим депозит на 10000, найдем новое значение лота. Найдем приращение в 1 пункт в деньгах.

Возьмем теперь соотношение депозитов и сравним с соотношением приращений в 1 пункт в деньгах.

Сделаем вывод - больше/меньше или равно.

Для мажоров - равно и такая формула реинвеста уместна, т.е.:

10000/20000=0.5, приращение 5

20000/20000=1.0, приращение 10

10000/20000=0.5 и 5/10=0.5

Для кроссов надо считать.

Для кроссов надо ещё TickValue использовать. Для мажоров  TickValue=1.0, поэтому и без него нормально получается.

 
khorosh:

Для кроссов надо ещё TickValue использовать. Для мажоров  TickValue=1.0, поэтому и без него нормально получается.

Да неее, я выше не совсем прав. Я тут только что прикинул, сумма по средствам у нас зависит от маржи.

Поэтому не все так сладко, нужно учитывать маржу в расчете, т.к. при расчете учитывается курс валютной пары. Соответственно реинвест будет иметь более сложную формулу.

 
Renat Akhtyamov:

Да неее, я выше не совсем прав. Я тут только что прикинул, сумма по средствам у нас зависит от маржи.

Поэтому не все так сладко, нужно учитывать маржу в расчете, т.к. при расчете учитывается курс валютной пары. Соответственно реинвест будет иметь более сложную формулу.

Ну, и какую? 

 

Ну вот коллеги, теперь всё работает тика в тику. Причина была в том, что функция MarketInfo(Symbol(),MODE_TICKVALUE) выдаёт неверные данные. Нужно стоимость пункта считать самому по формуле, которая обычно приводится в интернете. Проверил в тесте. Теперь закрытие совокупной позиции происходит по одной и той же цене не зависимо от величины совокупного лота. А раньше зависела.

Спасибо всем, кто участвовал в обсуждении.

 
khorosh:

Ну вот коллеги, теперь всё работает тика в тику. Причина была в том, что функция MarketInfo(Symbol(),MODE_TICKVALUE) выдаёт неверные данные. Нужно стоимость пункта считать самому по формуле, которая обычно приводится в интернете. Проверил в тесте. Теперь закрытие совокупной позиции происходит по одной и той же цене не зависимо от величины совокупного лота. А раньше зависела.

Спасибо всем, кто участвовал в обсуждении.

можно в ЛС название ДЦ, чтобы знать где такие фокусы со стоимостью тика ?

---------------------------------------

PS

А вообще, khorosh, любая казалось бы халявная инфа в конечном итоге стоит денег ;)

Например я тоже счас сижу и думаю - отчего так много реквот стало? Ну и понимаю, дак это же MarketInfo(Symbol(),MODE_BID), а раньше было просто Bid ))))

Не ннадо просить у маркета халявную инфу, ой не нннадо. Хлопоты одни...

 
Renat Akhtyamov:

можно в ЛС название ДЦ, чтобы знать где такие фокусы со стоимостью тика ?

---------------------------------------

PS

А вообще, khorosh, любая казалось бы халявная инфа в конечном итоге стоит денег ;)

Например я тоже счас сижу и думаю - отчего так много реквот стало? Ну и понимаю, дак это же MarketInfo(Symbol(),MODE_BID), а раньше было просто Bid ))))

Не ннадо просить у маркета халявную инфу, ой не нннадо. Хлопоты одни...

ДЦ не причём, TickValue даёт МТ4. Я и раньше давно встречал жалобы на форуме, что эта функция неправильно считает. Но я как то не обращал внимания, пока не столкнулся сам при тестировании, когда выяснилось, что из-за этого неправильно считается профит совокупной позиции в пунктах. 

 
khorosh:

ДЦ не причём, TickValue даёт МТ4. Я и раньше давно встречал жалобы на форуме, что эта функция неправильно считает. Но я как то не обращал внимания, пока не столкнулся сам при тестировании, когда выяснилось, что из-за этого неправильно считается профит совокупной позиции в пунктах. 

может быть в дело в том, что эта функция в тестере выдает последнее рассчитанное маркетом значение, тем более в выходные

для тестера желательно производить расчет по науке

 
Renat Akhtyamov:

может быть в дело в том, что эта функция в тестере выдает последнее рассчитанное маркетом значение, тем более в выходные

для тестера желательно производить расчет по науке

Функция MarketInfo должна выдавать значение стоимости пункта на момент запроса или рассчитанное для последней цены закрытия рынка, если это выходные, а иначе зачем она нужна. Бросаю скрипт на реальный график, он мне выводит в алерте 2 значения, одно посчитано по формуле, другое рассчитано по функции InfoMarket(). Значения различаются, причём существенно. 

Причина обращения: