SimpleCandles/Optimization/CreateProject.1968401.mq5

93 righe
5,5 KiB
MQL5

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. Определяем константу - признак наличия функции шаблона параметров первого этапа
#define __PARAMS_TEMPLATE1__
2026-01-29 21:54:14 +03:00
// 3. Определяем константу - признак наличия функции шаблона параметров второго этапа
// #define __PARAMS_TEMPLATE2__
2026-01-29 21:54:14 +03:00
// 4. Определяем константу - признак наличия функции шаблона параметров третьего этапа
// #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"; // - Советник этапа
sinput ulong stage3Magic_ = 1968401; // - Magic
2026-01-19 21:30:25 +03:00
sinput bool stage3Tester_ = true; // - Для тестера?
// Шаблон параметров оптимизации на первом этапе
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
//+------------------------------------------------------------------+