Dynamische RSI signalen

Stel hier uw vragen over TA-script, of help anderen met het oplossen van hun probleem
Plaats reactie
NPRB
Berichten: 2
Lid geworden op: ma jun 29, 2009 2:46 pm

Dynamische RSI signalen

Bericht door NPRB »

Wie kan mij helpen?
U kent ongetwijfeld de dynamische RSI, ofwel de RSI met de Bollinger Bands.
Ik wil graag als scan en report de volgende signalen boven tafel krijgen:

RSI crosses over OB lijn = OB entry (signal)
RSI > OB lijn = OB (condition)
RSI crosses under OB = OB Exit (signal)
RSI between OB en OS = Neutral (condition)

RSI crosses under OS lijn = OS entry (signal)
RSI < OS lijn = OS (condition)
RSI crosses over OS = OS Exit (signal)
RSI between OB en OS = Neutral (condition)
Wie kan mij hierbij helpen?

Dank en graag tot horens,

Nico Bakker
Hoofd Technische Analyse ABNAMRO Bank
Eric
Berichten: 3386
Lid geworden op: za sep 10, 2005 2:41 am
Locatie: Den Haag

Re: Dynamische RSI signalen

Bericht door Eric »

Beste Nico,

Welkom op het TA-script forum.
NPRB schreef:U kent ongetwijfeld de dynamische RSI, ofwel de RSI met de Bollinger Bands.
Het is toevallig zelfs het eerste systeem in het onderdeel "Indicatoren en handelssystemen" op dit forum, daar met een MA voor de entry-signalen!

Ik heb deze even omgebouwd tot:

Code: Selecteer alles

{- Filename: RSI dynamic -}

var 
  RSIPeriode: integer;  // parameterwaarde 
  StdDevUp, StdDevDown: real; 
  BolBandPeriode: integer;
  i: integer; 
  RSIValues, TARValues, UpperBand, LowerBand: TSeries;
  UpperCrossings, LowerCrossings: TLineCrossings;
begin 
  // Indicator parameter definities 
  RSIPeriode := CreateParameterInteger('RSI periode', 1, 999, 7, true); 
  BolBandPeriode := CreateParameterInteger('Boll. MA periode', 1, 999, 50, true); 
  StdDevUp := CreateParameterReal('StdDevUp', 1, 9, 2, true); 
  StdDevDown := CreateParameterReal('StdDevDown', 1, 9, 2, true); 

  // Indicator definitie 
  with Indicator do 
  begin 
    RequiredBars := 5*RSIPeriode + BolBandPeriode;
  end; 
  
  // Indicatorberekening 
  RSIValues := RSI(Close, RSIPeriode); 
  UpperBand := BollingerBand(RSIValues, BolBandPeriode, maSimple, StdDevUp); 
  LowerBand := BollingerBand(RSIValues, BolBandPeriode, maSimple, -StdDevDown); 
  TARValues := CreateSeries(BarCount);

  // signalen berekenen 
  UpperCrossings := Crossings(RSIValues, UpperBand);
  LowerCrossings := Crossings(RSIValues, LowerBand); 

  for i:=1 to BarCount-1 do
  begin 
{
RSI crosses over OB lijn = OB entry (signal)
RSI > OB lijn = OB (condition)
RSI crosses under OB = OB Exit (signal)
RSI between OB en OS = Neutral (condition)

RSI crosses under OS lijn = OS entry (signal)
RSI < OS lijn = OS (condition)
RSI crosses over OS = OS Exit (signal)
RSI between OB en OS = Neutral (condition)
}
    TARValues[i] := TARValues[i-1];
    if UpperCrossings[i] = lc1Over2 then
    begin
      EnterShort(i);
      TARValues[i] := 1;
    end else
    if UpperCrossings[i] = lc2Over1 then
    begin
      ExitShort(i);
      TARValues[i] := 0;
    end else
    if LowerCrossings[i] = lc2Over1 then
    begin
      EnterLong(i);
      TARValues[i] := -1;
    end else
    if LowerCrossings[i] = lc1Over2 then
    begin
      ExitLong(i);
      TARValues[i] := 0;
    end;
  end;

  with CreateLine(RSIValues) do
  begin
    Color := clLime;
    Name := 'RSI';
  end;
  with CreateLine(UpperBand) do
  begin
    Color := clSilver;
    Name := 'OB';
  end;
  with CreateLine(LowerBand) do
  begin
    Color := clSilver;
    Name := 'OS';
  end;
  with CreateLine(TARValues) do
  begin
    Color := clWhite;
    Name := 'TAR';
    LineContent := lcTAR;
    Visible := false;
  end;
