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

Impara come progettare un sistema di trading tramite Bull’s Power

MetaTrader 5Trading | 7 agosto 2023, 15:58
373 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Introduzione

In questo nuovo articolo della nostra serie, scopriremo un nuovo strumento tecnico che può essere utilizzato in nostro favore per migliorare il nostro trading. Impariamo a conoscere l'indicatore Bull's Power che è uno degli indicatori tecnici che possono essere utilizzati per darci indicazioni sulla forza dei tori, come vedremo in questo articolo. Per questo motivo, impareremo a conoscere questo indicatore tecnico in dettaglio e tratteremo questo strumento tecnico attraverso i seguenti argomenti:

  1. Definizione di Bull’s Power
  2. Strategia Bull's Power
  3. Schema della strategia Bull's Power
  4. Sistema di trading Bull's Power
  5. Conclusioni

Impareremo cos'è l'indicatore Bull's Power, cosa misura, come calcolarlo manualmente per capire il concetto principale che ne è alla base e come leggerlo, il tutto attraverso l'argomento della definizione di Bull's Power. Dopo aver compreso il concetto di base di questo indicatore, impareremo come utilizzarlo attraverso alcune semplici strategie che possono essere utilizzate in nostro favore per migliorare i risultati del trading e questo lo apprenderemo attraverso l'argomento della strategia Bull’s Power. In seguito, per ogni strategia, progetteremo uno schema passo-passo che ci aiuterà a creare un sistema di trading e questo verrà appreso attraverso l'argomento dello schema della strategia Bull's Power. Quindi, creeremo un sistema di trading per ogni strategia menzionata, per aiutarci ad automatizzare i nostri segnali eseguendoli nella piattaforma di trading MetaTrader 5.

Utilizzeremo il terminale di trading MetaTrader 5 e scriveremo i nostri codici con MetaQuotes Language 5 (MQL5). Se volete imparare a scaricare MetaTrader 5 e a utilizzare MQL5, potete leggere l'argomento "Scrivere codice MQL5 in MetaEditor" da un articolo precedente per saperne di più. Vi consiglio di applicare da soli ciò che leggete se volete migliorare le vostre capacità di codifica e comprenderle bene.

L'importanza della programmazione aumenta giorno dopo giorno e questo caso crea l'importanza di imparare questo importante strumento. L'importanza della programmazione deriva dai suoi benefici, che sono molti. I vantaggi più importanti della programmazione nel trading sono: ci aiuta a risparmiare tempo quando codifichiamo o creiamo un programma per fare ciò che facciamo continuamente, ci dà risultati più precisi e ci aiuta a evitare le emozioni che possono danneggiare i nostri risultati di 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.

Ora iniziamo con gli argomenti di questo articolo.

Definizione di Bull’s Power

In questo articolo analizzeremo in dettaglio l'indicatore Bull's Power per capire il concetto principale che ne è alla base. L'indicatore Bull's Power è l'opposto del Bear's Power di cui abbiamo già parlato nel precedente articolo Impara come progettare un sistema di trading tramite Bear's Power. Il Bull's Power è stato sviluppato da Alexander Elder, misura la forza rialzista del mercato e può anche dare un'indicazione se gli orsi entrano in gioco o meno vedendo i tori diventare deboli. Si tratta di un indicatore oscillatore che oscilla sopra o sotto il livello zero. Quindi, questo indicatore ci dà anche un'importante visione del fattore più importante che fa muovere il mercato, ovvero la domanda e l'offerta.

Come calcolare manualmente questo indicatore, è ciò che scopriremo nei passaggi successivi:

  • Ottenere il massimo (i valori più alti durante un periodo specifico).
  • Ottenere la media mobile esponenziale EMA.
  • Ottenere la differenza tra il massimo e la media mobile esponenziale.

Bull's Power = massimo - EMA

Quando i tori controllano il mercato, continuano a spingere il mercato verso valori più alti per la maggior parte del tempo. Quindi, utilizziamo il valore del massimo nella formula per calcolare il Bull's Power, perché dobbiamo misurare questi tori, quindi otterremo la differenza tra questo massimo e l'EMA per ottenere un indicatore oscillatore che oscilla intorno al livello zero, come abbiamo detto prima, quando troviamo che il valore del bull's power si avvicina al livello zero e poi diventa inferiore, possiamo ottenere un'indicazione che i tori sono diventati più deboli.

