English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Türkçe
preview
Impara come progettare un sistema di trading tramite Chaikin Oscillator

Impara come progettare un sistema di trading tramite Chaikin Oscillator

MetaTrader 5Trading | 3 maggio 2023, 09:47
596 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

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.

  • 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.

Schema crossover Chaikin Oscillator

  • 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.

Schema Movimento Chaikin Oscillator

  • 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.

Schema dell'oscillatore Chaikin

  • 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.

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.

  • 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.

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 .

  • 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.

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.

  • 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:

 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'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,

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.

  • 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:

 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:

  •  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:

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.

  • 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:

 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:

  • 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,

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:

  • 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

Algoritmi di ottimizzazione della popolazione Algoritmi di ottimizzazione della popolazione
Questo è un articolo introduttivo sulla classificazione dell'algoritmo di ottimizzazione (OA). L'articolo tenta di creare un banco di prova (un insieme di funzioni), che deve essere utilizzato per confrontare gli OA e forse, identificare l'algoritmo più universale tra tutti quelli ampiamente conosciuti.
Impara come progettare un sistema di trading tramite la Deviazione Standard Impara come progettare un sistema di trading tramite la Deviazione Standard
Ecco un nuovo articolo della nostra serie su come progettare un sistema di trading con gli indicatori tecnici più popolari nella piattaforma di trading MetaTrader 5. In questo nuovo articolo, impareremo come progettare un sistema di trading tramite l'indicatore Deviazione Standard.
Algoritmi di ottimizzazione della popolazione: Sciame di particelle (PSO) Algoritmi di ottimizzazione della popolazione: Sciame di particelle (PSO)
In questo articolo, prenderò in considerazione il famoso algoritmo Particle Swarm Optimization (PSO). In precedenza, abbiamo discusso caratteristiche così importanti degli algoritmi di ottimizzazione come convergenza, tasso di convergenza, stabilità, scalabilità, nonché sviluppato un banco di prova e considerato il più semplice algoritmo RNG..
Sviluppare un Expert Advisor per il trading da zero (Parte 17): Accesso ai dati sul web (III) Sviluppare un Expert Advisor per il trading da zero (Parte 17): Accesso ai dati sul web (III)
In questo articolo continuiamo a considerare come ottenere dati dal web e utilizzarli in un Expert Advisor. Questa volta procederemo allo sviluppo di un sistema alternativo.