door mvs » zo 11 jan 2004, 14:05
Willie,
Op het eerste oog ziet het er mooi uit, maar als je op de kruisingen gaat kopen/verkopen kom je bedrogen uit
=============
Hier het simpele systeem
=============
Een systeem met een ATB band Stoploss (zie handelssysteem + ind. >>> Stoploss op basis van ATR band)
(Kopie?r code via de edit knop)
==========
value function zErgodic (
?value xSeries[] { Close or any other series } = Close,
?value xEma1Bars { number of bars for 1st EMA } = 40,
?value xEma2Bars { number of bars for 2nd EMA } = 6,
?value xMomBars ?{ number of bars for momentum } = 1,
?value xCrossBars{ numberof bars for crossings } = 9,
?Value xFilter{ 1= geen filter (ema=1)}=1)
?begin
?value xErgodic[],xSignal,xMACD[],xmacdSignal,xDelta;
?
{--- bereken de Ergodic waarde ---}
?xErgodic := vEma(zErgodic(xSeries,xEma1Bars,xEma2Bars,xMomBars),xFilter);
?xSignal := XAverage(xErgodic,xCrossBars);
If vcrossesabove(xErgodic,xSignal) ?then buy;
If vcrossesbelow(xErgodic,xSignal) ?then sell;
?{--- teken de Ergodic lijn ---}
?Plot1(xErgodic,'Ergodic');
?plot2(xSignal,'Signal ergodic');
?
end;
====================================
value function zErgodicStop (
?value xSeries[] { Close or any other series } = Close,
?value xEma1Bars { number of bars for 1st EMA } = 40,
?value xEma2Bars { number of bars for 2nd EMA } = 6,
?value xMomBars ?{ number of bars for momentum } = 1,
?value xCrossBars{ numberof bars for crossings } = 9,
?Value xFilter=5,value xNumberOfATRs=2, value xATRNumberOfBars=10,
?Value xBars=10)
?begin
?value xErgodic[],xSignal,xMACD[],xmacdSignal,xDelta;
?
{--- bereken de Ergodic waarde ---}
?xErgodic := vEma(zErgodic(xSeries,xEma1Bars,xEma2Bars,xMomBars),xFilter);
?xSignal := XAverage(xErgodic,xCrossBars);
?
value xATR[], xATRBandUp[], xATRBandDown[];
xATR := AvgTrueRange(xAtrNumberOfBars);
xATRBandUp ? := Lowest ?((Close + xATR*xNumberOfATRs),xBars);
xATRBandDown := Highest ((Close - xATR*xNumberOfATRs),xBars);
If vcrossesabove(xErgodic,xSignal) ?then buy;
If vcrossesbelow(xErgodic,xSignal) ?then sell;
If marketposition = 1 then
if vCrossesbelow (c,xATRBandDown) then exitlong;
If Marketposition = -1 then
if vCrossesAbove (c,xATRBandUp) then exitshort;
?{--- teken de Ergodic lijn ---}
?Plot1(xErgodic,'Ergodic');
?plot2(xSignal,'Signal ergodic');
?
end;