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

Imparare come progettare un sistema di trading con ATR

MetaTrader 5Trading | 26 settembre 2022, 08:54
608 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Introduzione

In questo nuovo articolo, parleremo di un nuovo concetto nel trading che dobbiamo misurare e sapere come usarlo. Questo concetto è la volatilità. Molti strumenti possono essere utilizzati per misurare la volatilità, uno tra i più popolari è l'indicatore tecnico Average True Range (ATR). Quando sai come sta andando la volatilità, questo può cambiare il gioco come quello che vedremo in questo articolo poiché sarà uno dei fattori o basi importanti su cui fondare la tua decisione.

Passeremo attraverso molti argomenti per capire questo indicatore ATR molto bene, allo stesso modo come potresti sapere il mio approccio è quello di imparare e insegnare la radice delle cose se leggete gli altri miei articoli pubblicati. I seguenti argomenti coprono tutto quello che stiamo per imparare in questo articolo su questo strumento incredibile:

  1. Scrittura codice MQL5 in MetaEditor
  2. Definizione di ATR
  3. Strategia ATR
  4. Schema della strategia ATR
  5. Sistema di trading ATR
  6. Conclusioni

Dopo questi argomenti, spero che comprenderemo l'indicatore ATR nel dettaglio e impareremo come usarlo in modo adeguato. Conosceremo l'indicatore Average True Range (ATR), ciò che misura e come viene calcolato: analizzeremo la formula del suo calcolo e la applicheremo su un esempio reale dal mercato. Questo argomento sarà trattato nella parte "definizione di ATR". Impareremo strategie semplici che possono essere utilizzate in base al concetto dell' indicatore ATR. Condividerò semplici strategie che possono aiutare a migliorare la nostra comprensione - questo sarà fatto nella parte "strategia ATR". Impareremo a progettare uno schema per le strategie menzionate. Questo è un passaggio utile nel processo di progettazione del sistema di trading in quanto visualizza l'idea di come il programma dovrebbe funzionare. Così, passo dopo passo gli schemi saranno forniti nella sezione "Schema della strategia ATR". Poi impareremo come scrivere il codice per progettare un sistema di trading basato su queste strategie utilizzando il linguaggio di programmazione MQL5. Il programma sviluppato verrà quindi eseguito nella piattaforma di trading MetaTrader 5. Questo è trattato nella parte "Sistema di trading ATR".

Per scrivere il codice della strategia in MQL5, useremo MetaQuotes Language Editor (lo strumento MetaEditor), che è integrato nella piattaforma di trading MetaTrader 5. Se non hai ancora la piattaforma, puoi scaricarla all'indirizzo https://www.metatrader5.com/en/download.

La finestra della piattaforma di trading MetaTrader 5 si presenta come segue:

MT5 platform

Da questa finestra, è possibile aprire il Metaeditor premendo il tasto F4 mentre il terminale MetaTrader 5 è aperto. Un altro modo per aprirlo è fare clic sul pulsante IDE dall'interfaccia del terminale MetaTrader 5 come mostrato nell'immagine qui sotto:

Metaeditor open2

Un altro modo per aprirlo è fare clic sul menu Strumenti nel terminale MetaTrader 5 --> quindi scegliere MetaQuotes Language Editor dal menu come mostrato nella figura seguente:

Metaeditor open1 

Questo aprirà il MetaQuotes Language Editor. La seguente immagine mostra la sua interfaccia:

Metaeditor interface

Vi consiglio di applicare ciò che leggete in questo articolo perché la pratica è un fattore importante per il miglioramento.

Disclaimer: Tutte le informazioni sono fornite 'come sono' solo per scopi educativi e non sono preparate per scopi di trading 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 ne sarai l'unico responsabile.

Ora, preparati a imparare un nuovo strumento che può aiutarti a migliorare le tue abilità di trading per migliorare i tuoi risultati. Iniziamo il nostro viaggio.


Definizione di ATR

In questo argomento, tratteremo in dettaglio l'indicatore Average True Range (ATR): cosa misura e come viene calcolato, con alcuni esempi per approfondire la nostra comprensione per ottenere maggiori informazioni su come possiamo utilizzarlo e beneficiare di questo indicatore.

L'indicatore tecnico Average True Range (ATR) è stato sviluppato da Welles Wilder. Questo indicatore ATR misura la volatilità del mercato analizzando l'intervallo dei prezzi per un periodo specifico. ATR non fornisce prezzi o direzione di mercato, ma fornisce solo la misurazione della volatilità.

