Ron,

I will comment on what you've discovered.

I excerpt my comments from my CFT Forum post here:
        
        http://www.codefortraders.com/phpBB3/viewtopic.php?f=38&t=620

and edit them slightly for presentation on Yahoo.

--- In [email protected], "Ron" <rond...@...> wrote:
>
> I've played around a little more. It seems the afl I write exists in two 
> places - AmiBroker\Formulas\Custom and AmiBroker\Drag-drop directories. 

Every new AB user eventually discovers this (or similar with one of the other 
AB source code directories).

This dual-location-situation is exactly the case in general, unless you've 
deliberately avoided it by careful use of 'Insert Linked'.

So, a chart pane will reference the code in one of those two places or the 
other. The AA window also will reference the code in one of those two places or 
the other. However, the user has to explicitly choose code from the Drag-drop 
directory to get it into the AA window, whereas for charts the user has to 
explicitly not choose code from the Drag-drop directory (by using Insert Linked 
instead of dragging or double-clicking to choose code).

IOW, charts and AA windows reference external code files, as they exist at 
runtime (assuming they still do). They do not carry their own copy of the code 
as it existed at construction time.

Drag-drop, if I may put it this way, is not something that happens "in the 
chart" (except visually). Instead, it is something that happens in the code 
files, and any file it happens in is different forever-after (just look in the 
editor and see after dragging one indicator onto another).

The Drag-drop directory exists with a purpose that this form of "outside the 
editor" editing not affect the original files involved.  (Instead, the file 
copies in the Drag-drop directory are affected.)

However, a consequence is that the naive user will wind up creating many charts 
all of which are based on files copied to the Drag-drop directory, which will 
fill up with a dizzying array of .1, .2, .3, etc. files.

Then, at some point, the user will want to make a change to the original file 
(i.e. in the Custom directory, or one of the other source directories) and be 
expecting that this change will show up in all his previously constructed 
charts. It will not.

Can you see why not?

The reason is that none of those previously constructed charts are referencing 
the original file location any more!

These facts also have profound implications for keeping charts and code 
synchronized between machines.

Personally, my goal is to completely avoid having any files in the Drag-drop 
directory except on the most temporary basis, which is when and only when I'm 
using the "drag-drop editing functionality" to perform the specific sort of 
code edits that it does. After performing such edits, upon confirming the 
desired visual result produced by the new code, I immediately rename this code, 
copy it back into a permanent home my source code tree, and delete it from the 
Drag-drop directory.

IOW, to my way of thinking (arrived at after long experimentation and usage), 
any file present in the Drag-drop directory is a sign of chart and library 
organization pathology that needs to be corrected ASAP.

Of course, those are my charts, that's my library and my desired organization. 
YMMV.

Cheers!





Reply via email to