I thought the JS/AFL version was supposed to be uncomplicated to 
write and use ... You might want to have a look at the AFL only 
version I posted here and in the library which almost wrote itself 
from the clues I gave Ken.

--- In [email protected], "Mark H" <[EMAIL PROTECTED]> wrote:
>
> Ken:
> 
> Here are the steps to run the code: (I have attached a new version 
with some minor correction to the JScript)
> 1. Save the ListComp.afl under C:\\Program 
Files\\AmiBroker\\Formulas\\Custom.
> 2. Save the ListsComp.js under C:\\Program Files\\AmiBroker\\Scripts
> 3. Copy all your list files under C:\\Program 
Files\\AmiBroker\\MyLists
> 4. Double-click the ListsComp.js you just saved. It starts to run.
> 
> I am trying to answer your questions as best as I can.
> First of all, you can't run the AFL manually from the AA windows, 
it has to be called from the JScript because it consumes some 
information passed from the JScript.
> The key to understand them is starting examine the JScript first, 
not the AFL. It will be easier than you think if you do that. JScript 
has similar syntax to AFL and should be readable even you has yet 
written any yet. 
> 
> Mark:  I am blown away as well as grateful for the work you have 
done.  Most generous of you and it (probably) will get me going on 
what I want to try to accomplish.
> 
> I say probably because I have various questions before I can begin 
to even try to run this, questions of an operation nature and 
questions of a programming nature.
> 
> Will you please follow through and offer some "teaching" kinds of 
replies to these, helping me and perhaps many others do some good 
learning here.
> 
> OPERATIONAL QUESTIONS:
> 1.  Why are there two sections to the code, a SCAN section and an 
EXPLORE section?  Which runs first and why?  
>     From my reading of the code, the Explore section seems like it 
must run first (as it establishes the variable "COMPNAME" and loads 
the symbol data.
>     Related to this is getting the code to run unattended or 
automatically.  It seems like the Scan section should be put below 
the Explore section and then commands inserted to first run an 
explore then switch to Scan.
>     But initially it can certainly be executed twice from the AA 
window.
> 
> The JScript determine the order, Explore() is called first and Scan
() later. As I said you can't run the AFL from AA window. 
> 
> 
> 2.    This line is puzzling and I do not see how the code picks up 
the filename and path to the list of tickers:
>                 values = ab.Stocks("~VALUES");  // get the filename 
and listname from the bogus stock
>         It seems like the bogus stock is added to the overall QP 
database (AB.Stocks.Add("~VALUES");) but I have multiple lists of 
symbols organized into distinct TLS files elsewhere.
>     So the question is: what format should the symbol list(s) be in 
and where should they be located?
> The bogus stock is used to pass information between JScript and 
AFL. See my instructions at the beginning of this post to see for the 
location you should put your lists.
> 
> 3.    Are operations such as "CreateObject" and FOpen only able to 
be accomplished in EXPLORE mode, and if so why is this?
>     (perhaps too general a question but certainly would offer some 
insights to those of us who do not know)
> I think you can do it anywhere, but in this example there is no 
need to do it somewhere else.
>     
> PROGRAMMING QUESTIONS:
> 
> Comment: I tune with learn-it-your-self, I just visited and spent 
some time browsing the jscript pages at microsoft plus some of the 
help files in AB--I might find these answers after weeks of 
reading...)
> 
> 1.    How does the "Alias" command work?  
> As I said, the bogus stock "~VALUES" is used to pass info from 
JScript to AFL. The "Alias" field is used to store the list name.
> 
> 2.    Some one said paths needed double slashes (//)--I assume this 
is unnecessary as you never explicitly write explicit paths in your 
code.  Correct?
> If you look at the JScript, I did use "\\". There are no explicit 
paths in AFL since they are passed from the JScript.
> 
> 3.    You have two string replace commands when you are "GETTING" 
the symbols--I guess the "\n" is a carriage return, what is 
the "\r"??  And why is this necessary?
> Because fgets() also return the end of line character ("\r\n") 
attached to the tickers. You have to remove them otherwise the 
tickers are wrong.
> 
> 4.    To control all this automatically and loop to do multiple 
symbol lists, well, a loop is necessary around all of your code, 
hence the need to switch between SCAN and EXPLORE modes.  I thought
>         that AddtoComposites would or could work in EXPLORE mode 
(in fact you have a single ATC command in the Explore section - 
adding a zero -- why?)
> The loop is in the JScript. No need in the AFL. The ATC in the 
Explore mode just creates an empty composite so that it can been 
added to watchlist CompWatchlist. (It is basically the last step (d) 
you wanted to do in your previous post)
> 
> 5.    The file operation code never closes the file it opens.  Fred 
seemed to imply the code had to close any file it opened?
> My omission. But it should not affect the AFL because it is called 
by the JScript and the file should close automatically after every 
run. I have added it in the updated version I am attaching though.
> 
> After all you have done, you may say Geeezzzz and just leave me to 
find my own answers to these questions, and, if so, I understand and 
will forge onward, but if you want to expand on some of these 
questions that, too, would be most appreciated.
> I think if you read the JScript first, you wouldn't have all the 
questions you had :-) 
> 
> Many thanks for this work.
> 
> Ken
> 
> PS:  If I ever get all of this figured out and working, I am 
committed to uploading a complete file of the methods and background 
for others to use in the future.
>






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

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[EMAIL PROTECTED] 
    mailto:[EMAIL PROTECTED]

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to