Скачать MetaTrader 5

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

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

Можно так

if(MathMod(TimeCurrent(),60)==0)
{
 код закрытия позиции
}
Vladislav Andruschenko
91981
Vladislav Andruschenko 2016.03.28 10:52  
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 2016.03.28 10:58  
Vladislav Andruschenko:

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

лучше так 

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

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

он не понимает такой функции 
Sergey Gritsay
6475
Sergey Gritsay 2016.03.28 11:02  
Vladislav Andruschenko:

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

лучше так 

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

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

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

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

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

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


Vladislav Andruschenko
91981
Vladislav Andruschenko 2016.03.28 11:15  
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
6475
Sergey Gritsay 2016.03.28 11:16  
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 2016.03.28 11:48  
expression has no effect эксперт 5.3.6.7. mq5 171 17
это относится к строке timecheck==time[0]; 
Vladislav Andruschenko
91981
Vladislav Andruschenko 2016.03.28 11:50  
12185:
expression has no effect эксперт 5.3.6.7. mq5 171 17
это относится к строке timecheck==time[0]; 
timecheck=time[0]; 
12185
24
12185 2016.03.28 12:01  

да, что такое. все исправил и вылезло 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
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий