Encerramento de operações após X minutos da abertura - erro

 

Fala pessoal, tudo certo?

Estou desenvolvendo um código para encerramento de todas posições após 30 minutos da abertura, mas está dando erro...

Já li as bibliotecas, mas não consegui corrigir.

Se alguém puder me ajudar, agradeço muito!!!



void OnTick()
  {
    
   datetime horario_controle;
   datetime horario_abertura;
   horario_controle=TimeCurrent();
   horario_abertura=PositionGetInteger(POSITION_TIME);
  
   if(horario_controle>=horario_abertura+1800)
      {
        CloseAllPositions();
      }
   }


void CloseAllPositions()
  {
   for(int i=PositionsTotal()-1;i>=0;i--) 
      if(m_position.SelectByIndex(i))  
         m_trade.PositionClose(m_position.Ticket()); 
  }
 
No código anexo em https://www.mql5.com/en/forum/283460 eu utilizou recurso similar para MT4:  Bars To Close Positions. Talvez ajude.
V1N1 LONY Breakout 5.10
V1N1 LONY Breakout 5.10
  • 2018.10.10
  • www.mql5.com
Automated trading system for breakouts in the London and New York sessions, which considers trading ranges formed during the Asian sessions...
 
bool_el:

Fala pessoal, tudo certo?

Estou desenvolvendo um código para encerramento de todas posições após 30 minutos da abertura, mas está dando erro...

Já li as bibliotecas, mas não consegui corrigir.

Se alguém puder me ajudar, agradeço muito!!!


O problema pode estar nesta função que você criou " CloseAllPositions();" e que não mostra o código.

 
void CloseAllPositions()
  {
   for(int i=PositionsTotal()-1;i>=0;i--) 
      if(m_position.SelectByIndex(i))  
         m_trade.PositionClose(m_position.Ticket()); 
  }
 

Consegui ajustar...


   datetime horario_controle;
   datetime horario_abertura;
   horario_controle=(datetime)TimeCurrent();
   horario_abertura=(datetime)PositionGetInteger(POSITION_TIME);
 
Valeu pessoal!!!
Razão: