Divergentie Indicator Sjabloon voor MetaTrader 4: Ontdek de Kracht van Divergenties

Mike 2024.03.10 23:41 9 0 0
Bijlage

DivEurusd

Hoe werkt het sjabloon?

Deze indicator biedt een sjabloon waarmee je divergenties kunt plotten op basis van jouw gewenste oscillator.

Afhankelijk van welke oscillator je kiest (of het nu CCI, RSI of zelfs je eigen aangepaste indicator is), kun je dit deel van de code aanpassen:

   /////////////////////////////////////////////
   //Laad indicatorgegevens in de indicatorbuffer
   //Je kunt RSI eenvoudig vervangen door een andere indicator
   int BARS=MathMax(rates_total-IndicatorCounted()-pivots_period,1);
   for(int i=BARS;i>=0;i--)
   {
      indicatorBuffer[i]=iRSI(_Symbol, PERIOD_CURRENT, 14, PRICE_CLOSE, i);
   }
   //Einde van het laden van indicatorsectie
   /////////////////////////////////////////////


Signaalbuffers

Deze indicator heeft vier verschillende buffers om de gegenereerde signalen bij te houden. Er is een signaal telkens wanneer de bijbehorende buffer een niet-lege waarde bevat.
   SetIndexBuffer(3,bull_reg_divBuffer);
   SetIndexBuffer(4,bear_reg_divBuffer);
   SetIndexBuffer(5,bull_hid_divBuffer);
   SetIndexBuffer(6,bear_hid_divBuffer);


Invoersectie

input int pivots_period=5; //periode om indicatorpivots te vinden
input int alert_confirm_candles=1; //#candles voor bevestiging (0=alert uitschakelen)

Het vinden van pivot highs en pivot lows in indicatorBuffer hangt af van de invoer pivots_period. Hoe groter je deze waarde kiest, hoe grotere swings er gezocht worden voor mogelijke divergenties.

Een andere invoer is alert_confirm_candles, die bepaalt hoeveel candles er gewacht moet worden voor het bevestigen van een signaal. Divergentie-indicatoren zijn meestal trailing en geven veel valse signalen. Hoe groter je deze waarde kiest, hoe langer er gewacht wordt en hoe minder valse signalen er komen. Het is een compromis tussen tijdige signalen en bevestigde signalen.

Normaal gesproken mag je pivots_period niet instellen  < 2.


Repaint probleem

Indicatoren die afhankelijk zijn van pivotberekeningen moeten zo lang wachten als pivots_period om een bevestiging van de recente high/low te krijgen. Deze indicator moet signalen opnieuw verven tot pivots_period terug in de tijd.

   BARS=MathMax(rates_total-IndicatorCounted()-pivots_period,pivots_period);
   for(int i=BARS;i>=0;i--)
   {
      PHBuffer[i]=pivothigh(indicatorBuffer, pivots_period, pivots_period, i);
      PLBuffer[i]=pivotlow(indicatorBuffer, pivots_period, pivots_period, i);
      bull_reg_divBuffer[i]=BullRegDiv(i);
      bear_reg_divBuffer[i]=BearRegDiv(i);
      bull_hid_divBuffer[i]=BullHidDiv(i);
      bear_hid_divBuffer[i]=BearHidDiv(i);
   }
Lijst
Reactie 0