È bene utilizzare questo indicatore insieme a un altro indicatore di trend, in quanto fornirà indicazioni più efficaci, come faremo in una delle strategie menzionate in questo articolo. Questo concetto è molto utile ed è una delle caratteristiche più utili dell'analisi tecnica, in quanto possiamo utilizzare molte nozioni per ottenere maggiori informazioni e vedere lo strumento da diverse prospettive, dando così maggior peso alla nostra decisione.

Oggi non è più necessario calcolare manualmente questo indicatore, poiché è presente nel terminale di trading MetaTrader 5 e tutto ciò che dobbiamo fare è inserirlo nel grafico premendo Inserisci --> Indicatori --> Oscillatori --> Bulls Power. Possiamo vederlo anche attraverso la seguente immagine:

 Bulls Power inserito

Dopo aver scelto l'indicatore, verrà visualizzata la finestra dei suoi parametri:

Bulls power param

1 - Per determinare il periodo che verrà utilizzato nel calcolo.

2 - Per determinare il colore delle barre del Bull's Power.

3 - Per determinare lo spessore delle barre del Bull's Power.

Dopo aver determinato questi parametri e premuto "OK", troveremo che l'indicatore è inserito nel grafico come il seguente:

 Bulls power allegato

Come possiamo vedere nel grafico precedente, nella parte inferiore abbiamo l'indicatore Bull's Power allegato, le cui barre oscillano intorno allo zero, come abbiamo detto, quando il valore è superiore allo zero significa che i tori controllano, mentre quando si avvicina allo zero e diventa inferiore ad esso, significa che si sono indeboliti. Quando i tori diventano più deboli, possiamo vedere che gli orsi sono entrati in gioco controllando il mercato spingendo il prezzo verso livelli bassi, o almeno, il mercato è bilanciato attraverso l'equilibrio tra tori e orsi.

Strategia Bull's Power

