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

Impara come progettare un sistema di trading con il Parabolic SAR

MetaTrader 5Trading | 13 ottobre 2022, 17:40
180 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Introduzione

In questo articolo scoprirete nel dettaglio un nuovo e utile indicatore tecnico che può essere utilizzato nel tuo trading, se adatto, secondo il tuo stile. Questo indicatore tecnico è il Parabolic SAR. Impareremo a progettare un sistema di trading da utilizzare nella piattaforma MetaTrader5 dopo aver scritto il codice di questo sistema di trading con il MetaQuotes Language Editor integrato in MetaTrader 5. Se volete sapere come ottenere la MetaTrader 5 e come trovare il MetaQuotes Language Editor, potete consultare l'argomento Scrivere codice MQL5 nel MetaEditor. Apprenderemo il cuore di questo articolo attraverso gli argomenti che lo riguarderanno e che sono:

  1. Definizione di Parabolic SAR
  2. Strategia con il Parabolic SAR
  3. Schema della strategia Parabolic SAR
  4. Sistema di trading con il Parabolic SAR
  5. Conclusioni

Tramite gli argomenti precedenti, impareremo a progettare un semplice sistema di trading basato su semplici strategie dell'indicatore Parabolic SAR e sul concetto che ne sta alla base. Attraverso l'argomento della definizione di Parabolic SAR, impareremo in modo più dettagliato che cos'è l'indicatore Parabolic SAR o che cosa significa e come possiamo calcolare questo indicatore per imparare il concetto che c'è dietro, e questo approccio renderà più facile, l’uso del Parabolic SAR in modo efficace. Poi impareremo come utilizzare l'indicatore Parabolic SAR attraverso semplici strategie basate sul concetto di questo indicatore, in base a cosa abbiamo appreso, e lo faremo attraverso l'argomento della strategia Parabolic SAR. Quindi, progetteremo uno schema per le semplici strategie citate e questo schema ci aiuterà a progettare il nostro sistema di trading passo dopo passo attraverso uno schema chiaro per ciò che dobbiamo costruire. In seguito affronteremo l'argomento più interessante di questo articolo, impareremo come scrivere il codice del sistema di trading per consentire al computer di esaminare le nostre condizioni e ritornare il segnale in base alle nostre strategie e questo processo avverrà automaticamente e con precisione, attraverso l’expert advisor, progettato in base alle nostre semplici strategie.

Prima di affrontare i nostri argomenti, vorrei dare un consiglio: applicate ciò che imparate da soli, perché questo approccio approfondirà la vostra comprensione e dovete testare qualsiasi strategia o qualsiasi cosa prima di utilizzarla su un conto reale, soprattutto se l'avete appresa da fonti didattiche, perché potrebbe non essere utile per il vostro trading.

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 scegliete di utilizzare questi materiali su uno qualsiasi dei vostri conti di trading, lo farete a vostro rischio e pericolo e sarete gli unici responsabili.

Iniziamo ora il nostro interessante viaggio attraverso gli argomenti di questo articolo.


Definizione di Parabolic SAR

In questa parte, conosceremo più nel dettaglio l’indicatore Parabolic SAR creato da Welles Wilder. Il nome di questo indicatore deriva da "Parabolic", che si riferisce alla formazione dell'indicatore sul grafico, e "SAR" si riferisce a Stop And Reverse, oppure puoi trovare il suo nome come sistema Parabolic Time/Price, proprio come lo chiama Welled Wilder nel suo libro "New Concepts in Technical Trading Systems".

L'indicatore Parabolic SAR è un indicatore di trend following e viene utilizzato durante i mercati in trend; questo indicatore permette allo strumento di reagire durante i pochi periodi successivi al piazzamento del trade, quando i livelli di stop iniziano a muoversi. Quindi, possiamo dire che l'obiettivo principale di questo indicatore è quello di consentire di impostare gli stop adeguati in base alla direzione o alla tendenza attuale del mercato; se non lo sai, puoi leggere l'argomento sulla definizione di trend per saperne di più.

In altre parole, l'obiettivo principale di questo indicatore Parabolic SAR è la creazione dei trailing stop. Lo stop è una funzione di due elementi: tempo e prezzo, in base alla funzione del prezzo, possiamo scoprire che lo stop si muoverà verso l'alto o verso il basso in base al relativo movimento del prezzo e in base alla funzione del tempo, possiamo scoprire che lo stop si muoverà in qualsiasi periodo indipendentemente dalla direzione del prezzo.

