Hoping someone can chime in here to let me know what I might be doing
wrong. I'm currently testing out some simple automation code. The
objective is to load an AFL and then run a portfolio optimization for a
specified date range.

I am using a simple MA crossover trading system for testing purposes. I
can of course optimize it manually in AA without any problem. But when I
try to run and control that optimization from a piece of automation
code, I get a whole range of syntax errors.

Below are the two *separate* AFL codes. I imagine the first AFL has some
errors in it that is preventing the actions from being carried out
properly. What am I missing or doing wrong? Any input much appreciated:

//----------------------------------------------------------------------\
------
// AUTOMATION CODE: Load an AFL and Run a Portfolio Optimization
//----------------------------------------------------------------------\
------

EnableScript("jscript");
<%

database = "C:\\Program Files\\Amibroker\\Data";
formula_1 = "C:\\Simple MA Cross.afl";

AB  = new ActiveXObject( "Broker.Application" );
AB.LoadDatabase( database );
AA  = AB.Analysis;
Stk = AB.Stocks
Doc = AB.Documents.Open( Stk.Ticker );

AA.LoadFormula( formula_1 );              // load formula from external
file

AA.ApplyTo       = 1;                     // use current symbol
AA.RangeMode     = 3;                     // use 'From' and 'To' dates
AA.RangeFromDate = "11/01/2005";
AA.RangeToDate   = "12/31/2005";
AA.Optimize( 0 );                         // run Optimize for the
portfolio, which is just one symbol
AA.Backtest();

%>
//---------END AUTOMATION
AFL-------------------------------------------------





//----------------------------------------------------------------------\
------
// Simple MA Cross: THIS IS A SEPARATE AFL SAVED AT: "C:\\Simple MA
Cross.afl"
//----------------------------------------------------------------------\
------


FastMALength = Optimize("FastMALength",      1,     1,    100,     1);
SlowMALength = 20;

//----------------------------------------------------------------------\
------
// BACKTESTER SETTINGS
//----------------------------------------------------------------------\
------

SetBarsRequired(10000, 0);
SetOption("AllowPositionShrinking", False);
SetOption("AllowSameBarExit", True);
SetOption("CommissionAmount", 3.00);
SetOption("CommissionMode", 3);
SetOption("FuturesMode", 1);
SetOption("InitialEquity", 100000);
SetOption("InterestRate",0);
SetOption("MaxOpenPositions", 1);
SetOption("MinPosValue", 0);
SetOption("MinShares", 1);
SetOption("PriceBoundChecking", False );
SetOption("ReverseSignalForcesExit", False);
SetOption("UsePrevBarEquityForPosSizing", True );
SetTradeDelays(0, 0, 0, 0);
SetPositionSize(1, spsShares);
TickSize      = 0.0001;    // The minimum price move of symbol for Forex
PointValue    = 100000;
RoundLotSize  = 1;
MarginDeposit = 2500;
BuyPrice      = SellPrice = ShortPrice = CoverPrice = Close;

//----------------------------------------------------------------------\
--
// TRADING SYSTEM
//----------------------------------------------------------------------\
--

FastMA       =    MA( C, FastMALength );
SlowMA       =    MA( C, SlowMALength );
Buy          = Cross( FastMA, SlowMA  );
Sell         = Cross( SlowMA, FastMA  );

Reply via email to