Just as a follow up...

You can get rid of the redundant Sell arrows by using ExRem against the 
fistTrigger. Also no need to add all the extra arguments to the Plot of the 
Buy, the defaults will do fine:

PlotShapes((Buy > 0) * shapeUpArrow, buyColors);
PlotShapes(ExRem(Sell, firstTrigger) * shapeDownArrow, colorRed);

Mike

--- In [email protected], "Mike" <sfclimb...@...> wrote:
>
> Hi,
> Try something like the following. The Buy/Sell seems to work. You can
> add the Short/Cover using the same principles. The code assumes that you
> are trading at the Close on the day of the signal.
> SetTradeDelays(0, 0, 0, 0);
> BuyPrice = Close;
> SellPrice = Close;
> 
> previousClose = Ref(Close, -1);
> rsi2 = RSI(2);
> 
> Sell = Cross(rsi2, 70);
> 
> bull100 = Close > EMA(Close, 200) AND Sum(rsi2 < 25, 2) == 2;
> inFirstPos = Flip(bull100, Sell);
> 
> bull200 = Close < previousClose AND inFirstPos AND Ref(inFirstPos, -1);
> inSecondPos = Flip(bull200, Sell);
> 
> bull300 = Close < previousClose AND inSecondPos AND Ref(inSecondPos,
> -1);
> inThirdPos = Flip(bull300, Sell);
> 
> bull400 = Close < previousClose AND inThirdPos AND Ref(inThirdPos, -1);
> inFourthPos = Flip(bull400, Sell);
> 
> firstTrigger = ExRem(inFirstPos, Sell);
> secondTrigger = ExRem(inSecondPos, Sell);
> thirdTrigger = ExRem(inThirdPos, Sell);
> fourthTrigger = ExRem(inFourthPos, Sell);
> 
> Buy = firstTrigger + (secondTrigger * sigScaleIn) + (thirdTrigger *
> sigScaleIn) + (fourthTrigger * sigScaleIn);
> SetPositionSize(IIf(firstTrigger, 100, IIf(secondTrigger, 200,
> IIf(thirdTrigger, 300, 400))), spsShares);
> 
> priceColors = IIf(Close > previousClose, colorDarkGreen, IIf(Close <
> previousClose, colorDarkRed, colorDarkGrey));
> buyColors = IIf(firstTrigger, colorGreen, IIf(secondTrigger, colorLime,
> IIf(thirdTrigger, colorYellow, colorOrange)));
> 
> Plot(Close, "Price", priceColors, styleBar);
> PlotShapes((Buy > 0) * shapeUpArrow, buyColors, 0, L, -10);
> PlotShapes(Sell * shapeDownArrow, colorRed);
> Mike
> --- In [email protected], "cvanhaesendonck" <carl.van@>
> 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
> >
>


Reply via email to