
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
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); }
Reactie 0