[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 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@xxx> 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@xxx
> // 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@xxx> wrote:
> 
> 
> From: original_nightstalker <nightstalker@xxx>
> 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/