Comandos básicos para abrir ordem agendada

Para adicionar comentários, por favor Faça o login ou registrar
webdum
7
webdum  
Boa noite pessoal, estou bem no início dos meus estudos, alguém poderia me mostrar o código para agendar entradas, algo como abrir uma ordem por horário

 ("USD/JPY, CALL, 12:00")

Por favor poderia me mostrar o código ou onde encontro essa função, estou no começo então qualquer coisa já é de ajuda


Obrigada, Carolina 
Joscelino
912
Joscelino  
webdum:
Boa noite pessoal, estou bem no início dos meus estudos, alguém poderia me mostrar o código para agendar entradas, algo como abrir uma ordem por horário

 ("USD/JPY, CALL, 12:00")

Por favor poderia me mostrar o código ou onde encontro essa função, estou no começo então qualquer coisa já é de ajuda


Obrigada, Carolina 

Ola Carolina,

Não ha função nativa para isso. Você terá de programar.

Veja exemplo abaixo. 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Limitar robô por horário e/ou numero de operções.

Willian De Caldas Leite, 2018.12.27 00:33

Se te ajudar eu uso esse padrao nos meus EA.


input string inicio="10:30"; //Horario de inicio(entradas);
input string termino="17:30"; //Horario de termino(entradas);
input string fechamento="17:45"; //Horario de fechamento(entradas);

MqlDateTime horario_inicio,horario_termino,horario_fechamento,horario_atual; 

int OnInit()
  {
//---
   TimeToStruct(StringToTime(inicio),horario_inicio);         //+-------------------------------------+
   TimeToStruct(StringToTime(termino),horario_termino);       //| Conversão das variaveis para mql    |
   TimeToStruct(StringToTime(fechamento),horario_fechamento); //+-------------------------------------+
   
//verificação de erros nas entradas de horario
   if(horario_inicio.hour>horario_termino.hour || (horario_inicio.hour==horario_termino.hour && horario_inicio.min>horario_termino.min))
     {
      printf ( "Parametos de horarios invalidos!" );
      return INIT_FAILED;
     }
     
    if(horario_termino.hour>horario_fechamento.hour || (horario_termino.hour==horario_fechamento.hour && horario_termino.min>horario_fechamento.min))
     {
      printf("Parametos de horarios invalidos!");
      return INIT_FAILED;
      }



bool HorarioEntrada()
      {
       TimeToStruct(TimeCurrent(),horario_atual);

      if(horario_atual.hour >= horario_inicio.hour && horario_atual.hour <= horario_termino.hour)
   {
      // Hora atual igual a de início
      if(horario_atual.hour == horario_inicio.hour)
         // Se minuto atual maior ou igual ao de início => está no horário de entradas
         if(horario_atual.min >= horario_inicio.min)
            return true;
         // Do contrário não está no horário de entradas
         else
            return false;
      
      // Hora atual igual a de término
      if(horario_atual.hour == horario_termino.hour)
         // Se minuto atual menor ou igual ao de término => está no horário de entradas
         if(horario_atual.min <= horario_termino.min)
            return true;
         // Do contrário não está no horário de entradas
         else
            return false;
      
      // Hora atual maior que a de início e menor que a de término
      return true;
   }
   
   // Hora fora do horário de entradas
   return false;
}


bool HorarioFechamento()
     {
      TimeToStruct(TimeCurrent(),horario_atual);
      
     
     // Hora dentro do horário de fechamento
   if(horario_atual.hour >= horario_fechamento.hour)
   {
      // Hora atual igual a de fechamento
      if(horario_atual.hour == horario_fechamento.hour)
         // Se minuto atual maior ou igual ao de fechamento => está no horário de fechamento
         if(horario_atual.min >= horario_fechamento.min)
            return true;
         // Do contrário não está no horário de fechamento
         else
            return false;
      
      // Hora atual maior que a de fechamento
      return true;
   }
   
   // Hora fora do horário de fechamento
   return false;
}



Para adicionar comentários, por favor Faça o login ou registrar