Ora, ecco come viene calcolato l'indicatore ATR che misura la volatilità del mercato.

Innanzitutto, dobbiamo calcolare il true range, che sarà il valore più grande dei seguenti:

  • La differenza tra gli attuali massimo e minimo.
  • La differenza tra l'attuale massimo e la chiusura precedente (valore assoluto).
  • La differenza tra l'attuale minimo e la chiusura precedente (valore assoluto).

Quindi, a questo punto, per calcolarlo abbiamo bisogno dei massimi,dei minimi e i dati di chiusura dei prezzi . Quindi, calcoleremo l'average true range.

Ora, vediamo un esempio dal mercato reale per applicare ciò che abbiamo imparato e calcolare l'average true range (ATR), i seguenti sono i dati per EURUSD:

Giorno Massimo Minimo Chiusura
Mar 17, 2022 1.1138 1.1008 1.1089
Mar 18, 2022 1.112 1.1003 1.1055
Mar 21, 2022 1.107 1.101 1.1014
Mar 22, 2022 1.1047 1.096 1.1027
Mar 23, 2022 1.1044 1.0963 1.1004
Mar 24, 2022 1.1014 1.0965 1.0996
Mar 25, 2022 1.1039 1.0979 1.0981
Mar 28, 2022 1.1 1.0944 1.0978
Mar 29, 2022 1.1137 1.097 1.1085
Mar 30, 2022 1.1171 1.1083 1.1156
Mar 31, 2022 1.1185 1.1061 1.1065
Apr 01, 2022 1.1077 1.1027 1.1053
Apr 04, 2022 1.1056 1.096 1.097
Apr 05, 2022 1.099 1.0899 1.0903
Apr 06, 2022 1.0939 1.0874 1.0893
Apr 07, 2022 1.0939 1.0864 1.0878
Apr 08, 2022 1.0892 1.0836 1.0876
Apr 11, 2022 1.0951 1.0872 1.0883
Apr 12, 2022 1.0905 1.0821 1.0826
Apr 13, 2022 1.0896 1.0809 1.0885
Apr 14, 2022 1.0925 1.0757 1.0827
Apr 15, 2022 1.0832 1.0796 1.0806
Apr 18, 2022 1.0822 1.0769 1.078
Apr 19, 2022 1.0815 1.0761 1.0786
Apr 20, 2022 1.0868 1.0783 1.085
Apr 21, 2022 1.0937 1.0824 1.0836
Apr 22, 2022 1.0853 1.077 1.0794
Apr 25, 2022 1.0842 1.0697 1.0711
Apr 26, 2022 1.0738 1.0635 1.0643
Apr 27, 2022 1.0655 1.0586 1.0602

Ora, per calcolare l'ATR, seguiremo i passaggi seguenti.

1- Calcolare il TR, sarà il valore più grande dei seguenti:

  • Massimo attuale - minimo attuale (la differenza tra massimo e minimo),

H-L

  • Assoluto (massimo attuale - chiusura precedente),

 absh-pc

  • Assoluto (minimo attuale - chiusura precedente),

 absl-pc

Secondo quanto abbiamo calcolato, determineremo il TR che è il valore più grande da (massimo-minimo, abs(massimo-chiusura precedente), abs minimo-chiusura precedente)),

TR

2 - Calcoliamo l'average true range (ATR) per 14 periodi,

ATR

Con i passaggi precedenti, possiamo calcolare manualmente l'Average True Range(ATR). Ma al giorno d'oggi non abbiamo bisogno di farlo perché è disponibile nella forma pronta all'uso nella piattaforma di trading MetaTrader 5. Tutto quello che dobbiamo fare è sceglierlo tra gli altri indicatori disponibili e il seguente è come farlo.

Durante l'apertura del terminale di trading MetaTrader 5, fare clic sulla scheda inserisci --> indicatori --> Oscillatori --> Average True Range:

ATR insert

Dopo aver scelto Average True Range, verrà aperta la seguente finestra per i parametri dell'ATR:

ATR insert window

1 - il periodo desiderato per l'indicatore.

Questo valore del periodo può essere diverso da un timeframe all'altro o da uno strumento all'altro secondo la volatilità di ciascun periodo o strumento. Un ATR più lungo può essere migliore per generare un'indicazione accurata perché avrà una media più regolare.

2 - il colore della linea dell'ATR.

3 - lo stile della linea dell'ATR.

4 - lo spessore della linea dell'ATR.

