Guarda come scaricare robot di trading gratuitamente
Ci trovi su Telegram!
Unisciti alla nostra fan page
Script interessante?
Pubblica il link!
lasciare che altri lo valutino
Ti è piaciuto lo script? Provalo nel Terminale MetaTrader 5
Sistemi Esperti

Simple Code for Detect A "New Bar or New Candle " Received - sistema esperto per MetaTrader 5

Visualizzazioni:
47
Valutazioni:
(8)
Pubblicato:
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

Questo blocco di codice rileva una Nuova barra o una Nuova candela quando viene ricevuta.

Il principio di base del codice è molto semplice. Innanzitutto il codice memorizza l' ora della barra/candela precedente. (Poi aggiunge 60 secondi (pari a 1 minuto, ma si può aggiungere il tempo che si desidera) all'ora della barra precedente per ottenere il valore dell'ora di chiusura della barra/candela corrente.

Una volta,

Tempo corrente = valore del tempo di chiusura della barra/candela corrente. Ciò significa che è stata ricevuta una nuova barra/la barra corrente si è chiusa....

In questo codice il flag (la variabile di tipo bool 'NewBarRecived') evita la chiamata multipla di questo blocco di codice, il che significa che questo blocco di codice viene eseguito solo una volta per barra/candela. Il commento(); e il playsound("ok.wav"); sono utilizzati per verificare l'accuratezza del blocco di codice. È possibile rimuoverli se si desidera.

Il flag viene resettato a false una volta che l'ora corrente è superiore all'ora di chiusura della candela corrente per verificare l'arrivo della prossima barra. (Osservare i commenti per capire).

//+------------------------------------------------------------------+
//|Rilevamento della nuova barra.mq5 |
//|di H A T Lakmal |
//|https://t.me/Lakmal846 |
//+------------------------------------------------------------------+

bool NewBarRecived = false; // Falg per il controllo.

//+------------------------------------------------------------------+
//| Funzione di inizializzazione dell'esperto|
//+------------------------------------------------------------------+
int OnInit()
  {
//--- creare il timer
   EventSetTimer(60);

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Funzione di deinizializzazione dell'esperto|
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- distruggere il timer
   EventKillTimer();

  }


//+------------------------------------------------------------------+
//| Funzione tick dell'esperto|
//+------------------------------------------------------------------+
void OnTick()
  {
   datetime TimePreviousBar = iTime(_Symbol,PERIOD_M1,1);
   datetime TimeCurrentClose = TimePreviousBar + 60; // Ora di chiusura della barra corrente.
   datetime Time_Current = TimeCurrent();

   if(Time_Current == TimeCurrentClose && NewBarRecived == false)
     {
      PlaySound("ok.wav");   // Per la dichiarazione di lavoro di not.
      NewBarRecived = true; // Aggiornare il flag per evitare chiamate multiple.


      // Il vostro codice va qui ----- (Fare qualcosa)

     }
   else
      if(Time_Current > TimeCurrentClose)
        {
         NewBarRecived = false; // Riposa il flag per la prossima barra aperta.



         // Il vostro codice va qui ----- (Fare qualcosa)


        }


   Comment("\n" +  "\n" +  "Time Current Bar -: " + TimeToString(TimePreviousBar,TIME_DATE|TIME_MINUTES|TIME_SECONDS) +
           "\n" + "Time Current Close -: " +TimeToString(TimeCurrentClose,TIME_DATE|TIME_MINUTES|TIME_SECONDS) +
           "\n" + "Time Current -: " + TimeToString(Time_Current,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + 
           "\n" +"\n" + "A New Bar Recived -: " + NewBarRecived); 
          
           // Per i calcoli di controllo


  }
//+------------------------------------------------------------------+
//| Funzione timer|
//+------------------------------------------------------------------+
void OnTimer()
  {
//---

  }
//+------------------------------------------------------------------+
//| Funzione commerciale|
//+------------------------------------------------------------------+
void OnTrade()
  {
//---

  }
//+------------------------------------------------------------------+
//| Funzione ChartEvent|
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---

  }
//+------------------------------------------------------------------+

Tradotto dall’inglese da MetaQuotes Ltd.
Codice originale https://www.mql5.com/en/code/49018

Code Block for "Trailing Stop" based on current market price. (Ask / Bid) Code Block for "Trailing Stop" based on current market price. (Ask / Bid)

Questo blocco di codice esegue un loop di tutte le posizioni aperte ed esegue il trailing in base ai prezzi Ask e Bid.

StoDiv StoDiv

Un tipico indicatore di segnale semaforico che utilizza l'oscillatore stocastico e i frattali.

Correlazione di rango Ultra Spearman Correlazione di rango Ultra Spearman

Questo indicatore di tendenza del segnale si basa sulle letture dell'indicatore personalizzato Spearman Rank Correlation e sull'analisi della tendenza delle sue linee di segnale multiple.

UltraFatl UltraFatl

Questo indicatore di tendenza del segnale si basa sulle letture del filtro digitale Fatl e sull'analisi della direzione del trend delle sue linee di segnale multiple. La direzione della tendenza in questo indicatore è determinata dal colore dell'istogramma e la forza della tendenza dalla sua larghezza.