Reverse RSI

Stel hier uw vragen over TA-script, of help anderen met het oplossen van hun probleem
Plaats reactie
DVB
Berichten: 52
Lid geworden op: ma jun 20, 2016 11:48 am

Reverse RSI

Bericht door DVB »

Wie kan mij helpen aan de (formule voor de) Reverse RSI indicator. Deze geeft de waarde die hoort bij een bepaalde stand van de RSI op de huidige dag. Dus de omgekeerde wereld eigenlijk ten opzichte van de reguliere RSI. Het gaat mij hoofdzakelijk om de RSI(2) mocht dat makkelijker zijn om te programmeren.

Voorbeeld: Voor het inleggen van een limietorder wil ik graag weten bij welke waarde van de DAX de RSI(2) een stand heeft van 95 vandaag.

Zie ook onderstaande link. Deze gebruik ik tot nu toe, maar het zou handiger en betrouwbaarder zijn om deze op eigen data te kunnen toepassen in Pro Trader.

https://www.profitspi.com/stock/view.as ... &uv=109333
Eric
Berichten: 3491
Lid geworden op: za sep 10, 2005 2:41 am
Locatie: Den Haag

Re: Reverse RSI

Bericht door Eric »

Nooit van gehoord maar een leuk idee. Hierbij de indicator, ik heb hem dubbel uitgevoerd zodat je de waarde voor de lage en hoge RSI waarde in 1 keer kunt laten zien (net als de afbeelding op de website die je vermeldde).

Code: Selecteer alles

{- Filename: Reverse RSI -}

(*
{Reverse Engineering RSI Metastock code by Giorgoss Siligard}
value:=Input("RSI value", 1, 100,50);
WildPer:=Input("Wilder Time Periods",1, 100,14);
ExpPer:=2*WildPer-1;

{Average Up Close}
AUC:=Mov( If(C>Ref(C,-1), C-Ref(C,-1), 0), ExpPer, E);
{Average Down Close}
ADC:=Mov( If(Ref(C,-1)>C, Ref(C,-1)-C, 0), ExpPer, E);

x:=(WildPer-1)*(ADC*value/(100-value)-AUC);
RevEngRSI:=If(x>=0, C+x, C+x*(100-value)/value);
*)

var
  nRSI1, nRSI2, nMA, i, ExpPer: integer;
  x: real;
  sAUC, sADC, sRRSI1, sRRSI2: TSeries;
begin
{ Parameters }
  nRSI1 := CreateParameterInteger('RSI waarde 1', 1, 999, 30, true);
  nRSI2 := CreateParameterInteger('RSI waarde 2', 1, 999, 70, true);
  nMA := CreateParameterInteger('RSI periode', 1, 999, 14, true);

{ Indicator eigenschappen }
  with Indicator do 
  begin
    RequiredBars := 5*(MaxInt(nRSI1, nRSI2)+nMA);    // Aantal benodigde koersen om eerste indicatorwaarde te berekenen
    NewBand := false;            // indicator standaard in nieuwe sectie plaatsen
    ScaleRange := srCommon;       // indicatorschaal automatisch
  end;

{ Berekening }
  sAUC := CreateSeries(BarCount);
  sADC := CreateSeries(BarCount);
  sRRSI1 := CreateSeries(BarCount);
  sRRSI2 := CreateSeries(BarCount);
  for i:=1 to BarCount-1 do
  begin
    if Close[i] > Close[i-1] then sAUC[i] := Close[i] - Close[i-1] else sAUC[i] := 0;
    if Close[i] < Close[i-1] then sADC[i] := Close[i-1] - Close[i] else sADC[i] := 0;
  end;
  ExpPer := 2*nMA-1;
  sAUC := MA(sAUC, maExponential, ExpPer);
  sADC := MA(sADC, maExponential, ExpPer);

  for i:=FirstValidIndex(sAUC) to BarCount-1 do
  begin
    x := (nMA-1) * (sADC[i]*nRSI1/(100-nRSI1)-sAUC[i]);
    if x>=0 then
      sRRSI1[i] := Close[i]+x
    else
      sRRSI1[i] := Close[i]+x*(100-nRSI1)/nRSI1;

    x := (nMA-1) * (sADC[i]*nRSI2/(100-nRSI2)-sAUC[i]);
    if x>=0 then
      sRRSI2[i] := Close[i]+x
    else
      sRRSI2[i] := Close[i]+x*(100-nRSI2)/nRSI2;
  end;

{ Weergave }
  with CreateLine(sRRSI1) do
  begin
    Name := 'Reverse RSI 1';
    Color := clRed;
  end;
  with CreateLine(sRRSI2) do
  begin
    Name := 'Reverse RSI 2';
    Color := clLime;
  end;
end.
---
Eric
DVB
Berichten: 52
Lid geworden op: ma jun 20, 2016 11:48 am

Re: Reverse RSI

Bericht door DVB »

Top Eric.. geweldig! Ik zal 'm later vandaag even testen. Voor mijn trading een superhandige tool.
DVB
Berichten: 52
Lid geworden op: ma jun 20, 2016 11:48 am

Re: Reverse RSI

Bericht door DVB »

Werkt geheel naar behoren. Nogmaals bedankt!
vincent
Berichten: 387
Lid geworden op: di jan 04, 2011 12:20 pm

Re: Reverse RSI

Bericht door vincent »

Beste Eric, een vraag betreffende de Reverse RSI.

In dit voorbeeld is de gele lijn de RSI-80 waarde op 15266 punten, maar als de Dax-koers in diezelfde dag-candle stijgt, dan stijgt de RSI-waarde ook. De vraag: Is er een manier om te bepalen wat de koerswaarde is op het moment dat de dagkoers daadwerkelijk de RSI-80 waarde raakt/kruist. Mijn vermoeden is dat het in dit geval rond de 15330-15340 is.

Afbeelding

Bij voorbaat dank en met groet, Vincent
Eric
Berichten: 3491
Lid geworden op: za sep 10, 2005 2:41 am
Locatie: Den Haag

Re: Reverse RSI

Bericht door Eric »

Als ik de tekst in de link van het eerste bericht goed lees, dan geeft de indicator aan bij welke koers MORGEN de RSI waarde wordt bereikt. Dus in bijgaand voorbeeld is de bovenste indicatorlijn gisteren 18636, als ik de DAX vandaag handmatig aanpas naar 186366 dan is de RSI (vrijwel) 80.
dax.JPG
dax2.JPG
---
Eric
vincent
Berichten: 387
Lid geworden op: di jan 04, 2011 12:20 pm

Re: Reverse RSI

Bericht door vincent »

Dank Eric dat geeft verheldering en ik leer elke keer weer wat zoals het 'handmatig aanpassen van de Dax'.
Het was even zoeken, maar ik zie nu waar/hoe dat kan. Zo kan ik inderdaad het kruispunt nauwkeurig genoeg bepalen :-)

Met groet, Vincent
Plaats reactie