// ---
// ---
double newLotsMartingail(int magic = -1)
{
	int time = 0;
	double lastProfit = 0.0;
	double lastLots = 0.0;
	for (int i = OrdersHistoryTotal() - 1; i >= 0; i--)
	{
		if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
			continue;
		if ((OrderSymbol() == Symbol())
			&& OrderCloseTime() > time
			&& ((OrderMagicNumber() == magic) || (magic == -1)))
		{
			time = OrderCloseTime();
			lastProfit = OrderProfit();
			lastLots = OrderLots();
		}
	}
	/* Если последняя сделка по текущему символу была убыточна, то возвращаем ёё объём, умноженный на два;
	 иначе возвращаем начальный объём (extern int Lots) */
	double resultLots = 0.0;
	if (lastProfit < 0)
		resultLots = lastLots * 2;
	else
		resultLots = _Lots;
	resultLots = MathRound(resultLots / MarketInfo(Symbol(), MODE_LOTSTEP)) * MarketInfo(Symbol(), MODE_LOTSTEP); // приводим к нужному числу знаков
	resultLots = MathMin(resultLots, MarketInfo(Symbol(), MODE_MAXLOT));	
	resultLots = MathMax(resultLots, MarketInfo(Symbol(), MODE_MINLOT));
	if(resultLots > _MaxLots)
		resultLots = _Lots;
	// ---
	return(resultLots);
}
void get_lots()
{
	// MQL4 | присвоение объёма по входному параметру и мартингейлу при закрытии последней сделки в убытке
	OP_LOTS = newLotsMartingail(_MagicNumber);
}
// ---
// --- 
			 
			 
 
			










Designer63rus