Scopri come creare un sistema di trading con l’indicatore Momentum

Mohamed Abdelmaaboud | 19 luglio, 2022

Introduzione

Nel mio precedente articolo ho parlato dell'importanza di identificare la tendenza di mercato, ovvero la direzione dei prezzi. È importante perché in base alla tendenza possiamo prendere una decisioni operative adeguate. Possiamo dire che identificare la direzione del mercato ci aiuterà a migliorare le nostre decisioni di trading e i nostri risultati. Per questo è fondamentale definire e analizzare la tendenza. 

Un altro elemento che può migliorare le nostre decisioni è la capacità di determinare se la tendenza definita è forte o debole o, in altre parole, se la tendenza attuale continuerà o meno. Esistono diversi strumenti in grado di farlo. In questo articolo ci concentreremo sul Momentum, che è uno degli strumenti più importanti per analizzare il trend dal momento che, come vedremo più in dettaglio in questo articolo, il Momentum misura la velocità dell’andamento dei prezzi, e quindi del trend.

In questo articolo, definiremo con chiarezza il concetto di momentum e come utilizzare l’indicatore a nostro vantaggio. Progetteremo un semplice sistema di trading in MQL5 e vedremo come la magia della programmazione possa aiutarci a fare trading in modo fluido, semplice ed efficace. In questo articolo discuteremo i seguenti argomenti:

Inizieremo a saperne di più sull'indicatore Momentum con il primo argomento "Definizione di Momentum" - vedremo cos'è l'indicatore Momentum e come viene calcolato. In seguito, impareremo una semplice strategia per accrescere la nostra comprensione dell'indicatore Momentum e comprendere la sua utilità. Progetteremo poi un sistema per eseguire una strategia di trading con il Momentum, in funzione di codificarla in MQL5. Quindi, impareremo a codificare la strategia e a eseguirla per ottenere i suoi segnali operativi. 

Qui utilizzeremo MetaTrader 5 per eseguire i programmi del nostro sistema di trading e scriveremo i codici utilizzando il MetaQuotes Language Editor che è integrato in MetaTrader 5. È possibile scaricare MetaTrader 5 dal seguente link: https://www.metatrader5.com/en/download

Dopo aver scaricato, installato e aperto MetaTrader 5, viene visualizzata la seguente finestra:

Piattaforma MT5

Aprite MetaQuotes Language Editor per scrivere i codici. L’apertura si può fare in diversi modi:

Il modo più semplice è quello di aprire MetaTrader 5 e premere il tasto F4 della tastiera per aprire il MetaQuotes Language Editor.

Un secondo metodo per aprire MetaQuotes Language Editor è quello di utilizzare il menu Strumenti:

Metaeditor apertura 1

Il terzo metodo consiste nel fare clic sul pulsante IDE in MetaTrader 5:

Metaeditor apertura 2

Si apre la seguente finestra:

Finestra del Metaeditor

Se volete saperne di più, potete leggere i miei articoli precedenti:  Imparate perché e come progettare il vostro sistema di trading algoritmico

Il mio consiglio è di mettere sempre in pratica ciò che si legge e si impara, per una maggiore comprensione e per ricavare nuovi spunti e idee su argomenti più o meno correlati. L'obiettivo principale di questo articolo è condividere con voi ciò che ho imparato su come questo eccellente strumento, ovvero MQL5, può aiutarci nel trading.

Tenete ben presente che è necessario testare tutto ciò che si impara prima di utilizzarlo. Un sistema che si adatta a me, infatti, potrebbe non essere ideale per voi, in ragione del vostro diverso stile di trading, ad esempio. E’ quindi fondamentale utilizzare un conto demo per testare tutto ciò che si impara e valutarne l’utilità. 

Disclaimer I contenuti di questo articolo sono stati realizzati solo a scopo educativo. Sarete pertanto responsabili di qualsiasi azione intrapresa sulla base del contenuto di questo articolo. Il contenuto di questo articolo non garantisce alcun tipo di risultato.