Dopo aver impostato i parametri sull'indicatore ATR, verrà allegato al grafico e apparirà come segue:

ATR attached

Come possiamo vedere nella figura precedente, la finestra inferiore include l'indicatore ATR a 14 periodi che è rappresentato da una linea oscillante per misurare la volatilità di EURUSD mediante il timeframe 1H.

Come ho detto prima, l'ATR misura la volatilità. In base a ciò, analizziamo i valori nella finestra dell'ATR: minore è il valore ATR, minore è la volatilità dello strumento. E viceversa, maggiore è il valore dell'ATR, maggiore è la volatilità dello strumento.

L' immagine seguente è su come leggerlo:

ATR reading

Così, quando l'ATR registra valori bassi, questo indica bassa volatilità, e viceversa, quando l'indicatore ATR registra valori elevati, questo indica elevata volatilità.

L'indicatore ATR non è attendibile per generare segnali di trading come sappiamo già dalla base del suo calcolo. Considera solo l'ampiezza dell'intervallo, ma la sua bellezza è che è uno dei migliori strumenti che possono aiutare ad applicare una dimensione della posizione adeguata, stop loss e take profit.

Come ho detto prima,l'ATR misura solo la volatilità e non fornisce il trend o la direzione del mercato. Quindi, non confonderti se la curva ATR si sta muovendo verso l'alto - questo non significa che il trend è rialzista, e viceversa, se la curva ATR si sta muovendo verso il basso, questo non significa che il trend è ribassista. Se desideri puoi conoscere uno degli strumenti più popolari che è l'indicatore ADX che può essere utilizzato per determinare se vi è un trend oppure no.

Inoltre puoi leggere la definizione di trend dal mio precedente articolo.

L' immagine seguente è un esempio che può mostrare che l'ATR non fornisce una direzione del trend:

ATR reading2

Come possiamo vedere, l'indicatore si sta muovendo verso l'alto, allo stesso tempo i prezzi si muovono verso il basso e viceversa, la linea ATR si muove verso il basso, allo stesso tempo i prezzi stanno salendo. Questo perché ATR non fornisce un trend o una direzione di mercato, ma fornisce solo una misurazione della volatilità.


Strategia ATR

In questo argomento, impareremo semplici strategie che possono essere utilizzate con l'indicatore ATR secondo il suo concetto per migliorare i nostri risultati di trading. Il concetto dell'indicatore ATR è che misura solo la volatilità del mercato, non la direzione del mercato.

1 - Sistema ATR Semplice - Forza dell'ATR:

Secondo questa strategia, confronteremo il valore ATR corrente con valori specifici e decideremo se l'ATR è forte o meno. È importante notare che questi valori specifici possono differire da uno strumento all'altro o da un periodo all'altro. Quindi, controlleremo il valore dell'indicatore ATR e determineremo la sua forza in base al suo valore. Se il valore ATR attuale è maggiore di 0.0024, significa che ATR è forte e viceversa, se il valore ATR corrente è inferiore a 0.0014, ciò significa che ATR è debole. Se il valore ATR è compreso tra 0.0014 e 0.0024, significa che ATR è neutrale e restituisce solo il valore ATR corrente.

  • Valore ATR attuale > 0,0024 = ATR forte
  • Valore ATR corrente < 0,0014 = ATR debole
  • Valore ATR corrente > 0,0014 e < 0.0024 = valore ATR attuale


2 - Sistema ATR semplice - Movimento ATR:

Secondo questa strategia, confronteremo l'attuale valore ATR con il precedente valore ATR e poi decideremo sul movimento ATR, oppure se la linea ATR si sposta verso l'alto e ciò avverrà quando il valore ATR corrente è maggiore del valore ATR precedente o si sposta verso il basso quando il valore ATR corrente è inferiore al valore ATR precedente.

  • Valore ATR corrente > valore ATR precedente = ATR in Aumento
  • Valore ATR corrente < valore ATR precedente = ATR in Diminuzione


3 - Sistema ATR semplice - Livelli SL e TP:

Secondo questa strategia, dobbiamo usare i valori di ATR per determinare livelli dinamici di stop loss e take profit basato sul valore corrente di ATR e sui calcoli specifici per stop loss e take profit in entrambi i casi di posizione buy e posizione sell.

Nel caso di posizione buy, abbiamo bisogno di vedere sul grafico:

  • Il prezzo corrente dell'ask.
  • Una nuova linea con il prezzo corrente del bid.
  • Una nuova linea con il valore dell'ATR corrente.
  • Una nuova linea con il valore di stop loss secondo un calcolo specifico per la posizione buy.
  • Una nuova linea con il valore del take profit secondo un calcolo specifico per la posizione buy.

