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

[amibroker] Re: Turtle Trading rules for AmiBroker



PureBytes Links

Trading Reference Links

Hi,

If you look closely, you will see the following:

SetTradeDelays( 1, 1, 1, 1 ); 

What that means is that the signal is calculated based on the current bar, but is not acted upon until the next bar (i.e. 1 bar delay). 

Therefore, you can legitimately use any of High/Low/Close since your actions will not take place until the signal generating bar has closed, leaving its values genuinely available for use in your analysis.

Mike

--- In amibroker@xxxxxxxxxxxxxxx, "bacu_robert" <bacu_robert@xxx> wrote:
>
> 
> Hi All:
> 
> This code prompts me to ask a rather basic question.  How does the C (Close) array work?  If I am looking for a buy or sell signal using the code below, am I relying on a future price.  If I am looking for a signal during the day, and there is no way that I can know what the future closing price is, then I don't see how the buy and sell signal below can be of any benefit to me.
> 
> I appreciate any explanation on how the signals below work with the Close array.
> 
> Thanks,
> RB
> 
> 
> --- In amibroker@xxxxxxxxxxxxxxx, ram vel <rvlv@> wrote:
> >
> > Hi nightstalker
> > This is just a starting point.
> > you need to modify,add ATR, etc
> >  
> > the hhv high set for 55, llv low set for 20
> >  
> > If you cant modify these values in the previously posted afl, please use the one here posted below
> > This is a better vesrion
> > If you use longper, and shortper values of 20 and 10, you will get turtles short system
> >  
> > Since I know very little, please get help from seniors.
> > be happy.  Once again, humble my grateful salutes to Graham Kavanagh for being so kind to give such a nice gift of aflcode. Gracious indeed!
> > rvlv
> > ---------------------------------
> > 
> > //------------------------------------------------------------------------------
> > //
> > // Formula Name: AFL Example
> > // Author/Uploader: Graham Kavanagh 
> > // E-mail: gkavanagh@
> > // Date/Time Added: 2005-08-12 03:45:59
> > // Origin: 
> > // Keywords: AFL Example
> > // Level: basic
> > // Flags: exploration,indicator
> > // Formula URL: http://www.amibroker.com/library/formula.php?id=545
> > // Details URL: http://www.amibroker.com/library/detail.php?id=545
> > //
> > //------------------------------------------------------------------------------
> > //
> > // There are many questions from beginners. I have tried to create a sample
> > // system that incorporates basic and useful items.
> > //
> > // This is an AFL for Chart, Scan, Backtest and Explore
> > //
> > // The system for Buy/Sell is just off the top of the head as an example only.
> > //
> > //------------------------------------------------------------------------------
> > _SECTION_BEGIN("AFL Example");
> > /*
> > This is an attempt to provide a basic trading system AFL. The system is purely imaginary
> > AND NOT provided as one that would make money. This is just to provide a guide to learners
> > on the common components of writing AFL.
> > Prepared by Graham Kavanagh 12 Aug 2005
> > AB Write http://e-wire.net.au/~eb_kavan/ab_write.htm
> > When you copy/paste ensure the existing continuous lines have not been wrapped. This wrapping
> > can create error signals when you try to use the code. Click on the check afl button in the
> > editor before trying to apply or scan.
> > I have used slash-asterisk /* */ /* for my comments to get around the problem of wrapping,
> > which could happen if you used double slash //
> > I hope this helps the beginners in creating AFL code
> > */
> > /*firstly some basics common*/
> > SetBarsRequired(10000,10000); /* this ensures that the charts include all bars AND NOT just those on screen */
> > SetFormulaName("Sample System"); /*name it for backtest report identification */
> > SetTradeDelays( 1, 1, 1, 1 ); /* delay entry/exit by one bar */
> > SetOption( "initialequity", 100000 ); /* starting capital */
> > PositionSize = -10; /* trade size will be 10% of available equty */
> > SetOption( "MaxOpenPositions", 6 ); /* I don't want to comit more than 60% of Equity at any one time */
> > SetOption( "PriceBoundChecking", 1 ); /* trade only within the chart bar's price range */
> > SetOption( "CommissionMode", 2 ); /* set commissions AND costs as $ per trade */
> > SetOption( "CommissionAmount", 32.95 ); /* commissions AND cost */
> > SetOption( "UsePrevBarEquityForPosSizing", 1 ); /*set the use of last bars equity for trade size*/
> > PositionScore = 100/C; /*Set the order for which stock trades when get mulitple signals in one bar in backtesting */
> > //Trade system
> > /*
> > Buy when exp mov avg crosses and the high is highest for 50 bars
> > Sell when exp mov avg crosses back
> > Cross is first variable moves to above the second variable
> > */
> > LongPer = Param("Long Period", 55, 30, 100, 5 ); /* select periods with parameter window */
> > ShortPer = Param("Short Period", 20, 3, 30, 1 ); 
> > LongMA = EMA( C, LongPer );
> > ShortMA = EMA( C, ShortPer );
> > LastHigh = HHV( H, LongPer );
> > LastLow =LLV(L,ShortPer);
> > Buy = Cross( ShortMA, LongMA ) AND H > Ref( LastHigh, -1 );
> > /* ref,-1 is used for the high to have todays high greater than the previous 50 bar high.
> > To just use H==LastHigh couold mean a previous high was equal to current high */
> > Sell = Cross( LongMA, ShortMA );
> > /* exrem is one method to remove surplus strade signals*/
> > Buy = ExRem(Buy,Sell);
> > Sell = ExRem(Sell,Buy);
> >  
> > /* Now for exploration results. 
> > Will restrict results of exploration to when the Buy AND Sell signals occur 
> > You can use Filter=1; to display every bar result */
> > Filter = Buy OR Sell;
> > AddTextColumn( FullName(), "Company Name" );
> > AddColumn( Buy, "Buy", 1 );
> > AddColumn( Sell, "Sell", 1 );
> > AddColumn( C, "Close", 1.3 );
> > AddColumn( H, "High", 1.3 );
> > AddColumn( LastHigh, "HHV", 1.3 );
> > AddColumn( LongMA, "Long MA", 1,3 );
> > AddColumn( ShortMA, "Short MA", 1,3 );
> >  
> > /* Now to show this on a chart */
> > /* I use WriteVal to limit the values to the wanted number of decimal places,
> > seeing a value of 5 decimal places can be frustrating.
> > I have included additional information in the plot title sections to add some
> > information to the title block */
> > GraphXSpace = 10; /* create empty space of 10% top and bottom of chart */
> > Plot( C, " Close Price", colorGrey50, styleBar );
> > Plot( LongMA, " EMA(C,"+WriteVal(LongPer,1)+")", colorRed, styleLine|styleNoRescale );
> > Plot( ShortMA, " EMA(C,"+WriteVal(ShortPer,1)+")", colorGreen, styleLine|styleNoRescale );
> > Plot( Ref(Lasthigh,-1), " HHV(H,"+WriteVal(LongPer,1)+")", colorBlue, styleNoLine|styleDots|styleNoRescale );
> > Plot( Ref(LastLow,-1), " LLV(L,"+WriteVal(shortPer,1)+")", colorRed, styleNoLine|styleDots|styleNoRescale );
> >  
> > /* styleNoRescale in the plots stops the added plots from compressing the original bar chart to the middle of the pane */
> > PlotShapes( shapeUpArrow*Buy, colorGreen, 0, L, -10 );
> > PlotShapes( shapeDownArrow*Sell, colorRed, 0, H, -10 );
> > Title = " {{NAME}} {{DATE}} {{INTERVAL}} "+_DEFAULT_NAME()+" Chart values : {{VALUES}} ";
> > /* _DEFAULT_NAME() shows the section name or, if not present, the file name
> > the items in {{}} are short cuts for the title block. It can be done long hand
> > Title = Name() +" "+ Date() +" "+ "{{INTERVAL}}"+_DEFAULT_NAME()+" Chart values : " + 
> > " Close Price = " + C + 
> > " EMA(C,"+WriteVal(LongPer,1)+") = "+WriteVal(LongMA,1.3) + 
> > " EMA(C,"+WriteVal(ShortPer,1)+") = "+WriteVal(ShortMA,1.3) + 
> > " HHV(H,"+WriteVal(LongPer,1)+") = "+WriteVal(Ref(LastHigh,-1),1.3) ;
> > */
> > _SECTION_END(); 
> > 
> > --- On Mon, 11/9/09, original_nightstalker <nightstalker@> wrote:
> > 
> > 
> > From: original_nightstalker <nightstalker@>
> > Subject: [amibroker] Re: Turtle Trading rules for AmiBroker
> > To: amibroker@xxxxxxxxxxxxxxx
> > Date: Monday, November 9, 2009, 3:48 AM
> > 
> > 
> >   
> > 
> > 
> > 
> > Thank you for that - very much appreciated :)
> > 
> > And thanks to Graham too, of course :)
> > 
> > --
> > NS
> > 
> > --- In amibroker@xxxxxxxxx ps.com, ram vel <rvlv@> wrote:
> > >
> > > hi 
> > > just search for Graham kavanagh
> > > adjust parameters as needed
> >
>




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

**** 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/