Impara come progettare un sistema di trading tramite Chaikin Oscillator

Mohamed Abdelmaaboud | 3 maggio, 2023

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:

  1. Definizione di Chaikin Oscillator
  2. Strategia con Chaikin Oscillator
  3. Schema della strategia Chaikin Oscillator
  4. Sistema di trading Chaikin Oscillator
  5. 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.

Avvertenza: Tutte le informazioni sono fornite "così come sono" solo a scopo didattico e non sono preparate per scopi commerciali o di consulenza. Le informazioni non garantiscono alcun tipo di risultato. Se scegli di utilizzare questi materiali su uno qualsiasi dei tuoi conti di trading, lo farai a tuo rischio e sarai l'unico responsabile.

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:

  1. Calcolo del moltiplicatore del flusso di denaro = ((chiusura - minimo) - (massimo - chiusura))/(massimo - minimo)
  2. Calcolo del volume del flusso di denaro = moltiplicatore del flusso di denaro * volume
  3. Calcolo della Linea di Accumulazione Distribuzione (ADL) = ADL precedente + volume del flusso di denaro attuale
  4. 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:

Oscillatore Chaikin Inserito

Dopo aver scelto l'indicatore Chaikin Oscillator, troveremo la finestra dei parametri dell'indicatore uguale alla seguente:

 Parametri Chaikin Oscillator

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:

Oscillatore Chaikin inserito

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.

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.

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.

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.

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.

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.

Schema crossover 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.

Schema Movimento Chaikin Oscillator

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.

Schema dell'oscillatore Chaikin

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.

Chaikin Oscillator - Schema Trend Ribassista

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.

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);

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.

Nav

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.

Finestra Semplice Chaikin Oscillator

Dopo aver premuto "OK", l’expert advisor verrà allegato al grafico come il seguente.

Semplice Chaikin Oscillator allegato

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.

Segnale dell'oscillatore Chaikin

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.

Oscillatore Chaikin stesso segnale

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 .

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.

Nav1

Dopo averlo trascinato e rilasciato sul grafico, la finestra dell'expert apparirà come segue:

Finestra Chaikin Oscillator Crossover

Dopo aver premuto "OK", l'esperto verrà allegato al grafico come segue:

Chaikin Oscillator Crossover allegato

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,

Chaikin Oscillator Crossover - 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,

Chaikin Oscillator Crossover - 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.

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:

 Nav2

Dopo aver trascinato e rilasciato l'expert sul grafico, troveremo la finestra del programma uguale a questa:

Finestra movimento Chaikin Oscillator

Dopo aver premuto "OK", lo troveremo allegato al grafico come il seguente:

Movimento Chaikin Oscillator allegato

I seguenti sono esempi di segnali generati basati su questa strategia.

In caso di aumento con i dati correnti:

Movimento Chaikin Oscillator - segnale crescente con attuali

In caso di aumento con dati precedenti,

Movimento Chaikin Oscillator - segnale crescente con precedenti

Come possiamo vedere nei grafici precedenti nell'angolo in alto a sinistra abbiamo tre linee:

L'altro scenario in caso di calo con i dati attuali,

Movimento Chaikin Oscillator - segnale in declino con i correnti

In caso di calo con i dati precedenti,

Movimento Chaikin Oscillator - segnale in declino con i 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.

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:

 Nav3

Trascinandolo e rilasciandolo sul grafico la finestra dell'expert apparirà uguale a questa:

Finestra Chaikin Oscillator - Trend rialzista

Dopo aver premuto "Ok" troveremo che l'expert è allegato al grafico come il seguente:

Chaikin Oscillator - Trend rialzista allegato

I seguenti sono esempi di segnali generati basati su questo sistema di trading.

In caso di forte movimento con i dati attuali:

Chaikin Oscillator - Trend rialzista - forte - dati attuali

In caso di forte movimento con i dati precedenti:

Chaikin Oscillator - Trend rialzista - forte - dati precedenti

Come possiamo vedere nei due grafici precedenti, abbiamo cinque righe di commenti nell'angolo in alto a sinistra del grafico e sono:

Nell'altro scenario, quando abbiamo una divergenza ribassista con i dati attuali, possiamo vedere un esempio per questo caso come al seguente:

Chaikin Oscillator - Trend rialzista - divergenza - dati attuali

In caso di divergenza ribassista con i dati precedenti

Chaikin Oscillator - Trend rialzista - divergenza - 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.

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:

 Nav4

Trascinando e rilasciando questo expert sul grafico troveremo la finestra di questo programma come alla seguente:

Chaikin Oscillator - Finestra trend ribassista

Dopo aver premuto "OK" troveremo che l'esperto è allegato al grafico come il seguente:

Chaikin Oscillator - Trend ribassista allegato

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,

Chaikin Oscillator - Trend ribassista - forte - dati attuali

In caso di forte ribasso con i dati precedenti,

Chaikin Oscillator - Trend ribassista - forte - dati precedenti

Come possiamo vedere nei due grafici precedenti abbiamo un commento con cinque righe:

Nell'altro scenario di divergenza rialzista possiamo vedere esempi di segnali generati come il seguente:

In caso di divergenza rialzista con i dati attuali,

Chaikin Oscillator - Trend ribassista - divergenza - dati attuali

In caso di divergenza rialzista con i dati precedenti,

Chaikin Oscillator - Trend ribassista - divergenza - dati precedenti 

Come possiamo vedere nei due grafici precedenti abbiamo un commento con cinque righe:


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:

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.