Função para eu fechar minha posição em minutos

 

Ola a todos estou tendo dificuldade para criar uma função de fechar somente as ordens abertas apos 2 minutos, valido somente para ordens ativas nao pedentes

existe algum código mql5 ou biblioteca pronta  para isso.

Obrigada pelas respostas e ajuda!

 
Gisele Lopes:

Ola a todos estou tendo dificuldade para criar uma função de fechar somente as ordens abertas apos 2 minutos, valido somente para ordens ativas nao pedentes

existe algum código mql5 ou biblioteca pronta  para isso.

Obrigada pelas respostas e ajuda!

Para fazer isso eu fiz uma função que recebe uma variável do tipo datetime, do momento em que a posição foi aberta. Então essa função converte o tempo de abertura da posição em segundos e verifica com o tempo atual em segundos para saber se é o momento de fechar a posição. Não sei se essa seria a melhor forma mas pra mim funciona. Vou deixar o exemplo da função.


bool IsTimeOfClosePosition(datetime aberturaDaPosicao)
  {
   if(momentoAbriuPosicao == NULL)
     {
      return false;
     }

   TimeToStruct(aberturaDaPosicao, timeAberturaPosicao);
   int horaqueaposicaoabriu = timeAberturaPosicao.hour * 60 * 60;
   int minutoqueaposicaoabriu = timeAberturaPosicao.min * 60;
   int segundosqueaposicaoabriu = timeAberturaPosicao.sec; //////////
   int horariodeaberturadaposicaoemsegundos = horaqueaposicaoabriu + minutoqueaposicaoabriu + segundosqueaposicaoabriu;

   int horadomomento = horarioAtual.hour * 60 * 60;
   int minutodomomento = horarioAtual.min * 60;
   int segundosdomomento = horarioAtual.sec; //////////
   int horariodomomentoemsegundos = horadomomento + minutodomomento + segundosdomomento;

   double doubleminutosparafecharaposicaoemsegundos = INPtempoFechaPosicao * 60; //Variável Input que armazena os minutos para fechar a posição
   int minutosparafecharaposicaoemsegundos = (int)MathRound(doubleminutosparafecharaposicaoemsegundos);
   int horariodefecharaposicaoemsegundos = horariodeaberturadaposicaoemsegundos + minutosparafecharaposicaoemsegundos;

   if(horariodomomentoemsegundos >= horariodefecharaposicaoemsegundos)
     {
      return true;
     }
   else
     {
      return false;
     }
  }
Razão: