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

 
PolarSeaman:

È, l'ora attuale sottrarre l'ora di apertura del bar?

//+------------------------------------------------------------------+
//| Количество секунд, остающихся до закрытия свечи                  |
//+------------------------------------------------------------------+
long SecondsToCandleClose(const string symbol_name,const ENUM_TIMEFRAMES timeframe)
  {
   datetime array[];
   return(CopyTime(symbol_name,timeframe,0,1,array)==1 ? PeriodSeconds(timeframe)+array[0]-TimeCurrent() : 0);
  }
//+------------------------------------------------------------------+
 
PolarSeaman:

OnCalculate() può essere inserito in OnTimer()?

Non so come sincronizzare l'ora locale e l'ora corrente, non riesco a trovarlo nell'aiuto.

Questi sono due diversi gestori di eventi. OnCalculate() è attivata da un nuovo tick, OnTimer() è attivata dal tempo che è impostato quando si avvia il timer.

 
PolarSeaman:

come, non fare? solo questo minuto devi controllare, e dormire per 24 ore)

Allora non si può fare a meno di un timer.

 
Artyom Trishkin:

Grazie. ora dobbiamo farlo funzionare, come chi, in assenza di un tic.

        if(SecondsToCandleClose(Symbol(),0)<=60)
              {
               if(open[i]>close[i] && high[i]-low[i]>=100*Point)
                 {
                  BufferUP[i]=low[i]-distance*Point;
                 }
              }
 
PolarSeaman:

OnCalculate() può essere inserito in OnTimer()?

Non so come sincronizzare l'ora locale e l'ora corrente, non lo trovo nell'aiuto.

Al momento di un tick contiamo la differenza TimeCurrent()-TimeLocal()
- questo è il nostro offset rispetto al broker; se questo offset cambia in seguito, tutto deve essere ricalcolato
- all'inizio o alla comparsa della barra D1, ricalcolare tutti i tempi necessari, all'ora locale
- aspettiamo il tempo che abbiamo "contato" nel timer, allo stesso tempo controlliamo la non sincronizzazione, la disconnessione con il broker, reimpostiamo le frecce locali.

 
Ihor Herasko:

Questi sono due diversi gestori di eventi. OnCalculate() è attivata da un nuovo tick, OnTimer() è attivata dal tempo che è impostato quando il timer è avviato.

Grazie, capisco. L'indicatore può funzionare in OnTimer()?

 
PolarSeaman:

Grazie, ora dobbiamo farlo funzionare in assenza di una zecca.

Il codice dovrebbe essere inserito in OnTimer(). Ma, di nuovo, non può essere usato sulla storia. Quindi metti subito 0 al posto di i.

 
PolarSeaman:

Grazie, capisco. L'indicatore può funzionare in OnTimer()?

L'evento OnTimer() funziona nell'indicatore. Ma non dovreste mettere tutto il codice in OnTimer(). Ci dovrebbe essere solo la parte responsabile di tracciare il tempo rimasto fino alla fine della candela. Tutto il resto deve funzionare in OnCalculate().

 
Taras Slobodyanik:

nel momento in cui arriva il tic...

Bene... E se il segno di spunta non arriva, deve "iniziare" senza il segno di spunta.

 
Ihor Herasko:

Ma, di nuovo, non puoi usarlo in una storia.

Scusa, non capisco perché non puoi.