Nel caso di posizione sell, abbiamo bisogno di vedere sul grafico:

  • Il prezzo corrente dell'ask.
  • Una nuova linea con il prezzo corrente del bid.
  • Una nuova linea con il valore dell'ATR corrente.
  • Una nuova linea con il valore di stop loss secondo un calcolo specifico per la posizione sell.
  • Una nuova linea con il valore del take profit secondo un calcolo specifico per la posizione sell.

Possiamo trovare altre strategie avanzate che possono essere utilizzate dall'indicatore ATR, ma qui abbiamo bisogno di citare solo alcune semplici strategie che possono aiutarci a capire l'indicatore ATR profondamente per essere in grado di usarlo in un modo corretto affinchè possa migliorare i nostri risultati di trading.


Schema Strategia ATR

In questa parte, impariamo passo dopo passo ciò di cui abbiamo bisogno per creare un sistema di trading per le tre strategie menzionate attraverso uno schema per ogni strategia. Primo e prima di passare attraverso la progettazione o la creazione delle tre strategie menzionate, inizieremo con uno schema per i passaggi necessari a creare un semplice programma o Expert Advisor che ci può mostrare un commento con l'attuale valore ATR per aiutarci a progettare le nostre strategie di cui il seguente è un'immagine che ne rappresenta lo schema:

Simple ATR system blueprint

1 - Sistema ATR Semplice - Forza dell'ATR:

  • Valore ATR attuale > 0,0024 = ATR forte
  • Valore ATR corrente < 0,0014 = ATR debole
  • Valore ATR corrente > 0,0014 e < 0.0024 = valore ATR attuale

Quindi, vogliamo che il programma controlli il valore ATR corrente con valori specifici e decida se il valore ATR corrente è maggiore di 0.0024 - questo significherebbe che ATR è forte. Se non è maggiore di 0.0024, abbiamo bisogno che il programma controlli se l'ATR è inferiore a 0.0014 - questo significherebbe che l'ATR è debole. Nel caso in cui non abbia un valore inferiore a 0.0014 e il programma lo trova tra 0.0014 e 0.0024, quindi vogliamo che il programma ci mostri solo il valore ATR corrente sul grafico.

Il seguente è uno schema di questa strategia di forza ATR:

Simple ATR system - ATR Strength blueprint

2 - Sistema ATR semplice - Movimento ATR:

  • Valore ATR corrente > valore ATR precedente = ATR in Aumento
  • Valore ATR corrente < valore ATR precedente = ATR in Diminuzione

Quindi, abbiamo bisogno che l'Expert Advisor controlli il valore ATR corrente e il valore ATR precedente, quindi decida, che se il valore ATR corrente è maggiore del valore ATR precedente, questo significa che l'ATR è in aumento e se il valore ATR attuale è inferiore al valore ATR precedente, questo significa che l'ATR è in diminuzione, o non fà nulla.

Il seguente è uno schema di questa strategia di movimento ATR:

Simple ATR system - ATR movement blueprint

3 - Sistema ATR semplice - Livelli SL e TP:

In entrambi i casi è necessario inserire un commento sul grafico,

Posizione buy e posizione sell:

  • Il prezzo corrente dell'ask.
  • Una nuova linea con il prezzo corrente del bid.
  • Una nuova linea con il valore dell'ATR corrente.
  • Una nuova linea con il valore di stop loss.
  • Una nuova linea con il valore di take profit.


E il seguente è uno schema di questa strategia ATR - livelli SL e TP:

Simple ATR system - SL&TP lvls blueprint

Sistema di trading ATR

In questo interessante argomento, impareremo a scrivere il codice di ogni strategia menzionata per creare un sistema di trading basato su ciascuno di essi da eseguire facilmente, senza intoppi, e con precisione. Ora, scriveremo un codice per un Expert Advisor per mostrarci automaticamente il valore ATR sul grafico.

Il seguente è come possiamo scrivere il codice di questo Expert Advisor per il Sistema ATR Semplice:

  • Creare un array di valori usando la funzione "double":
double PriceArray[];
  • Ordiniamo i dati utilizzando la funzione "ArraySetAsSeries":
ArraySetAsSeries(PriceArray,true);
  • Definiamo l'ATR utilizzando la funzione iATR e il valore intero "int" per il valore restituito:
