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

Re: [amibroker] AFL comments



PureBytes Links

Trading Reference Links

Hello Dima,

You must be a software developer, Dima! Your requests are so detailed!
I am glad and thankful that you point out all these things.


> I'd like to request a few minor enhancements to AFL interpreter.
>
> 1) The AFL buffers (in Guru Comments, indicator builder, etc.) are
> limited to about 32Kb [AFL code for my trading system is currently 47K].
> Once AFL code is larger, it becomes impossible to edit it in the window (but
> still possible to load file). It'd be great if you can make this buffer
> *unlimited*

Wow! 47K formula - that sounds truly interesting. Maybe you will uncover some secrets
about this one?

As for the limit I can enlarge it easily to 64K but then limitation of Windows 95/98
comes up:
"Windows 95 implements some window management features in 16 bits. The use of 16 bits imposes some restrictions on parameters in
functions and messages and places limits on internal storage. In some cases, Windows 95 provides features that can be used to avoid
these restrictions and limitations. For example, the standard edit control is limited to somewhat less than 64 kilobytes (K) of
text" - taken from Microsoft Developer Network

There are of course no such limitations on Windows NT/2000 so this is not an issue for these platforms.

Or... I can switch to so-called "Rich-edit" controls that do not have such limitation (but are slower...)


>
> 2) Subsequent comments are not recognized, i.e. if I have
> /* comment one */
> /* comment two */
> or
> a = b; // comment one
> /* comment two */
> I get an error message pointing to the leading slash of the
> second comment

This one should be fixed long time ago :-(

> 3) result of Boolean (or any other) operation including an array which
> value is {EMPTY} for particular date is {EMPTY}. I think {EMPTY} should be
> considered as 0. Example:
> sell = exitLongPosition OR enterShortPosition;
> If my first trade for the time period is Long, sell will have
> {EMPTY} value until my first short trade. 1 in exitLongPosition will be
> ignored because of {EMPTY} value of enterShortPosition.

I guess you are right (but for boolean operations only). Why not for all operations?
Simply because {EMPTY} is used to mark that there are no valid data
for given bar. For example moving average value is NOT available for the first
<range> number of bars. So if you base your other calculations on the results
of MA you should not include these invalid data. AFL engine detects {EMPTY}
values and skips them so nested functions/operators work only on valid data.

Best regards,
Tomasz Janeczko
===============
AmiBroker - the comprehensive share manager.
http://www.amibroker.com