How do I reset reading the variables every day?

Para adicionar comentários, por favor Faça o login ou registrar
NILTON NUNES
181
NILTON NUNES  
I would like my E.A variables to start every day from scratch at the market opening, without using the data from the previous days. Can someone help me please?
claudio garini
43
claudio garini  

ola,

eu usaria as informacoes do  times and trades  

Flavio Jarabeck
135608
Flavio Jarabeck  
NILTON NUNES:
I would like my E.A variables to start every day from scratch at the market opening, without using the data from the previous days. Can someone help me please?

Você precisa detectar a mudança de dia.

Você pode usar o TimeCurrent(), que é o horário do servidor que você está operando, porém ele para de contabilizar o tempo quando o mercado está fechado, ou usar TimeLocal(), que é o relógio de sua máquina. Guarde em uma variável global (ou STATIC) e simplesmente compare o que você guardou com a nova data que você está lendo no momento do EA... Se mudou, zere tudo...

;)

Davi Silva
1269
Davi Silva  
NILTON NUNES:
I would like my E.A variables to start every day from scratch at the market opening, without using the data from the previous days. Can someone help me please?

Bora 


Segue meu metodo


nota: eu chamei de um trade por dia pois uso dessa forma mas vc pode renomear a sua vontade


//Global
static bool ativarUmTradePorDia ; // variavel que ativa um trade por dia

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
        if(ativarUmTradePorDia ) // se ativar
        {

        //aqui voce reseta suas variaveis

        //depois
        ativarUmTradePorDia =false; // depois de resetar as variaveis vc deixa ativarUmTradePorDia false para somente repetir o processo no outro dia
        }
  }

//Funcoes

void umTradePorDia()
  {
  //Validacao para um trade por dia

   static int dayOfTheWeekVS = 0; //statico pego o dia da semana

   if(dayOfTheWeekVS!= DayOfWeek()) //se dia da variavel diferente do dia da semana
     {
      dayOfTheWeekVS = DayOfWeek(); // dia da variavel igual da semana
      ativarUmTradePorDia = true; // variavel ativadora
     }
  }

int DayOfWeek()
  {
   //captura dia da semana atual
   MqlDateTime tm;
   TimeCurrent(tm);
   return(tm.day_of_week);
  }
Jonathan Pereira
1059
Jonathan Pereira  
Davi Silva:

Bora 


Segue meu metodo


nota: eu chamei de um trade por dia pois uso dessa forma mas vc pode renomear a sua vontade


Eu faço assim e funciona.


E antes que o pessoal fale o que já sei, sim está ruim esse código, poderia sim ser simplificado, isso é um dos primeiros desenvolvimentos que fiz lá por volta de 2016 e depois disso melhorei muito os códigos. =D
Apenas peguei uma imagem antiga que tinha em meu drive, que por curiosidade mandei para um amigo com a mesma dúvida!

Abraços!


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