Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1474

 
MakarFX:

vuoto()

E nel mio codice, che ho postato qui, dove dovrebbe essere inserito questo void()?
Grazie

 
ANDREY:

E nel mio codice che ho postato qui, dove dovrebbe essere inserito questo void()?
Grazie

non inserire - creare

cancellare da OnTick()

e poi

//--- 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:

non inserire - creare

rimuovere da OnTick()

e poi...

Sono incuriosito da questo..... E cosa fa esattamente questa void() rispetto al mio codice e rispetto al mio scopo?

Ho capito che i calcoli di OnTick() vengono passati in altre funzioni. E ovunque si verifichi void(), quale funzione esegue?
Grazie

 
ANDREY:

Sono incuriosito da questo..... E cosa fa esattamente questa void() in relazione al mio codice e in relazione al mio obiettivo?
Grazie

Funziona con un timer.

 
MakarFX:

Lavorare con un timer

Il timer dice al programma quanto spesso controllare il codice, su ogni tick, o su ogni minuto o ora o candela giornaliera?
Se è così, dovrei impostare il timer per controllare ogni minuto la candela e ci vorrà molto meno tempo per eseguire il codice durante il test?

 
ANDREY:

Il timer dice al programma quanto spesso controllare il codice, ad ogni tick, o ad ogni minuto o ora o candela del giorno?

L'ho firmato.

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

L'ho firmato.

Perché non in pochi minuti?

O è effettivamente in minuti? O il codice sarà eseguito ad ogni secondo, non ad ogni tick. Ci sono più tic che secondi e a volte molto di più...
 
ANDREY:

Perché non in pochi minuti?

Andrei, decidi cosa vuoi. o ogni tick o in secondi. impostalo a 86400 secondi...e sarà una volta al giorno

 
MakarFX:

non inserire - creare

rimuovere da OnTick()

e poi

Ecco il tuo codice

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];
     }
  }

Ma non ha aperto nessun ordine per qualche motivo.

 
MakarFX:

Andrei, decidi cosa vuoi, o ogni tick o in secondi. Metti 86400 secondi...ed è una volta al giorno

Ora ce l'ho. Questo è quello che volevo sentire, che si può impostare su qualsiasi intervallo.
Grazie.