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

MQL4 Uzmanlar

İş tamamlandı

Tamamlanma süresi: 2 gün
Müşteri tarafından geri bildirim
Первая же (!) присланная версия соответствовала ТЗ и корректно работала. Вот это, коллеги, уровень разработки. Проект реализован вдумчиво, с душой. Работалось с zhserg как будто с соавтором.
Geliştirici tarafından geri bildirim
Аккуратное, точное задание, быстрая проверка! Отлично!

Şartname

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

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



 


Dosyalar:

TXT
tz.txt
3.9 Kb

Yanıtlandı

1
Geliştirici 1
Derecelendirme
(1)
Projeler
2
50%
Arabuluculuk
0
Süresi dolmuş
0
Serbest
2
Geliştirici 2
Derecelendirme
(198)
Projeler
291
24%
Arabuluculuk
6
17% / 33%
Süresi dolmuş
4
1%
Serbest
3
Geliştirici 3
Derecelendirme
(618)
Projeler
1429
59%
Arabuluculuk
31
81% / 0%
Süresi dolmuş
10
1%
Serbest
4
Geliştirici 4
Derecelendirme
(195)
Projeler
395
28%
Arabuluculuk
155
20% / 52%
Süresi dolmuş
112
28%
Serbest
5
Geliştirici 5
Derecelendirme
(14)
Projeler
22
59%
Arabuluculuk
2
0% / 50%
Süresi dolmuş
2
9%
Serbest
Yayınlandı: 1 kod
6
Geliştirici 6
Derecelendirme
(268)
Projeler
602
34%
Arabuluculuk
64
20% / 58%
Süresi dolmuş
147
24%
Çalışıyor
Yayınlandı: 1 makale, 22 kod

Proje bilgisi

Bütçe