int ATRDef=iATR(_Symbol,_Period,14);
  • Definizione dei dati e memorizzazione dei risultati utilizzando la funzione "CopyBuffer":
CopyBuffer(ATRDef,0,0,3,PriceArray);
  • Otteniamo il valore dei dati correnti restituendo un valore double usando la funzione "NormalizeDouble":
double ATRValue=NormalizeDouble(PriceArray[0],5);
  • Otteniamo un commento sul grafico con il valore ATR:
Comment("ATR Value = ",ATRValue);

Il seguente è il codice completo se si desidera copiare e incollare facilmente, o per vederlo in blocco:

//+------------------------------------------------------------------+
//|                                                   Simple ATR.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()
  {
   //Creare un array di valori 
   double PriceArray[];
   
   //Ordiniamo i dati 
   ArraySetAsSeries(PriceArray,true);

   //Definiamo l'ATR
   int ATRDef=iATR(_Symbol,_Period,14);
   
   
   //Definizione dei dati e memorizzazione dei risultati
   CopyBuffer(ATRDef,0,0,3,PriceArray);
   
   //Otteniamo il valore dei dati correnti
   double ATRValue=NormalizeDouble(PriceArray[0],5);
   
   //commento sul grafico
   Comment("ATR Value = ",ATRValue);
  }
//+------------------------------------------------------------------+

Dopo aver scritto questo Expert Advisor , se vogliamo eseguire questo programma, possiamo trovarlo nel navigatore come nella seguente immagine:

ATR Nav

Facendo doppio clic o trascinando questo file sul grafico, verrà aperta la seguente finestra,

Simple ATR window

Dopo aver cliccato su "OK", possiamo scoprire che il Simple ATR Expert Advisor è allegato al grafico come nella seguente immagine:

Simple ATR attached

E possiamo trovare il suo risultato secondo il programma come nell'esempio del test seguente:

Simple ATR signal

Ora, creeremo un sistema di trading per ogni strategia menzionata e sarà come segue,

1 - Sistema ATR Semplice - Forza dell'ATR:

  • Valore ATR attuale > 0,0024 = ATR forte 
  • Valore ATR corrente < 0,0014 = ATR debole
  • Valore ATR corrente > 0,0014 e < 0.0024 = valore ATR attuale

Il seguente è come possiamo scrivere il codice di questo Expert Advisor del Sistema ATR Semplice - forza dell'ATR:

//+------------------------------------------------------------------+
//|                             Simple ATR System - ATR strength.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()
  {
   //Creare un array di valori 
   double PriceArray[];
   
   
   //Ordiniamo i dati
   ArraySetAsSeries(PriceArray,true);
   
   //Definiamo l'ATR
   int ATRDef=iATR(_Symbol,_Period,14);   
   
   //Definizione dei dati e memorizzazione dei risultati
   CopyBuffer(ATRDef,0,0,3,PriceArray);
   
   //Otteniamo il valore dei dati correnti
   double ATRValue=NormalizeDouble(PriceArray[0],5);
   
   //commento sul grafico con la forza dell'ATR in base al suo valore
   if(ATRValue>0.0024)
   Comment("Strong ATR","\n","ATR Value = ",ATRValue);
   
   if(ATRValue<0.0014)
   Comment("Weak ATR","\n","ATR Value = ",ATRValue);
   
   if((ATRValue>0.0014)&&(ATRValue<0.0024))
   Comment("ATR Value = ",ATRValue);
  }
//+------------------------------------------------------------------+

Le differenze in questo codice sono:

  • Commenti basati sul confronto di ATR corrente con un valore specifico, se il valore ATR corrente > 0.0024:
   if(ATRValue>0.0024)
   Comment("Strong ATR","\n","ATR Value = ",ATRValue);
  • Se ATR corrente < 0.0014
   if(ATRValue<0.0014)
   Comment("Weak ATR","\n","ATR Value = ",ATRValue);
  • Se il valore di ATR corrente > 0.0014 e ATR corrente < 0.0024
   if((ATRValue>0.0014)&&(ATRValue<0.0024))
   Comment("ATR Value = ",ATRValue);

Dopo di che, possiamo trovare questo Expert Advisor nella finestra del navigatore per eseguirlo dopo averlo compilato:

ATR Nav 1

Dopo aver aperto il file facendo doppio clic o trascinandolo sul grafico, possiamo vedere la finestra come la seguente:

ATR strength window

Dopo aver premuto "OK", possiamo trovare l'Expert Advisor allegato al grafico come nella seguente immagine:

