Мартингейл с отложенными ордерами, без сетки

MQL4 Asesores Expertos

Trabajo finalizado

Plazo de ejecución 2 días
Comentario del Cliente
Первая же (!) присланная версия соответствовала ТЗ и корректно работала. Вот это, коллеги, уровень разработки. Проект реализован вдумчиво, с душой. Работалось с zhserg как будто с соавтором.
Comentario del Ejecutor
Аккуратное, точное задание, быстрая проверка! Отлично!

Tarea técnica

Рядовой мартингейл, без сетки. С заданной периодичностью выставляет отложенные ордера (по выбору пользователя limit или stop) на заданном расстоянии от текущей цены. При закрытии по SL очередной ордер создает с применением коэффициента к размеру лота, уровней TP и SL. ТЗ ниже.

 

Мартингейл с коэффициентами Lot, SL, TP.


Мартингейл без сетки, с упором на ясность кода и отказоустойчивость при работе в реале (с занятым потоком, перезапуском терминала, в том числе после перезагрузки серверов). Советник работает только с ордерами своего 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 секунд.

При перезагрузке терминала сброс цикла не должен происходить (т.е. советник ориентируется на историю ордеров со своим мейджиком в терминале).



 


Archivos adjuntos:

TXT
tz.txt
3.9 Kb

Han respondido

1
Desarrollador 1
Evaluación
(1)
Proyectos
2
50%
Arbitraje
0
Caducado
0
Libre
2
Desarrollador 2
Evaluación
(198)
Proyectos
291
24%
Arbitraje
6
17% / 33%
Caducado
4
1%
Libre
3
Desarrollador 3
Evaluación
(618)
Proyectos
1429
59%
Arbitraje
31
81% / 0%
Caducado
10
1%
Libre
4
Desarrollador 4
Evaluación
(195)
Proyectos
395
28%
Arbitraje
155
20% / 52%
Caducado
112
28%
Libre
5
Desarrollador 5
Evaluación
(14)
Proyectos
22
59%
Arbitraje
2
0% / 50%
Caducado
2
9%
Libre
Ha publicado: 1 ejemplo
6
Desarrollador 6
Evaluación
(268)
Proyectos
602
34%
Arbitraje
64
20% / 58%
Caducado
147
24%
Trabaja
Ha publicado: 1 artículo, 22 ejemplos

Información sobre el proyecto

Presupuesto