Multitimeframe trend

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

Multitimeframe trend

Bericht door Eric »

In TKA magazine van februari 2006 schrijft Ron Schelling over een eenvoudig multiple timeframe systeem. Dit script implementeert het systeem van Schelling, waarin het verschil van de slot en de hoog/laag van de vorige week bepalend is.

Code: Selecteer alles

{- Filename: MultiTimeframe trend -}

procedure CalcWeekHiLo(var WeekHi, WeekLo: TSeries);
var
  WeekDay, NewWeekDay, i, j, WeekStart: integer;
  PrevHi, PrevLo, Hi, Lo: real;
begin
  WeekHi := CreateSeries(BarCount);
  WeekLo := CreateSeries(BarCount);
  WeekStart := 0;
  WeekDay := 0;
  Hi := -1;
  Lo := 1e10;
  PrevHi := -1;
  PrevLo := -1;
  for i:=0 to BarCount-1 do
  begin
    NewWeekDay := DayOfWeek(DateTime[i]);
{ signaleer nieuwe week }
    if NewWeekDay < WeekDay then
    begin
      if Hi > 0 then
      begin
        for j:=i-1 downto WeekStart do
        begin
          WeekHi[j] := Hi;
          WeekLo[j] := Lo;
        end;
        WeekStart := i;
        PrevHi := Hi;
        PrevLo := Lo;
      end;
      Hi := High[i];
      Lo := Low[i];
    end else
    begin
      Hi := Max(Hi, High[i]);
      Lo := Min(Lo, Low[i]);
    end;

    if PrevHi > 0 then
    begin
      if Close[i] > PrevHi then EnterLong(i);
      if Close[i] < PrevLo then EnterShort(i);
    end;

    WeekDay := NewWeekDay;
  end;         
end;

var
  WeekLo, WeekHi: TSeries;
begin
{ Indicator eigenschappen }
  with Indicator do 
  begin
{ Aantal benodigde koersen om eerste indicatorwaarde te berekenen }
    RequiredBars := 5;
  end;

{ Indicatorberekening }
  CalcWeekHiLo(WeekHi, WeekLo);

  with CreateLineOHLC(Open, High, Low, Close) do
  begin
    Name := 'Daily bars';
    Color := clLime;
    ColorType := ctIndicator;
  end;
  with CreateLine(WeekHi) do
  begin
    Name := 'Weekly high';
    Color := clGray;
  end;
  with CreateLine(WeekLo) do
  begin
    Name := 'Weekly low';
    Color := clGray;
  end;
end.
Plaats reactie