ATR strength attached

E il seguente è un esempio dei segnali generati sulla base di questa strategia per il test:

Come possiamo vedere nel seguente grafico ci mostra un commento con Strong ATR e il valore attuale ATR in una nuova riga:

ATR strength - strong

Come possiamo vedere il seguente grafico mostra un commento con weak ATR e attuale valore ATR in una nuova riga:

ATR strength - weak

Come possiamo vedere il seguente grafico mostra un commento con il valore ATR corrente solo perché neutro secondo i valori determinati:

ATR strength - neutral

2 - Sistema ATR semplice - Movimento ATR: 

  • Valore ATR corrente > valore ATR precedente = ATR in Aumento
  • Valore ATR corrente < valore ATR precedente = ATR in Diminuzione

Il seguente è come possiamo scrivere il codice di questo Expert Advisor del Sistema ATR Semplice - movimento ATR:

//+------------------------------------------------------------------+
//|                             Simple ATR System - ATR 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()
  {
   //Creare un array di valori 
   double PriceArray0[];
   double PriceArray1[];
   
   //Ordiniamo i dati
   ArraySetAsSeries(PriceArray0,true);
   ArraySetAsSeries(PriceArray1,true);
   
   //Definiamo l'ATR
   int ATRDef=iATR(_Symbol,_Period,14); 
   
   //Definizione dei dati e memorizzazione dei risultati
   CopyBuffer(ATRDef,0,0,3,PriceArray0);      
   CopyBuffer(ATRDef,0,0,3,PriceArray1);
   
   //Otteniamo il valore dei dati correnti
   double ATRValue=NormalizeDouble(PriceArray0[0],5);
   double PreATRValue=NormalizeDouble(PriceArray1[1],5);

   if(ATRValue>PreATRValue)
   Comment("ATR is UP","\n","ATR Value = ",ATRValue,"\n","ATR Previous Value = ",PreATRValue);
   
   if(ATRValue<PreATRValue)
   Comment("ATR is Down","\n","ATR Value = ",ATRValue,"\n","ATR Previous Value = ",PreATRValue);
      
  }
//+------------------------------------------------------------------+


Le differenze in questo codice sono:

  • Creazione di due array di valori (valore ATR corrente (PriceArray0), valore ATR precedente (PriceArray1)):
   double PriceArray0[];
   double PriceArray1[];
  • Ordinare i due array di valore dal dato corrente:
   ArraySetAsSeries(PriceArray0,true);
   ArraySetAsSeries(PriceArray1,true);
  • Definizione dei dati e memorizzazione dei risultati per i due array:
   CopyBuffer(ATRDef,0,0,3,PriceArray0);      
   CopyBuffer(ATRDef,0,0,3,PriceArray1);
  • Otteniamo i valori dei dati correnti dei due valori (ATR corrente e precedente):
   double ATRValue=NormalizeDouble(PriceArray0[0],5);
   double PreATRValue=NormalizeDouble(PriceArray1[1],5);
  • Commentiamo in base al confronto ATR corrente con il valore ATR precedente,
    • Se il valore ATR corrente > valore ATR precedente:
   if(ATRValue>PreATRValue)
   Comment("ATR is UP","\n","ATR Value = ",ATRValue,"\n","ATR Previous Value = ",PreATRValue);
    • Se il valore ATR corrente < valore ATR precedente:
   if(ATRValue<PreATRValue)
   Comment("ATR is Down","\n","ATR Value = ",ATRValue,"\n","ATR Previous Value = ",PreATRValue);
Dopo la compilazione, possiamo trovare questo Expert Advisor nella finestra del navigatore per eseguirlo:

ATR Nav 2

facendo doppio clic o trascinando e rilasciando il file sul grafico, possiamo vedere la finestra come la seguente:

ATR movement window.

Dopo aver abilitato l'opzione "Consenti Algo Trading" premendo "OK", possiamo trovare l'Expert Advisor allegato al grafico lo stesso della seguente immagine:

ATR movement attached

E il seguente è un esempio dei segnali generati basati su questa strategia per il test:

In caso di ATR al rialzo:

ATR movement - up

In caso di ATR al ribasso:

ATR movement - down


3 - Sistema ATR semplice - Livelli SL e TP:

Nel caso di posizione buy, abbiamo bisogno di vedere sul grafico: 

  • Il prezzo corrente dell'ask.
  • Una nuova linea con il prezzo corrente del bid.
  • Una nuova linea con il valore dell'ATR corrente.
  • Una nuova linea con il valore di stop loss per la posizione buy.
  • Una nuova linea con il valore take profit per la posizione buy.

