Эксперимент с мартингейлом Обычный мартингейл, без сетки, с упором на ясность кода и отказоустойчивость при работе в реале (с занятым потоком, перезапуском терминала, в том числе после перезагрузки серверов). Советник работает только с ордерами своего magic. Логика входа и работы Работает отложенными ордерами. Раз в заданный Period секунд устанавливает (если они не сработали - переустанавливает заново) отложенные лимитные ордера на заданном расстоянии Distance от текущей цены. Ниже - Buy Limit, выше - Sell limit. При StopOrders=true, наоборот: ниже цены устанавливается - Sell Stop, выше - Buy Stop. SL и TP выставляются вместе с отложенным ордером, а не после его открытия. Как только сработал один из выставленных отложенных ордеров, оставшийся тут же удаляется (советник проверяет, что приказ на удаление принят сервером, если нет - повторяет 5 раз). На всякий случай ордера сразу создаются и со временем истечения, равным Period минус 5 секунд. Если позиция закрылась по TP, начинается новый цикл. Если по SL - включается логика мартингейла и к следующей позиции применяются соответствующие коэффициенты лотности, TP и SL. Настройки входа Period = 900; // Период выставления отложенных ордеров, в секундах Distance = 30; // На каком расстоянии от текущей цены выставляются отложенные ордера StopOrders=true/false; // При true используются стоп-ордера, при false - лимитные ордера. Дополнительные настройки входа SameDirectionAllowed? = true/false; // фильтр, разрешается ли внутри цикла открывать следующую позицию в том же направлении, что и предыдущую (т.е. разрешаются ли два sell или два buy подряд). Если true, то после закрытия позиции по SL советник выставляет отложенный ордер только в противоположном направлении (то есть после sell возможен только buy)/ Interval = input; // интервал в минутах после закрытия позиции по SL до открытия следующей (пауза в работе советника). Основные настройки Lot=0.01; // Стартовый лот MaxLot=10; // Максимально возможный размер лота. Если алгоритм эксперта хочет открыть лот больше, то используется размер, указанный в MaxLot. TP=10; // Стартовый TP в пунктах MaxTP=20; // Максимально возможный размер TP. Если алгоритм эксперта в результате применения коэффициентов собирается установить TP больше, то используется размер, указанный в MaxTP. MinTP=5; // Миниммально возможный размер TP. Если алгоритм эксперта в результате применения коэффициентов собирается установить TP меньше, то используется размер, указанный в MinTP. SL=10; // Стартовый SL в пунктах MaxSL=20; // Максимально возможный размер SL. Если алгоритм эксперта в результате применения коэффициентов собирается установить SL больше, то используется размер, указанный в MaxSL. MinSL=5; // Миниммально возможный размер SL. Если алгоритм эксперта в результате применения коэффициентов собирается установить SL меньше, то используется размер, указанный в MinSL. Magic = 0; // магический номер Slippage = 3; // Допустимое проскальзывание Коэффициенты мартингейла Коэффициенты для следующей сделки в случае проигрыша Loss_K_Lot = 1.25; //Коэффициент для лота Manual_Lot_Size = 0.01, 0.01, 0.01, 0.02, 0.02, 0.04… // Поскольку 0,01 на коэффициенты типа 1,25 не умножается, здесь можно вручную ввести ряд - последовательность размеров лота. Loss_K_TP = 1,25; //Коэффициент для TP Loss_K_SL =1,25; //Коэффициент для SL Блок пятничного открытия и закрытия позиций AllowFriday=true/false; // разрешена ли торговля в пятницу? Close_All_Friday = true/false; // закрывать ли открытую позицию в пятницу в 23.00? Воспринимает как SL. Мелкие детали На одном счете будет работать несколько копий этого советника, поэтому необходимо предусмотреть вероятность занятости потока, чтобы попытки шли через определенный (вырастающий) интервал времени: например, через 1, 2, 3...5...n секунд. При перезагрузке терминала сброс цикла не должен происходить (т.е. советник ориентируется на историю ордеров со своим мейджиком в терминале).