Presets (.set) Эксперт автоматически менял настройки по времени

 

Может кто направит на страничку Документации - как это можно реализовать?

что то нашёл - пока не пойму что это, но слово ".set" присутствует 

//+------------------------------------------------------------------+
void FileSet()
  {
   string FileName=nameEA+"_"+Symbol()+Period()+"_"+Counter+".set";
   int handle=FileOpen(FileName,FILE_WRITE|FILE_CSV);
   if(handle<1)
      return(0);
   FileWrite(handle,"VarOptimTest="+0);
   FileWrite(handle,"VarOptimTest,F="+0);
   FileWrite(handle,"VarOptimTest,1="+0);
   FileWrite(handle,"VarOptimTest,2="+0);
   FileWrite(handle,"VarOptimTest,3="+0);
   FileWrite(handle,"Counter="+0);
   FileWrite(handle,"Counter,F="+0);
   FileWrite(handle,"Counter,1="+1);
   FileWrite(handle,"Counter,2="+1);
   FileWrite(handle,"Counter,3="+100);
   FileWrite(handle,"nameEA="+nameEA+"_"+Symbol()+Period()+"_"+Counter);
   FileWrite(handle,"Lots="+Lots);
   FileWrite(handle,"Lots,F="+0);
   FileWrite(handle,"Lots,1="+0.00000000);
   FileWrite(handle,"Lots,2="+0.00000000);
   FileWrite(handle,"Lots,3="+0.00000000);
//---
   FileWrite(handle,"MovingShift="+MovingShift);
   FileWrite(handle,"MovingShift,F="+1);
   FileWrite(handle,"MovingShift,1="+2);
   FileWrite(handle,"MovingShift,2="+1);
   FileWrite(handle,"MovingShift,3="+4);
   FileClose(handle);
   return(0);
  }
//+------------------------------------------------------------------+


 

 
А откуда такая уверенность, что в документации об этом кто-то написал?
 
Dmitry Fedoseev:
А откуда такая уверенность, что в документации об этом кто-то написал?

уверенности нет - ну должно быть такое, что то, на подобие 

-------------------------

вроде что то накопал - надо теперь вникнуть в это дело

https://www.mql5.com/ru/articles/1467

Автооптимизатор
Автооптимизатор
  • www.mql5.com
Подробная статья по использованию библиотеки автооптимизатора и принципах её работы здесь: https://www.mql5.com/ru/articles/1467 Код для вставки в ваш советник: Код для вставки в функцию start...
 
https://www.mql5.com/ru/code/19003
Expert
Expert
  • www.mql5.com
Все остальные файлы на данной странице описания библиотеки являются ее примерами/сценариями применения и не нужны для работы самой библиотеки. Возможности Примеры К описанию прикреплены примеры/сценарии ее использования. ExpertsRemove.mq5 ExpertsReopen.mq5 ChartsClose.mq5 ExpertLoader_Example.mq5 ExpertsChange_Example.mq5 Это самые...
 
Andrey Khatimlianskii:
https://www.mql5.com/ru/code/19003

Огромное Спасибо! Здоровья и Всех Благ! 

 
SanAlex:

Огромное Спасибо! Здоровья и Всех Благ! 

Alexey Viktorov - Огромное Спасибо! Здоровья и Всех Благ!

нашёл Ваш скрипт https://www.mql5.com/ru/forum/326047/page3#comment_13826046 

Alexey Viktorov
Alexey Viktorov
  • www.mql5.com
Выставил продукт Советник работает на пересечении двух Moving averages рассчитанных по ценам Open и Close. Но несмотря на простоту показывает неплохие результаты. Параметры: Time frame      — Период для расчёта Moving averages Period MA        — Период усреднения Moving averages Method MA       — Метод Moving averages Выставил продукт Советник...
 
что то вроде начинаю вникать - только теперь задача - как эти все данные, впихнуть автоматически в эксперта 
Файлы:
 

Думал на думал - не нужная эта функция.- Потому что, у меня лучше вариант, уже и заложен в эксперте.

смена шаблона - Надо просто сохранить шаблон с Экспертом с уже заданными настройками.   

 
SanAlex:

Думал на думал - не нужная эта функция.- Потому что, у меня лучше вариант, уже и заложен в эксперте.

смена шаблона - Надо просто сохранить шаблон с Экспертом с уже заданными настройками.   

скрипт слепил - для смены шаблона, на текущем графике.

//+------------------------------------------------------------------+
//|                                       settings automatically.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property script_show_inputs
//---
input string Template_1 = "Momentum"; // Имя шаблона(without '.tpl')
//---
ENUM_TIMEFRAMES TimeFrame; // Change TimeFrame - Current = dont changed
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   DeleteChart_1();
  }
