PureBytes Links
Trading Reference Links
|
Well folks,
I finished converting most of my indicator system over to these new
hierarchical and conditional params today. Then I ran into a
situation that I had not run into before. With all my param sections
open, The parameters window has the scroll bar enabled, and it takes
about 3 windows full of parameters to show them all. That would be
fine if it were not for the fact that every param that changes the
layout in some way calls for the Reset all button to be clicked by
AutoIt. When this happens, it also resets the scroll bar back to the
top. This is of no consequence most of the time for me, because I
rarely have enough params open at the same time to require the scroll
bar. However, it is confusing when I click on a param and the whole
context I was looking at changes --sometimes without my realizing it.
So I guess I need to be able to read and set the scroll position of
the window to restore it. I don't have a clue how I might be able to
do this. I explored with AutoIt and it can only identify the whole
parameters tab pane as a single item.
Anyone have any ideas?
Thanks,
Dennis
On Sep 15, 2007, at 8:45 PM, Dennis Brown wrote:
> Dingo and other interested persons,
>
> Version 2.3 of "Flexible Parameter Layouts" just uploaded to the AFL
> Library.
>
> I added the ability to select different named sets of params for a
> chart.
>
> While working on my system, I realized that there are many different
> param setups for different situations that I would like to keep, or
> even to flip back and forth for comparison of the trading indicator
> results. For instance, if the market changes character from trending
> to range bound, I could switch to the alternate settings I used last
> time that happened.
>
> So I added a "Param Set Name" parameter to select a given set. If
> the set does not exist yet, it will create a set with default
> values. I also removed the chartID from the individual param files
> so that the set folder could be copied to another chart's sets.
>
> I also cleaned up the reset and startup sequences to run smoother,
> and switch some of the example code, since I was not happy with the
> Manual Trades not working well with the current version.
>
> Enjoy,
> Dennis Brown
>
>
> On Sep 11, 2007, at 9:57 PM, dingo wrote:
>
>> Neato! I'll download and take a look..
>>
>> d
>>
>>> -----Original Message-----
>>> From: amibroker@xxxxxxxxxxxxxxx
>>> [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of Dennis Brown
>>> Sent: Tuesday, September 11, 2007 9:50 PM
>>> To: amibroker@xxxxxxxxxxxxxxx
>>> Subject: Re: [amibroker] Re: Discussion about Params,
>>> hierarchical, conditional, tricks...
>>>
>>> Dingo,
>>>
>>> Version 2.2 just uploaded to the AFL Library.
>>>
>>> That is a good idea. If I had a non-displayable character that was
>>> still recognizable by AB as part of a name, then I could
>>> automatically append another character for each new top level menu.
>>> I already use "." and "_" and spacing for real things to align
>>> indents etc., so a non printable would be ideal.
>>>
>>> While experimenting, I noticed that some characters (like "\"
>>> or "&")
>>> displayed other things in the label --it seems all characters
>>> are not
>>> treated equally. It looks like they may be treated like a text
>>> command escape sequence or something. Leading and trailing blanks
>>> are removed from a name, and a tab char embedded will display a
>>> section header. My experimenting did not yield any good prospects.
>>>
>>> However, a light bulb went off in the process, and I realized
>>> through
>>> a bit of experimenting that I can have half my cake and eat it too!
>>>
>>> If I treat the _Section_Begin("SectionName"); command as just an AFL
>>> command to display a section header, and create the unique names for
>>> the section, I can make them conditionally pop up and say what I
>>> want, when I want it. So, I can replace the top level menu with a
>>> section divider when it is open, to make the sections stand out, AND
>>> make the names unique. I do not have to have a _Section_End command
>>> to make this work. This is cool and is 90% of what I wanted
>>> to get.
>>> I still have to use up one param slot below an open section to close
>>> it, but that is not too bad.
>>>
>>> I just have to keep in mind that using params this way is not meant
>>> for the kind of drag and drop functionality built into AB at the UI
>>> level, but more as a complete custom user interface for a complex
>>> system. Each has its place.
>>>
>>> If I could tell what state the native top level param section is in
>>> (open or closed) or alternatively, that it was clicked on like a
>>> ParamTrigger(), I could even get 98% of what I want.
>>>
>>> Tomasz put a lot more flexibility into the way Params and Sections
>>> work than I realized when I started this task --I just can't quite
>>> get a hook into everything I would like to make this seamless.
>>> Unfortunately, the next change TJ makes to the Params window could
>>> break my methods if he does not make a specific allowance for
>>> them or
>>> an alternative. That is the risk of coding on the edge.
>>>
>>> Version 2.2 just uploaded to the AFL Library.
>>>
>>> Thanks,
>>> Dennis
>>>
>>>
>>> On Sep 11, 2007, at 1:43 PM, dingo wrote:
>>>
>>>> Try adding non-displayable characters to the end of the literal
>>>> like
>>>> null(s).
>>>>
>>>> Or add a "." or "_" to the end. Or an extra space between words.
>>>>
>>>> d
>>>>
>>>>> -----Original Message-----
>>>>> From: amibroker@xxxxxxxxxxxxxxx
>>>>> [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of Dennis Brown
>>>>> Sent: Tuesday, September 11, 2007 12:59 PM
>>>>> To: amibroker@xxxxxxxxxxxxxxx
>>>>> Subject: Re: [amibroker] Re: Discussion about Params,
>>>>> hierarchical, conditional, tricks...
>>>>>
>>>>> Hi,
>>>>>
>>>>> I have noticed a small gotcha to my method of Params --you must
>>>>> not
>>>>> "Label" two params the same thing, even though they are in
>>> different
>>>>> "pseudo sections". The displayed label for a param is the "Name"
>>>>> that it is known by internally (with the addition of the real
>>>>> section
>>>>> name appended to it, etc.).
>>>>>
>>>>> Normally _Section_Begin("SectionName") could be used to "divide"
>>>>> params up so that when you have for instance, 2 moving average
>>>>> sections, and want to label a param in each as "Periods"
>>> there is no
>>>>> conflict. However, it also displays a top level menu item in the
>>>>> params window.
>>>>>
>>>>> I have replaced menu sections with my own top level menus.
>>> in order
>>>>> to conserve param window space, I do not use the sections
>>>>> commands to
>>>>> divide parameters, or if I do, I would have to call the
>>> section name
>>>>> "" to keep it from displaying anything in the Params window --
>>>>> which
>>>>> does not solve this problem.
>>>>>
>>>>> I would like to be able to use the _Section commands, but
>>> be able to
>>>>> suppress the output to the Params window or solve the problem
>>>>> in some
>>>>> other way --to be able to display a param label that is not always
>>>>> unique for esthetic reasons. I have a unique "ParamName" for
>>>>> every
>>>>> param of course, but I would not like to display that as
>>> part of the
>>>>> displayed label name.
>>>>>
>>>>> Ideas anybody?
>>>>>
>>>>> Best regards,
>>>>> Dennis
>>>>>
>>>>> On Sep 11, 2007, at 7:47 AM, Dennis Brown wrote:
>>>>>
>>>>>> Joe,
>>>>>>
>>>>>> I have not run a speed test other than just watching the "display
>>>>>> chart timing" preference. I can not see any time
>>> difference between
>>>>>> a a fully open and a collapsed window (which only
>>> executes half the
>>>>>> parameter code). So I would have to say it is in the noise
>>>>> level. I
>>>>>> have a lot of very compute intensive indicators, and that
>>>>> is where my
>>>>>> time goes. However, I have been making progress on creating new
>>>>>> algorithmic approaches to some which have gained me an order of
>>>>>> magnitude speed increase. That has given me the breathing
>>>>>> room to
>>>>>> move forward with my system ideas.
>>>>>>
>>>>>> Dennis
>>>>>>
>>>>>> On Sep 11, 2007, at 1:39 AM, J. Biran wrote:
>>>>>>
>>>>>>>
>>>>>>> I am just curious, does using this very impressive code
>>>>> slow down AB?
>>>>>>>
>>>>>>>
>>>>>>> Joseph Biran
>>>>>>> ____________________________________________
>>>>>>>
>>>>>>> -----Original Message-----
>>>>>>> From: amibroker@xxxxxxxxxxxxxxx
>>> [mailto:amibroker@xxxxxxxxxxxxxxx]
>>>>>>> On Behalf
>>>>>>> Of Dennis Brown
>>>>>>> Sent: Monday, September 10, 2007 9:44 AM
>>>>>>> To: amibroker@xxxxxxxxxxxxxxx
>>>>>>> Subject: Re: [amibroker] Re: Discussion about Params,
>>> hierarchical,
>>>>>>> conditional, tricks...
>>>>>>>
>>>>>>> Hello,
>>>>>>>
>>>>>>> I have uploaded a new version (2.1) to the AB Formula Library
>>>>>>> "Flexible Parameter Layouts Version 2.1"
>>>>>>>
>>>>>>> I made it much more friendly when starting a new chart
>>>>> with it, and I
>>>>>>> also added a button for resetting all parameters to
>>>>> defaults --hidden
>>>>>>> or not. It turned out to be easier than I thought to do that
>>>>>>> --I
>>>>>>> just force all the menus open for one pass of the reset to
>>>>> defaults.
>>>>>>> It can also be tried without installing AutoIt now
>>> because it lets
>>>>>>> you know with a popup window that it is not installed and
>>>>> asks you to
>>>>>>> Manually click the Reset all button when needed (a pain,
>>> but it is
>>>>>>> polite).
>>>>>>>
>>>>>>> This is getting closer to being ready to put on the UKB.
>>>>>>> Critical comments on my AFL are very welcome.
>>>>>>>
>>>>>>> Best regards,
>>>>>>> Dennis
>>>>>>>
>>>>>>>
>>>>>>> On Sep 8, 2007, at 9:26 PM, Dennis Brown wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> Sorry to respond with criticism of my own post so soon,
>>> but one of
>>>>>>>> the things I do not like about my new Params methods is
>>>>> that when a
>>>>>>>> new chart is started, a new set of param files have to
>>> be created,
>>>>>>>> and the only way to initialize them to their defaults is to
>>>>>>>> open
>>>>>>>> every level (which can be tricky with a lot of sub menus)
>>>>> and click
>>>>>>>> the reset all open params. I would like to be able to
>>>>> just start
>>>>>>>> out
>>>>>>>> with everything initialized by a single "Reset ALL" button.
>>>>>>>>
>>>>>>>> I can do that easily enough. However, I did not want to
>>>>> give up the
>>>>>>>> ability to also reset only the open params. Doing both
>>>>> means that I
>>>>>>>> would have to supply the default values in two
>>> different places in
>>>>>>>> the AFL. I really only wanted to specify the default
>>> value in one
>>>>>>>> place to remove possible errors --so I would have to
>>>>> assign another
>>>>>>>> bunch of intermediate variables just to hold default values.
>>>>>>>>
>>>>>>>> The reason I am mentioning this is because I want to
>>>>> publish this in
>>>>>>>> the UKB, but I want to do it right the first time that
>>>>> covers all
>>>>>>>> the
>>>>>>>> bases with a solution that is simple to use. I wanted
>>> to get some
>>>>>>>> other takes or implementation ideas on this reset to
>>> default issue
>>>>>>>> before I do a lot of rewriting of my AFL and examples.
>>>>>>>>
>>>>>>>> Just to recap, the form that a param takes is two parts.
>>>>> The first
>>>>>>>> reference is the one that always reads in the param value
>>>>> every AFL
>>>>>>>> pass (first pass from a file, other passes from a static
>>>>> variable).
>>>>>>>> The second reference is made inside some conditional AFL and is
>>>>>>>> executed only if the param is open in the Parameters
>>>>> window. The
>>>>>>>> new
>>>>>>>> form would look like:
>>>>>>>>
>>>>>>>> myParamVar = GetParamVar("ParamName",
>>> defaultxxx=default); //this
>>>>>>>> default on for Reset ALL Params
>>>>>>>>
>>>>>>>> if (thisMenuIsOpen)
>>>>>>>> {
>>>>>>>> myParamVar = Param2("paramName", "ButtonText",
>>>>> defaultxxx, minVal,
>>>>>>>> maxVal, stepVal); //this default on for Reset Visible Params
>>>>>>>> }
>>>>>>>>
>>>>>>>> Comments?
>>>>>>>>
>>>>>>>> Best regards,
>>>>>>>> Dennis
>>>>>>>>
>>>>>>>> On Sep 8, 2007, at 12:13 AM, Dennis Brown wrote:
>>>>>>>>
>>>>>>>>> Thanks for your interest.
>>>>>>>>>
>>>>>>>>> I created and uploaded an Example AFL to the AmiBroker Library
>>>>>>>>> under
>>>>>>>>> the name:
>>>>>>>>> Flexible Parameter Layouts Version 2.0
>>>>>>>>>
>>>>>>>>> Enjoy, and please give feedback for improvements.
>>>>>>>>>
>>>>>>>>> Best regards,
>>>>>>>>> Dennis
>>>>>>>>>
>>>>>>>>> On Sep 7, 2007, at 12:53 PM, Dennis Brown wrote:
>>>>>>>>>
>>>>>>>>>> Experienced AFL Scripters,
>>>>>>>>>>
>>>>>>>>>> I have completed coding a complete replacement set of AFL
>>>>>>>>>> Param...()
>>>>>>>>>> functions that save the parameters in files and allow
>>>>> hierarchical
>>>>>>>>>> menus including conditional menus (like if different
>>> ParamList()
>>>>>>>>>> selections need to show additional or different
>>> parameters). It
>>>>>>>>>> also
>>>>>>>>>> remembers the last state of the open menus.
>>>>>>>>>>
>>>>>>>>>> They look just like the old param... statements,
>>> except with the
>>>>>>>>>> addition of a name for the saved parameter, and there are
>>>>>>>>>> some
>>>>>>>>>> differences with how they are used in the AFL structure.
>>>>>>>>>>
>>>>>>>>>> It requires installing the free AutoIt (see below) to
>>>>>>>>>> function
>>>>>>>>>> properly (AutoIt installs a COM that lets AFL push the
>>>>> "Reset all"
>>>>>>>>>> button on the parameters window).
>>>>>>>>>>
>>>>>>>>>> You can not successfully mix old style and new style
>>>>> params in the
>>>>>>>>>> same set window (because the new ones will keep
>>>>> resetting the old
>>>>>>>>>> ones to default values),
>>>>>>>>>>
>>>>>>>>>> The new top level menus do not have the nice darker
>>> tan color of
>>>>>>>>>> the
>>>>>>>>>> original.
>>>>>>>>>>
>>>>>>>>>> I will go to the effort of uploading an example set
>>> of these if
>>>>>>>>>> anyone is interested in using or playing with them.
>>>>>>>>>> However, only more experienced AFL scripters should
>>>>> attempt to use
>>>>>>>>>> these.
>>>>>>>>>>
>>>>>>>>>> Just let me know.
>>>>>>>>>>
>>>>>>>>>> (I attached a couple of screen shots to the end of this
>>>>> email for
>>>>>>>>>> those who get the email version)
>>>>>>>>>>
>>>>>>>>>> Dennis
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Aug 15, 2007, at 11:51 PM, Dennis Brown wrote:
>>>>>>>>>>
>>>>>>>>>>> Bruce,
>>>>>>>>>>>
>>>>>>>>>>> Thank you. This is great!
>>>>>>>>>>>
>>>>>>>>>>> I have it running and I am recoding my params AFL
>>> logic to take
>>>>>>>>>>> advantage of single click operation (since the
>>> second click is
>>>>>>>>>>> automatic now). This opens up a lot of other things I
>>>>>>>>>>> wanted
>>>>>>>>>>> to do
>>>>>>>>>>> with the UI but could not do it with AFL before.
>>>>>>>>>>>
>>>>>>>>>>> Stay tuned!
>>>>>>>>>>> Thanks again,
>>>>>>>>>>>
>>>>>>>>>>> Dennis
>>>>>>>>>>>
>>>>>>>>>>> On Aug 15, 2007, at 8:43 PM, bruce1r wrote:
>>>>>>>>>>>
>>>>>>>>>>>> AFL code fragment -
>>>>>>>>>>>>
>>>>>>>>>>>> autoit = CreateStaticObject( "AutoItX3.Control" );
>>>>>>>>>>>> if ( ! IsNull( autoit ) )
>>>>>>>>>>>> {
>>>>>>>>>>>> rc = autoit.controlclick( "Properties of:",
>>> "Reset all",
>>>>>>>>>>>> 403 );
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> AutoItX COM control can be found at -
>>>>>>>>>>>>
>>>>>>>>>>>> http://www.autoitscript.com/autoit3/downloads.php
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --- In amibroker@xxxxxxxxxxxxxxx, Dennis Brown <see3d@xxx>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Tomasz,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thank you for your comments. That helps me understand how
>>>>>>>>>>>>> far I
>>>>>>>>>>>>> might take this idea on my own.
>>>>>>>>>>>>> I appreciate that you are open minded about how
>>>>> people may use
>>>>>>>>>>>>> AB in
>>>>>>>>>>>>> ways not originally intended.
>>>>>>>>>>>>>
>>>>>>>>>>>>> A question for you or anyone else:
>>>>>>>>>>>>> I am not a Windows programmer (I run everything on Macs
>>>>>>>>>>>>> --I
>>>>>>>>>>>>> use a
>>>>>>>>>>>>> virtual XP for AB).
>>>>>>>>>>>>> I was wondering if it is possible for AFL (perhaps
>>> through a
>>>>>>>>>>>>> DLL) to
>>>>>>>>>>>>> click the Parameter Window "Reset all" button for me?
>>>>>>>>>>>>> (short of a robotic mouse of course)
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thank you,
>>>>>>>>>>>>> Dennis
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Aug 15, 2007, at 11:29 AM, Tomasz Janeczko wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Param window was designed to be used as parameters for
>>>>>>>>>>>>>> indicators
>>>>>>>>>>>>>> exactly the way as
>>>>>>>>>>>>>> formulas shipped with AmiBroker use them. And
>>> that won't be
>>>>>>>>>>>>>> changed.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> You are free however to (ab)use it in any other way you
>>>>>>>>>>>>>> want :-)
>>>>>>>>>>>>>> Here is the beauty of AmiBroker that it actually
>>>>> allows to be
>>>>>>>>>>>>>> used
>>>>>>>>>>>>>> in ways that were not
>>>>>>>>>>>>>> originally designed for unlike products from other,
>>>>>>>>>>>>>> bigger
>>>>>>>>>>>>>> companies that usually
>>>>>>>>>>>>>> apply the design of "the program knows better than you".
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I am often asked why program "does not prevent from doing
>>>>>>>>>>>>>> this or
>>>>>>>>>>>>>> that". And the answer
>>>>>>>>>>>>>> is the flexibility - you can do what you want as
>>> long as you
>>>>>>>>>>>>>> know
>>>>>>>>>>>>>> what you are doing.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Best regards,
>>>>>>>>>>>>>> Tomasz Janeczko
>>>>>>>>>>>>>> amibroker.com
>
>
> 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/
|