55 lines
No EOL
5.8 KiB
MQL5
55 lines
No EOL
5.8 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| Stage1.mq5 |
|
|
//| Copyright 2024-2025, Yuriy Bykov |
|
|
//| https://www.mql5.com/ru/users/antekov |
|
|
//+------------------------------------------------------------------+
|
|
#property copyright "Copyright 2024-2025, Yuriy Bykov"
|
|
#property link "https://www.mql5.com/ru/articles/17328"
|
|
#property description "Советник с одиночным экземпляром торговой стратегии SimpleCandles."
|
|
#property description ""
|
|
#property description "Стратегия открывает позицию после нескольких однонаправленных свечей."
|
|
#property description "Открытие происходит в сторону, противоположную направлению предыдущей свечи."
|
|
#property description "Позиции закрываются только по SL или TP."
|
|
#property version "1.03"
|
|
|
|
// 1. Определяем константу с именем советника
|
|
#define __NAME__ "SimpleCandles" + MQLInfoString(MQL_PROGRAM_NAME)
|
|
|
|
// 2. Подключаем нужную стратегию
|
|
#include "../Strategies/SimpleCandlesStrategy.mqh";
|
|
|
|
// 3. Подключаем общую часть советника первого этапа из библиотеки Adwizard
|
|
#include "../Include/Adwizard/Experts/Stage1.mqh"
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| 4. Входные параметры для стратегии |
|
|
//+------------------------------------------------------------------+
|
|
sinput string symbol_ = ""; // Символ
|
|
sinput ENUM_TIMEFRAMES period_ = PERIOD_CURRENT; // Таймфрейм для свечей
|
|
|
|
input group "=== Параметры сигнала к открытию"
|
|
input int signalSeqLen_ = 6; // Количество однонаправленных свечей
|
|
input int periodATR_ = 0; // Период ATR (если 0, то TP/SL в пунктах)
|
|
|
|
input group "=== Параметры отложенных ордеров"
|
|
input double stopLevel_ = 25000; // Stop Loss (в доле ATR или пунктах)
|
|
input double takeLevel_ = 3630; // Take Profit (в доле ATR или пунктах)
|
|
|
|
input group "=== Параметры управление капиталом"
|
|
input int maxCountOfOrders_ = 9; // Макс. количество одновременно отрытых ордеров
|
|
input int maxSpread_ = 10; // Макс. допустимый спред (в пунктах)
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| 5. Функция формирования строки инициализации стратегии |
|
|
//| из входных параметров |
|
|
//+------------------------------------------------------------------+
|
|
string GetStrategyParams() {
|
|
return StringFormat(
|
|
"class CSimpleCandlesStrategy(\"%s\",%d,%d,%d,%.3f,%.3f,%d,%d)",
|
|
(symbol_ == "" ? Symbol() : symbol_), period_,
|
|
signalSeqLen_, periodATR_, stopLevel_, takeLevel_,
|
|
maxCountOfOrders_, maxSpread_
|
|
);
|
|
}
|
|
//+------------------------------------------------------------------+ |