Home Technische indicator Bericht

UltraMFI: Een Krachtige Indicator voor MetaTrader 5

Bijlage
21750.zip (22.12 KB, Downloaden 0 keer)

Huidige auteur: Dmitriy.

De UltraMFI-indicator is gebaseerd op de Money Flow Index (MFI) en analyseert meerdere signaallijnen. Hieronder leggen we het algoritme uit voor het berekenen van de signaallijnen.

  • StartLength - de minimale beginwaarde van de eerste signaallijn;
  • Step - de stapgrootte voor periodeveranderingen;
  • StepsTotal - het aantal periodeveranderingen.

Elke periodewaarde uit de signaallijnen wordt berekend met behulp van een rekenkundige voortgang:

SignalPeriod(Number) = StartLength + Number * Step,

waarbij de waarde van de Number variabele varieert van nul tot StepsTotal. De verkregen waarden van de perioden worden toegevoegd aan een array en worden gebruikt bij elke tik van de indicator om de array van de gesmoothede waarden van Larry Williams' Percent Range-indicator te verkrijgen. De richtingen van de huidige trend voor elk van de gladgestreken waarden worden berekend, evenals het aantal positieve en negatieve trends voor de gehele array van MFI-gesmoothede waarden.

Het uiteindelijke aantal positieve en negatieve trends wordt vervolgens weer gesmoothed en gebruikt als de indicatorlijnen die een kleurenschema vormen, weergegeven met behulp van de DRAW_FILLING stijlklasse.

De trendrichting in deze indicator wordt bepaald door de kleur van de wolk, terwijl de kracht wordt bepaald door de breedte van de wolk. Je kunt de overbought (UpLevel) en oversold (DnLevel) niveaus gebruiken, die zijn ingesteld als een percentage van het maximale bereik van de indicator.

Er zijn tien verschillende smoothing-algoritmen beschikbaar:

  1. SMA - eenvoudige voortschrijdende gemiddelde;
  2. EMA - exponentieel voortschrijdend gemiddelde;
  3. SMMA - gesmoothed voortschrijdend gemiddelde;
  4. LWMA - lineair gewogen voortschrijdend gemiddelde;
  5. JJMA - JMA adaptief gemiddelde;
  6. JJurX - ultralineaire averaging;
  7. ParMA - parabool averaging;
  8. T3 - Tillson’s multiple exponentiële smoothing;
  9. VIDYA - smoothing met behulp van Tushar Chande's algoritme;
  10. AMA - smoothing met behulp van Perry Kaufman's algoritme.

Let op dat de parameters Phase1 en Phase2 verschillende betekenissen hebben voor verschillende smoothing-algoritmen. Voor JMA is het een externe fasevariabele die varieert van -100 tot +100. Voor T3 is het een smoothing-ratio vermenigvuldigd met 100 voor een betere visualisatie, voor VIDYA is het een CMO oscillator periode en voor AMA is het een langzame EMA periode. In andere algoritmen hebben deze parameters geen invloed op de averaging. Voor de AMA is de snelle EMA periode standaard ingesteld op 2. De verhouding van de verhoging naar de macht is ook gelijk aan 2 voor de AMA.

De indicator maakt gebruik van de klassen uit de SmoothAlgorithms.mqh bibliotheek (kopieer deze naar <terminal_data_directory>\MQL5\Include). De klassen worden uitgebreid besproken in het artikel Averaging Price Series for Intermediate Calculations Without Using Additional Buffers.

//+----------------------------------------------+
//| Indicator invoerparameters                 |
//+----------------------------------------------+
input int MFI_Period=13;                            // MFI indicator periode
input ENUM_APPLIED_VOLUME VolumeType=VOLUME_TICK;   // MFI indicator volume
//----
input Smooth_Method W_Method=MODE_JJMA; // Smoothing methode
input int StartLength=3;                // Beginwaarde voor averaging periode
input int WPhase=100;                   // Smoothing parameter
// voor JJMA varieert het binnen het bereik -100 ... +100 en beïnvloedt de kwaliteit van de overgangsperiode;
// Voor VIDIA is het de CMO periode, voor AMA is het de periode van het langzame voortschrijdende gemiddelde
//----  
input uint Step=5;        // Periode wijzigingsstap
input uint StepsTotal=10; // Aantal periodeveranderingen
//----
input Smooth_Method SmoothMethod=MODE_JJMA; // Smoothing methode
input int SmoothLength=3;                   // Diepte van de smoothing                    
input int SmoothPhase=100;                  // Smoothing parameter
// voor JJMA varieert het binnen het bereik -100 ... +100 en beïnvloedt de kwaliteit van de overgangsperiode;
//----                          
input uint UpLevel=80;            // Overbought niveau in %%
input uint DnLevel=20;            // Oversold niveau in %%
input color UpLevelsColor=Blue;   // De kleur van het overbought niveau
input color DnLevelsColor=Blue;   // De kleur van het oversold niveau
input STYLE Levelstyle=DASH_;     // Stijl van de niveaus
input WIDTH  LevelsWidth=Width_1; // Breedte van de niveaus
//+----------------------------------------------+

Fig. 1. De UltraMFI indicator

Fig. 1. De UltraMFI indicator

Gerelateerde berichten

Reactie (0)