Quindi, per prima cosa dobbiamo determinare il trend e poi possiamo utilizzare la tattica del Parabolic SAR. Finora abbiamo imparato a conoscere il significato dell'indicatore Parabolic SAR e cosa può dirci; ora dobbiamo sapere come calcolare manualmente questo indicatore per imparare il concetto che sta alla base e ciò che segue e come farlo. 

Secondo quanto appreso, dobbiamo innanzitutto determinare il trend o la direzione del mercato e poi in base a questa determinazione, divideremo il calcolo in due casi, uno dei quali è come calcolare il Parabolic SAR durante il mercato rialzista dove restituirà il SAR in rialzo, e l'altro caso è come calcolare il Parabolic SAR durante il mercato ribassista dove restituirà il SAR in ribasso. Quindi, calcoleremo questi due elementi: Il SAR crescente in caso di mercato al rialzo e il SAR decrescente in caso di mercato al ribasso.

  • Il SAR in rialzo:
    1. Determinare il valore SAR precedente = il valore SAR del periodo precedente.
    2. Determinare il punto estremo (EP) = il valore massimo più alto dell'attuale trend rialzista.
    3. Determinare il fattore di accelerazione (AF) = valore compreso tra 0,02 e 0,20. Dopo aver determinato il primo valore minimo, pari a 0,02, il valore verrà determinato in base al (EP), in quanto AF verrà incrementato di 0,02 ogni volta che EP creerà un nuovo massimo per avvicinarsi al valore massimo di 0,20, indipendentemente dalla durata del trend.
    4. Valore attuale del Parabolic SAR = SAR precedente (fase 1) + AF precedente * (EP precedente - SAR precedente).

Prendiamo un esempio di questo caso, ovvero il SAR crescente, se abbiamo i seguenti dati di mercato:

Giorno Massimo Minimo
1 45 43
2 44 43.5
3 46 43
4 47 42
5 48 42.5
6 47.5 42.75
7 48 42.60
8 47.75 42.5
9 48 43
10 49 42.5
11 48.75 42.60
12 50 42
13 51 42.5
14 52 43
15 51.5 42.5
16 51 42
17 52 43
18 53 44
19 54 45

Ora dobbiamo calcolare il SAR al rialzo, che sarà come segue:

  1. Determinare il valore SAR precedente = il valore SAR del periodo precedente in questo esempio, è il primo valore in colore giallo, dato per semplificazione,ed è uguale a 42.
  2. Determinare il punto estremo (EP) = il valore massimo più alto dell'attuale trend rialzista, che sarà 48
  3. Otteniamo la differenza tra EP e SAR, la differenza sarà 48-42 =6
  4. Determinare il fattore di accelerazione (AF) = valore compreso tra 0,02 e 0,20, sarà 0,02 per il primo valore.
  5. Moltiplichiamo AF per la differenza tra EP e SAR, il valore sarà 0,12.
  6. Calcoliamo il SAR attuale sommando il risultato della moltiplicazione precedente dell'AF per la differenza tra EP e SAR, che è il risultato del passaggio 5 per SAR precedente; il valore sarà 42,12.

Di seguito sono riportati tutti i valori calcolati dell'esempio:

Esempio di SAR al rialzo

Come si può vedere nella colonna SAR, i valori SAR aumentano ogni giorno durante il periodo.

  • Il SAR al ribasso:
    1. Determinare il valore SAR precedente = il valore SAR del periodo precedente.
    2. Determinare il punto estremo (EP) = il valore minimo più basso dell'attuale tendenza ribassista.
    3. Determinare il fattore di accelerazione (AF) = valore compreso tra 0,02 e 0,20. Dopo aver determinato il primo valore minimo, pari a 0,02, il valore verrà determinato in base al (EP), in quanto AF verrà incrementato di 0,02 ogni volta che EP creerà un nuovo minimo per avvicinarsi al valore massimo di 0,20, indipendentemente dalla durata del trend.
    4. Valore attuale del Parabolic SAR = SAR precedente (fase 1) - AF precedente * (EP precedente - SAR precedente).

Prendiamo un esempio di questo caso, ovvero il SAR al ribasso, se abbiamo i seguenti dati di mercato:

Giorno Massimo Minimo
1 54 45
2 53 44
3 52 43
4 51 42
5 51.5 42.5
6 52 43
7 51 42.5
8 50 42
9 48.75 42.6
10 49 42.5
11 48 43
12 47.75 42.50
13 48 42.60
14 47.50 42.75
15 48 42.50
16 47 42
17 46 43
18 44 43.50
19 45 43

