Скачать MetaTrader 5

закрытие по времени

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
12185
24
12185  
я начинаю познавать язык MQL5 и мне нужна ваша помощь. ни где не могу найти. Мне нужно, чтобы эксперт закрывал позицию каждую минуту, как это написать в метаэдиторе, подскажите пожалуйста. В заранее спасибо  
Sergey Gritsay
6581
Sergey Gritsay  
12185:
я начинаю познавать язык MQL5 и мне нужна ваша помощь. ни где не могу найти. Мне нужно, чтобы эксперт закрывал позицию каждую минуту, как это написать в метаэдиторе, подскажите пожалуйста. В заранее спасибо  

Можно так

if(MathMod(TimeCurrent(),60)==0)
{
 код закрытия позиции
}
Vladislav Andruschenko
95953
Vladislav Andruschenko  
Sergey Gritsay:

Можно так

а если тиков не будет в 0 секунду? :-)

лучше так 

 или через таймер

int timecheck=0;
datetime iTime(string symbol,int tf,int index)
{
   if(index < 0) return(-1);
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   datetime Arr[];
   if(CopyTime(symbol, timeframe, index, 1, Arr)>0)
        return(Arr[0]);
   else return(-1);
}
int start() 

{

 if(timecheck!=iTime(Symbol(),PERIOD_M1,0))

{

 // Закрываем позиции

 timecheck=iTime(Symbol(),PERIOD_M1,0);

} 

return(0); 

} 
12185
24
12185  
Vladislav Andruschenko:

а если тиков не будет в 0 секунду? :-)

лучше так 

 или через таймер

 'iTime' - function not defined эксперт 5.3.6.7.mq5 180 21

он не понимает такой функции 
Sergey Gritsay
6581
Sergey Gritsay  
Vladislav Andruschenko:

а если тиков не будет в 0 секунду? :-)

лучше так 

 или через таймер

Можно тогда через локальное время, оно вроде не зависит от тиков

if(MathMod(TimeLocal(),60)==0)
{
 код закрытия позиции
}
12185
24
12185  
Sergey Gritsay:

Можно тогда через локальное время, оно вроде не зависит от тиков

empty controlled statement found эксперт 5.3.6.7.mq5 175 33

пустой контролируемый оператор. 


Vladislav Andruschenko
95953
Vladislav Andruschenko  
int timecheck=0;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
datetime iTime(string symbol,int tf,int index)
  {
   if(index < 0) return(-1);
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   datetime Arr[];
   if(CopyTime(symbol,timeframe,index,1,Arr)>0)
      return(Arr[0]);
   else return(-1);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   if(timecheck!=iTime(Symbol(),PERIOD_M1,0))
     {
      // Закрываем позиции

      timecheck=iTime(Symbol(),PERIOD_M1,0);
     }
   return(0);
  }
//+------------------------------------------------------------------+
Sergey Gritsay
6581
Sergey Gritsay  
Vladislav Andruschenko:

а если тиков не будет в 0 секунду? :-)

лучше так 

 или через таймер

Топикастер спрашивает про МТ5 а вы предложили для мт4, ваш пример для МТ5 будет выглядеть примерно так
//-- Обявить на глобальном уровне
   datetime timecheck;
   datetime time[1];
//--------------------------
// это пишем в OnTick() или OnTimer()
   if(CopyTime(_Symbol,PERIOD_M1,0,1,time)>0)
     {
      if(timecheck!=time[0])
        {
         timecheck==time[0];
         код закрытия позиции
        }
     }
//---------------------
12185
24
12185  
expression has no effect эксперт 5.3.6.7. mq5 171 17
это относится к строке timecheck==time[0]; 
Vladislav Andruschenko
95953
Vladislav Andruschenko  
12185:
expression has no effect эксперт 5.3.6.7. mq5 171 17
это относится к строке timecheck==time[0]; 
timecheck=time[0]; 
12185
24
12185  

да, что такое. все исправил и вылезло 5 предупреждений, которые не относятся к данному роботу, а к каким то индикаторам, но из за них робот работает не корректно, я запустил тест по истории и он вообще сделки закрывает только по тейк и стопу

 declaration of 'time' hides global declaration in file '5.3.6.7.mq5' at line 11 Indicators.mqh 310 53

declaration of 'time' hides global declaration in file '5.3.6.7.mq5' at line 11 ExpertBase.mqh 338 59

declaration of 'time' hides global declaration in file '5.3.6.7.mq5' at line 11 Expert.mqh 541 16
declaration of 'time' hides global declaration in file '5.3.6.7.mq5' at line 11 Expert.mqh 1417 43

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий