Home Indicatore tecnico Post

UltraMFI: L'Indicatore Essenziale per MetaTrader 5

Allegato
21750.zip (22.12 KB, Scarica 0 volte)

Autore attuale: Dmitriy.

UltraMFI è un indicatore che si basa sul MFI (Money Flow Index) e sull'analisi delle sue linee di segnale multiple. L'algoritmo di calcolo delle linee di segnale è piuttosto semplice. I parametri di input dell'indicatore sono i seguenti:

  • StartLength - valore minimo iniziale della prima linea di segnale;
  • Step - passo di cambiamento del periodo;
  • StepsTotal - numero totale di cambiamenti di periodo.

Ogni valore di periodo delle linee di segnale viene calcolato usando la progressione aritmetica:

SignalPeriod(Number) = StartLength + Number * Step,

dove la variabile Number varia da zero a StepsTotal. I valori ottenuti vengono aggiunti a un array di variabili e utilizzati ad ogni tick dell'indicatore per generare l'array dei valori smorzati dell'indicatore Percent Range di Larry Williams. Le direzioni della tendenza attuale per ciascun smoothing vengono calcolate e viene determinato anche il numero di tendenze positive e negative per l'intero array di valori MFI smorzati.

Il numero finale di tendenze positive e negative viene a sua volta smorzato e utilizzato come linee dell'indicatore che formano una nuvola colorata, visualizzata tramite la classe di stile DRAW_FILLING.

La direzione della tendenza in questo indicatore è determinata dal colore della nuvola, mentre la sua potenza è determinata dalla larghezza della nuvola. Puoi utilizzare i livelli di ipercomprato (UpLevel) e ipervenduto (DnLevel) che sono impostati in valore percentuale rispetto all'intervallo massimo dell'indicatore.

Gli algoritmi di smoothing possono essere scelti tra dieci possibili versioni:

  1. SMA - media mobile semplice;
  2. EMA - media mobile esponenziale;
  3. SMMA - media mobile smorzata;
  4. LWMA - media mobile pesata lineare;
  5. JJMA - media adattiva JMA;
  6. JJurX - media ultralineare;
  7. ParMA - media parabolica;
  8. T3 - smorzamento esponenziale multiplo di Tillson;
  9. VIDYA - smorzamento usando l'algoritmo di Tushar Chande;
  10. AMA - smorzamento usando l'algoritmo di Perry Kaufman.

È importante notare che i parametri Phase1 e Phase2 hanno significati totalmente diversi a seconda dell'algoritmo di smoothing scelto. Per JMA, è una variabile Phase esterna che varia da -100 a +100. Per T3, è un rapporto di smorzamento moltiplicato per 100 per una migliore visualizzazione, mentre per VIDYA è il periodo dell'oscillatore CMO e per AMA è il periodo della media mobile lenta. Negli altri algoritmi, questi parametri non influenzano la media. Per AMA, il periodo della media mobile veloce è fisso e pari a 2 per impostazione predefinita. Il rapporto di elevazione alla potenza è anch'esso pari a 2 per AMA.

L'indicatore utilizza le classi della libreria SmoothAlgorithms.mqh (copia le stesse nella directory <terminal_data_directory>\MQL5\Include). Le classi sono state descritte in dettaglio nell'articolo Averaging Price Series for Intermediate Calculations Without Using Additional Buffers.

//+----------------------------------------------+
//| Parametri di input dell'indicatore                  |
//+----------------------------------------------+
input int MFI_Period=13;                            // Periodo dell'indicatore MFI
input ENUM_APPLIED_VOLUME VolumeType=VOLUME_TICK;   // Volume dell'indicatore MFI
//----
input Smooth_Method W_Method=MODE_JJMA; // Metodo di smoothing
input int StartLength=3;                // Periodo di media iniziale
input int WPhase=100;                   // Parametro di smoothing
// per JJMA varia nell'intervallo -100 ... +100 e influisce sulla qualità del periodo transitorio;
// Per VIDIA, è il periodo del CMO, per AMA, è il periodo della media mobile lenta
//----  
input uint Step=5;        // Passo di cambiamento del periodo
input uint StepsTotal=10; // Numero di cambiamenti di periodo
//----
input Smooth_Method SmoothMethod=MODE_JJMA; // Metodo di smoothing
input int SmoothLength=3;                   // Profondità di smoothing                    
input int SmoothPhase=100                  // Parametro di smoothing
// per JJMA varia nell'intervallo -100 ... +100 e influisce sulla qualità del periodo transitorio;
//----                          
input uint UpLevel=80;            // Livello di ipercomprato in %%
input uint DnLevel=20;            // Livello di ipervenduto in %%
input color UpLevelsColor=Blue;   // Colore del livello di ipercomprato
input color DnLevelsColor=Blue;   // Colore del livello di ipervenduto
input STYLE Levelstyle=DASH_;     // Stile dei livelli
input WIDTH  LevelsWidth=Width_1; // Larghezza dei livelli
//+----------------------------------------------+

Fig. 1. L'indicatore UltraMFI

Fig. 1. L'indicatore UltraMFI

Post correlati

Commento (0)