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

[amibroker] Re: Poll results for amibroker & versatility



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/