Ora calcoleremo i valori SAR decrescenti per il periodo in questione e il risultato sarà il seguente:

  1. Determinare il valore SAR precedente = il valore SAR del periodo precedente in questo esempio, è il primo valore in colore giallo, dato per semplificazione,ed è uguale a 51.
  2. Determinare il punto estremo (EP) = il valore minimo più basso dell'attuale trend ribassista, che sarà 42
  3. Otteniamo la differenza tra EP e SAR, la differenza sarà 51-42 =9
  4. Determinare il fattore di accelerazione (AF) = valore compreso tra 0,02 e 0,20, sarà 0,02 per il primo valore.
  5. Moltiplichiamo AF per la differenza tra EP e SAR, il valore sarà 0,18.
  6. Calcoliamo il SAR attuale sottraendo il SAR precedente dal risultato del passaggio 5; il valore sarà 50,82.

Di seguito è riportata un'immagine per il calcolo di tutti i valori durante il periodo indicato:

Come si può vedere nella colonna SAR, i valori SAR diminuiscono ogni giorno durante il periodo.

Fortunatamente, non abbiamo bisogno di calcolare l'indicatore Parabolic SAR o qualsiasi altro indicatore, perché questo è integrato nella piattaforma di trading MetaTrader 5 e tutto ciò che serve è selezionare l'indicatore tra quelli disponibili. Di seguito il modo in cui possiamo farlo:

All'apertura di MetaTrader 5, puoi cliccare sulla scheda Inserisci --> selezionare Indicatori --> selezionare Trend --> selezionare Parabolic SAR.

Inserire SAR

Successivamente, è possibile trovare la finestra dei parametri Parabolic SAR come di seguito indicato:

Parametri SAR

1- per determinare il passo (AF) che verrà aggiunto ogni volta che il prezzo crea un nuovo massimo o un nuovo minimo.

2- per determinare il valore massimo di (AF), è lo stesso di come abbiamo appreso, il valore predefinito è 0,20.

3- per determinare il colore dell'indicatore.

4- per determinare lo stile dell'indicatore.

Dopo aver determinato i parametri adatti dell'indicatore Parabolic SAR e aver premuto "OK", lo troveremo allegato al grafico come di seguito:

SAR allegato

Come si può vedere nell'immagine precedente, durante il movimento al rialzo, l'indicatore Parabolic SAR si muove al di sotto dei prezzi e continua a muoversi verso l'alto, viceversa durante il movimento al ribasso, l'indicatore Parabolic SAR si muove al di sopra dei prezzi e continua a muoversi verso il basso.


Strategia con il Parabolic SAR

In questo argomento, impareremo alcune semplici strategie che possono essere utilizzate dal Parabolic SAR e non dimenticate che dovete testare qualsiasi strategia prima di utilizzarla sul vostro conto reale, poiché l'obiettivo principale è quello di imparare il concetto di un nuovo strumento e come progettare un sistema di trading per esso.

Abbiamo detto che questo indicatore Parabolic SAR è un trend following e può essere utilizzato durante i mercati in trend, trend rialzisti e trend ribassisti. Quindi, per prima cosa determineremo il trend e poi potremo utilizzare il Parabolic SAR di conseguenza.

  • Strategia uno: strategia uptrend

Secondo questa strategia, per ogni tick dobbiamo confrontare il valore del Parabolic SAR con i prezzi e decidere se c'è un segnale di acquisto o meno, perché possiamo scoprire che il segnale di acquisto viene generato quando il valore del Parabolic SAR è inferiore al prezzo più basso, e possiamo avere un altro segnale, che è un segnale di take profit, quando il valore del SAR diventa superiore al prezzo massimo.

Valore SAR < del prezzo minimo = buy

Valore SAR > del prezzo massimo = take profit

  • Strategia due: strategia downtrend

Questa strategia sarà l'opposto della strategia uptrend, secondo la quale per ogni tick dobbiamo confrontare il valore del Parabolic SAR con i prezzi e decidere se c'è un segnale di vendita o meno, perché possiamo scoprire che il segnale di vendita sarà generato quando il valore del Parabolic SAR è maggiore del prezzo massimo, e possiamo avere un altro segnale, che è un segnale di take profit, quando il valore del SAR diventa inferiore al prezzo minimo.

Valore SAR > del prezzo massimo = sell

Valore SAR < del prezzo minimo = take profit

  • Strategia tre: segnale di acquisto con strategia di trailing stop

