Controle de fechamento de ordem por período definido

 

Ola pessoal, sou novo em mql5, estou tentando implementar um EA que fecha uma ordem de depois de um período de tempo pre definido por mim, alguem teria alguma dica d como fazer isso.

EX: O EA abre um ordem de compra e tem que fechar daqui a 10 minutos, mas nesse período de 10 minutos ele tmb pode abrir uma outra ordem de compra ou venda para se fechar em 10 minutos.

A dúvida é, como fazer esse controle para saber qual ordem o EA vai fechar.

 
brun0silva123:


Olá

acredito que você esteja falando de POSIÇÃO e não ORDEM PENDENTE, então o código seria +/- esse.


#include <Trade\SymbolInfo.mqh>         CSymbolInfo       cSymbol;
#include <Trade\Trade.mqh>              CTrade            cTrade;
#include <Trade\PositionInfo.mqh>       CPositionInfo     cPosition;

int         magicNumber;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   cSymbol.Name(_Symbol);
   cSymbol.Refresh();
   return(INIT_SUCCEEDED);
  }


   for(int i = PositionsTotal() - 1; i >= 0; i--)
     {
      if(cPosition.SelectByIndex(i)
         && cPosition.Symbol() == Symbol()
         && cPosition.Magic() == magicNumber
         && TimeCurrent() >= cPosition.Time() + PeriodSeconds(PERIOD_M10))
        {
         cTrade.PositionClose(cPosition.Ticket());
         if(cTrade.ResultRetcode() != 10009)
           {
            Print("Error Result Retcode: ", cTrade.ResultRetcode(),
                  ", description of Retcode: ", cTrade.ResultRetcodeDescription());
           }
        }
     }
 

Isso mesmo  Rogerio Giannetti Torres, a logica é: eu abro um trade e tenho que fechar ele em exatamente 10 velas se não bater no meu stop e nem take, estou lendo sobre a função PositionTotal(), já me de uma grande luz, acabou que só consegui responder hoje, pois fiquei agarrado no trabalho, mas vlw ai pela ajuda, vou pesquisar um pouco mais sobre o código que enviou

Rogerio Giannetti Torres
Rogerio Giannetti Torres
  • www.mql5.com
Perfil do Trader
 
brun0silva123 #:

Isso mesmo  Rogerio Giannetti Torres, a logica é: eu abro um trade e tenho que fechar ele em exatamente 10 velas se não bater no meu stop e nem take, estou lendo sobre a função PositionTotal(), já me de uma grande luz, acabou que só consegui responder hoje, pois fiquei agarrado no trabalho, mas vlw ai pela ajuda, vou pesquisar um pouco mais sobre o código que enviou

Olha se o controle eh por vela tem a funcao iBarShift que pode ser interessante dar uma olhada.