Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1474

 
MakarFX:

void()

Y en mi código, que publiqué aquí, ¿dónde debería insertarse este void()?
Gracias

 
ANDREY:

Y en mi código que publiqué aquí, ¿dónde debería insertarse este void()?
Gracias

no insertar - crear

borrar de OnTick()

y luego

//--- input parameters
input int      Points=30;
double LoU;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create timer
   EventSetTimer(60); // таймер в секундах
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---
   LoU=Bid;
   if(Low[0]<LoU) {LoU=Low[0];}
   SendOrder(); 
  }
//+------------------------------------------------------------------+
void SendOrder()
  {
   if ((Bid-Points*Point)>=LoU)
     {
      if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0)) LoU=Low[0];
     }
  }
 
MakarFX:

no insertar - crear

eliminar de OnTick()

y luego...

Estoy intrigado por esto..... ¿Y qué hace exactamente este void() con respecto a mi código y con respecto a mi propósito?

He entendido que los cálculos de OnTick() se pasan a otras funciones. Y allí donde aparece void(), ¿qué función realiza?
Gracias

 
ANDREY:

Estoy intrigado por esto..... ¿Y qué hace exactamente este void() en relación con mi código y en relación con mi objetivo?
Gracias

Funciona con un temporizador.

 
MakarFX:

Trabajar con un temporizador

¿El temporizador indica al programa la frecuencia con la que debe comprobar el código, en cada tic, o en cada minuto o vela horaria o diaria?
Si es así, ¿debo configurar el temporizador para que compruebe en cada vela de un minuto y tardará mucho menos en ejecutar el código durante las pruebas?

 
ANDREY:

¿El temporizador le dice al programa cada cuánto tiempo debe comprobar el código, en cada tic, o en cada minuto, hora o vela del día?

Lo he firmado.

EventSetTimer(60); // таймер в секундах
 
MakarFX:

Lo he firmado.

¿Por qué no en minutos?

¿O es en realidad en minutos? O el código se ejecutará a cada segundo, no a cada tick. Hay más ticks que segundos y a veces mucho más...
 
ANDREY:

¿Por qué no en minutos?

Andrei, decide lo que quieres. o cada tick o en segundos. ponlo a 86400 segundos...y será una vez al día

 
MakarFX:

no insertar - crear

eliminar de OnTick()

y luego

Este es su código

input int      Points=30;
double LoU,Pr;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create timer
   EventSetTimer(60); // таймер в секундах
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---
   LoU=Bid;
   if(Low[0]<LoU) {LoU=Low[0];}
   SendOrder(); 
  }
//+------------------------------------------------------------------+
void SendOrder()
  {
   if ((Bid-Points*Point)>=LoU)
     {
      if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0)) LoU=Low[0];
     }
  }

Pero, por alguna razón, no abrió ningún pedido.

 
MakarFX:

Andrei, decide qué quieres, si cada tick o en segundos. Pon 86400 segundos... y es una vez al día

Ya lo tengo. Eso es lo que quería oír, que se puede ajustar a cualquier intervalo.
Gracias.

Razón de la queja: