// Test to see if Amibroker is Open
// If so, do nothing ,
If not, start Amibroker
// Create a Shell Object
var oWinMgM =
GetObject("WinMgmts://localhost")
var oWSH =
WScript.CreateObject("WScript.Shell")
// We have not looked for or found
Amibroker yet, record this below
ABFound = false
// Get a list of
Amibroker instances currently running (which maybe none)
var ABList =
oWinMgM.ExecQuery ("select * from Win32_Process where name='Broker.exe'")
//
go through the list
var e = new Enumerator(ABList);
for
(;!e.atEnd();e.moveNext())
{
// if one exists, note
that
ABFound = true;
}
if (ABFound ==
true) //then we must have found Amibroker
running
{
Result = oWSH.popup("Amibroker Found...", 1,"Job
Status", 64)
}
else //otherwise
let's start it
{
Result = oWSH.popup("Amibroker NOT Found...", 1,"Job Status",
64);
oWSH.CurrentDirectory = "C:\\Program
Files\\AmiBroker2nd\\Amibroker"
Result = oWSH.Run ("Broker.exe", 5,
false) //Start it, regular window, don't
wait
}
WScript.Sleep(3000) //Wait 3 seconds for it to
start
// Define AB
AB = new
ActiveXObject("Broker.Application");
/* retrieve automatic analysis
object */
AA = AB.Analysis;
//
// ======================== Cut and Paste from here for
additional job steps ======
// Load 1st Formula in job step
if(AA.LoadFormula("C:\\program
files\\amibroker\\afl\\Composites\\KAYAK_ATC.afl"))
{
oWSH.popup("Russell 2000 ATC Loaded
Successfully",1,"Status",64);
}
/* setup filters */
/* SCAN over symbols in the
watchlist
AA.ClearFilters();
// load a ticker with a long history
var
ABD = AB.Documents;
var ticker = "!RUT";
ABD.Open(ticker); // Point to !RUT - QP3 ticker name
Open_Ticker =
AB.ActiveDocument.Name;
// WScript.Echo ("Current Stock = "
+ Open_Ticker );
/* set apply to and range */
AA.ApplyTo
= 2; // use filters 0 all symbols, 1 current symbol, 2 use
filter
AA.Filter(0,"watchlist")= 35;
AA.RangeMode = 1; // use number of
quotations below
AA.RangeN = 1008; // for four years
/* run SCAN */
AA.scan();
WScript.Echo("R 2000 ATC
Composites stored in Group 253");
//
========================== Rank for top ten stocks in each subsector
================//
//
AB.refreshall();
----- Original Message -----
Sent: Tuesday, October 09, 2007 4:25
PM
Subject: [amibroker] Specifying Watchlist
from AFL
I was hoping to find a way to easily set/specify the Watchlist to be
used by a given AFL. My preferred approach is "A" blow, but it does
not appear to a valid/supported one.
A) The SetOption command
allows me to override/set about 26
parameters used/required by the AA
window. However, the
documentation does not show a way to specify which
Watchlist/Filters
to use. I would like to be able to simply say
SetOption
(WatchlistName, "MyWatchList");
B) I have searched
this group and it appears that this task can be
accomplished using the
"Automate a Backtest and Export the Tradelist"
script that Dingo wrote
back in April 2004.
C) I also assume that it can be accomplished in the
CBT by enabling
the Analysis Object and using the Filter
Property.
D) I think it might also be possible using a brute-force
approach by
running all of my AFLs from a Watchlist named "UseThisOne" and
then
each AFL would use CategoryRemoveSymbol to clear out
"UseThisOne" and
then rebuild it by using CategoryGetSymbol from
Watchlist "TheOneIReallyWant" and then have CategoryPutSymbol each
symbol into "UseThisOne". (Brute force and very ugly
approach).
Since my preferred approach "A" is not a valid one, does
anyone have
an opinion on which approach is preferred? Any other way of
accomplishing this task?
__._,_.___
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 NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
For other support material please check also:
http://www.amibroker.com/support.html
__,_._,___