Iniziamo adesso a studiare l’argomento per accrescere il nostro bagaglio di conoscenze e continuare a migliorare.


Definizione di Momentum

In questa prima parte, definiremo il concetto di Momentum e la sua utilità per il nostro trading, e vedremo cos'è l'indicatore Momentum e come può essere calcolato. Sapere come viene calcolato ci aiuterà a capire come utilizzarlo al meglio. La comprensione profonda di uno strumento infatti è la chiave per valorizzarlo al massimo.

Il concetto di Momentum ha a che vedere con la misurazione della velocità di un fenomeno. Nel nostro caso, la misurazione della velocità delle variazioni di prezzo. Confrontando il prezzo attuale con un valore precedente, il Momentum misura la velocità di variazione fra questi due valori. L'indicatore Momentum misura la velocità delle variazioni di prezzo o, in altri termini, l'accelerazione della tendenza.

Sappiamo già che è molto importante determinare prima la natura del trend o direzione del mercato. E’ infatti in base a quest’ultima che prenderemo le nostre decisioni operative. Dobbiamo quindi, innanzitutto, definire la tendenza di mercato, ovvero se siamo di fronte a un trend rialzista, ribassista o laterale.

Per ulteriori informazioni, consultare il mio precedente articolo Imparare a progettare un sistema di trading con l'RSI 

Il concetto di Momentum è molto importante in quanto mostra la forza del trend. D’ora in poi, quindi, non ci limiteremo a determinare la sola direzione del trend, ma misureremo anche la sua forza, analizzando il Momentum.

L'indicatore Momentum è un indicatore “leading”, ovvero è in grado di anticipare i prezzi. In altre parole, il suo valore cambia prima che il cambiamento sia visibile nei prezzi.

Si tratta di un oscillatore non vincolato in termini di calcolo, il che è considerato uno dei suoi svantaggi. Un inconveniente è che, in base al suo calcolo, l'indicatore Momentum manca di dati tra i giorni in cui è calcolato.

Esistono due modi diversi per calcolare il Momentum:

Queste due modalità utilizzeranno il prezzo corrente e il prezzo precedente, in base al periodo prescelto. Il valore predefinito è 14. Vediamo quindi le formule utilizzate in entrambi i tipi di calcolo, con alcuni esempi.

Il calcolo è molto semplice: si fa la differenza tra il prezzo di chiusura del periodo corrente e quello del periodo precedente.

Momentum = Prezzo di chiusura attuale - Prezzo di chiusura di (n)

n = 14, che è il periodo, ed è l'impostazione predefinita

Eseguito il calcolo, l'indicatore Momentum traccia una linea che oscilla sopra e sotto lo zero.

Vediamo un esempio di calcolo dell'indicatore. Supponiamo di avere i seguenti dati:

Giorno Prezzo di chiusura
1
10
2 12
3 15
4 17
5 19
6 20
7 18
8 16
9 20
10 22
11 24
12 20
13 18
14 17
15 15

Ora, se vogliamo calcolare il Momentum del 15° giorno, il risultato sarà il seguente:

Momentum = Prezzo di chiusura attuale - Prezzo di chiusura di (n)

n = 14 che è il giorno 1

Momentum = 15 - 10 = 5

Poi tracciamo la differenza sopra lo zero e accanto a 5, dato che l'indicatore Momentum oscilla sopra e sotto lo zero. Da questo calcolo si possono notare gli inconvenienti, come abbiamo detto in precedenza: ci sono dati mancanti quelli calcolati, poiché sottraiamo 14 periodi dall'attuale. Un altro inconveniente è che l'indicatore non è vincolato, ossia non ha limiti di aumento o di diminuzione. 

L'altro modo per calcolare l'indicatore Momentum è quello di utilizzare il rapporto. Esattamente questo calcolo viene utilizzato in MetaTrader 5. Si compone delle seguenti step:

Momentum = (Prezzo di chiusura attuale / Prezzo di chiusura di (n))*100

