Volatiliteitssysteem

Kant-en-klare, geteste indicatoren en handelssystemen
Plaats reactie
Eric
Berichten: 2980
Lid geworden op: za sep 10, 2005 2:41 am
Locatie: Den Haag

Volatiliteitssysteem

Bericht door Eric » wo mar 01, 2006 3:22 pm

In TKA magazine van februari 2006 bespreekt Edwin Vandamme dit volatiliteitssysteem, dat gebaseed is de Average True Range.

Code: Selecteer alles

{- Filename: Volatiliteitssysteem -}

var
  Periode, i: integer;
  Factor: real;
  ARC, LongStop, ShortStop, SAR: TSeries;
begin
{ Indicator parameters }
  Periode := CreateParameterInteger('Periode', 1, 999, 7, true);
  Factor := CreateParameterReal('Factor', 2, 9, 3.1, true);

{ Indicator eigenschappen }
  with Indicator do 
  begin
    ShortName := 'VolSys';
    RequiredBars := Periode;
    NewBand := false;
    ScaleRange := srCommon;
  end;

{ Indicatorberekening }
  ARC := MultiplySeriesBy(MA(TrueRange(High, Low, Close), maSimple, Periode), Factor);
  LongStop := SubtractSeries(HighSeries(High, Periode), ARC);
  ShortStop := AddSeries(LowSeries(Low, Periode), ARC);
  
  SAR := CreateSeries(BarCount);
  for i:=FirstValidIndex(LongStop)+1 to BarCount-1 do
  begin
{ handelsregels: werken met LongStop/ShortStop waarde van vorige dag }
    case MarketPosition(i) of
      0: begin
{ begin van de grafiek: wacht op eerste kruising }
           if Close[i] < LongStop[i-1] then EnterShort(i) else
             if Close[i] > ShortStop[i-1] then EnterLong(i);
         end;
      1: begin
           SAR[i] := LongStop[i-1];
{ long positie, wacht op kruising met LongStop }
           if Close[i] < LongStop[i-1] then EnterShort(i);
         end;
     -1: begin
           SAR[i] := ShortStop[i-1];
{ short positie, wacht op kruising met ShortStop }
           if Close[i] > ShortStop[i-1] then EnterLong(i);
         end;
    end;
  end;
  
  CreateLine(SAR).Color := clYellow;
end.

Plaats reactie