Nel caso di posizione sell, abbiamo bisogno di vedere sul grafico: 

  • Il prezzo corrente dell'ask.
  • Una nuova linea con il prezzo corrente del bid.
  • Una nuova linea con il valore dell'ATR corrente.
  • Una nuova linea con lo stop loss per la posizione sell.
  • Una nuova linea con il take profit per la posizione sell.

Il seguente è come possiamo scrivere il codice di questo Expert Advisor del Sistema ATR Semplice - livelli di SL e TP:

//+------------------------------------------------------------------+
//|                             Simple ATR System - SL&TP levels.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()
  {
   //definizione Ask e Bid
   double Ask=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
   double Bid=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
   
   //Creare un array di valori 
   double PriceArray[];
   
   //Ordinamento dei dati
   ArraySetAsSeries(PriceArray,true);

   //definizione ATR
   int ATRDef=iATR(_Symbol,_Period,14);
   
   
   //definiamo i dati e memorizziamo i risultati
   CopyBuffer(ATRDef,0,0,3,PriceArray);
   
   //Otteniamo il valore dei dati correnti
   double ATRValue=NormalizeDouble(PriceArray[0],5);
   
   //Calcoliamo SL&TP per la  posizione buy
   double StopLossBuy=Bid-(ATRValue*2);
   double TakeProfitBuy=Ask+((ATRValue*2)*2);
   
   //Calcoliamo SL&TP per la  posizione sell
   double StopLossSell=Ask+(ATRValue*2);
   double TakeProfitSell=Bid-((ATRValue*2)*2);
   
   //commento sul grafico
   Comment("BUY POSITION","\n","Current Ask = ",Ask,"\n","Current Bid = ",Bid,"\n","ATR Value = ",ATRValue,
   "\n","Stop Loss = ",StopLossBuy,"\n","Take Profit = ",TakeProfitBuy,"\n",
   "SELL POSITION","\n","Current Ask = ",Ask,"\n","Current Bid = ",Bid,"\n","ATR Value = ",ATRValue,
   "\n","Stop Loss = ",StopLossSell,"\n","Take Profit = ",TakeProfitSell);
  }
//+------------------------------------------------------------------+

