PureBytes Links
Trading Reference Links
|
hi,
below I show how to get started. This example shows
a simple system where on the top you add the line with SetCustomBacktestProc where you call for a
file.
The file called contains the CBT (custom
back test). The code of this file is shown at the bottom. This particular
CBT code makes a basket file ready to send to the TWS. But CBT
code can do various things. It can derive information from a existing
backtest or it can alter an existing backtest. Soon I am promissed code that
will enable one to do complicated portfolio backtests.
rgds, Ed
main program in indicator window
#pragma nocache
SetCustomBacktestProc( "C:\\Amibroker
Programs\\myAFL\\CustomBacktest\\IBbasketfileProfitStop.afl" );
// initial settings for portfolio trading (also see Settings
window) SetBarsRequired(10000,10000); SetOption("MaxOpenPositions", 100 ); PositionSize = -5; SetTradeDelays(0,0,0,0);
sk1 =
RSI(14);
// buy and short
rules Buy = Buy rules; Short = Short rules;
// sell
and cover rules ApplyStop ...
SetChartOptions(0, chartShowDates); GraphXSpace = 5; Plot(C,"C",1,64);
in a separate
file:
IBbasketfileProfitStop.afl
SetOption("UseCustomBacktestProc", True );
if( Status("action") == actionPortfolio ) {
fh = fopen("c:\\Test4.txt", "w" ); bo
= GetBacktesterObject();
bo.PreProcess();
for( bar = 0;
bar < BarCount; bar++ ) {
bo.ProcessTradeSignals( bar );
if (bar == BarCount - 1) {
for( Openpos = bo.GetFirstOpenPos(); Openpos ; Openpos =
bo.GetNextOpenPos() ) {
// old positions still in portfolio
if (Openpos.BarsInTrade >
1) {
// determine whether long / short
position
if (Openpos.IsLong) {
// format: SELL, 100, CHRW , STK, SMART, LMT,
52.44,
pp
= Openpos.GetPrice(Bar - 1,"H") -
0.01;
string
= "SELL, " +
Openpos.Shares + ", " +
Openpos.Symbol + " , STK, SMART, LMT, " + pp + ",";
if( fh ) fputs( string + "\n", fh );
}
else if (!Openpos.IsLong) {
// format: BUY, 100, CHRW , STK, SMART, LMT,
52.44,
pp
= Openpos.GetPrice(Bar - 1,"L") +
0.01;
string
= "BUY, " + Openpos.Shares
+ ", " + Openpos.Symbol +
" , STK, SMART, LMT, " +
pp + ",";
if( fh ) fputs( string + "\n", fh );
}
// the new positions to enter
}
else if (Openpos.BarsInTrade ==
1) {
if (Openpos.IsLong) {
// format: BUY, 100, CHRW , STK, SMART, LMT,
52.44,
pp
= Openpos.GetPrice(Bar - 1,"C"); pp =
Prec(pp + pp/100*0.25 + 0.01,2);
string
= "BUY, " + Openpos.Shares
+ ", " + Openpos.Symbol +
" , STK, SMART, LMT, " +
pp + ",";
if( fh ) fputs( string + "\n", fh );
}
else if (!Openpos.IsLong) {
// format: SELL, 100, CHRW , STK, SMART, LMT,
52.44,
pp
= Openpos.GetPrice(Bar - 1,"C"); pp =
Prec(pp - pp/100*0.25,2);
string
= "SELL, " +
Openpos.Shares + ", " +
Openpos.Symbol + " , STK, SMART, LMT, " + pp + ",";
if( fh ) fputs( string + "\n", fh );
}
}
}
}
}
bo.PostProcess();
fclose( fh ); }
----- Original Message -----
Sent: Thursday, February 16, 2006 5:00
PM
Subject: [amibroker] looking for help on custom
backtest procedure
> Hi, > > Does anyone have examples of custom backtest
procedures in AFL code? I > read the beta documentation on the Advanced
portfolio backtester > inferface, but still couldn't figure out how to
get it to work. There > is no examples in the documentation, so it's hard
to learn exactly how > to do this (or maybe I am just stupid). Has anyone
gotten it to work? > > Tom > > > >
> > ------------------------ Yahoo! Groups Sponsor
--------------------~--> > Try Online Currency Trading with GFT. Free
50K Demo. Trade > 24 Hours. Commission-Free. > http://us.click.yahoo.com/RvFikB/9M2KAA/U1CZAA/GHeqlB/TM >
--------------------------------------------------------------------~->
> > Please note that this group is for discussion between users
only. > > To get support from AmiBroker please send an e-mail
directly to > SUPPORT {at} amibroker.com > > For other
support material please check also: > http://www.amibroker.com/support.html > > > Yahoo! Groups Links > >
<*> To visit your group on the web, go to: >
http://groups.yahoo.com/group/amibroker/ > > <*> 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/ > > >
Please note that this group is for discussion between users only.
To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
For other support material please check also:
http://www.amibroker.com/support.html
SPONSORED LINKS
YAHOO! GROUPS LINKS
|