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

MQL4 エキスパート

仕事が完了した

実行時間2 日
依頼者からのフィードバック
Первая же (!) присланная версия соответствовала ТЗ и корректно работала. Вот это, коллеги, уровень разработки. Проект реализован вдумчиво, с душой. Работалось с zhserg как будто с соавтором.
開発者からのフィードバック
Аккуратное, точное задание, быстрая проверка! Отлично!

指定

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

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



 


ファイル:

TXT
tz.txt
3.9 Kb

応答済み

1
開発者 1
評価
(1)
プロジェクト
2
50%
仲裁
0
期限切れ
0
2
開発者 2
評価
(198)
プロジェクト
291
24%
仲裁
6
17% / 33%
期限切れ
4
1%
3
開発者 3
評価
(618)
プロジェクト
1429
59%
仲裁
31
81% / 0%
期限切れ
10
1%
4
開発者 4
評価
(195)
プロジェクト
395
28%
仲裁
155
20% / 52%
期限切れ
112
28%
5
開発者 5
評価
(14)
プロジェクト
22
59%
仲裁
2
0% / 50%
期限切れ
2
9%
パブリッシュした人: 1 code
6
開発者 6
評価
(268)
プロジェクト
602
34%
仲裁
64
20% / 58%
期限切れ
147
24%
仕事中
パブリッシュした人: 1 article, 22 codes

プロジェクト情報

予算