In questa parte scopriremo come utilizzare il Bull's Power attraverso semplici strategie che possono essere utilizzate secondo il concetto di base di questo indicatore. I seguenti sono per queste strategie e le loro condizioni. Devo confermare che queste strategie sono solo a scopo educativo, in quanto l'obiettivo principale è quello di comprendere il concetto di base dietro l'indicatore e come possiamo usarlo a nostro favore, quindi è necessario testare qualsiasi strategia prima di utilizzarla sul vostro conto reale in modo da assicurarsi che sia giusta per il vostro trading, in quanto non esiste una strategia adatta a tutti.

    • Strategia uno: Movimento Bull's Power

      In base a questa strategia, dobbiamo ottenere segnali basati sulla posizione dei valori attuale e precedente del bull’s power. Se il valore attuale del bull’s power è superiore a quello precedente, lo considereremo un segnale di aumento dell'indicatore Bull's Power. Viceversa, se il valore attuale è inferiore a quello precedente, lo considereremo un segnale di contrazione del Bull’s Power.

      Per semplificare, sarà uguale al seguente:

      Bull's Power attuale > Bull's Power precedente --> Bull's Power in aumento

      Bull's Power attuale < Bull's Power precedente --> Bull's Power in contrazione

        • Strategia due: Bull's Power - Forte o Divergenza

          In base a questa strategia, vogliamo ottenere un segnale che ci informi se c'è un forte movimento o se c'è una divergenza valutando quattro valori: il massimo attuale, il massimo precedente, bull’s power e bull’s power precedente. Se il massimo attuale è superiore al massimo precedente e il valore attuale del bull’s power è superiore a quello precedente, lo considereremo un segnale di forte movimento. Nell'altro caso, se il massimo attuale è superiore al massimo precedente e il valore attuale del bull’s power è inferiore a quello precedente, lo considereremo un segnale di divergenza ribassista.

          Per semplificare, sarà uguale al seguente:

          Massimo attuale > massimo precedente e bull’s power attuale > bull’s power precedente --> forte movimento

          Massimo attuale < massimo precedente e bull’s power attuale > bull’s power precedente --> divergenza ribassista

            • Strategia tre: Segnali Bull’s Power

              In base a questa strategia, abbiamo bisogno di un segnale che possa essere utilizzato per ottenere segnali di acquisto e vendita, per farlo valuteremo quattro valori. Questi quattro valori sono l'attuale bull’s power, il livello zero, l'attuale valore di chiusura e l'attuale media mobile esponenziale. Se l'attuale bull’s power è inferiore al livello zero e la chiusura attuale è inferiore alla media mobile esponenziale, lo considereremo un segnale di vendita. Se l'attuale bull’s power è superiore al livello zero e la chiusura attuale è superiore alla media mobile esponenziale, questo sarà un segnale di acquisto.

              Per semplificare, sarà uguale al seguente:

              Bull’s power attuale < livello zero e chiusura attuale < EMA --> sell

              Bull's Power attuale > livello zero e chiusura attuale > EMA --> buy

              Schema della strategia Bull's Power

              In questo argomento, per ogni strategia menzionata, creeremo uno schema passo-passo che ci aiuterà a creare il nostro sistema di trading in modo semplice e senza intoppi dopo aver organizzato le nostre idee.

              • Strategia uno: Movimento Bull's Power

              Abbiamo bisogno che il computer controlli due valori ogni tick, e ciò avverrà dopo aver creato questi valori, che sono il Bull's Power attuale e il Bull's Power precedente. È necessario che il programma controlli questi valori per conoscere la posizione di ciascuno. Se bull's power attuale è superiore al bull's power precedente, è necessario che il programma o l'expert restituisca un segnale come commento sul grafico con i seguenti valori e ciascuno in una riga separata:

              • Bull's power è in aumento
              • Valore del Bull's Power
              • Valore precedente Bull's Power

              C'è un altro scenario che dobbiamo considerare. Se il valore attuale del Bull's Power è inferiore a quello precedente, è necessario che l’expert advisor restituisca un commento anche con i seguenti valori e ogni valore in una riga separata:

              • Bull's Power è in calo
              • Valore del Bull's Power
              • Valore precedente Bull's Power.

              Di seguito è riportato il semplice schema di questo sistema di trading basato sulla sua strategia:

               Schema Movimento Bull's Power

              • Strategia due: Bull's Power - Forte o Divergenza

              Secondo questa strategia, è necessario che il sistema di trading controlli quattro valori: il massimo attuale, il massimo precedente, il bull’s power attuale e il bull’s power precedente. Dopodiché, il sistema di trading deve decidere se l'attuale valore massimo è superiore a quello precedente e, allo stesso tempo, se l'attuale valore bull's power è superiore a quello precedente, e ci restituisca un segnale, come commento sul grafico con i seguenti valori, ognuno dei quali sarà in una riga separata:

              • Forte movimento
              • Valore Massimo Attuale
              • Valore Massimo Precedente
              • Valore attuale del Bull's Power
              • Valore Precedente del Bull's Power

              Nell'altro caso, se il valore massimo attuale è superiore a quello precedente e allo stesso tempo il valore Bull's Power attuale è inferiore a quello precedente, è necessario che il sistema di trading restituisca un segnale come commento sul grafico con i seguenti valori e ogni valore in una riga separata:

              • Divergenza ribassista
              • Valore Massimo Attuale
              • Valore Massimo Precedente
              • Valore attuale del Bull's Power
              • Valore Precedente del Bull's Power

              Di seguito è riportato lo schema in forma semplice visivamente per aiutarci a creare un sistema di trading basato su questa strategia.

                 Bull’s Power - Forte o Divergenza

              • Strategia tre: Segnali Bull’s Power

              Secondo questa strategia, dobbiamo creare un sistema di trading che controlli quattro valori ogni tick e questi valori sono l'attuale Bull’s Power, il livello zero, l'attuale chiusura e l'attuale media mobile esponenziale. Poi decidere se l'attuale Bull’s Power è inferiore al livello zero e allo stesso tempo se la chiusura attuale è inferiore alla media mobile esponenziale, abbiamo bisogno che l’expert advisor restituisca un segnale come commento sul grafico con i seguenti valori e ognuno di essi in una riga separata:

              • Segnale di Vendita
              • Valore della Chiusura Attuale
              • Valore EMA Attuale
              • Valore Attuale del Bull's Power

              Nell'altro caso, se l'attuale Bull’s Power è maggiore di zero e allo stesso tempo la chiusura attuale è maggiore della media mobile esponenziale, è necessario che il sistema di trading restituisca un segnale come commento con i seguenti valori, ogni valore sarà in una riga separata:

              • Segnale d’Acquisto
              • Valore della Chiusura Attuale
              • Valore EMA Attuale
              • Valore Attuale del Bull's Power

              Di seguito viene presentato un semplice schema passo-passo per organizzare le nostre idee e creare un sistema di trading basato su questa strategia.

              Segnali Bull’s Power

              Sistema di trading Bull's Power

              In questo argomento impareremo a creare un sistema di trading per ogni strategia menzionata, ma prima creeremo un semplice sistema di trading che può essere utilizzato per generare automaticamente un commento sul grafico con il valore attuale del Bull's Power da utilizzare come base per tutte le strategie.

              Di seguito è riportato il codice per la creazione di questo sistema di trading:

              Primo passo: Creeremo un array per "bullpower" utilizzando la funzione double:

              double bullpowerArray[];

              Secondo passo: ordineremo l'array creato utilizzando la funzione "ArraySetAsSeries" che restituisce un valore booleano.

              ArraySetAsSeries(bullpowerArray,true);

              Terzo passaggio: Creeremo una variabile intera per "bullpowerDef" e definiremo l'indicatore bull power utilizzando la funzione "iBullsPower" che restituisce l'handle dell'indicatore. I parametri sono:

              symbol: useremo (_Symbol) da applicare al simbolo corrente.

              period: useremo (_Period) per applicarlo al periodo o al timeframe corrente.

              ma_periodo: utilizzeremo 13 per il periodo della media mobile da utilizzare.

              int bullpowerDef = iBullsPower(_Symbol,_Period,13);

              Quarto passaggio: Riempiremo l'array creato utilizzando la funzione "CopyBuffer" per ottenere i dati dall'indicatore Bull's Power. Parametri di questa funzione:

              indicator_handle: per l'handle dell'indicatore e useremo (bullpowerDef).     

              buffer_num: per il numero di buffer dell'indicatore e useremo (0).

              start_pos: per la posizione iniziale e useremo (0).         

              count: per la quantità da copiare e useremo (3).                

              buffer[]: per l'array di destinazione da copiare e useremo (bullpowerArray).

              CopyBuffer(bullpowerDef,0,0,3,bullpowerArray);

              Quinto passaggio: Otterremo "bullpowerVal" dopo aver creato una variabile utilizzando la funzione "NormalizeDouble" che restituisce un valore di tipo double. Parametri di questa funzione:

              value: useremo (bullpowerArray[0]) come numero normalizzato.

              digits: useremo (6) come numero di cifre dopo la virgola.

              double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);

              Sesto passo: utilizzeremo la funzione comment per generare un commento sul grafico con il valore attuale del bull’s power:

              Comment("Bull's Power Value is ",bullpowerVal);

              Di seguito è riportato il codice completo dei passaggi precedenti:

              //+------------------------------------------------------------------+
              //|                                          Simple Bull's Power.mq5 |
              //|                                  Copyright 2022, MetaQuotes Ltd. |
              //|                                             https://www.mql5.com |
              //+------------------------------------------------------------------+
              #property copyright "Copyright 2022, MetaQuotes Ltd."
              #property link      "https://www.mql5.com"
              #property version   "1.00"
              //+------------------------------------------------------------------+
              void OnTick()
                {
                 double bullpowerArray[];
              
                 ArraySetAsSeries(bullpowerArray,true);
              
                 int bullpowerDef = iBullsPower(_Symbol,_Period,13);
              
                 CopyBuffer(bullpowerDef,0,0,3,bullpowerArray);
              
                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
              
                 Comment("Bull's Power Value is ",bullpowerVal);
              
                }
              //+------------------------------------------------------------------+

              Dopo di che compiliamo questo codice per vedere l'expert nella finestra del navigatore, come di seguito:

               Bulls power Nav

              Facendo doppio clic su questo Simple Bull's Power per eseguirlo sul terminale MetaTrader 5, vedremo la sua finestra uguale alla seguente:

              Simple Bulls Power win

              Dopo aver premuto "OK",troveremo l'expert allegato al grafico come segue:

               Simple Bulls Power allegato

              Come si può vedere nel grafico precedente, nell'angolo in alto a destra, l'expert è già allegato al grafico. Ora siamo pronti a ricevere il commento automatico con il valore aggiornato del Bull’s Power sul grafico, come nel seguente esempio dai test: 

               Segnale Simple Bulls Power

              Come possiamo vedere nel grafico precedente, nell'angolo in alto a sinistra abbiamo il valore attuale del Bull’s Power.

              • Strategia uno: Movimento Bull's Power

              Di seguito è riportato il codice completo per creare un sistema di trading basato su questa strategia:

              //+------------------------------------------------------------------+
              //|                                         Bulls Power Movement.mq5 |
              //|                                  Copyright 2022, MetaQuotes Ltd. |
              //|                                             https://www.mql5.com |
              //+------------------------------------------------------------------+
              #property copyright "Copyright 2022, MetaQuotes Ltd."
              #property link      "https://www.mql5.com"
              #property version   "1.00"
              //+------------------------------------------------------------------+
              void OnTick()
                {
                 double bullpowerArray[];
              
                 ArraySetAsSeries(bullpowerArray,true);
              
                 int bullpowerDef = iBullsPower(_Symbol,_Period,13);
              
                 CopyBuffer(bullpowerDef,0,0,3,bullpowerArray);
              
                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
                 double bullpowerPrevVal = NormalizeDouble(bullpowerArray[1],6);
              
                 if(bullpowerVal>bullpowerPrevVal)
                   {
                    Comment("Bull's Power is rising","\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }
              
                 if(bullpowerVal<bullpowerPrevVal)
                   {
                    Comment("Bull's Power is declining","\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }
                }
              //+------------------------------------------------------------------+

              Le differenze in questo codice sono le seguenti:

              Definizione del valore Bull’s Power corrente "bullpowerVal" e del valore Bull’s Power precedente "bullpowerPrevVal":

                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
                 double bullpowerPrevVal = NormalizeDouble(bullpowerArray[1],6);

              Condizioni della strategia:

              In caso di aumento:

                 if(bullpowerVal>bullpowerPrevVal)
                   {
                    Comment("Bull's Power is rising","\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }

              In caso di calo:

                 if(bullpowerVal<bullpowerPrevVal)
                   {
                    Comment("Bull's Power is declining","\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }

              Dopo la compilazione troveremo l'expert nella finestra del navigatore:

               Bulls power Nav

              Trascinandola e rilasciandola sul grafico desiderato, troveremo la sua finestra come quella che segue:

               Movimento Bulls Power win

              Dopo aver premuto "OK", l'expert viene allegato al grafico:

               Movimento Bull’s Power allegato

              Come possiamo vedere nel grafico precedente, nell'angolo in alto a destra abbiamo l'expert già allegato al grafico e ora siamo pronti a ricevere i suoi segnali come di seguito.

              In caso di aumento con i dati correnti:

               Movimento Bull’s Power - in aumento - dati attuali

              Come possiamo vedere nel grafico precedente, nella parte superiore del grafico, abbiamo generato un segnale di aumento, il valore attuale di Bull’s Power e il valore precedente di Bull’s Power. Nella finestra dei dati, possiamo trovare il valore attuale del Bull’s Power.

              In caso di aumento con dati precedenti:

               Movimento Bull’s Power - in aumento - dati precedenti

              Come si può vedere nel grafico precedente, possiamo trovare l’unica differenza nella finestra dei dati, poiché possiamo trovare il valore precedente del Bull’s Power.

              In caso di calo con dati attuali:

              Movimento Bull’s Power - in calo - dati attuali

              Come possiamo vedere nel grafico precedente, nella parte superiore del grafico, abbiamo generato un segnale di ribasso, il valore attuale di Bull’s Power e il valore precedente di Bull’s Power. Nella finestra dei dati, possiamo trovare il valore attuale del Bull’s Power.

              In caso di calo con i dati precedenti:

               Movimento Bull’s Power - in calo - dati precedenti

              Come si può vedere nel grafico precedente, l'unica differenza nella finestra dei dati è rappresentata dall'ultimo valore del Bull’s Power.

              • Strategia due: Bull’s Power - Forte o Divergenza

              Di seguito è riportato il codice completo per creare un sistema di trading basato su questa strategia:

              //+------------------------------------------------------------------+
              //|                          Bull's Power - Strong or Divergence.mq5 |
              //|                                  Copyright 2022, MetaQuotes Ltd. |
              //|                                             https://www.mql5.com |
              //+------------------------------------------------------------------+
              #property copyright "Copyright 2022, MetaQuotes Ltd."
              #property link      "https://www.mql5.com"
              #property version   "1.00"
              //+------------------------------------------------------------------+
              void OnTick()
                {
                 double bullpowerArray[];
                 MqlRates priceArray[];
              
                 ArraySetAsSeries(bullpowerArray,true);
                 int Data=CopyRates(_Symbol,_Period,0,3,priceArray);
              
                 int bullpowerDef = iBullsPower(_Symbol,_Period,13);
              
                 CopyBuffer(bullpowerDef,0,0,3,bullpowerArray);
              
                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
                 double bullpowerPrevVal = NormalizeDouble(bullpowerArray[1],6);
              
                 double currentHighVal=NormalizeDouble(priceArray[2].high,6);
                 double prevHighVal=NormalizeDouble(priceArray[1].high,6);
              
                 if(currentHighVal>prevHighVal && bullpowerVal>bullpowerPrevVal)
                   {
                    Comment("Strong Move","\n",
                            "Current High Value is ",currentHighVal,"\n",
                            "Previous High Value is ",prevHighVal,"\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }
              
                 if(currentHighVal>prevHighVal && bullpowerVal<bullpowerPrevVal)
                   {
                    Comment("Bearish divergence","\n",
                            "Current High Value is ",currentHighVal,"\n",
                            "Previous High Value is ",prevHighVal,"\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }
                }
              //+------------------------------------------------------------------+

              Le differenze in questo codice saranno le stesse di quanto segue:

              Creazione di due array, bullpowerArray e priceArray:

                 double bullpowerArray[];
                 MqlRates priceArray[];

              Ordinamento degli array creati, per il bullpowerArray useremo la funzione "ArraySetAsSeries", come abbiamo imparato in precedenza. Per il priceArray, useremo la funzione "CopyRates" per ottenere i dati storici di "MqlRates" e i suoi parametri sono:

              • symbol name: useremo (_Symbol)
              • timeframe: useremo (_Period)
              • start time: useremo (0)
              • stop time: useremo (3)
              • rates array: utilizzeremo (priceArray)
                 ArraySetAsSeries(bullpowerArray,true);
                 int Data=CopyRates(_Symbol,_Period,0,3,priceArray);

              Definizione dei valori attuali e precedenti del Bull’s Power e dei massimi mediante la funzione "NormalizeDouble".

                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
                 double bullpowerPrevVal = NormalizeDouble(bullpowerArray[1],6);
              
                 double currentHighVal=NormalizeDouble(priceArray[2].high,6);
                 double prevHighVal=NormalizeDouble(priceArray[1].high,6);

              Condizioni della strategia:

              In caso di forte movimento:

                 if(currentHighVal>prevHighVal && bullpowerVal>bullpowerPrevVal)
                   {
                    Comment("Strong Move","\n",
                            "Current High Value is ",currentHighVal,"\n",
                            "Previous High Value is ",prevHighVal,"\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }

              In caso di divergenza ribassista:

                 if(currentHighVal>prevHighVal && bullpowerVal<bullpowerPrevVal)
                   {
                    Comment("Bearish divergence","\n",
                            "Current High Value is ",currentHighVal,"\n",
                            "Previous High Value is ",prevHighVal,"\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }

              Dopo aver compilato questo codice possiamo trovare l'expert di questo sistema di trading nella finestra del navigatore:

              Bulls power Nav2

              Facendo doppio clic su questo expert per l'esecuzione, troveremo la sua finestra uguale alla seguente:

               Bulls power - Forte o in divergenza

              Dopo aver premuto "OK", troveremo l'expert allegato come segue:

               Bulls power - Forte o divergenza allegato

              Come si può vedere nell'angolo in alto a destra, l'expert è allegato e siamo pronti a ricevere i suoi segnali come di seguito.

              In caso di forte movimento con i dati attuali:

              Bulls Power - Forte o Divergenza - forte - dati attuali

              Come possiamo vedere sul grafico, abbiamo il segnale desiderato come volevamo in base a questa strategia con un commento dei seguenti valori:

              • Forte movimento
              • L'attuale valore massimo
              • Il precedente valore massimo
              • Valore attuale di Bull’s Power
              • Valore precedente di Bull’s Power 

              In caso di forte movimento con i dati precedenti:

               Bulls Power - Forte o Divergenza - forte - dati precedenti

              Come si può vedere nel grafico precedente, abbiamo lo stesso commento come il segnale sul grafico, con gli stessi valori, ma la differenza è la finestra dei dati precedente.

              In caso di divergenza ribassista con i dati attuali:

              Bulls Power - Forte o divergenza - Divergenza ribassista - dati attuali

              Come possiamo vedere sul grafico precedente abbiamo un commento sul grafico con i seguenti valori:

              • Divergenza ribassista
              • L'attuale valore massimo
              • Il precedente valore massimo
              • Valore attuale di Bull’s Power
              • Valore precedente di Bull’s Power  

              In caso di divergenza ribassista con i dati precedenti:

               Bulls Power - Forte o divergenza - divergenza ribassista - dati precedenti

              Come si può vedere nel grafico precedente, abbiamo un commento sul grafico con lo stesso valore, ma qui possiamo trovare la finestra dei dati precedenti.

              • Strategia tre: Segnali Bull’s Power

              Di seguito è riportato il codice completo per creare un sistema di trading basato su questa strategia.

              //+------------------------------------------------------------------+
              //|                                         Bulls' Power signals.mq5 |
              //|                                  Copyright 2022, MetaQuotes Ltd. |
              //|                                             https://www.mql5.com |
              //+------------------------------------------------------------------+
              #property copyright "Copyright 2022, MetaQuotes Ltd."
              #property link      "https://www.mql5.com"
              #property version   "1.00"
              //+------------------------------------------------------------------+
              void OnTick()
                {
                 double bullpowerArray[];
                 double maArray[];
                 MqlRates priceArray[];
              
                 ArraySetAsSeries(bullpowerArray,true);
                 ArraySetAsSeries(maArray,true);
                 int Data=CopyRates(_Symbol,_Period,0,3,priceArray);
              
                 int bullpowerDef = iBullsPower(_Symbol,_Period,13);
                 int maDef = iMA(_Symbol,_Period,13,0,MODE_EMA,PRICE_CLOSE);
              
                 CopyBuffer(bullpowerDef,0,0,3,bullpowerArray);
                 CopyBuffer(maDef,0,0,3,maArray);
              
                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
              
                 double emaVal = NormalizeDouble(maArray[0],6);
              
                 double currentClose=NormalizeDouble(priceArray[2].close,6);
              
                 if(bullpowerVal<0 && currentClose<emaVal)
                   {
                    Comment("Sell Signal","\n",
                            "Current Close Value is ",currentClose,"\n",
                            "Current EMA Value is ",emaVal,"\n",
                            "Bull's Power Value is ",bullpowerVal);
                   }
              
                 if(bullpowerVal>0 && currentClose>emaVal)
                   {
                    Comment("Buy Signal","\n",
                            "Current Close Value is ",currentClose,"\n",
                            "Current EMA Value is ",emaVal,"\n",
                            "Bull's Power Value is ",bullpowerVal);
                   }
                }
              //+------------------------------------------------------------------+

              Differenze in questo codice:

              Creazione di tre array, bullpowerArray, maArray e priceArray.

                 double bullpowerArray[];
                 double maArray[];
                 MqlRates priceArray[];

              Ordinamento dei tre array creati.

                 ArraySetAsSeries(bullpowerArray,true);
                 ArraySetAsSeries(maArray,true);
                 int Data=CopyRates(_Symbol,_Period,0,3,priceArray);

              Definiamo l'indicatore Bull's Power utilizzando la funzione "iBullsPower", come abbiamo detto prima, dopo aver creato una variabile intera "bullpowerDef" e per l'indicatore della Media Mobile utilizzando la funzione "iMA" che restituisce l'handle dell'indicatore della media mobile dopo aver creato una variabile intera "maDef".

                 int bullpowerDef = iBullsPower(_Symbol,_Period,13);
                 int maDef = iMA(_Symbol,_Period,13,0,MODE_EMA,PRICE_CLOSE);

              Riempire l'array utilizzando la funzione "CopyBuffer" per ottenere i dati dagli indicatori Bull's Power e Media mobile.

                 CopyBuffer(bullpowerDef,0,0,3,bullpowerArray);
                 CopyBuffer(maDef,0,0,3,maArray);

              Definiremo l'attuale bull’s power, la media mobile esponenziale e l'attuale prezzo di chiusura.

                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
                 double emaVal = NormalizeDouble(maArray[0],6);
                 double currentClose=NormalizeDouble(priceArray[2].close,6);

              Condizioni di questa strategia:

              In caso di segnale di vendita

                 if(bullpowerVal<0 && currentClose<emaVal)
                   {
                    Comment("Sell Signal","\n",
                            "Current Close Value is ",currentClose,"\n",
                            "Current EMA Value is ",emaVal,"\n",
                            "Bull's Power Value is ",bullpowerVal);
                   }

              In caso di segnale di acquisto:

                 if(bullpowerVal>0 && currentClose>emaVal)
                   {
                    Comment("Buy Signal","\n",
                            "Current Close Value is ",currentClose,"\n",
                            "Current EMA Value is ",emaVal,"\n",
                            "Bull's Power Value is ",bullpowerVal);
                   }

              Dopo aver compilato questo codice, nella finestra del navigatore troveremo l'expert uguale a quello che segue:

               Bulls power Nav3

              Facendo doppio clic sull'expert da eseguire sul grafico, troveremo la sua finestra uguale alla seguente:

              Bulls Power Signals win

              Dopo aver premuto "OK", vedremo che l'expert è allegato al grafico come segue:

              Segnali Bulls Power allegati

              Possiamo vedere che l'expert Segnali Bull's Power è allegato al grafico nell'angolo in alto a destra. Quindi, siamo pronti a ricevere i segnali basati su questa strategia di trading, come quella che segue:

              In caso di segnale di vendita:

               Bulls Power Signals - sell

              Come possiamo vedere sul grafico abbiamo un commento con i seguenti valori:

              • Segnale di vendita
              • Valore della chiusura attuale
              • Valore EMA attuale
              • Valore Bull’s Power

              In caso di segnale di acquisto:

               Bulls Power Signals - acquisto

              Come possiamo vedere sul grafico il segnale desiderato come commento con i seguenti valori:

              • Segnale d’acquisto
              • Valore della chiusura attuale
              • Valore EMA attuale
              • Valore Bull’s Power

              Abbiamo creato un sistema di trading per ogni strategia menzionata per generare segnali automatici.

              Conclusioni

              Spero di aver trattato questo indicatore tramite gli argomenti precedenti. Abbiamo appreso più in dettaglio cos'è l'indicatore Bull's Power, cosa misura, come si calcola, come si legge e come si inserisce e si utilizza l'indicatore Bull's Power integrato in MetaTrader 5 attraverso l'argomento della definizione di Bull's Power. Dopo di che, abbiamo imparato come utilizzare questo indicatore basandoci sul concetto di fondo che lo sottende attraverso alcune semplici strategie menzionate, il cui obiettivo fondamentale è imparare a utilizzare questo indicatore e che dovete testare prima di utilizzarle sul vostro conto reale per assicurarvi che siano adatte al vostro stile di trading per generare profitti. Queste strategie erano le seguenti:

              • Movimento Bull's Power: questa strategia può essere utilizzata per determinare la direzione dell'indicatore Bull's Power, se è in aumento o in diminuzione.
              • Bull's Power Forte o divergenza: può essere utilizzato per determinare se abbiamo un movimento forte o una divergenza ribassista.
              • Segnali Bull's Power: può essere utilizzato per fornire segnali di acquisto o di vendita.

              In seguito, per ogni strategia menzionata abbiamo progettato uno schema passo dopo passo che ci aiutasse a creare un sistema di trading senza problemi dopo aver organizzato le nostre idee attraverso questi schemi. Poi, abbiamo imparato a creare un sistema di trading per ogni strategia menzionata per ottenere automaticamente i segnali dopo averli codificati su MQL5 per essere eseguiti sul terminale di trading MetaTrader 5. Spero che vi siate applicati e abbiate provato a scrivere da soli i codici citati per migliorare le vostre capacità di codifica, se lo desiderate, questo migliorerà la vostra curva di apprendimento come programmatore.

              Spero anche troviate utile questo articolo per migliorare il vostro trading e migliorare i vostri risultati di trading. Se vuoi leggere altri articoli simili su come imparare a progettare un sistema di trading basato sugli indicatori tecnici più popolari, puoi leggere i miei altri articoli in questa serie poiché abbiamo molti indicatori tecnici che abbiamo condiviso e sistemi di trading progettati basati su di loro e improntati sul concetto di base che ne è dietro, attraverso semplici strategie.

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

              Impara come progettare un sistema di trading tramite VIDYA Impara come progettare un sistema di trading tramite VIDYA
              Benvenuti in un nuovo articolo della nostra serie su come progettare un sistema di trading con gli indicatori tecnici più popolari. In questo articolo conosceremo un nuovo strumento tecnico e impareremo a progettare un sistema di trading tramite Variable Index Dynamic Average (VIDYA).
              Sviluppare un Expert Advisor per il trading da zero (Parte 21): Nuovo sistema di ordini (IV) Sviluppare un Expert Advisor per il trading da zero (Parte 21): Nuovo sistema di ordini (IV)
              Finalmente, il sistema visivo inizierà a funzionare, anche se non sarà ancora completato. Qui finiremo di apportare le modifiche principali. Ce ne saranno parecchie, ma sono tutte necessarie. Bene, l'intero lavoro sarà piuttosto interessante.
              Algoritmi di ottimizzazione della popolazione: Ottimizzazione Grey Wolf (GWO) Algoritmi di ottimizzazione della popolazione: Ottimizzazione Grey Wolf (GWO)
              Prendiamo in considerazione uno dei più recenti algoritmi di ottimizzazione moderni - l'ottimizzazione Grey Wolf. Il comportamento originale sulle funzioni test rende questo algoritmo uno dei più interessanti tra quelli considerati in precedenza. Si tratta di uno dei principali algoritmi per l'addestramento di reti neurali e funzioni regolari con molte variabili.
              Sviluppare un Expert Advisor per il trading da zero (Parte 20): Nuovo sistema di ordini (III) Sviluppare un Expert Advisor per il trading da zero (Parte 20): Nuovo sistema di ordini (III)
              Continuiamo a implementare il nuovo sistema di ordini. La creazione di un tale sistema richiede una buona padronanza di MQL5, nonché una comprensione di come funziona effettivamente la piattaforma MetaTrader 5 e quali risorse fornisce.