Secondo questa strategia, per ogni tick dobbiamo confrontare il valore SAR con i prezzi e decidere se abbiamo un segnale di acquisto e determinare i trailing stop per ogni tick in base al valore dell'indicatore Parabolic SAR. Quindi, quando il valore SAR è inferiore al prezzo minimo, si tratta di un buy e si ottiene il livello di trailing stop loss in base al valore dell'indicatore.

Valore SAR < del prezzo minimo = buy --> valore del trailing stop in base al valore SAR

  • Strategia quattro: segnale di vendita con strategia di trailing stop

Secondo questa strategia, per ogni tick dobbiamo confrontare il valore SAR con i prezzi e decidere se abbiamo un segnale di vendita e determinare i trailing stop per ogni tick in base al valore dell'indicatore Parabolic SAR. Quindi, quando il valore SAR è maggiore del prezzo massimo, sarà un sell e otterremo il livello di trailing stop in base al valore SAR.

Valore SAR > del prezzo massimo = sell --> valore del trailing stop in base al valore SAR.


Schema della strategia Parabolic SAR

In questo argomento, progetteremo uno schema per le nostre strategie che ci aiuterà a scrivere il codice del sistema di trading, in quanto ci permetterà di organizzare e strutturare la nostra mente per sapere cosa dobbiamo comunicare passo dopo passo all’expert advisor, quindi il seguente è uno schema per ogni strategia.

  • Strategia uno: strategia uptrend

Informeremo il computer o l'expert advisor su cosa deve controllare e cosa restituirà nel caso in cui le condizioni siano soddisfatte, e in questa strategia, dobbiamo controllare il valore SAR e confrontarlo con il livello del prezzo e poi decidere se il valore SAR è inferiore o meno al prezzo minimo, in caso contrario non deve restituire nulla o in caso affermativo l'expert deve restituire un segnale di acquisto, poi quando controlliamo e confrontiamo nuovamente i due valori, decidiamo se il valore SAR è maggiore o meno del valore massimo e in caso negativo il programma non deve restituire nulla o in caso affermativo deve restituire un segnale di take profit.

Valore SAR < del prezzo minimo = buy

Valore SAR > del prezzo massimo = take profit

SAR - Schema strategia rialzista

  • Strategia due: strategia downtrend

In questa strategia, dobbiamo controllare il valore SAR e confrontarlo con il livello del prezzo e poi decidere se il valore SAR è maggiore o meno del prezzo massimo, in caso contrario non deve restituire nulla o in caso affermativo, l'expert deve restituire un segnale di vendita; quindi, quando controlliamo e confrontiamo nuovamente i due valori, dobbiamo decidere se il valore SAR è minore o meno del valore minimo, in caso negativo, il programma non deve restituire nulla o in caso affermativo, deve restituire un segnale di take profit.

Valore SAR > del prezzo massimo = sell

Valore SAR < del prezzo minimo = take profit