n = 14 che è il giorno 1

Applicando questo calcolo all'esempio precedente, otteniamo il Momento come segue:

Momentum = (15 / 10)*100 = 150

Quindi, il valore verrà tracciato al di sopra di 100 e accanto a 150, poiché in questo caso l'indicatore Momentum oscillerà al di sopra e al di sotto di 100. In questo articolo utilizzeremo questo metodo di calcolo e applicheremo la strategia su di esso.

L'indicatore è già incorporato in MetaTrader 5, quindi è sufficiente selezionarlo per inserirlo nel grafico.

Da MetaTrader 5, fate clic su Inserisci, quindi scegliete Indicatori, Oscillatori e poi Momentum, come nell’immagine seguente :

Inserisci Momentum

Dopo aver scelto Momentum, appare la seguente immagine per selezionare i parametri dell'indicatore Momentum:

Parametri del Momentum

La finestra precedente include i parametri dell'indicatore Momentum. Da qui potete impostare i valori che ritenete adatti al vostro stile o al vostro piano di trading, che varia da trader a trader in base alle preferenze:

  1. Con riferimento al periodo da confrontare con il prezzo corrente, l'impostazione predefinita è 14.
  2. Selezionate il tipo di prezzo da utilizzare nel calcolo del Momentum (Chiusura, Apertura, Massimo, Minimo,.....etc).
  3. Selezionate lo stile di rappresentazione dell'indicatore che preferite, in termini di colore, tipo di linea e spessore della linea.

Dopo aver scelto i parametri adatti e aver premuto il tasto OK, l'indicatore appare come nella figura seguente:

Momentum su grafico


Strategia di Momentum

In questa parte, impareremo insieme una semplice strategia che impiega l'indicatore Momentum. Esistono diverse strategie e modalità interessanti per utilizzare Momentum ma, per motivi didattici, qui lavoreremo con una strategia semplice. Il nostro obiettivo è quello di imparare a usarla e di aprirci a nuove idee che potrebbero emergere dopo aver appreso il nocciolo dell'argomento. Lo scopo finale è quello di imparare a rendere queste idee dei sistemi di trading, utilizzando MQL5.

La nostra strategia cercherà un crossover tra la linea del Momentum e il livello 100. Quando la linea del Momentum rompe 100 al rialzo, si tratta di un segnale di acquisto. Quando la linea del Momentum rompe 100 al ribasso, si tratta di un segnale di vendita.

Questo segnale verrà generato in base alla direzione del trend, creando un filtro per il segnale generato. L'indicatore Momentum fornisce segnali anticipati e produce rapidi swing, che possono essere utilizzati per filtrare i segnali generati.

Ecco di seguito come si presenterà il segnale:

Durante Trend Rialzista:

L'immagine seguente mostra un esempio di segnale generato durante il trend rialzista dal crossover del Momentum:

Strategia Trend Rialzista

Durante il Trend Ribassista:

L'immagine seguente mostra un esempio del segnale che può essere generato durante il trend ribassista, quando l'indicatore Momentum supera il livello 100:

Strategia Trend Ribassista

Progetto del sistema di trading con il Momentum

In questa parte, presenterò le linee guida per la creazione di strategie di Momentum e la loro traduzione in sistemi di trading. Questa fase riguarda quindi la pianificazione della futura codifica, finalizzata alla realizzazione di un programma che possa essere eseguito dal computer.

Progetto di Momentum in trend ribassista

Utilizzando le linee guida di cui sopra, programmeremo le strategie utilizzando MQL5 per ottenere un programma che fornisca automaticamente i segnali, in modo da non dover controllare manualmente i segnali del Momentum. Questo è ciò che implementeremo nella prossima parte dell'articolo.


Sistema di trading con il Momentum

In primo luogo, per capire meglio come può essere codificato l'indicatore Momentum, impareremo a progettare un semplice sistema che genererà un commento sul grafico con il valore del Momentum. Questo è implementato nel codice seguente:

