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

RE: [amibroker] Re: Discussion about Params, hierarchical, conditional, tricks...



PureBytes Links

Trading Reference Links

You've got an older version of AB. To use this code you'll have to download
the most recent.

d 

> -----Original Message-----
> From: amibroker@xxxxxxxxxxxxxxx 
> [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of rollyzhang
> Sent: Sunday, September 16, 2007 2:37 PM
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: [amibroker] Re: Discussion about Params, 
> hierarchical, conditional, tricks...
> 
> Hi Dennis/Joe,
> I downloaded the code as well but was that lucky. I got a few syntac 
> errors that I don't know how to get rid of. Did I miss something?
> 
> The code causes AM syntax errors. The AFL complains at "switch" 
> statements. See example below. The switch statements compute text 
> conditions that I never saw in C/C++ or Java lanaguages. According to 
> AFL documents, the "switch" only switches number type conditions. 
> 
> function PlotStyle(styleText){
> switch (styleText)
> {
> case("Line"): style = styleLine; break;
> case("Thick Line"): style = styleLine|styleThick; break;
> case("Dashed"): style = styleDashed; break;
> case("Thick Dashed"): style = styleDashed|styleThick; break;
> case("Dots"): style = styleNoLine|styleDots; break;
> default: style = styleLine;
> }
> return style;
> }
> 
> The AFL also complains at statements like barstyle |= styleThick. 
> After modified to barstyle = barstyle | styleThick, the complains 
> gone.
> 
> Rolly.
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "Joe Landry" <jelandry@xxx> wrote:
> >
> > Dennis,
> > Some quick comments. 
> > 1) Thanks for doing this and sharing your work.  I loaded it and as 
> you probably knew it would, it fired up right away. 
> > 2) I've mined Bill's parameter work recently for a conditional ATC 
> write and your work is going into the InfoSelect datamine.  
> > 3) In addition to using this in flexible parameters, the use of 
> fileIO, dynamic variable naming for VarSet, string handling, and 
> static variables examples are clear and useful/productive in other 
> areas.    
> > 
> > Regards
> > Joe L. 
> >  
> >  
> > 
> > 
> > 
> >   ----- Original Message ----- 
> >   From: Dennis Brown 
> >   To: amibroker@xxxxxxxxxxxxxxx 
> >   Sent: Tuesday, August 14, 2007 3:00 PM
> >   Subject: [amibroker] Discussion about Params, hierarchical, 
> conditional, tricks...
> > 
> > 
> > 
> >   Hello,
> > 
> > 
> >   I am posting this discussion, because I want to share what I have 
> learned, and get feedback about possibly doing these things an an 
> easier way --or perhaps some ideas will emerge for future versions of 
> AB.
> > 
> > 
> >   I reviewed Bill Barnards params code.  It was a tough read for 
> me, but I was able to take his work and couple it with other hints on 
> this site to create almost everything I wanted to do with params:
> > 
> > 
> >   1.  I am plagued by edits to my AFL causing AB to do a "Reset 
> all" params about every 4th edit.  I loved Bill's idea of saving the 
> last param values and that also fixes that problem.  Also by saving 
> each param to its own file, I can edit my param AFLs on the fly and 
> not loose most of the settings.
> > 
> > 
> >   2.  I have a ton of params.  I have to scroll several screenfuls 
> to find the ones I want, and I usually only want to change a few at a 
> time --but not always located next to each other.  The current AB 
> (<5.0) does not remember which param sections were open and collapse 
> the others.  So it is a pain to work with.  Bill's method of  putting 
> param statements inside of conditional code and using the "reset all" 
> button to force AB to rearrange the params window is a clever idea.  
> It makes it possible to have both the missing functionality of 
> remembering which sections are open, but also lets me implement 
> multiple levels of hierarchy or conditional data params --a real plus.
> > 
> > 
> >   3.  Controlling the organization of the params window from AFL is 
> very flexible.  By controlling which params are displayed, and 
> replacing the displayed text, I could go as far as being able to set 
> any number of params with what looked like a single param, by 
> interacting with the user in a "20 questions" sort of way.  Not very 
> user friendly to do that, but it gives the flavor of the flexibility.
> > 
> > 
> >   The down side is that it is a bit convoluted in the AFL.  
> However, I tried to modularize the AFL as much as possible and made a 
> set of functions to do do most of the dirty work.
> > 
> > 
> >   I only put a single param in a persistent var (disk file).  I 
> read in the disk params only once on the first AFL pass, and cache 
> them into static variables after that.  When I change a param, I save 
> it in both the static var and the persistent var (write through).  I 
> did this for performance reasons, though I did not try it without the 
> cache to see how much difference it really makes.  List params are 
> tricker, as I had to save the text and find and save the selected 
> item value.
> > 
> > 
> >   I did identify params as belonging to a specific chart by 
> including GetChartID() as part of the name.
> > 
> > 
> >   The example is mostly written so that only open params will have 
> their default values reset on command, but I did show one example of 
> how to have some or all params reset to default by a Reset All Params 
> button.
> > 
> > 
> >   The test AFL is not exhaustive for all param types, but covers 
> the basics.  
> > 
> > 
> >   There are some drawbacks to doing the params this way:
> > 
> > 
> >   1.  AFL does not have a command to do a "Reset all"  of the 
> params after the current pass is complete, so the user must manually 
> click the "Reset all" button on the params window to make his param 
> reorganization selection take effect.  This is a big drawback!
> > 
> > 
> >   2.  The existing section labels may be removed, but the 
> replacement labels can not be colored to stand apart as section 
> dividers.
> > 
> > 
> >   3.  I don't have a good way to initialize everything for the 
> first time.  The user has to open all menus and "Reset Visible 
> Params".  I had to choose to reset all params or just expanded 
> params.  To do both I would have had to duplicate the defaults in two 
> different places, and I choose the version I thought would be more 
> useful.
> > 
> > 
> >   4.  Because each param is stored in a separate file and for each 
> chart, the folder can have quite a few files in it.  If a chart or 
> param is no longer used, the extra param files have to be manually 
> cleaned up.  One idea is to use a separate folder for each chart just 
> for params.
> > 
> > 
> >   I have uploaded the example AFL to the Amibroker Library as it 
> was a bit bulky to post here.  It is named Flexible Parameter Layouts.
> > 
> > 
> >   Please try it out and comment on the implementation and add more 
> ideas to improving it.
> > 
> > 
> >   Dennis
> > 
> > 
> > 
> >   On Jul 20, 2007, at 11:21 PM, Dennis Brown wrote:
> >     I just saw this and downloaded the files and read the docs.  
> This is  
> >     the answer to something I had wanted to do --hierarchical and  
> >     conditional params.  All we need now to make it fully seamless, 
> is to  
> >     have an AFL command that resets the params.  Extremely cool.  
> Of  
> >     course it would be even better if it was built in so everyone 
> could  
> >     use it without a lot of AFL expertise.
> > 
> > 
> >     Dennis
> > 
> > 
> >     On Jul 20, 2007, at 6:51 PM, dan_public@xxx wrote:
> > 
> > 
> >       A strong second on Bill Barnards param statements!   I 
> thought I'd  
> >       done some decent work with Params until I saw Bill's 
> presentation  
> >       last year.  It was a jaw-dropper.   I realized that I was 
> just  
> >       scratching the surface.   I immediately glommed onto his 
> techniques  
> >       and implemented them in my own work.
> > 
> > 
> >       Yes, Bill is the MASTER param dude!  He makes AB stand up 
> and  
> >       dance!  And it's not just some minor coding tricks.   His 
> approach  
> >       the caching parameters and reusing them is a completely new  
> >       approach.  He thinks WAY outside the box.
> > 
> > 
> >       Regards,
> > 
> > 
> >       Dan.
> >
> 
> 
> 
> 
> 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
>  
> Yahoo! Groups Links
> 
> 
> 



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
 
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/