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

 

Допустим, что есть некоторое количество открытых ордеров, среди которых есть ордера на покупку и на продажу. Все ордера открыты в разное время, по разной цене и с разным количеством лотов. Нужно найти:

a) минимальную цену, при которой прибыль от всех ордеров на покупку будет больше нуля;

b) максимальную цену, при которой прибыль от всех ордеров на продажу будет больше нуля.

Если кто-нибудь встречал функцию, с помощью которой это можно вычислить, поделитесь пожалуйста

 
FxRoller писал(а) >>

Допустим, что есть некоторое количество открытых ордеров, среди которых есть ордера на покупку и на продажу. Все ордера открыты в разное время, по разной цене и с разным количеством лотов. Нужно найти:

a) минимальную цену, при которой прибыль от всех ордеров на покупку будет больше нуля;

b) максимальную цену, при которой прибыль от всех ордеров на продажу будет больше нуля.

Если кто-нибудь встречал функцию, с помощью которой это можно вычислить, поделитесь пожалуйста

Написать можно, но зачем???

 

так лучше не делать. так как у бай и у сел ордеров разная цена закрытия - у первых Бид у вторых Аск. Поэтому если вы заранее выставите там стопы - а для одних это стоплос, а для других это тейкпрофит - то гарантии что сработает всё одновременно - нет.


Поэтому лучше всего просто проверяйте текущий суммарный профит по требуемым ордерам.


Но если вы работаете только в одну сторону - то вот код для нахождения безубытка.

	for (i=0; i<OrdersTotal(); i++) // расчитываем среднюю в пунктах
	{
		OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
		if (OrderSymbol()==smb && OrderMagicNumber()==SysID && (OrderType()==OP_BUY || OrderType()==OP_SELL)) 
		{ AvgPrice+=OrderOpenPrice()*OrderLots(); SumLot+=OrderLots(); }
	}
	if (SumLot==0) return;
	AvgPrice=NormalizeDouble(AvgPrice/SumLot, Digits);
 
Уровень безубытка находится на уровне цены открытия текущей нетто-позиции. В коде скрипта NettoTrading можно видеть, как считается текущая нетто-позиция.
 
FxRoller >>:

Допустим, что есть некоторое количество открытых ордеров, среди которых есть ордера на покупку и на продажу. Все ордера открыты в разное время, по разной цене и с разным количеством лотов. Нужно найти:

a) минимальную цену, при которой прибыль от всех ордеров на покупку будет больше нуля;

b) максимальную цену, при которой прибыль от всех ордеров на продажу будет больше нуля.

Если кто-нибудь встречал функцию, с помощью которой это можно вычислить, поделитесь пожалуйста

https://www.mql5.com/ru/code/9375
 
FxRoller писал(а) >>

Допустим, что есть некоторое количество открытых ордеров, среди которых есть ордера на покупку и на продажу. Все ордера открыты в разное время, по разной цене и с разным количеством лотов. Нужно найти:

a) минимальную цену, при которой прибыль от всех ордеров на покупку будет больше нуля;

b) максимальную цену, при которой прибыль от всех ордеров на продажу будет больше нуля.

Если кто-нибудь встречал функцию, с помощью которой это можно вычислить, поделитесь пожалуйста

Ну энто не проблема... Держи.

Правда тут все ордера считаются (и на покупку и на продажу).

Если очень надо по отдельности, то выложу. Найти еще надо. Давно делал:)

Хотел опубликовать для всех, ну да все руки не доходят.