//+------------------------------------------------------------------+
//|                                       Simple Momentum 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()
  {
   //Creating array for prices
   double PriceArray [];
   
   //Identifying Momentum properties
   int MomentumDef = iMomentum(_Symbol,_Period,14,PRICE_CLOSE);
   
   //Sorting price array
   ArraySetAsSeries(PriceArray,true);
   
   //Copying results
   CopyBuffer(MomentumDef,0,0,3,PriceArray);
   
   //Getting Momentum value of current price
   double MomentumValue = NormalizeDouble(PriceArray[0],2);
   
   //Commenting Momentum output on the chart
   if(MomentumValue>100) Comment("MOMENTUM VALUE IS: ",MomentumValue);
   
  }
//+------------------------------------------------------------------+

Dopo aver scritto questo programma, è necessario eseguirlo nella piattaforma di trading MetaTrader 5. A tal fine, accedete al terminale di trading MetaTrader 5 e, da Navigator, selezionate il file desiderato. La finestra Navigator è solitamente aperta nel terminale. Se non lo è, andate nel menu Visualizza e selezionate Navigatore oppure premete Ctrl + N quando MetaTrader 5 è aperta.

L'immagine seguente mostra come trovare il file nel Navigatore:

Indicatore Momentum navigatore

A questo punto, aprite il file facendo doppio clic o trascinandolo sul grafico. Dopo di che, la finestra seguente sarà aperta:

Simple Momentum Finestra

Attivate l'opzione "Consenti Trading Algoritmico" e premete Ok. Il programma verrà allegato al grafico e i commenti del caso appariranno sul grafico. Di seguito è riportato un esempio di programma in esecuzione:

Simple Momentum allegato

Ora dobbiamo progettare la nostra strategia con i due tipi di trend - uptrend e downtrend. Come detto in precedenza:

Durante Trend Rialzista:

Questo è implementato nel codice seguente:

//+------------------------------------------------------------------+
//|                                    Momentum 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()
  {
   //Creating array for prices
   double PriceArray [];
   
   //Identifying Momentum properties
   int MomentumDef = iMomentum(_Symbol,_Period,14,PRICE_CLOSE);
   
   //Sorting price array
   ArraySetAsSeries(PriceArray,true);
   
   //Copying results
   CopyBuffer(MomentumDef,0,0,3,PriceArray);
   
   //Getting Momentum value of current price
   double MomentumValue = NormalizeDouble(PriceArray[0],2);
   
   //Commenting Momentum output on the chart
   if(MomentumValue>100) Comment("MOMENTUM UPTREND STRATEGY - BUY");
   if(MomentumValue<100) Comment("MOMENTUM UPTREND STRATEGY - No SIGNAL");
  }
//+------------------------------------------------------------------+

Dopo aver scritto questo codice, eseguitelo nel terminale di trading: genererà i segnali desiderati sul grafico, proprio come abbiamo visto nel programma precedente. Accedete alla finestra Navigatore e trovate il programma, come mostrato nella figura seguente:

Indicatore Momentum navigatore1

Quindi aprite il file facendo doppio clic o trascinandolo sul grafico. Si aprirà la seguente finestra dei parametri:

Finestra della strategia Momentum Rialzista 

Attivate l'opzione Consenti Trading Algoritmico e fate clic su OK. Il file verrà allegato al grafico come segue:

Strategia Momentum Rialzista inserita

Il programma inizierà a generare commenti sul grafico, mostrando i segnali secondo questa strategia.

Strategia Momentum Rialzista - Acquista

Strategia Momentum Rialzista - nessun segnale

Durante il Trend Ribassista:

Il codice seguente mostra come progettare un programma a tale scopo:

