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

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

Можно так

if(MathMod(TimeCurrent(),60)==0)
{
 код закрытия позиции
}
 
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); 

} 
 
Vladislav Andruschenko:

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

лучше так 

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

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

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

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

лучше так 

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

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

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

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

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

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


 
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);
  }
//+------------------------------------------------------------------+
 
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];
         код закрытия позиции
        }
     }
//---------------------
 
expression has no effect эксперт 5.3.6.7. mq5 171 17
это относится к строке timecheck==time[0]; 
 
12185:
expression has no effect эксперт 5.3.6.7. mq5 171 17
это относится к строке timecheck==time[0]; 
timecheck=time[0]; 
 

да, что такое. все исправил и вылезло 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

Причина обращения: