Попозже. Пока действует только Average (Профитный закрывает убыточный в + MinimalProfit).
Кроме того сокращаются уже два ордера одного направления. Представим картину: открыли сел, а цена пошла вверх. Открыли еще селл удвоенным лотом, а цена раз… и пошла вниз. В какой-то момент закроются два ордера с минимальной прибылью, а цена все валит и валит вниз. Без нас. Обидно.
По-этому ввел внешнюю переменную int CountAwerage, задающую при каком количестве ордеров начинается их сокращение. При CountAwerage=3 сокращаться начнут первый и третий ордера. Второй будет в работе. Скорее всего CountAwerage=2 будет оптимальным. Но мы всегда сможем удалить эту переменную.
Итак на сегодня шапка имеет версию 1.1 и выглялит так:
//+------------------------------------------------------------------+
//| KAE Grid.mq4 |
//| Copyright 2025 |
//| kvashnin007@gmil.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2025"
#property version "1.1"
#property strict
//************************************************************************************************/
//* */
//************************************************************************************************/
enum ENUM_ST // Вариант сокращения ордеров
{
Average = 0, // Профитный закрывает убыточный в + MinimalProfit
StartClose = 1, // Оставляем Start от профитного закрываем убыточный
NoProfitClose = 2 // При профите + MinimalProfit закрываем убыточный
};
//************************************************************************************************/
input bool MM = false; // Мани Менеджмент
input double Risk = 0.5; // Риск на сделку % в процентах от свободной маржи.
input double StartLots = 0.03; // Start lot
input double CoeffLots = 2.0; // Увеличение лота
input double MaximalLots = 2.56; // Maximal Lots
//---
input ENUM_ST CloseOrder = Average; // Type close orders
input int CountAverage = 2; // Минимальное количество ордеров для сокращения
input int StopLoss = 0; // Stop Loss (in pips)
input int TakeProfit = 390; // Take Profit (in pips)
input int PointOrderStep = 270; // Point order step (in pips)
input int MinimalProfit = 70; // Minimal profit for close grid (in pips)
//---
input int MagicNumber = 1961; // Magic Number (in number)
input int Slippage = 30; // Slippage (in pips)
//---
//************************************************************************************************/
Я оптимизирую по ценам открытия. Потом прогоняю по тикам. Возможно, по-этому результаты не совсем корелируются.
Пробуйте.
Удачи.
Попробую загрузить новый советник вдепозитарий. www.opentraders.ru/downloads/3949/
Хрен там.
Уважаемый OSS5 поделитесь, как это у вас получается?
kvashnin007