end.
De indicator heeft een TAR-waarde van -1 in het oversold en +1 in het overbought gebied, anders 0. Deze TAR-waarde kun je gebruiken in het TAR rapport of TAR scanner; de aan- en verkoopsignalen zijn uiteraard ook met een normaal technisch filter eruit te krijgen.

---
Eric
NPRB
Berichten: 2
Lid geworden op: ma jun 29, 2009 2:46 pm

Re: Dynamische RSI signalen

Bericht door NPRB »

Eric schreef:Beste Nico,

Welkom op het TA-script forum.
NPRB schreef:U kent ongetwijfeld de dynamische RSI, ofwel de RSI met de Bollinger Bands.
Het is toevallig zelfs het eerste systeem in het onderdeel "Indicatoren en handelssystemen" op dit forum, daar met een MA voor de entry-signalen!

Ik heb deze even omgebouwd tot:

Code: Selecteer alles

{- Filename: RSI dynamic -}

var 
  RSIPeriode: integer;  // parameterwaarde 
  StdDevUp, StdDevDown: real; 
  BolBandPeriode: integer;
  i: integer; 
  RSIValues, TARValues, UpperBand, LowerBand: TSeries;
  UpperCrossings, LowerCrossings: TLineCrossings;
begin 
  // Indicator parameter definities 
  RSIPeriode := CreateParameterInteger('RSI periode', 1, 999, 7, true); 
  BolBandPeriode := CreateParameterInteger('Boll. MA periode', 1, 999, 50, true); 
  StdDevUp := CreateParameterReal('StdDevUp', 1, 9, 2, true); 
  StdDevDown := CreateParameterReal('StdDevDown', 1, 9, 2, true); 

  // Indicator definitie 
  with Indicator do 
  begin 
    RequiredBars := 5*RSIPeriode + BolBandPeriode;
  end; 
  
  // Indicatorberekening 
  RSIValues := RSI(Close, RSIPeriode); 
  UpperBand := BollingerBand(RSIValues, BolBandPeriode, maSimple, StdDevUp); 
  LowerBand := BollingerBand(RSIValues, BolBandPeriode, maSimple, -StdDevDown); 
  TARValues := CreateSeries(BarCount);

  // signalen berekenen 
  UpperCrossings := Crossings(RSIValues, UpperBand);
  LowerCrossings := Crossings(RSIValues, LowerBand); 

  for i:=1 to BarCount-1 do
  begin 
{
RSI crosses over OB lijn = OB entry (signal)
RSI > OB lijn = OB (condition)
RSI crosses under OB = OB Exit (signal)
RSI between OB en OS = Neutral (condition)

RSI crosses under OS lijn = OS entry (signal)
RSI < OS lijn = OS (condition)
RSI crosses over OS = OS Exit (signal)
RSI between OB en OS = Neutral (condition)
}
    TARValues[i] := TARValues[i-1];
    if UpperCrossings[i] = lc1Over2 then
    begin
      EnterShort(i);
      TARValues[i] := 1;
    end else
    if UpperCrossings[i] = lc2Over1 then
    begin
      ExitShort(i);
      TARValues[i] := 0;
    end else
    if LowerCrossings[i] = lc2Over1 then
    begin
      EnterLong(i);
      TARValues[i] := -1;
    end else
    if LowerCrossings[i] = lc1Over2 then
    begin
      ExitLong(i);
      TARValues[i] := 0;
    end;
  end;

  with CreateLine(RSIValues) do
  begin
    Color := clLime;
    Name := 'RSI';
  end;
  with CreateLine(UpperBand) do
  begin
    Color := clSilver;
    Name := 'OB';
  end;
  with CreateLine(LowerBand) do
  begin
    Color := clSilver;
    Name := 'OS';
  end;
  with CreateLine(TARValues) do
  begin
    Color := clWhite;
    Name := 'TAR';
    LineContent := lcTAR;
    Visible := false;
  end;
end.
De indicator heeft een TAR-waarde van -1 in het oversold en +1 in het overbought gebied, anders 0. Deze TAR-waarde kun je gebruiken in het TAR rapport of TAR scanner; de aan- en verkoopsignalen zijn uiteraard ook met een normaal technisch filter eruit te krijgen.

---
Super bedankt, wat een snelheid van reageren!
Ik ga er mee stoeien, zijn er vragen of onduidelijkheden dan kom ik graag weer even terug!

groet,

Nico
Eric
paulkr
Berichten: 379
Lid geworden op: ma jun 25, 2007 1:34 pm
Locatie: Den Bosch

Bericht door paulkr »

Hoi Nico,

Interessante “blokkendoos”combinatie en heb ook je artikel vwb de Explosie indicator gelezen. Welke parameter settings adviseer je voor de explosie indicator?

Gr.Paul