//+------------------------------------------------------------------+
//|                                  Momentum 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()
  {
   //Creating array for prices
   double PriceArray [];
   
   //Identifying Momentum properties
   int MomentumDef = iMomentum(_Symbol,_Period,14,PRICE_CLOSE);
   
   //Sorting price array
   ArraySetAsSeries(PriceArray,true);
   
   //Copying results
   CopyBuffer(MomentumDef,0,0,3,PriceArray);
   
   //Getting Momentum value of current price
   double MomentumValue = NormalizeDouble(PriceArray[0],2);
   
   //Commenting Momentum output on the chart
   if(MomentumValue<100) Comment("MOMENTUM DOWNTREND STRATEGY - SHORT");
   if(MomentumValue>100) Comment("MOMENTUM DOWNTREND STRATEGY - No SIGNAL");
  }
//+------------------------------------------------------------------+

Dopo aver scritto il codice nel nostro MetaQuotes Language Editor e averlo compilato, eseguite nuovamente il file del programma sul grafico. Cercatelo nel Navigatore, all’interno della cartella Consiglieri esperti, come nell'immagine seguente:

Indicatore Momentum navigator2

Quindi fate doppio clic o trascinate il file sul grafico. Si aprirà la seguente finestra con i parametri del programma:

Finestra della strategia Momentum Ribassista

Anche in questo caso, attivate "Consenti Trading Algoritmico", quindi premete OK. Il programma sarà inserito nel grafico e funzionerà come mostrato nell'immagine seguente:

Strategia Momentum Ribassista inserita

I segnali generati secondo questa strategia saranno i seguenti.

Strategia Momentum Ribassista - Vendi

Strategia Momentum Ribassista - nessun segnale

In questo modo abbiamo progettato un sistema di trading con l'indicatore Momentum, utilizzando una semplice strategia. Come ho accennato nell'articolo, ci sono molte strategie che possiamo utilizzare con l'indicatore Momentum, ma qui abbiamo cercato di utilizzarne e condividerne una semplice, per comprendere la logica dell'indicatore e aiutare i principianti a programmarla. Spero che questo argomento vi incoraggi a trovare nuovi spunti e nuove idee su come migliorare il trading utilizzando MQL5.


Conclusione

Abbiamo terminato il nostro argomento. In questo articolo abbiamo appreso il concetto di Momentum, abbiamo visto perché è importante per il nostro trading e come può aggiungere una nuova dimensione all’analisi del trend. Abbiamo anche visto l'indicatore Momentum, cosa misura e come può essere calcolato. Poi abbiamo imparato una semplice strategia che può essere utilizzata con l'indicatore Momentum nelle diverse fasi di mercato. Abbiamo anche imparato a progettare un sistema di trading in MQL5, a scrivere il codice di questa strategia e poi a eseguirlo nel nostro terminale di trading - MetaTrader 5 - per la generazione automatica di segnali. In definitiva, tutto ciò può aiutarci a operare in modo fluido, semplice ed efficace.

Non ci sono abbastanza parole per dire quanto sia importante testare tutto ciò che si è imparato prima di utilizzarlo, per assicurarsi che sia adatto al proprio stile di trading e al proprio piano. Vi consiglio di migliorare tutto ciò che avete imparato, perché questo passo vi permetterà non solo di assorbire ciò che avete imparato, ma anche di aprire la vostra mente a nuove idee e di fare ulteriori approfondimenti su argomenti correlati.

Un'altra cosa che vorrei menzionare è che esistono molte strategie redditizie che possono essere utilizzate, ma possiamo trovare qualcuno che utilizza una strategia e ottiene profitti, mentre un'altra persona che utilizza la stessa strategia subisce perdite. Quindi, non si tratta solo della strategia. La strategia è sicuramente importante, ma ci sono altri elementi che possono portare ai risultati desiderati e il più importante è la disciplina. Abbiamo uno strumento che può essere utile ed efficace per raggiungere questa disciplina e questo strumento è la programmazione, poiché una volta creato un sistema di trading con una strategia redditizia, questo cambierà le carte in tavola, in quanto il computer capirà la vostra strategia e farà ciò che volete fare senza che le emozioni interferiscano. 

Spero che questo articolo vi sia utile e vi auguro un trading proficuo!