Hi Carl, I can't even get it to execute. Your two opening lines are incorrect code:
bull= C> EMA(C,200) AND Sum(RSI(2)< 25==2; bear= C< EMA(C,200) AND Sum(RSI(2)>25==2; Sum syntax is sum(array,periods). It seens you have a < or > in place of the comma. Getting a system to pyramid requires the 'ScaleIn' function, as far as I know, otherwise you will only ever have the inital entry. Adrian On Tue, Feb 16, 2010 at 5:13 PM, cvanhaesendonck <[email protected]>wrote: > > > I posted some days ago but got no answer; however this system is powerfull > yet simple: it scales in after the initial signal then exit quickly as soon > as RSI(2) oberbought. > Problem I struggle with the code below: I can see the multiple buy entry > arrows on the chart but backtest will only take the initial signals. > Please help with this - in return you will discover a very interesting > system. Here we go: > > The system is simple: > - buy 10% of your position (for exempla, 100 shares) when RSI(2) is below > 25 for 2 consecutive bars; close must be above the 200 EMA. > - buy 20% of the position if, any time after the initial buy above, close < > ref(close,-1) > - buy 30% of the pĂ´sition if, any time after the buy above, close < > ref(close,-1) > - buy 40% of the position if, any time after the buy above, close < > ref(close,-1) > > You now own 1,000 shares. Don't buy anymore. > Just wait and sell all when RSI(2 periods) rise above 70. > > Please see the code below and tell me what is wrong - I am struggling with > this for days now as the backtest takes only the initial "10%" trade... > > bull= C> EMA(C,200) AND Sum(RSI(2)< 25==2; > bear= C< EMA(C,200) AND Sum(RSI(2)>25==2; > Buy=0; > Short= 0; > > Sell= Cross(RSI(2),70) ; > Cover=Cross(70,RSI(2)) ; > bull200= C<Ref(C,-1) AND BarsSince(Bull)<BarsSince(Sell) AND > Ref(Sum(Bull,BarsSince(Sell)),-1)==1; > bear200= C>Ref(C,-1) AND BarsSince(bear)<BarsSince(Cover) AND > Ref(Sum(bear,BarsSince(Cover)),-1)==1; > bull300= C<Ref(C,-1) AND Ref(Sum(Bull200,BarsSince(Sell)),-1)==1 ; > bear300= C>Ref(C,-1) AND Ref(Sum(bear200,BarsSince(Cover)),-1)==1 ; > bull400= C<Ref(C,-1) AND Ref(Sum(Bull300,BarsSince(Sell)),-1)==1 ; > bear400= C>Ref(C,-1) AND Ref(Sum(bear300,BarsSince(Cover)),-1)==1 ; > SetPositionSize(IIf(Sum(Buy,BarsSince(Sell))==1, > 100,IIf(Sum(Buy,BarsSince(Sell))==2,200,IIf(Sum(Buy,BarsSince(Sell))==3,300,IIf(Sum(Buy,BarsSince(Sell))==4,400,Null)))),4); > SetPositionSize(IIf(Sum(Short,BarsSince(Sell))==1, > 100,IIf(Sum(Short,BarsSince(Sell))==2,200,IIf(Sum(Short,BarsSince(Sell))==3,300,IIf(Sum(Short,BarsSince(Sell))==4,400,Null)))),4); > Buy= IIf(Sum(Bull,BarsSince(Sell))<4 AND Sum(Bull200,BarsSince(Sell))<4 AND > Sum(Bull300,BarsSince(Sell))<4 AND Sum(Bull400,BarsSince(Sell))<4 ,bull OR > bull200 OR bull300 OR bull400,Null); > Short= IIf(Sum(Bear,BarsSince(Sell))<4 AND Sum(Bear200,BarsSince(Sell))<4 > AND Sum(Bear300,BarsSince(Sell))<4 AND Sum(Bear400,BarsSince(Sell))<4,bear > OR bear200 OR bear300 OR bear400, Null); > Sell=ExRem(Sell,Buy); > Cover=ExRem(Cover,Short); > > PlotShapes(Buy*shapeUpArrow,colorBlue,0,L,-10); > PlotShapes(Short*shapeDownArrow,colorRed,0,H,-10); > PlotShapes(Sell*shapeSmallCircle,colorBlue,0,H,10); > PlotShapes(Cover*shapeSmallCircle,colorRed,0,L,-10); > > Thanks, > Carl > > >
