[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Re: Multiple buy signals not taken in backtest


  • Date: Wed, 17 Feb 2010 11:19:53 -0000
  • From: "cvanhaesendonck" <carl.van@xxxxxxxxxx>
  • Subject: [amibroker] Re: Multiple buy signals not taken in backtest

PureBytes Links

Trading Reference Links

Mike,

This seems to work well - will do more backtesting now. A special thank you for the time you took on this. 
Adrian: you were right, my copy andpaste was a bit precipitated and part of this formula should have read "Sum(RSI(2)< 25,2) ==2"

Thanks again,
Carl

--- In amibroker@xxxxxxxxxxxxxxx, "Mike" <sfclimbers@xxx> 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 amibroker@xxxxxxxxxxxxxxx, "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
> >
>




------------------------------------

**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

TO GET TECHNICAL SUPPORT send an e-mail directly to 
SUPPORT {at} amibroker.com

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    amibroker-digest@xxxxxxxxxxxxxxx 
    amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/