[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] AFL GetScriptObject - Is new instance created everytime it is called??


  • To: <amibroker@xxxxxxxxxxxxxxx>
  • Subject: Re: [amibroker] AFL GetScriptObject - Is new instance created everytime it is called??
  • From: "Tomasz Janeczko" <amibroker@xxxxxx>
  • Date: Thu, 6 Apr 2006 00:47:37 +0200

PureBytes Links

Trading Reference Links

Hello,
 
Why don't you just pre-process your data file to SPLIT it into 30-40 per-symbol files that would be then loaded only ONCE
when given symbol is scanned? 30 file reads instead of 7000 gives you two orders of magnitude speed-up plus way easier coding.

Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message -----
Sent: Wednesday, April 05, 2006 11:04 PM
Subject: RE: [amibroker] AFL GetScriptObject - Is new instance created everytime it is called??

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


From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of Tomasz Janeczko
Sent: Tuesday, April 04, 2006 12:02 PM
To: amibroker@xxxxxxxxxxxxxxx
Subject: Re: [amibroker] AFL GetScriptObject - Is new instance created everytime it is called??

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
 


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 other support material please check also:
http://www.amibroker.com/support.html





YAHOO! GROUPS LINKS