2026-01-19 21:30:25 +03:00
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
//| CreateProject.mq5 |
|
|
|
|
|
//| Copyright 2024-2026, Yuriy Bykov |
|
|
|
|
|
//| https://www.mql5.com/ru/users/antekov |
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
#property copyright "Copyright 2024-2026, Yuriy Bykov"
|
|
|
|
|
#property link "https://www.mql5.com/ru/articles/19684"
|
|
|
|
|
#property description "Советник создаёт проект с этапами, работами и задачами оптимизации."
|
|
|
|
|
#property description "Стратегия: SimpleCandles"
|
|
|
|
|
#property description "Символы: GBPUSD,EURUSD,EURGBP"
|
|
|
|
|
#property description "Таймфреймы: M3,M5,M12"
|
|
|
|
|
#property description "Промежуток: 2025-01-01 - 2025-10-01"
|
|
|
|
|
|
|
|
|
|
#property version "1.00"
|
|
|
|
|
|
|
|
|
|
// 1. Определяем константу - признак наличия входных параметров
|
|
|
|
|
#define __INPUT_PARAMS__
|
|
|
|
|
|
2026-01-29 21:54:14 +03:00
|
|
|
// 2. Определяем константу - признак наличия функции шаблона параметров первого этапа
|
2026-01-21 20:36:43 +03:00
|
|
|
#define __PARAMS_TEMPLATE1__
|
|
|
|
|
|
2026-01-29 21:54:14 +03:00
|
|
|
// 3. Определяем константу - признак наличия функции шаблона параметров второго этапа
|
2026-01-21 20:36:43 +03:00
|
|
|
// #define __PARAMS_TEMPLATE2__
|
|
|
|
|
|
2026-01-29 21:54:14 +03:00
|
|
|
// 4. Определяем константу - признак наличия функции шаблона параметров третьего этапа
|
2026-01-21 20:36:43 +03:00
|
|
|
// #define __PARAMS_TEMPLATE3__
|
|
|
|
|
|
|
|
|
|
// 5. Подключаем шаблон советника создания проекта
|
2026-01-19 21:30:25 +03:00
|
|
|
#include "../../Adwizard/Experts/CreateProject.mqh"
|
|
|
|
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
//| Входные параметры |
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
|
|
|
sinput group "::: База данных"
|
|
|
|
|
sinput string fileName_ = "article.19684.db.sqlite"; // - Файл базы данных оптимизации
|
|
|
|
|
|
|
|
|
|
sinput group "::: Параметры проекта - Основные"
|
|
|
|
|
sinput string projectName_ = "SimpleCandles"; // - Название
|
2026-01-29 21:54:14 +03:00
|
|
|
sinput string projectVersion_ = "1.01"; // - Версия
|
2026-01-19 21:30:25 +03:00
|
|
|
sinput string symbols_ = "GBPUSD,EURUSD,EURGBP"; // - Символы
|
|
|
|
|
sinput string timeframes_ = "M3,M5,M12"; // - Таймфреймы
|
|
|
|
|
//sinput ENUM_OPT_STAGE_ORDER
|
|
|
|
|
// stageOrder_ = OPT_STAGE_ORDER_SEQUENTAL; // - Последовательность этапов
|
|
|
|
|
|
|
|
|
|
sinput group "::: Параметры проекта - Интервал оптимизации"
|
|
|
|
|
sinput datetime fromDate_ = D'2025-01-01'; // - Дата начала
|
|
|
|
|
sinput datetime toDate_ = D'2025-10-01'; // - Дата окончания
|
|
|
|
|
|
|
|
|
|
sinput group "::: Параметры проекта - Счёт"
|
|
|
|
|
sinput string mainSymbol_ = "GBPUSD"; // - Основной символ
|
|
|
|
|
sinput int deposit_ = 100000; // - Начальный депозит
|
|
|
|
|
|
|
|
|
|
sinput group "::: Этап 1. Поиск"
|
|
|
|
|
sinput string stage1ExpertName_ = "Stage1.ex5"; // - Советник этапа
|
|
|
|
|
sinput string stage1Criterions_ = "6,6,6,6,6,6"; // - Критерии оптимизации для задач
|
2026-01-29 21:54:14 +03:00
|
|
|
sinput long stage1MaxDuration_ = 60; // - Макс. продолж. задач (с)
|
2026-01-19 21:30:25 +03:00
|
|
|
|
|
|
|
|
sinput group "::: Этап 2. Группировка"
|
|
|
|
|
sinput string stage2ExpertName_ = "Stage2.ex5"; // - Советник этапа
|
|
|
|
|
sinput string stage2Criterion_ = "6"; // - Критерий оптимизации для задач
|
2026-01-29 21:54:14 +03:00
|
|
|
sinput long stage2MaxDuration_ = 180; // - Макс. продолж. задач (с)
|
2026-01-19 21:30:25 +03:00
|
|
|
//sinput bool stage2UseClusters_= false; // - Использовать кластеризацию?
|
|
|
|
|
sinput double stage2MinCustomOntester_ = 500; // - Мин. значение норм. прибыли
|
|
|
|
|
sinput uint stage2MinTrades_ = 20; // - Мин. кол-во сделок
|
|
|
|
|
sinput double stage2MinSharpeRatio_ = 0.7; // - Мин. коэфф. Шарпа
|
|
|
|
|
sinput uint stage2Count_ = 8; // - Кол-во стратегий в группе (1 - 16)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sinput group "::: Этап 3. Итог"
|
|
|
|
|
sinput string stage3ExpertName_ = "Stage3.ex5"; // - Советник этапа
|
2026-01-21 20:36:43 +03:00
|
|
|
sinput ulong stage3Magic_ = 1968401; // - Magic
|
2026-01-19 21:30:25 +03:00
|
|
|
sinput bool stage3Tester_ = true; // - Для тестера?
|
|
|
|
|
|
|
|
|
|
|
2026-01-21 20:36:43 +03:00
|
|
|
|
|
|
|
|
// Шаблон параметров оптимизации на первом этапе
|
|
|
|
|
string paramsTemplate1(COptimizationProject *p) {
|
|
|
|
|
string params = StringFormat(
|
|
|
|
|
"symbol_=%s\n"
|
|
|
|
|
"period_=%d\n"
|
|
|
|
|
"; === Параметры сигнала к открытию\n"
|
|
|
|
|
"signalSeqLen_=4||2||1||8||Y\n"
|
|
|
|
|
"periodATR_=21||28||2||720||Y\n"
|
|
|
|
|
"; === Параметры отложенных ордеров\n"
|
|
|
|
|
"stopLevel_=2.34||0.01||0.01||10.0||Y\n"
|
|
|
|
|
"takeLevel_=4.55||0.01||0.01||5.0||Y\n"
|
|
|
|
|
"; === Параметры управление капиталом\n"
|
|
|
|
|
"maxCountOfOrders_=200||1||1||30||N\n",
|
|
|
|
|
p.m_symbol, p.StringToTimeframe(p.m_timeframe));
|
|
|
|
|
return params;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-19 21:30:25 +03:00
|
|
|
//+------------------------------------------------------------------+
|