Sorry, that should have read "The following .js file works...". Mike
--- In [email protected], "Mike" <sfclimb...@...> wrote: > > Are you particularly looking to run the first script from AmiBroker? > Since the whole thing is intended to just be a batch starter, you can > just write it as a vanilla JScript file and run it directly from the > command line. > > Just rename it to have a .js file extension (e.g. runami.js) then run > it from the command line using: > > wscript runami.js > > That being said. There are a few issues with your original post. > 1. It's not clear what you are trying to do with the Stocks object and > your usage of Document. I'm assuming that you are just trying to set > the active document as shown in my sample below. > > 2. Generally you either want to Optimize, or to Backtest. Not clear > why you are trying to do both. > > The following .ps file works, runs all 100 optimizations. Your sample > probably does to, but then immediately clobbers the result with a > single backtest! > > Mike > > > database = "C:\\Program Files\\Amibroker\\Data"; > formula_1 = "C:\\Simple MA Cross.afl"; > > AB = new ActiveXObject( "Broker.Application" ); > AA = AB.Analysis; > > AB.LoadDatabase( database ); > AB.ActiveDocument.Name = "^DJI"; // Set ^DJI as active > document > > 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 > > > --- In [email protected], "ozzyapeman" <zoopfree@> wrote: > > > > To add to my confusion, sometimes the below code does produce syntax > > errors when applied. Other times it runs smoothly (albeit with a > > single optimization step). I'm not doing anything different, so I > have > > no idea why it fluctuates. > > > > > > --- In [email protected], "ozzyapeman" <zoopfree@> wrote: > > > > > > The simplified code below runs without any syntax error. However, > > > instead of optimizing through all 100 steps, it only does a single > step. > > > Any idea why doesn't it do all 100 steps, as coded in the Simple > MA > > > Cross afl?: > > > > > > > > > > > //---------------------------------------------------------------- -- > ----\ > > > ------ > > > // 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; > > > > > > 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------------------------------------------------- > > > > > > > > > > > > --- In [email protected], "ozzyapeman" <zoopfree@> wrote: > > > > > > > > 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 ); > > > > > > > > > >
