PureBytes Links
Trading Reference Links
|
Tomasz,
No offense but the #INCLUDE capability as designed and implemented in
AB/AFL really accomplishes nothing other than to slow things down.
It does NOT provide modularity of functions that can be used in a
generic way from one system/indicator to another nor can #INCLUDES be
nested, nor can arrays & variables be passed and returned etc. etc.
It's structures like these that provide the basic building blocks
that allow users to write systems and indicators using functions that
have either been included with the product or individually developed
without having to replicate code.
I would like to have portfolio trading capabilities and all the rest
of the stuff that folks have asked for but IMHO also think it highly
important that issues like this be addressed.
Fred
--- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <amibroker@xxxx>
wrote:
> John,
>
> Metastock allows to execute formula by name.
> Equivalent functionality is provided by AFL #include
>
> Fred is writing about real functions with param passing by value.
> This is different story.
>
> As to point 3. from Fred's e-mail - it is already possible
> to have as many #includes in one AFL as you like.
>
> Best regards,
> Tomasz Janeczko
> amibroker.com
> ----- Original Message -----
> From: "John R" <jr-ta@xxxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Friday, April 25, 2003 11:29 PM
> Subject: Re: [amibroker] Poll results for amibroker & versatility
>
>
> > Fred,
> >
> > Your comments about the importance of getting the basic language
building
> > blocks right is spot on IMO. Procedure/function calling
facilities are
> > pretty essential for any programming language. Even good old
Metastock
> > allows you to call external formulas!
> >
> > John
> >
> > ----- Original message -----
> > From: "Fred Tonetti" <ftonetti@xxxx>
> > To: <amibroker@xxxxxxxxxxxxxxx>
> > Sent: Friday, April 25, 2003 1:59 PM
> > Subject: RE: [amibroker] Poll results for amibroker & versatility
> >
> >
> > > Herman,
> > >
> > > I would agree that it's about tools more than indicators per se.
> > > However I consider flexibility in tools to be of premier
importance and
> > > although I didn't vote in the poll I do consider as part of this
> > > flexibility having available, variable periodicity
in "indicators"
> > > and/or "functions" especially ones that are a pain to code like
Linear
> > > Regression and Standard Deviation etc. and especially given that
> > > #INCLUDE (Reusable generic subroutines and/or functions)
doesn't have
> > > the needed functionality, does not always work as expected and
is piggy.
> > > I was interested to see that these in particular made the top
of the
> > > list but why StochK/D did is beyond me since those are easily
enough
> > > written in straight AFL with no for loops, not that
for/while/if/else
> > > are difficult to use but they're piggy as is #INCLUDE.
> > >
> > > For development of any product like AB IMHO it's the building
blocks
> > > that are important and the ones that allow users to make their
own
> > > building blocks are that much more important. A good example
of this is
> > > #INCLUDE which to me to be usable needs have the following
associated
> > > features.
> > >
> > > 1. Arguments (Arrays or Variables) for calculation should be
able to be
> > > passed to an #INCLUDE and results returned much like one can
with the
> > > AFL imbedded indicators.
> > > 2. One should be able to call the same #INCLUDE from different
places
> > > in a piece of AFL passing it different arguments and getting
different
> > > results without it getting confused.
> > > 3. One should be able to have multiple #INCLUDE's in a piece
of AFL.
> > > 4. One #INCLUDE should be able to have it's own #INCLUDE's
> > > 5. It should run just as fast as any other piece of AFL.
> > >
> > > So as a simple example if one wanted to have their own FastK
type
> > > stochastic with variable periodicity that one could use
whenever one
> > > wanted with whatever inputs one wanted then one should be able
to use it
> > > and write it in some way like this:
> > >
> > > Main AFL ...
> > >
> > > #INCLUDE "C:\...\FastK.AFL" Array1 Array2 Array3 Array4 Array5
> > >
> > > Include AFL ...
> > >
> > > HH = HHV(Array1, Array4);
> > > LL = LLV(Array2, Array4);
> > > Array5 = 100 * (Array3 - Array2) / (HH - LL);
> > >
> > > Having the capability of simple building blocks like this
allows for
> > > rapid development of ones own indicators and systems without
the need
> > > for repetitive coding .
> > >
> > > For example in TradeStation ALL functions are viewable as
EasyLanguage (
> > > The equivalent to AFL ) even the ones that are imbedded with
the product
> > > so there is never a need to guess how something is calculated.
For
> > > example here's a standard deviation function . which in turn
calls an
> > > Average function. This may not be the most efficient way to
write these
> > > but they illustrate the point.
> > >
> > >
{*******************************************************************
> > > Description: Standard Deviation
> > >
********************************************************************}
> > >
> > > Inputs: Price(NumericSeries), Length(NumericSimple);
> > >
> > > Vars: SumSqr(0), Avg(0), Counter(0);
> > >
> > > If Length <> 0 Then
> > > Begin
> > > Avg = Average(Price, Length);
> > > SumSqr = 0;
> > > For Counter = 0 To Length - 1
> > > Begin
> > > SumSqr = SumSqr + (Price[Counter] - Avg)
> > > * (Price[Counter] - Avg);
> > > End;
> > > _StdDev = SquareRoot(SumSqr / Length);
> > > End
> > > Else
> > > _StdDev = 0;
> > >
> > >
{*******************************************************************
> > > Description: Simple Moving Average
> > >
********************************************************************}
> > >
> > > Inputs: Price(NumericSeries), Length(NumericSimple);
> > > Variables: Sum(0), Counter(0);
> > >
> > > Sum = 0;
> > >
> > > For counter = 0 To Length - 1 Begin
> > > Sum = Sum + Price[counter];
> > > End;
> > >
> > > If Length > 0 Then
> > > Average = Sum / Length
> > > Else
> > > Average = 0;
> > >
> > >
> >
> >
> >
> > Send BUG REPORTS to bugs@xxxx
> > Send SUGGESTIONS to suggest@xxxx
> > -----------------------------------------
> > Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
> > (Web page: http://groups.yahoo.com/group/amiquote/messages/)
> > --------------------------------------------
> > Check group FAQ at:
http://groups.yahoo.com/group/amibroker/files/groupfaq.html
> >
> > Your use of Yahoo! Groups is subject to
http://docs.yahoo.com/info/terms/
> >
> >
> >
------------------------ Yahoo! Groups Sponsor ---------------------~-->
Get A Free Psychic Reading!
Your Online Answer To Life's Important Questions.
http://us.click.yahoo.com/cjB9SD/od7FAA/AG3JAA/GHeqlB/TM
---------------------------------------------------------------------~->
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
|