MA met procentueel filter

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

MA met procentueel filter

Bericht door Eric » di mar 13, 2007 12:41 pm

In de TKA van december 2006 bespreken P. Dolmans en F. Schreiber een handelssysteem op basis van een voortschrijdend gemiddelde en een procentueel instapfilter.

Code: Selecteer alles

{- Filename: MA met %-filter -}

var
  nMA, i: integer;
  nPct: real;
  sMA, sMAPlusPct, sMAMinPct: TSeries;
  xMA, xMAPlus, xMAMin: TLineCrossings;
begin
{ Indicator parameters }
  nMA := CreateParameterInteger('MA periode', 1, 999, 250, true);
  nPct := CreateParameterReal('Entry filter %', 0, 99, 3, true);

{ Indicator eigenschappen }
  with Indicator do 
  begin
{ Aantal benodigde koersen om eerste indicatorwaarde te berekenen }
    RequiredBars := 5*nMA;
    NewBand := false;
    ScaleRange := srCommon;
    SignalView := svShowInMain;
  end;

  sMA := MA(Close, maSimple, nMA);
  sMAPlusPct := MultiplySeriesBy(sMA, 1 + nPct/100);
  sMAMinPct := MultiplySeriesBy(sMA, 1 - nPct/100);
  xMAPlus := Crossings(Close, sMAPlusPct);
  xMAMin := Crossings(Close, sMAMinPct);
  xMA := Crossings(Close, sMA);

  for i:=0 to BarCount-1 do
  begin
    if xMAPlus[i] = lc1Over2 then EnterLong(i) else
    if xMAMin[i] = lc2Over1 then EnterShort(i) else
    if (MarketPosition(i) = 1) and (xMA[i] = lc2Over1) then ExitLong(i) else
    if (MarketPosition(i) = -1) and (xMA[i] = lc1Over2) then ExitShort(i);
  end;
  
  with CreateLine(sMA) do
  begin
    Name := 'MA';
    Color := clSilver;
  end;
  with CreateLine(sMAPlusPct) do
  begin
    Name := 'MA+%';
    Color := clLime;
  end;
  with CreateLine(sMAMinPct) do
  begin
    Name := 'MA-%';
    Color := clRed;
  end;
end.
---
Eric

Plaats reactie