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
Indicatori

Periodo del ciclo - indicatore per MetaTrader 5

Pubblicati da::
Nikolay Kositsin
Visualizzazioni:
37
Valutazioni:
(19)
Pubblicato:
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

Il vero autore:

Witold Wozniak

Lo scopo di questo indicatore è quello di misurare la periodicità del processo di variazione del prezzo di un'attività finanziaria.

L'indicatore memorizza nel suo buffer i valori dell'attuale ciclo di mercato, che non sono mai costanti. Questo indicatore è stato progettato per essere utilizzato principalmente negli oscillatori per adattarli al cambiamento dei cicli di mercato e trasformarli in oscillatori adattivi.

L'indicatore si basa sull'articolo "Using The Fisher Transform" di John Ehlers, pubblicato nel novembre 2002 sulla rivista "Technical Analysis Of Stock & Commodities".

Indicatore del periodo del ciclo

Per utilizzare questo indicatore nel codice di un altro indicatore (ad esempio, l'oscillatore RVI) è necessario dichiarare la variabile CyclePeriod a livello globale:

//---- dichiarazione delle variabili intere per le maniglie degli indicatori
int CP_Handle;

Dopodiché, nel blocco di inizializzazione dell'indicatore RVI si dovrà ottenere l'handle dell'indicatore CyclePeriod:

//---- ottenere la gestione dell'indicatore CyclePeriod
   CP_Handle=iCustom(NULL,0,"CyclePeriod",Alpha);
   if(CP_Handle==INVALID_HANDLE)
     {
      Print("Impossibile ottenere l'handle dell'indicatore CyclePeriod".);
      return(1);
     }

Ora esiste una nuova variabile Alpha, che è il parametro di ingresso dell'indicatore utilizzato e rappresenta il coefficiente di media del periodo. Questa variabile deve diventare una variabile di ingresso dell'indicatore che si sta sviluppando.

//+----------------------------------------------+
//|| Parametri di ingresso dell'indicatore |
//+----------------------------------------------+
input double Alpha=0.07; // Coefficiente di mediazione dell'indicatore 

Ma la precedente variabile di input Lunghezza deve essere rimossa dal numero di parametri di input, rendendola una variabile locale all'interno della funzione OnCalculate().

Per il calcolo della media, l'indicatore utilizza array la cui dimensione è fissata dal valore del parametro Length:

//---- Allocazione della memoria per gli array di variabili 
   ArrayResize(Count,Length);
   ArrayResize(Value1,Length);
   ArrayResize(Value2,Length);

Ora il valore di questo parametro cambia, quindi è meglio che le dimensioni di questi array non siano inferiori al valore massimo previsto di questa variabile.

Dopo aver analizzato i grafici dell'indicatore, possiamo assicurarci che questo valore non superi il centinaio, per cui le dimensioni degli array sono esattamente queste:

//---- Allocazione della memoria per gli array di variabili 
   ArrayResize(Count,MAXPERIOD);
   ArrayResize(Value1,MAXPERIOD);
   ArrayResize(Value2,MAXPERIOD);

E poi già nel blocco OnCalculate() è necessario ottenere i valori del periodo per la barra corrente dal buffer dell'indicatore personalizzato CyclePeriod e utilizzarli al posto del valore del precedente parametro di input Length.

//---- ciclo di calcolo dell'indicatore principale
   for(bar=first; bar<rates_total && !IsStopped(); bar++)
     {
      //---- copiare i dati appena apparsi nell'array
      if(CopyBuffer(CP_Handle,0,rates_total-1-bar,4,period)<=0) return(RESET);

      Length=int(MathFloor((4.0*period[0]+3.0*period[1]+2.0*period[2]+period[3])/20.0));
      if(bar<Length) Length=bar; // troncare la media a un numero valido di barre

In questo caso, gli ultimi quattro valori vengono prelevati dal buffer dell'indicatore CyclePeriod e sottoposti a media ponderata lineare, dopodiché il valore ottenuto viene utilizzato come periodo di mediazione Length. Infine, occorre modificare leggermente la riga alla fine del codice dell'indicatore:

      if(bar<rates_total-1) Recount_ArrayZeroPos(Count,MAXPERIOD);

Il risultato è un oscillatore RVI adattivo:

Fig.2 Indicatori RVI e RVI adattativo

Tradotto dal russo da MetaQuotes Ltd.
Codice originale https://www.mql5.com/ru/code/562

Proiezioni giornaliere di portata Pieno Proiezioni giornaliere di portata Pieno

Prevedere gli intervalli di variazione della prossima candela giornaliera per tutte le barre del grafico corrente.

Logging V2 for both MQL4 and MQL5 Logging V2 for both MQL4 and MQL5

La classe CDebugLogger è un'utility di log flessibile e completa, progettata per l'uso in ambienti MQL4/5. Consente agli sviluppatori di registrare i messaggi a vari livelli di importanza (INFO, WARNING, ERROR, DEBUG) con la possibilità di includere timestamp, firme di funzioni, nomi di file e numeri di riga nelle voci di log. La classe supporta la registrazione sia nella console che nei file, con la possibilità di salvare i log in una cartella comune e in formato CSV. Inoltre, offre la funzionalità di silenziare i log in base a parole chiave specifiche, garantendo che le informazioni sensibili non vengano registrate. Questa classe è ideale per gli sviluppatori che desiderano implementare solidi meccanismi di registrazione nelle loro applicazioni MQL4/5, con caratteristiche personalizzabili che soddisfano un'ampia gamma di esigenze di debug e monitoraggio.

Oscillatore CG adattivo Oscillatore CG adattivo

L'Adaptive CG Oscillator è un oscillatore CG che si adatta ai cicli di mercato in continua evoluzione di un'attività finanziaria reale.

PTB PTB

Descrizione dell'indicatore: PTB.mq5 Panoramica: L'indicatore PTB.mq5 per MetaTrader 5 calcola i prezzi alti e bassi a breve e lungo termine, insieme ai livelli di ritracciamento di Fibonacci basati su questi estremi. Caratteristiche: Alti e bassi a breve termine: identifica il supporto e la resistenza immediati su una lunghezza breve definita dall'utente. Alti e bassi a lungo termine: analizza le tendenze di mercato più ampie su un periodo più lungo. Livelli di Fibonacci: Traccia i principali livelli di ritracciamento (23,6%, 38,2%, 50%, 61,8%, 78,6%) per individuare potenziali punti di inversione. Parametri di input: shortLength: Numero di candele per il calcolo a breve termine. longLength: Numero di candele per il calcolo a lungo termine. Rappresentazione visiva: Colori e larghezze distinte per ogni linea per differenziare i livelli alto/basso e Fibonacci. Utilizzo: Aiuta i trader a identificare i punti di entrata/uscita e a monitorare le tendenze del mercato sulla base dei livelli di prezzo storici.