What I need to do is to implement an exploration/backtest
that spans across all the stocks in the database(Why the entire stock database
is a whole different question that I couldn't find an answer for. That
question is also below).
The AFL function I want to write will be reading a data
file with a list of dates,stock-list pairs, where each tock-list is a list of
15 stocks. The AFL will be generating a buy/sell signal on those
specific dates for the stocks in the assocaited stock
list.
The total number of stocks(across alll dates) in the
data file is only around 30-40.
But the data file gets updates periodically(daily, weekly
or mothly) with one or more stocks and hence I can't use a fixed filter
of stocks to apply the exploration/backtest on. (Is it possible to have a
custom filter that function that could look at the data file to get the data
file, each time the exploration/backtest is run??)
I am thinking if the AFL exploration is coded to
reads the data_file, it would have to do it for every stock in the
database(7000). I have all the 7000 why? Problem described above. I don't
know what stocks are going to be added/deleted from my
data_file.
This would then mean that the file gets open/read/closed
7000 times right? I am trying to avoid that.
I was hoping that in JScript, I could create Global
Dictionary variable with the following code that should get executed
once.
table = new
ActiveXObject("Scripting.Dictionary");
ReadAndPopulate(table);
This will define, read and populate the
table with the file data once.
That way, I am trying to avoid having to
read the file everytime, but just read from the
table.
Hence my question if for every run of the
AFL function for each stockduring exploration/bactesting of 7000 stocks, there
is a new JScript interpreter is created. If yes, then I can't just create
global Dictionary variable.
I could do
dict =
GetStaticObject("Scripting.Dictionary");
in AFL, but not sure how to access/populate the dict variable via AFL or Jscript.
Thx,
Sarvi
Hello,
Yes the answer is CreateStaticObject() but to use that you
should write in AFL. Having said that
I don't know why you need to code this in JScript and why
you need to use JScript to read the data from the file.
AFL has file reading functions as well and allows to call
external OLE objects as well.
CreateStaticObject is AFL-only function and not
available to JScript.
Best regards,
Tomasz
Janeczko
amibroker.com
----- Original Message -----
Sent: Tuesday, April 04, 2006 7:20
AM
Subject: [amibroker] AFL
GetScriptObject - Is new instance created everytime it is called??
I would like
to create a AFL function which defines a portion of the code in JScript.
use GetScriptObject to create and instance and call it multiple
times.
I would like
to create a DictionayObject within JScript to read data from a
file.
I am trying to
understand if the DictionaryObject gets created every time the AFL
function is called.
I am trying to
see if the JScript could create the Dictionary object
once if it is not already defined within the interpreter and read an
populate it from a file.
That way I am
hoping the reading from file does not happen every time the function is
called.
This would
work, only if there is one instance of the script interpreter per
Amibroker, somehting similar to GetStatiObject.
I know
GetStaticObject would apply to my case, but I don't understand how I can
use JScript code.
Will this
work.
Thx
Sarvi
-----------------------------------------------------------------------------------
Sarvi
Shanmugham
Technical
Leader
Cisco Systems
Inc.
Phone:
408-902-3875