//+------------------------------------------------------------------+
//| start function                                                   |
//+------------------------------------------------------------------+
void DeleteChart_1(void)
  {
   long prevChart=0;
   bool errTemplate;
   if(TimeFrame!=PERIOD_CURRENT)
     {
      ChartSetSymbolPeriod(prevChart,ChartSymbol(prevChart),TimeFrame);
     }
   errTemplate=ChartApplyTemplate(prevChart,Template_1+".tpl");
   if(!errTemplate)
     {
      Print("Error ",ChartSymbol(prevChart),"-> ",GetLastError());
     }
  }
//+------------------------------------------------------------------+
 


-------------

осталось долепить - запуск по времени. 

 
SanAlex:

осталось долепить - запуск по времени. 

2020.10.03 16:49:56.344 2020.02.19 01:01:58   Error EURUSD-> 5019

 - значит всё работает

//+------------------------------------------------------------------+
//|                                       settings automatically.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//---
#define InpMagic 131749285
//---
#include <Trade\PositionInfo.mqh>
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>
CPositionInfo  m_position; // trade position object
CTrade         m_trade;    // trading object
CSymbolInfo    m_symbol;   // symbol info object
//---
input string   Template_1  = "Momentum";    // Имя шаблона(without '.tpl')
input datetime InpMonday_1 = D'1970.01.01'; // without '.tpl' Time (00::00->off)
//---
double m_adjusted_point;   // point value adjusted for 3 or 5 points
long   m_monday_1=0;       //
uint   SLEEPTIME=1;        // Время паузы между повторами в секундах
ENUM_TIMEFRAMES TimeFrame; // Change TimeFrame - Current = dont changed
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(!m_symbol.Name(Symbol())) // sets symbol name
      return(INIT_FAILED);;
//---
   m_trade.SetExpertMagicNumber(InpMagic);
   m_trade.SetMarginMode();
   m_trade.SetTypeFillingBySymbol(m_symbol.Name());
//--- tuning for 3 or 5 digits
   int digits_adjust=1;
   if(m_symbol.Digits()==3 || m_symbol.Digits()==5)
      digits_adjust=10;
   m_adjusted_point=m_symbol.Point()*digits_adjust;
//--- set default deviation for trading in adjusted points
   m_trade.SetDeviationInPoints(3*digits_adjust);
//---
   MqlDateTime STime;
//--- Monday
   TimeToStruct(InpMonday_1,STime);
   m_monday_1=STime.hour*60*60+STime.min*60;
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   Print(TimeCurrent(),": ",__FUNCTION__," reason code = ",reason);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(m_symbol.Name(Symbol()))
     {
      SessionTime_1();
     }
  }
//+------------------------------------------------------------------+
//| Search trading signals                                           |
//+------------------------------------------------------------------+
bool SessionTime_1(void)
  {
//---
   bool res=false;
//---
   MqlDateTime STimeCurrent;
   TimeToStruct(TimeCurrent(),STimeCurrent);
   long time_current=STimeCurrent.hour*60*60+STimeCurrent.min*60+STimeCurrent.sec;
   if(m_monday_1==0)
      return(res);
//--- Monday time 1
   if(m_monday_1!=0 && (time_current>=m_monday_1 && time_current<m_monday_1+60))
     {
      datetime last_setup=0;
      MqlDateTime SLastSetup;
      TimeToStruct(last_setup,SLastSetup);
      long time_last_setup=SLastSetup.hour*60*60+SLastSetup.min*60+SLastSetup.sec;
      if(SLastSetup.day_of_week==1 && (time_last_setup>=m_monday_1 && time_last_setup<m_monday_1+60))
         return(true);
      if(1>0)
        {
         Sleep(SLEEPTIME+59*1000);
           {
            DeleteChart_1();
            PlaySound("request.wav");
           }
         res=true;
        }
     }
//---
   return(res);
  }
//+------------------------------------------------------------------+
//| start function                                                   |
//+------------------------------------------------------------------+
void DeleteChart_1(void)
  {
   long prevChart=0;
   bool errTemplate;
   if(TimeFrame!=PERIOD_CURRENT)
     {
      ChartSetSymbolPeriod(prevChart,ChartSymbol(prevChart),TimeFrame);
     }
   errTemplate=ChartApplyTemplate(prevChart,Template_1+".tpl");
   if(!errTemplate)
     {
      Print("Error ",ChartSymbol(prevChart),"-> ",GetLastError());
     }
  }
//+------------------------------------------------------------------+

 ----------------------------------

осталось - в своего эксперта вписать этот код 

------------------------------

не, нужно ещё проверить - что то он кажись два раз чего то там пытается 

Файлы:
087kyy.PNG  102 kb