
Impara come progettare un sistema di trading tramite Chaikin Oscillator
Introduzione
Ecco un nuovo articolo che completa la nostra serie sull'imparare come progettare un sistema di trading con gli indicatori tecnici più popolari perché impareremo come farlo utilizzando un nuovo indicatore tecnico che è il Chaikin Oscillator.
Impareremo a conoscere questo indicatore tecnico nel dettaglio attraverso i seguenti argomenti:
- Definizione di Chaikin Oscillator
- Strategia con Chaikin Oscillator
- Schema della strategia Chaikin Oscillator
- Sistema di trading Chaikin Oscillator
- Conclusioni
Attraverso gli argomenti precedenti, impareremo passo-passo come creare e progettare un sistema di trading tramite Chaikin Oscillator. Impareremo cos'è l'indicatore Chaikin Oscillator, cosa misura, come possiamo calcolarlo manualmente per conoscere il concetto principale dietro di esso e tutto ciò lo apprendiamo attraverso l'argomento della definizione di Chaikin Oscillator. Impariamo come possiamo utilizzare questo indicatore attraverso semplici strategie incentrate sul concetto di base dietro di esso attraverso l'argomento della strategia con Chaikin Oscillator. Successivamente, creeremo un progetto passo-passo per ciascuna strategia menzionata per aiutarci a creare un sistema di trading per ognuna di loro senza problemi attraverso l'argomento dello schema della strategia Chaikin Oscillator. Dopodiché, creeremo un sistema di trading per ciascuna strategia menzionata per eseguirla e ottenere segnali automaticamente tramite MetaTrader 5 e questo avverrà attraverso l'argomento del sistema di trading Chaikin Oscillator.
Useremo MQL5 (MetaQuotes Language) per scrivere il codice della strategia di trading per eseguirla nella MetaTrader 5 per darci segnali automaticamente. Se vuoi sapere come scaricare e utilizzare MetaTrader 5 per utilizzare MQL5, puoi leggere l'argomento Scrivere MQL5 in MetaEditor da un articolo precedente.
Ora, iniziamo il nostro articolo con i nostri argomenti.
Definizione di Chaikin Oscillator
In questa parte, impareremo nel dettaglio l'indicatore Chaikin Oscillator come impareremo che cosa ci permetterà di capire il concetto di base dietro l'indicatore. L'indicatore Chaikin Oscillator è un indicatore di momentum, è stato creato da Marc Chaikin ed è molto chiaro che l'indicatore prende il nome dal suo creatore. Misura la spinta della linea di accumulazione distribuzione utilizzando la formula della moving average convergence divergence (MACD). Misurando questa spinta possiamo ottenere informazioni sui cambiamenti direzionali nella linea di accumulazione distribuzione.
Se vogliamo calcolare manualmente l'oscillatore Chaikin per comprendere meglio il concetto alla base, possiamo farlo attraverso i seguenti passaggi:
- Calcolo del moltiplicatore del flusso di denaro = ((chiusura - minimo) - (massimo - chiusura))/(massimo - minimo)
- Calcolo del volume del flusso di denaro = moltiplicatore del flusso di denaro * volume
- Calcolo della Linea di Accumulazione Distribuzione (ADL) = ADL precedente + volume del flusso di denaro attuale
- Chaikin Oscillator = (EMA a 3 periodi di ADL) - (EMA a 10 periodi di ADL)
Al giorno d'oggi, non abbiamo bisogno di calcolare manualmente l'indicatore in quanto puoi semplicemente inserirlo nel grafico in quanto è integrato in MetaTrader 5. Tutto quello che devi fare è sceglierlo tra gli indicatori disponibili, ma qui impariamo come possiamo farlo per apprendere il concetto principale alla base.
Possiamo inserirlo nel grafico facendo clic sulla scheda Inserisci in MetaTrader 5 --> Indicatori --> Oscillatori --> Chaikin Oscillator. L'immagine seguente è per questi passaggi:
Dopo aver scelto l'indicatore Chaikin Oscillator, troveremo la finestra dei parametri dell'indicatore uguale alla seguente:
1- Per Determinare il tipo di volume.
2- Per determinare il periodo di media mobile veloce.
3- Per determinare il periodo di media mobile lenta.
4- Per determinare il tipo di media mobile.
5- Per determinare il colore della linea dell'indicatore.
6- Per determinare il tipo di linea dell'indicatore.
7- Per determinare lo spessore della linea dell'indicatore.
Dopo aver determinato i parametri precedenti e premuto "OK", troveremo che l'indicatore è inserito nel grafico come il seguente:
Come possiamo vedere, l'indicatore è inserito nella parte inferiore dell'immagine precedente e mostra che la linea dell'indicatore sta oscillando sopra e sotto il livello zero.
Strategia con Chaikin Oscillator
In questo argomento impareremo semplici strategie per utilizzare l'indicatore Chaikin Oscillator basate sul suo concetto principale. Sarà un buon approccio quando pensiamo a come possiamo utilizzare un altro strumento tecnico per migliorare e dare più peso alla nostra decisione e questa è una delle caratteristiche dell'utilizzo dell'analisi tecnica. Quello che ho bisogno di confermare anche qui è quello di assicurarsi di testare qualsiasi strategia prima di usarla sul proprio conto reale per essere sicuri che sarà adatta, soprattutto se avete imparato attraverso materiale educativo come questo.
- Strategia uno - Chaikin Oscillator Crossover:
Secondo questa strategia, dobbiamo ottenere segnali di acquisto o vendita basati sull’attraversamento del valore corrente di Chaikin e il livello zero. Quando il valore corrente di Chaikin diventa sopra il livello zero, questo sarà un segnale di acquisto. Nell'altro scenario, quando il valore attuale di Chaikin scende al di sotto del livello zero, questo sarà un segnale di vendita.
Semplicemente,
Attuale valore Chaikin > livello zero --> segnale di acquisto.
Attuale valore Chaikin < livello zero --> segnale di vendita.
- Strategia due - Movimento Chaikin Oscillator:
Secondo questa strategia, dobbiamo ottenere un segnale con il movimento della curva dell'indicatore di Chaikin basato sugli ultimi due valori. Quando il valore attuale di Chaikin è maggiore del valore precedente, questo sarà un segnale di movimento ascendente. Viceversa, quando il valore corrente di Chaikin è inferiore al valore precedente, questo sarà un segnale di movimento discendente.
Semplice,
Valore attuale Chaikin > valore precedente Chaikin --> movimento ascendente.
Valore attuale Chaikin < valore precedente Chaikin --> movimento discendente.
- Strategia tre - Chaikin Oscillator - Trend rialzista:
Sulla base di questa strategia, durante il trend rialzista, dobbiamo sapere se c'è un forte movimento rialzista o se c'è una divergenza ribassista basata sulla valutazione dei valori massimi attuali e precedenti e dei valori Chaikin attuali e precedenti. Se il massimo attuale è maggiore del massimo precedente e il Chaikin attuale è maggiore del precedente valore Chaikin, questo sarà un segnale di forte movimento al rialzo durante il trend rialzista. Se il massimo attuale è maggiore del massimo precedente e il Chaikin attuale è inferiore al precedente valore Chaikin, questo sarà un segnale di divergenza ribassista.
Il massimo attuale > del massimo precedente e il Chaikin attuale > del Chaikin precedente --> Forte movimento durante il trend rialzista.
Il massimo attuale > del massimo precedente e il Chaikin attuale < del Chaikin precedente --> Divergenza ribassista.
- Strategia quattro - Chaikin Oscillator - Trend ribassista:
Sulla base di questa strategia, durante il trend ribassista, dobbiamo sapere se c'è un forte movimento al ribasso o se c'è una divergenza rialzista basata sulla valutazione dei valori minimi attuali e precedenti e dei valori Chaikin attuali e precedenti. Se il minimo attuale è inferiore al minimo precedente e l'attuale valore Chaikin è inferiore al precedente, questo sarà un forte movimento al ribasso durante il trend ribassista. Se l'attuale minimo è inferiore al precedente e l'attuale Chaikin è maggiore del precedente, questo sarà un segnale di divergenza rialzista.
Il minimo attuale < del minimo precedente e il Chaikin attuale < del precedente Chaikin --> Forte movimento al ribasso durante il trend ribassista.
L'attuale minimo < del precedente minimo e l'attuale Chaikin > del precedente Chaikin --> Divergenza rialzista.
Schema della strategia Chaikin Oscillator
In questo argomento, progetteremo uno schema passo-passo per aiutarci a creare il nostro sistema di trading per ogni strategia menzionata e credo che questo passaggio sia molto importante in quanto organizzerà le nostre idee in modo da raggiungere il nostro obiettivo. Ora iniziamo a farlo.
- Strategia uno - Chaikin Oscillator Crossover:
Secondo questa strategia, dobbiamo creare un sistema di trading che restituisca uno specifico commento sul grafico una volta soddisfatta una specifica condizione. Abbiamo bisogno che il sistema di trading controlli il valore dell'oscillatore Chaikin ad ogni tick e quando questo valore supera il livello zero, abbiamo bisogno che il sistema di trading faccia comparire sul grafico un commento con un segnale di acquisto e l'attuale valore Chaikin ciascuno in una riga separata . Nell'altro scenario, abbiamo bisogno che il sistema di trading restituisca un commento con un segnale di vendita e l'attuale valore Chaikin, ciascuno in una riga separata quando il valore di Chaikin scende al di sotto del livello zero.
Quella che segue è un’immagine di questo progetto.
- Strategia due - Movimento Chaikin Oscillator:
Sulla base di questa strategia, abbiamo bisogno che il sistema di trading controlli due valori e decida quale sia uno più grande dell'altro ad ogni tick. Questi due valori sono l'oscillatore Chaikin corrente e precedente. Quando il valore attuale è maggiore del precedente, abbiamo bisogno che il sistema di trading restituisca un commento con: Chaikin Oscillator in aumento, l'attuale Chaikin Val, il precedente Chaikin Val ognuno in una linea separata. Quando il valore attuale è inferiore al precedente, abbiamo bisogno che il sistema di trading restituisca un commento con: Chaikin Oscillator è discendente, attuale Chaikin Val, precedente Chaikin Val.
Quella che segue è un'immagine di uno schema di questa strategia.
- Strategia tre - Chaikin Oscillator - Trend rialzista:
Secondo questa strategia, abbiamo bisogno che il sistema di trading controlli quattro valori ogni tick e sono il massimo attuale, il massimo precedente, il Chaikin attuale e il Chaikin precedente. Abbiamo bisogno che il sistema di trading dopo aver verificato questi valori decida quale sia uno maggiore dell'altro tra i massimi attuali e precedenti e tra i valori Chaikin attuali e precedenti. Quando il massimo attuale è maggiore del massimo precedente e il Chaikin attuale è maggiore del valore Chaikin precedente, è necessario che il sistema di trading restituisca un commento con forte movimento al rialzo durante il trend rialzista, valore massimo attuale, valore massimo precedente, valore Chaikin attuale e valore Chaikin precedente, ogni valore in una riga separata. Nell'altro scenario, quando il massimo attuale è maggiore del massimo precedente e l'attuale Chaikin è inferiore al precedente valore Chaikin, abbiamo bisogno che il sistema di trading restituisca un commento sul grafico con divergenza ribassista, valore massimo attuale, valore massimo precedente, valore Chaikin attuale, valore Chaikin precedente, ogni valore in una riga separata.
Quella che segue è un'immagine dello schema di questa strategia.
- Strategia quattro - Chaikin Oscillator - Trend ribassista:
Sulla base di questa strategia, dobbiamo creare un sistema di trading che controlli continuamente quattro valori ogni tick e questi valori sono il valore minimo corrente, il valore minimo precedente, il valore chaikin corrente e il valore chaikin precedente e quindi decida se il valore minimo corrente è inferiore al valore minimo precedente e l'attuale valore chaikin è inferiore al precedente valore chaikin, abbiamo bisogno che il sistema di trading restituisca un commento sul grafico con forte movimento al ribasso, valore minimo corrente, valore minimo precedente, valore Chaikin corrente e valore Chaikin precedente, ogni valore in una riga separata. L'altro scenario per rilevare la divergenza, quando l'attuale valore minimo è inferiore al precedente valore minimo e l'attuale valore chaikin è maggiore del precedente valore chaikin, abbiamo bisogno che il sistema di trading restituisca un commento con divergenza rialzista, valore minimo corrente, valore minimo precedente, valore Chaikin corrente e valore Chaikin precedente ogni valore in una riga separata.
L'immagine seguente è per questo schema.
ChaikinOscillator è in aumento
Sistema di trading Chaikin Oscillator
In questa parte impareremo come trasformare le strategie menzionate in un sistema di trading che funzioni automaticamente programmando o codificando con MQL5. Quindi, ora inizieremo a codificare un semplice sistema di trading per far apparire automaticamente il valore corrente dell'oscillatore Chaikin sul grafico come commento e useremo questo sistema di trading come base per le nostre strategie menzionate. Quanto segue è per la creazione di questo sistema di trading.
- Creazione di un array per l'oscillatore Chaikin utilizzando la funzione "double" che rappresenta i valori frazionari. Double è uno dei tipi a virgola mobile che è uno dei tipi di dati.
double chaiArray[];
- Ordinamento di questo array creato dai dati correnti e lo faremo utilizzando la funzione "ArraySetAsSeries" che restituisce un valore booleano. I parametri di "ArraySetAsSeries" sono:
- Un array[]
- Flag
ArraySetAsSeries(chaiArray,true);
- Creazione di una variabile intera chaiDef per definire l'oscillatore Chaikin utilizzando la funzione "iChaikin". Questa funzione restituisce l'handle dell'indicatore Chaikin Oscillator. I parametri di questa funzione sono:
- symbol, per impostare il nome del simbolo, specificheremo "_Symbol" in modo da essere applicato al grafico corrente.
- period, per impostare il time frame, specificheremo "_Period" in modo da essere applicato al time frame corrente.
- fast_ma_period, per impostare la lunghezza della media mobile veloce, imposteremo 3 come valore predefinito.
- slow_ma_period, per impostare la lunghezza della media mobile lenta, imposteremo 10 come valore predefinito.
- ma_method, per determinare il tipo di media mobile, useremo la media mobile esponenziale (MODE_EMA).
- volume_applicato, per determinare il tipo di volume, utilizzeremo il volume tick (VOLUME_TICK).
int chaiDef = iChaikin(_Symbol,_Period,3,10,MODE_EMA,VOLUME_TICK);
- Copia dei dati sui prezzi nell'array chaiArray utilizzando la funzione "CopyBuffer" che restituisce il conteggio dei dati copiati o -1 in caso di errore. I parametri di questa funzione sono:
- indicator_handle, specificheremo la definizione dell'indicatore "chaiDef".
- buffer_num, per impostare il numero di buffer dell'indicatore, imposteremo 0.
- start_pos, per impostare la posizione iniziale, imposteremo 0.
- count, per impostare la quantità da copiare, imposteremo 3.
- buffer[], per determinare l'array di destinazione in cui copiare, determineremo "chaiArray".
CopyBuffer(chaiDef,0,0,3,chaiArray);
- Ottenere il valore dell'oscillatore Chaikin utilizzando la funzione "NormalizeDouble" un tipo double dopo aver creato una variabile double "chaiVal". I parametri di "Normalizedouble" sono:
- value, per determinare il numero normalizzato, specificheremo "chaiArray[0]", useremo 0 per restituire il valore corrente
- cifre, per determinare il numero di cifre dopo la virgola, determineremo 6.
int chaiVal = NormalizeDouble(chaiArray[0],6);
- Utilizzo della funzione di commento per restituire il valore corrente dell'oscillatore Chaikin come commento sul grafico.
Comment("Chaikin Oscillator Value is ",chaiVal);
Quello che segue è il codice completo per creare questo semplice sistema di trading.
//+------------------------------------------------------------------+ //| Simple Chaikin Oscillator.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ void OnTick() { double chaiArray[]; ArraySetAsSeries(chaiArray,true); int chaiDef = iChaikin(_Symbol,_Period,3,10,MODE_EMA,VOLUME_TICK); CopyBuffer(chaiDef,0,0,3,chaiArray); int chaiVal = NormalizeDouble(chaiArray[0],6); Comment("Chaikin Oscillator Value is ",chaiVal); } //+------------------------------------------------------------------+
Dopo aver compilato questo codice, possiamo trovare il file di questo programma nella finestra del navigatore nella cartella Expert Advisors come il seguente.
Quando avremo bisogno di eseguire questo expert advisor, lo trascineremo e lo rilasceremo sul grafico dopodiché la seguente finestra del programma apparirà uguale alla seguente.
Dopo aver premuto "OK", l’expert advisor verrà allegato al grafico come il seguente.
Come possiamo vedere nell'angolo in alto a destra del grafico precedente, l'expert è allegato al grafico. Quindi, possiamo trovare i segnali generati come i seguenti.
Come possiamo vedere nell'esempio precedente dal test, nell'angolo in alto a sinistra del grafico abbiamo un commento con il valore corrente dell'oscillatore Chaikin. Se vogliamo assicurarci che il valore generato sia lo stesso valore generato dall'indicatore integrato nella MetaTrader5, possiamo inserire l'indicatore integrato con i parametri dopo aver allegato l'expert advisor e troveremo i valori di entrambi uguali al seguente.
Come possiamo vedere nell'angolo destro del grafico l'expert advisor è allegato al grafico e nell'angolo sinistro possiamo trovare il valore generato secondo l'esperto che è uguale al valore dell'indicatore inserito nella finestra sottostante .
- Strategia uno - Chaikin Oscillator Crossover:
Di seguito è riportato il codice completo per creare un sistema di trading basato su questa strategia.
//+------------------------------------------------------------------+ //| Chaikin Oscillator Crossover.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ void OnTick() { double chaiArray[]; ArraySetAsSeries(chaiArray,true); int chaiDef = iChaikin(_Symbol,_Period,3,10,MODE_EMA,VOLUME_TICK); CopyBuffer(chaiDef,0,0,3,chaiArray); int chaiVal = NormalizeDouble(chaiArray[0],6); if(chaiVal>0) { Comment("Buy signal","\n","Chaikin Oscillator Value is ",chaiVal); } if(chaiVal<0) { Comment("Sell signal","\n","Chaikin Oscillator Value is ",chaiVal); } } //+------------------------------------------------------------------+
Differenze in questo codice:
Condizioni Chaikin Oscillator Crossover:
In caso di segnale di acquisto,
if(chaiVal>0) { Comment("Buy signal","\n","Chaikin Oscillator Value is ",chaiVal); }
In caso di segnale di vendita,
if(chaiVal<0) { Comment("Sell signal","\n","Chaikin Oscillator Value is ",chaiVal); }
Dopo aver compilato questo codice, troveremo il file dell'Expert Advisor nella finestra del navigatore uguale al seguente.
Dopo averlo trascinato e rilasciato sul grafico, la finestra dell'expert apparirà come segue:
Dopo aver premuto "OK", l'esperto verrà allegato al grafico come segue:
Come possiamo vedere nell'angolo in alto a destra l'esperto Chaikin Oscillator Crossover è allegato al grafico e ora possiamo vedere i segnali generati secondo questa strategia. Quanto segue è un esempio.
In caso di segnale di acquisto,
Come possiamo vedere nell'angolo in alto a sinistra del grafico, il segnale di acquisto è stato generato quando il valore dell'oscillatore Chaikin ha superato il livello zero.
In caso di segnale di vendita,
Come possiamo vedere nell'angolo in alto a sinistra del grafico, il segnale di vendita è stato generato quando il valore dell'oscillatore Chaikin ha superato il livello zero.
- Strategia due - Movimento Chaikin Oscillator:
Di seguito è riportato il codice completo per creare un sistema di trading basato su questa strategia.
//+------------------------------------------------------------------+ //| Chaikin Oscillator Movement.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ void OnTick() { double chaiArray[]; ArraySetAsSeries(chaiArray,true); int chaiDef = iChaikin(_Symbol,_Period,3,10,MODE_EMA,VOLUME_TICK); CopyBuffer(chaiDef,0,0,3,chaiArray); int chaiCurrentVal = NormalizeDouble(chaiArray[0],6); int chaiPrevVal = NormalizeDouble(chaiArray[1],6); if(chaiCurrentVal>chaiPrevVal) { Comment("Chaikin Oscillator is rising","\n", "Chaikin Oscillator Cuurent Value is ",chaiCurrentVal,"\n", "Chaikin Oscillator Previous Value is ",chaiPrevVal); } if(chaiCurrentVal<chaiPrevVal) { Comment("Chaikin Oscillator is declining","\n", "Chaikin Oscillator Cuurent Value is ",chaiCurrentVal,"\n", "Chaikin Oscillator Previous Value is ",chaiPrevVal); } } //+------------------------------------------------------------------+
Le differenze in questo codice sono le seguenti:
Definizione dei valori attuali e precedenti dell'oscillatore Chaikin.
int chaiCurrentVal = NormalizeDouble(chaiArray[0],6); int chaiPrevVal = NormalizeDouble(chaiArray[1],6);
Condizioni della strategia.
In caso di aumento,
if(chaiCurrentVal>chaiPrevVal) { Comment("Chaikin Oscillator is rising","\n", "Chaikin Oscillator Current Value is ",chaiCurrentVal,"\n", "Chaikin Oscillator Previous Value is ",chaiPrevVal); }
In caso di calo,
if(chaiCurrentVal<chaiPrevVal) { Comment("Chaikin Oscillator is declining","\n", "Chaikin Oscillator Current Value is ",chaiCurrentVal,"\n", "Chaikin Oscillator Previous Value is ",chaiPrevVal); }
Dopo aver compilato questo codice lo ritroveremo nella finestra del navigatore come al seguente:
Dopo aver trascinato e rilasciato l'expert sul grafico, troveremo la finestra del programma uguale a questa:
Dopo aver premuto "OK", lo troveremo allegato al grafico come il seguente:
I seguenti sono esempi di segnali generati basati su questa strategia.
In caso di aumento con i dati correnti:
In caso di aumento con dati precedenti,
Come possiamo vedere nei grafici precedenti nell'angolo in alto a sinistra abbiamo tre linee:
- L'oscillatore Chaikin è in aumento
- Valore corrente dell'oscillatore Chaikin
- Valore precedente dell'oscillatore Chaikin
L'altro scenario in caso di calo con i dati attuali,
In caso di calo con i dati precedenti,
Come possiamo vedere nei grafici precedenti, abbiamo un commento sul grafico nell'angolo in alto a sinistra:
L'oscillatore Chaikin sta diminuendo.
Valore corrente dell'oscillatore Chaikin.
Valore precedente dell'oscillatore Chaikin.
- Strategia tre - Chaikin Oscillator - Trend rialzista:
Quanto segue è il codice completo per creare un sistema di trading secondo questa strategia:
//+------------------------------------------------------------------+ //| Chaikin Oscillator - Uptrend.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ void OnTick() { double chaiArray[]; MqlRates priceArray[]; ArraySetAsSeries(chaiArray,true); int Data=CopyRates(_Symbol,_Period,0,3,priceArray); int chaiDef = iChaikin(_Symbol,_Period,3,10,MODE_EMA,VOLUME_TICK); CopyBuffer(chaiDef,0,0,3,chaiArray); int chaiCurrentVal = NormalizeDouble(chaiArray[0],6); int chaiPrevVal = NormalizeDouble(chaiArray[1],6); double currentHighVal=NormalizeDouble(priceArray[2].high,6); double prevHighVal=NormalizeDouble(priceArray[1].high,6); if(currentHighVal>prevHighVal&&chaiCurrentVal>chaiPrevVal) { Comment("Strong Up Move During The Uptrend","\n", "Current High Value is: ",currentHighVal,"\n", "Previous High Value is: ",prevHighVal,"\n", "Chaikin Oscillator Current Value is ",chaiCurrentVal,"\n", "Chaikin Oscillator Previous Value is ",chaiPrevVal); } if(currentHighVal>prevHighVal&&chaiCurrentVal<chaiPrevVal) { Comment("Bearish Divergence","\n", "Current High Value is: ",currentHighVal,"\n", "Previous High Value is: ",prevHighVal,"\n", "Chaikin Oscillator Current Value is ",chaiCurrentVal,"\n", "Chaikin Oscillator Previous Value is ",chaiPrevVal); } } //+------------------------------------------------------------------+
Le differenze in questo codice sono le seguenti:
Creazione di due array per ChaiArray come abbiamo imparato e priceArray utilizzando la funzione "MqlRates" che memorizza informazioni su prezzi, volumi e spread.
ArraySetAsSeries(chaiArray,true); int Data=CopyRates(_Symbol,_Period,0,3,priceArray);
Definizione dei valori dell'oscillatore Chaikin attuale e precedente.
int chaiCurrentVal = NormalizeDouble(chaiArray[0],6); int chaiPrevVal = NormalizeDouble(chaiArray[1],6);
Definizione dei valori dei massimi attuali e precedenti.
double currentHighVal=NormalizeDouble(priceArray[2].high,6); double prevHighVal=NormalizeDouble(priceArray[1].high,6);
Condizioni di questa strategia:
In caso di forte movimento durante il trend rialzista:
if(currentHighVal>prevHighVal&&chaiCurrentVal>chaiPrevVal) { Comment("Strong Up Move During The Uptrend","\n", "Current High Value is: ",currentHighVal,"\n", "Previous High Value is: ",prevHighVal,"\n", "Chaikin Oscillator Current Value is ",chaiCurrentVal,"\n", "Chaikin Oscillator Previous Value is ",chaiPrevVal); }
In caso di divergenza ribassista:
if(currentHighVal>prevHighVal&&chaiCurrentVal<chaiPrevVal) { Comment("Bearish Divergence","\n", "Current High Value is: ",currentHighVal,"\n", "Previous High Value is: ",prevHighVal,"\n", "Chaikin Oscillator Current Value is ",chaiCurrentVal,"\n", "Chaikin Oscillator Previous Value is ",chaiPrevVal); }
Dopo aver compilato questo codice lo troveremo come expert nel navigatore uguale al seguente:
Trascinandolo e rilasciandolo sul grafico la finestra dell'expert apparirà uguale a questa:
Dopo aver premuto "Ok" troveremo che l'expert è allegato al grafico come il seguente:
I seguenti sono esempi di segnali generati basati su questo sistema di trading.
In caso di forte movimento con i dati attuali:
In caso di forte movimento con i dati precedenti:
Come possiamo vedere nei due grafici precedenti, abbiamo cinque righe di commenti nell'angolo in alto a sinistra del grafico e sono:
- Forte movimento al rialzo durante il trend rialzista
- L'attuale valore massimo
- Il precedente valore massimo
- L'attuale valore Chaikin
- Il precedente valore Chaikin
Nell'altro scenario, quando abbiamo una divergenza ribassista con i dati attuali, possiamo vedere un esempio per questo caso come al seguente:
In caso di divergenza ribassista con i dati precedenti
Come possiamo vedere nei due grafici precedenti abbiamo un commento con cinque righe:
Divergenza ribassista.
L'attuale valore massimo.
Il precedente valore massimo.
L'attuale valore Chaikin.
Il precedente valore Chaikin.
- Strategia quattro - Chaikin Oscillator - Trend ribassista:
Quello che segue è il codice completo per creare un sistema di trading per questa strategia.
//+------------------------------------------------------------------+ //| Chaikin Oscillator - Downtrend.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ void OnTick() { double chaiArray[]; MqlRates priceArray[]; ArraySetAsSeries(chaiArray,true); int Data=CopyRates(_Symbol,_Period,0,3,priceArray); int chaiDef = iChaikin(_Symbol,_Period,3,10,MODE_EMA,VOLUME_TICK); CopyBuffer(chaiDef,0,0,3,chaiArray); int chaiCurrentVal = NormalizeDouble(chaiArray[0],6); int chaiPrevVal = NormalizeDouble(chaiArray[1],6); double currentLowVal=NormalizeDouble(priceArray[2].low,6); double prevLowVal=NormalizeDouble(priceArray[1].low,6); if(currentLowVal<prevLowVal&&chaiCurrentVal<chaiPrevVal) { Comment("Strong Down Move During The Downtrend","\n", "Current Low Value is: ",currentLowVal,"\n", "Previous Low Value is: ",prevLowVal,"\n", "Chaikin Oscillator Current Value is ",chaiCurrentVal,"\n", "Chaikin Oscillator Previous Value is ",chaiPrevVal); } if(currentLowVal<prevLowVal&&chaiCurrentVal>chaiPrevVal) { Comment("Bullish Divergence","\n", "Current Low Value is: ",currentLowVal,"\n", "Previous Low Value is: ",prevLowVal,"\n", "Chaikin Oscillator Current Value is ",chaiCurrentVal,"\n", "Chaikin Oscillator Previous Value is ",chaiPrevVal); } } //+------------------------------------------------------------------+
La differenza in questo codice sono le condizioni di questa strategia:
In caso di forte movimento ribassista durante il trend al ribasso,
if(currentLowVal<prevLowVal&&chaiCurrentVal<chaiPrevVal) { Comment("Strong Down Move During The Downtrend","\n", "Current Low Value is: ",currentLowVal,"\n", "Previous Low Value is: ",prevLowVal,"\n", "Chaikin Oscillator Current Value is ",chaiCurrentVal,"\n", "Chaikin Oscillator Previous Value is ",chaiPrevVal); }
In caso di divergenza rialzista:
if(currentLowVal<prevLowVal&&chaiCurrentVal>chaiPrevVal) { Comment("Bullish Divergence","\n", "Current Low Value is: ",currentLowVal,"\n", "Previous Low Value is: ",prevLowVal,"\n", "Chaikin Oscillator Current Value is ",chaiCurrentVal,"\n", "Chaikin Oscillator Previous Value is ",chaiPrevVal); }
Dopo aver compilato questo codice troveremo l'expert di questa strategia nella finestra del navigatore come segue:
Trascinando e rilasciando questo expert sul grafico troveremo la finestra di questo programma come alla seguente:
Dopo aver premuto "OK" troveremo che l'esperto è allegato al grafico come il seguente:
I seguenti sono esempi di segnali generati basati su questa strategia dai test:
In caso di forte ribasso durante il trend ribassista con i dati attuali,
In caso di forte ribasso con i dati precedenti,
Come possiamo vedere nei due grafici precedenti abbiamo un commento con cinque righe:
- Forte movimento ribassista durante il trend al ribasso
- L'attuale valore minimo
- Il valore minimo precedente
- L'attuale valore Chaikin
- Il precedente valore Chaikin
Nell'altro scenario di divergenza rialzista possiamo vedere esempi di segnali generati come il seguente:
In caso di divergenza rialzista con i dati attuali,
In caso di divergenza rialzista con i dati precedenti,
Come possiamo vedere nei due grafici precedenti abbiamo un commento con cinque righe:
- Divergenza rialzista
- L'attuale valore minimo
- Il valore minimo precedente
- L'attuale valore Chaikin
- Il precedente valore Chaikin
Conclusioni
Dopo gli argomenti precedenti, abbiamo compreso nel dettaglio l'oscillatore Chaikin. Abbiamo imparato cos'è, cosa misura, come possiamo calcolarlo manualmente e come possiamo utilizzare ed inserire l'indicatore integrato in MetaTrader 5. Abbiamo anche imparato come possiamo usarlo semplicemente basandoci sul concetto principale di questo indicatore poiché abbiamo imparato più di una strategia:
- Chaikin Oscillator Crossover: per ottenere segnali di acquisto e vendita basati sull’attraversamento del livello zero.
- Chaikin Oscillator Movement: per ottenere segnali che ci informano sul movimento della linea dell'indicatore se è in aumento o in calo.
- Chaikin Oscillator - Trend rialzista: per ottenere segnali quando abbiamo un forte movimento rialzista durante il trend al rialzo o se c'è una divergenza ribassista.
- Chaikin Oscillator - Trend ribassista: per ottenere segnali quando abbiamo un forte movimento ribassista durante il trend al ribasso o se c'è una divergenza rialzista.
Abbiamo anche progettato uno schema per ogni strategia per aiutarci a creare un sistema di trading per ognuna di esse poiché questo è un passaggio molto importante per organizzare la nostra idea per raggiungere il nostro obiettivo senza intoppi. Abbiamo imparato come creare un sistema di trading per ogni strategia per generare segnali automaticamente dopo averli eseguiti in MetaTrader 5 per facilitare e migliorare il nostro trading e ottenere un risultato migliore oltre a risparmiare tempo.
Confermo ancora una volta di assicurarti di testare qualsiasi strategia prima di usarla sul tuo conto reale in quanto non c'è niente di adatto a tutti. Ciò su cui voglio concentrarmi qui è quello di applicare ciò che impari e praticare da solo se hai bisogno di migliorare le tue capacità di programmazione, poiché la pratica è un fattore importante in qualsiasi percorso di apprendimento e sviluppo. Spero che troverai questo articolo utile per te e se vuoi leggere altri articoli simili, puoi leggere altri articoli di questa serie su come progettare un sistema di trading basato sugli indicatori tecnici più popolari.
Tradotto dall’inglese da MetaQuotes Ltd.
Articolo originale: https://www.mql5.com/en/articles/11242





- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso