UltraRSI - indicatore per MetaTrader 5
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:
- SMA - media mobile semplice;
- EMA - media mobile esponenziale;
- SMMA - media mobile smussata;
- LWMA - media mobile lineare ponderata;
- JJMA - media adattiva JMA;
- JurX - media ultralineare;
- ParMA - media parabolica;
- T3 - Smoothing esponenziale multiplo di Tillson;
- VIDYA - media che utilizza l'algoritmo di Tushar Chande;
- 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

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