http://www.telegraaf.nl/dft/goeroes/nic ... tor__.html
KeesvanSchie
Berichten: 51
Lid geworden op: ma mar 22, 2010 3:09 pm

Re: Dynamische RSI signalen

Bericht door KeesvanSchie »

Hallo Eric,

Kun je in de RSI dynamic (Nico Bakker) een vaste middenlijn toevoegen. Kleur naar keuze.
Bij voorkeur wel instelbaar (standaard 50) via de parameterinstelling.

Dank je, Kees
Eric
Berichten: 3386
Lid geworden op: za sep 10, 2005 2:41 am
Locatie: Den Haag

Re: Dynamische RSI signalen

Bericht door Eric »

Dat kan:

Code: Selecteer alles

{- Filename: RSI dynamic -}

var 
  RSIPeriode: integer;  // parameterwaarde 
  StdDevUp, StdDevDown, Center: real;
  BolBandPeriode: integer;
  i: integer; 
  RSIValues, TARValues, UpperBand, LowerBand, CenterLine: TSeries;
  UpperCrossings, LowerCrossings: TLineCrossings;
begin 
  // Indicator parameter definities 
  RSIPeriode := CreateParameterInteger('RSI periode', 1, 999, 7, true); 
  BolBandPeriode := CreateParameterInteger('Boll. MA periode', 1, 999, 50, true); 
  StdDevUp := CreateParameterReal('StdDevUp', 1, 9, 2, true); 
  StdDevDown := CreateParameterReal('StdDevDown', 1, 9, 2, true); 
  Center := CreateParameterReal('Middellijn (%)', 0, 100, 50, false);

  // Indicator definitie 
  with Indicator do 
  begin 
    RequiredBars := 5*RSIPeriode + BolBandPeriode;
  end; 
  
  // Indicatorberekening 
  RSIValues := RSI(Close, RSIPeriode); 
  UpperBand := BollingerBand(RSIValues, BolBandPeriode, maSimple, StdDevUp); 
  LowerBand := BollingerBand(RSIValues, BolBandPeriode, maSimple, -StdDevDown); 
  CenterLine := FillSeries(CreateSeries(BarCount), Center);
  TARValues := CreateSeries(BarCount);

  // signalen berekenen 
  UpperCrossings := Crossings(RSIValues, UpperBand);
  LowerCrossings := Crossings(RSIValues, LowerBand); 

  for i:=1 to BarCount-1 do
  begin 
{
RSI crosses over OB lijn = OB entry (signal)
RSI > OB lijn = OB (condition)
RSI crosses under OB = OB Exit (signal)
RSI between OB en OS = Neutral (condition)

RSI crosses under OS lijn = OS entry (signal)
RSI < OS lijn = OS (condition)
RSI crosses over OS = OS Exit (signal)
RSI between OB en OS = Neutral (condition)
}
    TARValues[i] := TARValues[i-1];
    if UpperCrossings[i] = lc1Over2 then
    begin
      EnterShort(i);
      TARValues[i] := 1;
    end else
    if UpperCrossings[i] = lc2Over1 then
    begin
      ExitShort(i);
      TARValues[i] := 0;
    end else
    if LowerCrossings[i] = lc2Over1 then
    begin
      EnterLong(i);
      TARValues[i] := -1;
    end else
    if LowerCrossings[i] = lc1Over2 then
    begin
      ExitLong(i);
      TARValues[i] := 0;
    end;
  end;

  with CreateLine(RSIValues) do
  begin
    Color := clLime;
    Name := 'RSI';
  end;
  with CreateLine(UpperBand) do
  begin
    Color := clSilver;
    Name := 'OB';
  end;
  with CreateLine(LowerBand) do
  begin
    Color := clSilver;
    Name := 'OS';
  end;
  with CreateLine(CenterLine) do
  begin
    Color := clSilver;
    Name := 'Center';
  end;
  with CreateLine(TARValues) do
  begin
    Color := clWhite;
    Name := 'TAR';
    LineContent := lcTAR;
    Visible := false;
  end;
end.
---
Eric
Schwn
Berichten: 1
Lid geworden op: ma jan 10, 2022 9:45 pm

Re: Dynamische RSI signalen

Bericht door Schwn »

Goedemiddag!

Hopelijk alles goed. Ik ben benieuwd of iemand het script dynamische RSI signalen zoals hierboven omschreven ook naar EasyLanguage kan omzetten zodat ik het kan gebruiken in tradestation. Iemand die daarbij kan helpen? Alvast bedankt. Fijne dag!
Eric
Berichten: 3386
Lid geworden op: za sep 10, 2005 2:41 am
Locatie: Den Haag

Re: Dynamische RSI signalen

Bericht door Eric »

Is dit hem?

---
Eric
Plaats reactie