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

[amibroker] Re: Looping or optimizing a set of non sequential numbers?



PureBytes Links

Trading Reference Links

Thanks Steve. That also gives me a lot to try out.


--- In amibroker@xxxxxxxxxxxxxxx, "Steve Davis" <_sdavis@xxx> wrote:
>
> You might notice a slowdown in the optimization performance if you
> read the numbers from a file hundreds of times during the
> optimization. If the performance becomes a problem, you could make use
> of the actionExOptimizeSetup to read the file only once. There are
> multiple ways to store the contents of the file.
> 
> if (Status("ActionEx") == actionExOptimizeSetup)
> {
>   Read the file here.
>   Possibly create the static vars here.
>   Possibly store the numbers in a comma separated static text string.
>   Possibly store the numbers in an Add-To-Composite ticker symbol.
> }
> 
> Sorry, I'm traveling and cannot give a more concrete code example
> right now.
> 
> -Steve
> 
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "ozzyapeman" <zoopfree@> wrote:
> >
> > Thanks Mike! I was dealing with the latter case. So your file
> > operations code looks like it might do the trick.
> > 
> > I will test this out.
> > 
> > 
> > --- In amibroker@xxxxxxxxxxxxxxx, "Mike" <sfclimbers@> wrote:
> > >
> > > You are presumably generating the "stuff" code somewhere, right?
> > > 
> > > e.g.
> > > condition65 = ...stuff;
> > > condition126 = ...stuff;
> > > 
> > > Thus, they are simply suggesting that you additionally generate the 
> > > population of the array at the same time.
> > > 
> > > e.g
> > > count = 0;
> > > 
> > > condition65 = ...stuff;
> > > good[count++] = 65;
> > > 
> > > condition126 = ...stuff;
> > > good[count++] = 126;
> > > 
> > > Now, when constructing your dynamic variable, iterate through the 
> > > array values something like this (untested):
> > > 
> > > index = Optimize("Index", 0, 0, count - 1, 1);
> > > 
> > > Buy = VarGet("condition" + good[index]);
> > > Sell = ...
> > > 
> > > If that is not the case, and your conditions are already in the
same 
> > > AFL as your Buy statement, and the DLL just spits out numbers to a 
> > > file. Then add file operations to populate the good array
(untested).
> > > 
> > > count = 0;
> > > fh = fopen("good.txt", "r");  // From DLL, single number per line
> > > 
> > > if (fh) { 
> > >   while(!feof(fh)) { 
> > >     good[count++] = fgets(fh); // May need to convert to number?
> > >   } 
> > > } else { 
> > >   printf("ERROR: file can not be found (does not exist)"); 
> > > } 
> > > 
> > > index = Optimize("Index", 0, 0, count - 1, 1);
> > > 
> > > Buy = VarGet("condition" + good[index]);
> > > Sell = ...
> > > 
> > > Mike
> > > 
> > > --- In amibroker@xxxxxxxxxxxxxxx, "ozzyapeman" <zoopfree@> wrote:
> > > >
> > > > When you say include file, does that only encompass other AFLs? Or
> > > > could it also include a generic csv file?
> > > > 
> > > > If it is only other AFLs, which it appears to be from the online
> > > > index, then won't I still have to hand set each variable to an 
> > > array?
> > > > Or can I just make the file a range of numbers like:
> > > > 
> > > > 65      
> > > > 126     
> > > > 867     
> > > > 1023 
> > > > etc...
> > > > 
> > > > Also, the online index says that using include can
dramatically slow
> > > > down AFL, even for a single instance. Is that still the case,
or is
> > > > that based on earlier AmiBroker version performance?
> > > > 
> > > > http://www.amibroker.com/guide/afl/afl_view.php?name=%23include
> > > > 
> > > > Thanks for any input.
> > > >
> > >
> >
>



------------------------------------

**** IMPORTANT ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

*********************
TO GET TECHNICAL 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

*********************************
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:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

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