MetaTrader 5 / Indicatori

UltraRSI - indicatore per MetaTrader 5

dm34@mail.ru
23
(23)

Autore reale:

dm34@mail.ru

Questo indicatore si basa sulle letture dell'indicatore tecnico RSI (Relative Strength Index), analizzando un insieme di linee di segnale. L'algoritmo per il calcolo delle linee di segnale è il seguente. Come dati iniziali abbiamo i parametri di ingresso dell'indicatore:

  • StartLength - valore minimo di partenza della prima linea di segnale;
  • Step - passo di variazione del periodo;
  • StepsTotal - numero di cambi di periodo.

Qualsiasi valore del periodo dall'insieme delle linee di segnale viene calcolato con la formula della progressione aritmetica:

SignalPeriod(Number)  =  StartLength + Number * Step,

dove il valore della variabile Numero varia da zero a PassiTotale. I valori ottenuti dei periodi vengono aggiunti all'array di variabili e utilizzati a ogni tick dell'indicatore per ottenere un array di valori medi dell'indicatore RSI. Sulla base di questo array, vengono calcolate le direzioni della tendenza attuale per ciascuna delle medie e viene determinato il numero di tendenze positive e negative per l'intero array di valori medi dell'RSI. Il numero finale di tendenze positive e negative viene calcolato come media e utilizzato come linee dell'indicatore, che formano una nuvola colorata visualizzata con lo stile DRAW_FILLING.

La direzione della tendenza in questo indicatore è determinata dal colore della nuvola e la forza della tendenza è determinata dalla sua larghezza. È possibile utilizzare livelli di ipercomprato (UpLevel) e ipervenduto (DnLevel), impostati come percentuale dell'ampiezza massima dell'indicatore.

Gli algoritmi di mediazione dell'indicatore possono essere modificati con dieci possibili varianti:

  1. SMA - media mobile semplice;
  2. EMA - media mobile esponenziale;
  3. SMMA - media mobile smussata;
  4. LWMA - media mobile lineare ponderata;
  5. JJMA - media adattiva JMA;
  6. JurX - media ultralineare;
  7. ParMA - media parabolica;
  8. T3 - Smoothing esponenziale multiplo di Tillson;
  9. VIDYA - media che utilizza l'algoritmo di Tushar Chande;
  10. AMA - mediazione con l'algoritmo di Perry Kaufman.

Occorre prestare attenzione al fatto che i parametri Fase1 e Fase2 hanno significati diversi per i vari algoritmi di mediazione. Per JMA, si tratta della variabile esterna Fase, che varia da -100 a +100. Per T3 è il fattore di mediazione moltiplicato per 100 per una migliore percezione, per VIDYA è il periodo dell'oscillatore CMO e per AMA è il periodo dell'EMA lento. Negli altri algoritmi, questi parametri non influiscono sulla media. Per AMA, il periodo dell'EMA veloce è fisso e pari a 2 per impostazione predefinita. Anche il fattore di grado per l'AMA è pari a 2.

L'indicatore utilizza le classi della libreria SmoothAlgorithms.mqh (copiarle nella directory terminal_data_terminal_directory\MQL5\Include); una descrizione dettagliata del loro utilizzo è stata pubblicata nell'articolo "Mediazione delle serie di prezzi senza buffer aggiuntivi per i calcoli intermedi".

Parametri di ingresso dell'indicatore:

//+----------------------------------------------+ //|| Parametri di ingresso dell'indicatore | //+----------------------------------------------+ input int RSI_Period=13;                         // Periodo dell'indicatore RSI input ENUM_APPLIED_PRICE Applied_price=PRICE_CLOSE; // Prezzo dell'usato //---- input Smooth_Method W_Method=MODE_JJMA;         // Metodo di mediazione input int StartLength=3;                        // Inizio del periodo di mediazione  input int WPhase=100;                            // Parametro di mediazione //----  input uint Step=5;                               // Fase di variazione del periodo input uint StepsTotal=10;                        // Numero di cambi di periodo //---- input Smooth_Method SmoothMethod=MODE_JJMA;     // Metodo di lisciatura input int SmoothLength=3;                        // Profondità di levigatura input int SmoothPhase=100;                       // Parametro di attenuazione //----  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;                // Spessore dei livelli

Indicatore UltraRSI


Tradotto dal russo da MetaQuotes Ltd.
Codice originale https://www.mql5.com/ru/code/725