SAR schema strategia ribassista

  • Strategia tre: segnale di acquisto con strategia di trailing stop
  • Per scrivere il codice di questa strategia, il programma deve controllare il valore SAR e restituire il valore del trailing stop poi deve controllare questo valore con il massimo e il minimo e decidere se il valore SAR è inferiore o meno al prezzo minimo, in caso contrario, deve restituire solo il valore del trailing stop, in caso affermativo, deve restituire un segnale di acquisto e il valore del trailing stop. 

    solo il livello di trailing stop --> valore SAR < del prezzo minimo = buy --> valore di trailing stop secondo il valore SAR

    Schema strategia buy con stop

    • Strategia quattro: segnale di vendita con strategia di trailing stop

    Per scrivere il codice di questa strategia, il programma deve controllare il valore SAR e restituire il valore del trailing stop e controllare questo valore con il massimo e il minimo e decidere se il valore SAR è maggiore o meno del prezzo massimo, in caso contrario,deve restituire solo il valore del trailing stop, in caso affermativo, deve restituire un segnale di vendita e il valore del trailing stop.

    solo il valore di trailing stop --> valore SAR > del prezzo massimo = sell --> valore di trailing stop secondo il valore SAR

    Schema strategia sell con stop

    Sistema di trading con il Parabolic SAR

    In questo interessante argomento, impareremo a scrivere il codice di ogni strategia citata tramite MQL5 (MetaQuotes Language Editor) per progettare un sistema di trading per ognuna di esse, in modo da essere eseguite sulla piattaforma di trading MetaTrader 5 in modo automatico e preciso.

    Per prima cosa, impareremo a scrivere un codice per progettare un semplice sistema di trading che restituisca un commento con il valore del Parabolic SAR; per scrivere questo semplice expert seguiremo i seguenti passi.

    • Creare un array per il Parabolic SAR e utilizzeremo la funzione "double":
    double SARArray[];
    • Ordiniamo l'array dai dati attuali utilizzando la funzione "ArraySetAsSeries" che restituirà un valore booleano:
    ArraySetAsSeries(SARArray,true);
    • Definiamo l'indicatore SAR utilizzando la funzione "iSAR":
    int SARDef=iSAR(_Symbol,_Period,0.02,0.2);
    • Riempiamo SARArray con la definizione SAR utilizzando la funzione "CopyBuffer":
    CopyBuffer(SARDef,0,0,3,SARArray);
    • Calcoliamo il valore di SAR utilizzando la funzione "NormalizeDouble" dopo aver creato una variabile per il valore SAR con la funzione "double":
    double SARValue=NormalizeDouble(SARArray[0],5);
    • Output del grafico con il valore SAR utilizzando la funzione comment:
    Comment("Parabolic SAR value is ",SARValue);

    Dopo di che possiamo trovare il blocco completo del codice, come il seguente:

    //+------------------------------------------------------------------+
    //|                                  Simple Parabolic SAR System.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()
      {    
       //create a SAR array
       double SARArray[];
    
       //sort array from current data
       ArraySetAsSeries(SARArray,true);
       
       //define SAR EA
       int SARDef=iSAR(_Symbol,_Period,0.02,0.2);
       
       
       //fill SARArray with SARDef 
       CopyBuffer(SARDef,0,0,3,SARArray);
       
       //calculate value of last data
       double SARValue=NormalizeDouble(SARArray[0],5);
    
       //chart comment with the signal
       Comment("Parabolic SAR value is ",SARValue);
      }
    //+------------------------------------------------------------------+

    Dopo aver scritto e compilato questo codice, possiamo trovarlo nel navigatore come nell'immagine seguente:

    Sistema parabolic SAR semplice - Nav.

    Faremo doppio clic o trascineremo il file sul grafico per eseguire l'expert advisor e ottenere i risultati del sistema, quindi troveremo la seguente finestra:

     Sistema parabolic SAR semplice - finestra

    Quindi, spuntiamo la voce "Consenti Algo Trading" e premiamo il tasto OK per trovare il sistema o l'expert advisor allegato al grafico come di seguito:

    Sistema parabolic SAR semplice - allegato

    L'immagine seguente è un esempio dei segnali generati da questo sistema:

    Sistema parabolic SAR semplice

    • Strategia uno: strategia uptrend

    Come ho detto, in questa strategia dobbiamo impostare le nostre condizioni affinché il sistema di trading generi un segnale di acquisto quando il valore SAR è inferiore al prezzo minimo e generi un segnale di take profit quando il valore SAR diventa maggiore del prezzo massimo, di seguito come codificare questa strategia:

    • Creare una variabile stringa per il segnale utilizzando la funzione "string":
    string signal="";
    • Creare un array per i prezzi utilizzando la funzione "MqlRates", che memorizza le informazioni su prezzi, volumi e spread:
    MqlRates PriceArray[];
    • Ordinare l'array dei prezzi dai dati correnti utilizzando la funzione "ArraySetAsSeries":
    ArraySetAsSeries(PriceArray,true);
    • Riempire l'array con i dati dei prezzi utilizzando la funzione "CopyRates", che ottiene i dati storici della struttura "MqlRates" dopo aver memorizzato i dati come numeri interi:
    int Data=CopyRates(_Symbol,_Period,0,3,PriceArray);
    • Creare un'altro array per il valore SAR utilizzando la funzione "double":
    double SARArray[];
    • Ordinare l'array SAR dai dati correnti utilizzando la funzione "ArraySetAsSeries":
    ArraySetAsSeries(SARArray,true);
    • Definire l'indicatore SAR per l'EA utilizzando la funzione "iSAR" che restituisce l'handle dell'indicatore Parabolic SAR dopo aver memorizzato "SARDef" come intero per far riferimento alla definizione SAR:
    int SARDef=iSAR(_Symbol,_Period,0.02,0.2);
    • Riempire il SARArray con SARDef utilizzando la funzione "CopyBuffer", che ottiene i dati di un buffer specifico di un determinato indicatore:
    CopyBuffer(SARDef,0,0,3,SARArray);
    • Calcolare il valore SAR degli ultimi dati utilizzando la funzione "NormalizeDouble" che restituisce il tipo di valore double: 
    double SARValue=NormalizeDouble(SARArray[0],5);
    • Impostare le condizioni del segnale "buy" utilizzando la funzione "if", se il valore SAR è inferiore al prezzo minimo, deve restituire il segnale "buy":
       if(SARValue < PriceArray[1].low)
       {
          signal="Buy";
       }
    • Impostare le condizioni del segnale "take profit" utilizzando la funzione "if"; se il valore SAR è maggiore del prezzo massimo, deve restituire il segnale "Take Profit":
       if(SARValue > PriceArray[1].high)
       {
          signal="Take Profit";
       }
    • Commentare il segnale generato sul grafico utilizzando la funzione "Comment":
    Comment("The signal is ",signal);

    Attraverso i passaggi precedenti, abbiamo creato un sistema di trading per questa strategia e il seguente è il codice completo in un unico blocco:

    //+------------------------------------------------------------------+
    //|                      Parabilic SAR System - Uptrend Strategy.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()
      {  
       //create an string variable for signal
       string signal="";
       
       //create a price array
       MqlRates PriceArray[];
       
       //sort array from the current data
       ArraySetAsSeries(PriceArray,true);
       
       //fill array with price data
       int Data=CopyRates(_Symbol,_Period,0,3,PriceArray);
       
       //create a SAR array
       double SARArray[];
    
       //sort array from current data
       ArraySetAsSeries(SARArray,true);
       
       //define SAR EA
       int SARDef=iSAR(_Symbol,_Period,0.02,0.2);
       
       
       //fill SARArray with SARDef 
       CopyBuffer(SARDef,0,0,3,SARArray);
       
       //calculate value of last data
       double SARValue=NormalizeDouble(SARArray[0],5);
       
       //buy signal
       //if current SAR value below candle 1 low
       if(SARValue < PriceArray[1].low)
       {
          signal="Buy";
       }
       
       //take profit signal
       //if current SAR value above candle 1 high
       if(SARValue > PriceArray[1].high)
       {
          signal="Take Profit";
       }
       
       //comment with the signal
       Comment("The signal is ",signal);
      }
    //+------------------------------------------------------------------+

    Dopo aver compilato questo codice, possiamo trovare nella finestra del navigatore l'immagine seguente:

    Uptrend - allegato - Nav

    Facendo doppio clic o trascinando e rilasciando il file sul grafico, apparirà la seguente finestra:

     Uptrend SAR - finestra

    Dopo aver premuto "OK", troveremo l'expert advisor allegato al grafico come nell'immagine seguente:

    Uptrend - allegato

    Dopo di che, possiamo trovare i segnali generati sul grafico come commenti, come nelle immagini seguenti, esempi di test:

    • Segnale d’acquisto:

    Uptrend - Segnale buy

    • Segnale di take profit:

    Segnale Uptrend - TP

    • Strategia due: strategia downtrend

    In questa strategia, dobbiamo impostare le nostre condizioni affinché il sistema di trading generi un segnale di vendita quando il valore SAR è maggiore al prezzo massimo e generi un segnale di take profit quando il valore SAR diventa minore del prezzo minimo, di seguito come codificare questa strategia:

    //+------------------------------------------------------------------+
    //|                    Parabolic SAR System - Downtrend Strategy.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()
      {  
       //create an string variable for signal
       string signal="";
       
       //create a price array
       MqlRates PriceArray[];
       
       //sort array from the current data
       ArraySetAsSeries(PriceArray,true);
       
       //fill array with price data
       int Data=CopyRates(_Symbol,_Period,0,3,PriceArray);
       
       //create a SAR array
       double SARArray[];
       
       //define SAR EA
       int SARDef=iSAR(_Symbol,_Period,0.02,0.2);
       
       //sort array from current data
       ArraySetAsSeries(SARArray,true);
       
       //fill SARArray with SARDef 
       CopyBuffer(SARDef,0,0,3,SARArray);
       
       //calculate value of last data
       double SARValue=NormalizeDouble(SARArray[0],5);
       
       //buy signal
       //if current SAR value below candle 1 low
       if(SARValue > PriceArray[1].high)
       {
          signal="Sell";
       }
       
       //take profit signal
       //if current SAR value above candle 1 high
       if(SARValue < PriceArray[1].low)
       {
          signal="Take Profit";
       }
       
       //chart comment with the signal
       Comment("The signal is ",signal);
      }
    //+------------------------------------------------------------------+
    • Le differenze nel codice di questa strategia sono:
      • Condizioni del segnale di vendita - quando il valore SAR diventa maggiore del prezzo massimo:
       if(SARValue > PriceArray[1].high)
       {
          signal="Sell";
       }
      • Condizioni del segnale di take profit - quando il valore SAR diventa inferiore al prezzo minimo:
       if(SARValue < PriceArray[1].low)
       {
          signal="Take Profit";
       }

    Dopo aver compilato questo codice, lo troveremo nella finestra del navigatore come expert advisor, come nella figura seguente:

    SAR Downtrend - Nav

    Dopo aver trascinato e rilasciato il file sul grafico per eseguire l'expert, si aprirà la seguente finestra:

    SAR Downtrend - finestra

    Dopo aver premuto "OK", l'esperto sarà allegato al grafico come nella figura seguente:

    SAR Downtrend - allegato

    I segnali di questa strategia appaiono sul grafico sotto forma di commenti, come nelle immagini seguenti, che sono un esempio di test:

    • Segnale di vendita:

    SAR Downtrend - Segnale di vendita

    • Segnale di take profit:

    SAR Downtrend - Segnale TP

    • Strategia tre: segnale di acquisto con strategia di trailing stop

    In questa strategia, dobbiamo visualizzare sul grafico un segnale di acquisto e i trailing stop come commenti in base al valore del Parabolic SAR e ai prezzi, attraverso condizioni specifiche, che consistono nel vedere il valore dei trailing stop sul grafico e poi generare un nuovo segnale di acquisto se il valore del SAR diventa inferiore al prezzo minimo. Per progettare un sistema di trading per questa strategia, si può utilizzare il seguente codice:

    //+------------------------------------------------------------------+
    //|         Parabolic SAR System - Buy signal with training stop.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()
      {  
       //create an string variable for signal
       string signal="";
       
       //create a price array
       MqlRates PriceArray[];
       
       //sort array from the current data
       ArraySetAsSeries(PriceArray,true);
       
       //fill array with price data
       int Data=CopyRates(_Symbol,_Period,0,3,PriceArray);
       
       //create a SAR array
       double SARArray[];
       
       //define SAR EA
       int SARDef=iSAR(_Symbol,_Period,0.02,0.2);
       
       //sort array from current data
       ArraySetAsSeries(SARArray,true);
       
       //fill SARArray with SARDef 
       CopyBuffer(SARDef,0,0,3,SARArray);
       
       //calculate value of last data
       double SARValue=NormalizeDouble(SARArray[0],5);
       
       //buy signal
       //if current SAR value below candle 1 low
       if(SARValue < PriceArray[1].low)
       {
          signal="Buy";
       }
       
       //chart comment with the signal and trailing Stop
       Comment("The signal is ",signal,"\n", "Trailing Stop is ",SARValue);
      }
    //+------------------------------------------------------------------+
    • La differenza è:
      • Aggiunta del valore di trailing stop che è il valore SAR, in una nuova riga come commento sul grafico:
    Comment("The signal is ",signal,"\n", "Trailing Stop is ",SARValue);

    Dopo aver compilato questo codice, possiamo trovare il file dell'expert advisor nel navigatore come segue:

    SAR Uptrend - Segnale d’acquisto con trailing stop - Nav

    Quando desideriamo eseguire questo expert, lo trascineremo e rilasceremo sul grafico e si aprirà la seguente finestra:

    SAR Uptrend - Segnale d’acquisto con trailing stop - finestra

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

    SAR Uptrend - Segnale d’acquisto con trailing stop - allegato

    Le immagini seguenti sono esempi di segnali generati secondo questa strategia provenienti da test:

    SAR Uptrend - Segnale d’acquisto con trailing stop1

    L'immagine seguente mostra come il valore del trailing stop aumenti con il prezzo:

    SAR Uptrend - Segnale d’acquisto con trailing stop 2

    • Strategia quattro: Segnale di vendita con strategia di trailing stop

    In questa strategia, dobbiamo visualizzare sul grafico un segnale di vendita e i trailing stop come commenti in base al valore del Parabolic SAR e ai prezzi, attraverso condizioni specifiche, che consistono nel vedere il valore dei trailing stop sul grafico e poi generare un nuovo segnale di vendita se il valore del SAR diventa superiore al prezzo massimo. Per progettare un sistema di trading per questa strategia, si può utilizzare il seguente codice:

    //+-----------------------------------------------------------+
    //| Parabolic SAR System - Sell signal with trailing stop.mq5 |
    //| Copyright 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()
      {  
       //create an string variable for signal
       string signal="";
       
       //create a price array
       MqlRates PriceArray[];
       
       //sort array from the current data
       ArraySetAsSeries(PriceArray,true);
       
       //fill array with price data
       int Data=CopyRates(_Symbol,_Period,0,3,PriceArray);
       
       //create a SAR array
       double SARArray[];
       
       //define SAR EA
       int SARDef=iSAR(_Symbol,_Period,0.02,0.2);
       
       //sort array from current data
       ArraySetAsSeries(SARArray,true);
       
       //fill SARArray with SARDef 
       CopyBuffer(SARDef,0,0,3,SARArray);
       
       //calculate value of last data
       double SARValue=NormalizeDouble(SARArray[0],5);
       
       //buy signal
       //if current SAR value below candle 1 low
       if(SARValue > PriceArray[1].high)
       {
          signal="Sell";
       }
       
       //chart comment with the signal and trailing Stop
       Comment("The signal is ",signal,"\n", "Trailing Stop is ",SARValue);
      }
    //+------------------------------------------------------------------+
    • La differenza è:
      • Condizioni del segnale di vendita:
       if(SARValue > PriceArray[1].high)
       {
          signal="Sell";
       }

    Dopo aver compilato il codice, possiamo trovare l'expert nel navigatore come segue:

    SAR Downtrend - Segnale di vendita con trailing stop - Nav

    Possiamo eseguirlo trascinando e rilasciando il file sul grafico, dopodiché apparirà la finestra dell'expert:

    SAR Downtrend - Segnale di vendita con trailing stop - finestra

    Dopo aver premuto "OK", l'esperto verrà allegato:

    SAR Downtrend - Segnale di vendita con trailing stop - allegato

    Le immagini seguenti sono esempi di segnali generati:

    SAR Downtrend - Segnale di vendita con trailing stop1

    Di seguito viene mostrata la diminuzione dei trailing stop con il prezzo:

    SAR Downtrend - Segnale di vendita con trailing stop2


    Conclusioni

    Ora, possiamo dire di aver appreso alcune nozioni di base dell'indicatore tecnico Parabolic SAR in dettaglio, abbiamo imparato cos'è l'indicatore e cosa misura, come possiamo calcolarlo manualmente per capire il concetto che sta alla base, abbiamo imparato come possiamo utilizzarlo attraverso semplici strategie, abbiamo progettato uno schema per queste strategie per aiutarci a progettare un sistema di trading basato su di esse, e abbiamo imparato come codificare queste strategie con MQL5 per eseguirle su MetaTrader 5 per generare segnali in modo automatico e preciso.

    Spero che tu abbia provato a codificare queste strategie da solo in quanto ciò migliorerà la tua curva di apprendimento perché la pratica è un fattore molto importante per padroneggiare qualsiasi cosa e puoi testare che quando impari qualcosa puoi scoprire che la tua consapevolezza sarà aumentata quando pratichi o applichi ciò che hai imparato più di quanto non hai praticato.

    Spero anche che questo articolo ti sia stato utile, ti abbia dato spunti potenti e utili per migliorare il tuo trading e che ti abbia aperto gli occhi a nuove idee relative all'argomento dell'articolo o a qualsiasi altro argomento correlato. Devo anche confermare che è necessario testare qualsiasi nuovo strumento o strategia per un periodo ragionevole prima di utilizzarlo sul tuo conto reale, per essere sicuri che possa migliorare i tuoi risultati di trading.


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

    Sviluppare un Expert Advisor per il  trading da zero (Parte 9): Un salto concettuale (II) Sviluppare un Expert Advisor per il trading da zero (Parte 9): Un salto concettuale (II)
    In questo articolo, posizioneremo Chart Trade in una finestra mobile. Nella parte precedente abbiamo creato un sistema di base che consente di utilizzare i modelli all'interno di una finestra mobile.
    Sviluppare un Expert Advisor per il trading da zero (Parte 8): Un salto concettuale Sviluppare un Expert Advisor per il trading da zero (Parte 8): Un salto concettuale
    Qual è il modo più semplice per implementare nuove funzionalità? In questo articolo, faremo un passo indietro e poi due passi avanti.
    SQLite: Gestione nativa dei database SQL in MQL5 SQLite: Gestione nativa dei database SQL in MQL5
    Lo sviluppo delle strategie di trading è associato alla gestione di grandi quantità di dati. Ora è possibile lavorare con i database utilizzando query SQL basate su SQLite direttamente in MQL5. Una caratteristica importante di questo motore è che l'intero database è collocato in un unico file situato sul PC dell'utente.
    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.