PureBytes Links
Trading Reference Links
|
I have been looking into the possibility to run optimisation using
the "Backtest.js" script published here by TJ some time ago. I
changed some of the script (minor changes) as you can see below, and
it does the job. Except when optimisation is too large :-((
The script runs up to AA.Optimize(); where Amibroker says "The
formula requires eg. 20,000 optimisation steps. This may take lots of
time. Are you sure to proceed Yes/No?" Would it be possible to bypass
this somehow, add a line of code into the script, etc.
Thanks,
Greg
/*****************************
*
* BatchTest.js
*
* Batch testing sample script
* Shows how to use JScript and new AmiBroker 4.23
* 'Analysis' object to perform batch backtesting
* and generate reports
*
* Created: Dec 21, 2002 TJ
* Last modification: Feb 17, 2003 by "me"
*
* Copyright (C)2002 Amibroker.com
*
* Status: Freeware
* You can use/modify/adopt this code freely
*
*/
/* The directory where AFL files are stored
** Also reports generated by the bactest
** will be saved here
*/
AFLFolder = "C:\\Test";
WScript.Echo("Batch testing of all AFL files stored in " +
AFLFolder );
var AB, AA;
var fso, f, f1, fc, s;
var filename;
/* Create AmiBroker object and get Analysis object */
AB = new ActiveXObject("Broker.Application");
AA = AB.Analysis;
/* backtest over symbols and all quotes*/
AA.ClearFilters();
AA.ApplyTo = 0; // use symbols
AA.RangeMode = 0; // all quotes
/* to use filters you should uncomment lines below
// AA.ApplyTo = 2; // use filters
// AA.Filter(0,"watchlist") = 2 /* watch list number */;
// AA.Filter(0,"group") = 0 /* group number */;
/* Create FileSystemObject */
fso = new ActiveXObject("Scripting.FileSystemObject");
/* Iterate through all files in the folder */
f = fso.GetFolder(AFLFolder);
fc = new Enumerator(f.files);
for (; !fc.atEnd(); fc.moveNext())
{
// we need to add empty string to make sure that filename is a
string object
filename = "" + fc.item();
/* check the AFL extension */
if( filename.substr( filename.length - 4 ).toUpperCase()
== ".AFL" )
{
if( AA.LoadFormula( filename ) )
{
AA.Optimize();
reportname = filename.substr( 0,
filename.length - 3 ) + "CSV" ;
AA.Export( reportname ); // generate report
}
}
}
WScript.Echo("Batch backtest finished");
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
|