Le differenze qui sono:

  • Definizione dei prezzi Ask e Bid per calcolare stop loss e take profit:
   double Ask=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
   double Bid=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
  • Calcolo dello stop loss e take profit sia per la posizione buy che per la posizione sell:
   //Calcoliamo SL&TP per la  posizione buy
   double StopLossBuy=Bid-(ATRValue*2);
   double TakeProfitBuy=Ask+((ATRValue*2)*2);
   
   //Calcoliamo SL&TP per la  posizione sell
   double StopLossSell=Ask+(ATRValue*2);
   double TakeProfitSell=Bid-((ATRValue*2)*2);
  • Commento basato sulla strategia sia per la posizione buy che per la posizione sell:
  • Il prezzo corrente dell'ask.
  • Una nuova linea con il prezzo corrente del bid.
  • Una nuova linea con il valore dell'ATR corrente.
  • Una nuova linea con il valore di stop loss.
  • Una nuova linea con il valore di take profit.
  •    Comment("BUY POSITION","\n","Current Ask = ",Ask,"\n","Current Bid = ",Bid,"\n","ATR Value = ",ATRValue,
       "\n","Stop Loss = ",StopLossBuy,"\n","Take Profit = ",TakeProfitBuy,"\n",
       "SELL POSITION","\n","Current Ask = ",Ask,"\n","Current Bid = ",Bid,"\n","ATR Value = ",ATRValue,
       "\n","Stop Loss = ",StopLossSell,"\n","Take Profit = ",TakeProfitSell);

    Dopo aver compilato il codice, possiamo trovare questo Expert Advisor nella finestra del navigatore per eseguirlo:

    ATR Nav 3

    Dopo aver aperto il file facendo doppio clic o trascinando sul grafico, verrà aperta la seguente finestra:

    ATR SL_TP window

    Dopo aver premuto "OK", possiamo trovare l'Expert Advisor allegato al grafico come nella seguente immagine:

    ATR SL_TP attached

    E il seguente è un esempio dei segnali generati sulla base di questa strategia per il test:

    ATR SL-TP levels

    Conclusioni

    Ora, si suppone che comprendiate l'Average True Range nel dettaglio mentre abbiamo imparato cos'è l'ATR, cosa misura e il concetto dietro di esso, come possiamo calcolarlo manualmente, e lo abbiamo applicato a un esempio reale dal mercato e questo attraverso l'argomento di definizione ATR. Quindi, abbiamo appreso alcune semplici strategie che possono essere utilizzate a nostro favore in base al concetto di average true range lo stesso che abbiamo imparato, abbiamo conosciuto il sistema di forza ATR, il movimento ATR e le semplici strategie dei livelli ATR - SL e TP e questo è quello che abbiamo imparato nell'argomento della strategia ATR, abbiamo imparato e progettato uno schema per ogni strategia per aiutarci a progettare un sistema di trading per ogni strategia per funzionare sulla piattaforma di trading MetaTrader 5 attraverso l'argomento schema strategia ATR, quindi impariamo come scrivere gli Expert Advisor per ogni strategia tramite MetaQuotes Languages (MQL5) per eseguirli sulla piattaforma MetaTrader 5 attraverso l'argomento sistema di trading ATR.

    Dopo aver compreso e messo in pratica gli argomenti precedenti, devi essere in grado di utilizzare l'average true range (ATR) secondo il concetto dietro di esso e devi essere in grado di leggere l'indicatore per determinare la volatilità dello strumento attraverso un sistema di trading automatizzato, soprattutto dopo aver applicato quello che hai imparato da te stesso perché praticare è importante per padroneggiare qualsiasi cosa.

    E 'importante anche per confermare che è necessario testare qualsiasi nuova strategia o strumento prima di utilizzarlo sul tuo conto reale in quanto potrebbe non essere utile o profittevole per il vostro trading, anche se funziona con qualcun'altro potrebbe non essere adatto per voi o il vostro piano di trading e questo è normale. Quindi, devi assicurarti che sia utile e profittevole per te testandolo prima.

    Alla fine di questo articolo, spero che tu lo trovi utile per il tuo trading e spero anche che ti abbia aperto gli occhi su nuove idee sull'argomento dell'articolo o su qualsiasi argomento correlato al trading che possa essere un motivo per migliorare il tuo risultati di trading e spero che ti abbia fatto capire l'importanza della programmazione per il trading e quanto potrebbe essere utile e quanto ci aiuta a fare trading in modo semplice, fluido e accurato.

    Tradotto dall’inglese da MetaQuotes Ltd.
    Articolo originale: https://www.mql5.com/en/articles/10748

    Scienza dei dati e apprendimento automatico (Parte 03): Regressioni a matrice Scienza dei dati e apprendimento automatico (Parte 03): Regressioni a matrice
    Questa volta i nostri modelli sono realizzati da matrici, il che ci permette flessibilità e consente di creare modelli potenti che possono gestire non solo cinque variabili indipendenti ma anche molte variabili finché restiamo entro i limiti di calcolo di un computer, questo articolo sarà una lettura interessante, questo è sicuro.
    Impara a progettare un sistema di trading tramite ADX Impara a progettare un sistema di trading tramite ADX
    In questo articolo, continueremo la nostra serie sulla progettazione di un sistema di trading utilizzando gli indicatori più popolari e parleremo dell'indicatore average directional index (ADX). Scopriremo questo indicatore nel dettaglio per capirlo bene e impareremo come usarlo attraverso una semplice strategia. Imparando qualcosa approfonditamente possiamo ottenere più intuizioni e possiamo usarlo meglio.
    Sviluppare un Expert Advisor per il trading da zero (Parte 7): Aggiunta dei Volumi al Prezzo (I) Sviluppare un Expert Advisor per il trading da zero (Parte 7): Aggiunta dei Volumi al Prezzo (I)
    Questo è uno degli indicatori più potenti attualmente esistenti. Chiunque faccia trading provando ad avere un certo grado di sicurezza deve avere questo indicatore sul proprio grafico. Molto spesso l'indicatore viene utilizzato da coloro che preferiscono la "lettura del nastro" durante il trading. Inoltre, questo indicatore può essere utilizzato da coloro che utilizzano solo la Price Action durante il trading.
    Scienza dei Dati e Apprendimento Automatico (Parte 02): Regressione Logistica Scienza dei Dati e Apprendimento Automatico (Parte 02): Regressione Logistica
    La classificazione dei dati è una cosa cruciale per un algo trader e un programmatore. In questo articolo, ci concentreremo su uno degli algoritmi logistici di classificazione che possono aiutarci a identificare i Sì o i No, gli alti e bassi, gli acquisti e le vendite.