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

Re: [amibroker] Re: Are your Composites accurate???



PureBytes Links

Trading Reference Links

Hello,

Sorry, one correction: the text should say

"For example, in 3 * 4 / 5, the multiplication
multiplication, goes first, yielding 2.4 (AFL uses FLOATING point numbers)."

Obviously when using floating point numbers the order of the evaluation of
this simple statement does not affect final effect. The example shown difference
only if integers where used but AFL performs all calculations on floating point numbers.

Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message -----
From: "Tomasz Janeczko" <amibroker@xxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Tuesday, April 30, 2002 10:42 AM
Subject: Re: [amibroker] Re: Are your Composites accurate???


> Hello,
>
> When you enter an expression that contains more than one operator, then it may not be clear which operation should be performed
> first. For example, in the expression 6 + 3 * 4 one might choose to perform the addition first and the multiplication later,
> yielding (6 + 3) * 4 = 9 * 4 = 36, or one might choose to perform the multiplication first and the addition later, yielding 6 + (3
*
> 4) = 6 + 12 = 18. To take care of situations like this, the operators are assigned an order of precedence: an indication of which
> operator goes first in any situation.
>
> The following list shows groups containing operators of equal precedence, with the groups listed in order of decreasing
precedence:
>
> > 1 ^ Exponentiation
> > 2 - Negation - Unary minus
> > 3 * Multiplication
> > 4 / Division
> > 5 + Addition
> > 6 - Subtraction
> > 7 < Less than
> > 8 > Greater than
> > 9 <= Less than or equal to
> > 10 >= Greater than or equal to
> > 11 == Equal to
> > 12 != Not equal to
> > 13 NOT Logical "Not"
> > 14 AND Logical "And"
> > 15 OR Logical "Or"
> > 16 = Variable assignment operator
>
> For example, multiplication (*) has a higher precedence than addition (+), so in our example 6 + 3 * 4, multiplication goes first
> and addition second. You can make the addition go first after all by making the order explicit using grouping with parentheses
> (which has the highest precedence): (6 + 3) * 4 yields 36.
>
> All operators except power-taking (^), unary minus, logical NOT and assignment have left associativity: if they are combined with
> operators of equal precedence, then the operations are evaluated from left to right. For example, in 3 * 4 / 5, the multiplication
> and the division have the same order of precedence and are both left associative, so the leftmost operation, in this case the
> multiplication, goes first, yielding 2 (remember that the example involves integers only). With enforced precedence for the
> division, through 3 * (4 / 5), we get 0.
>
> The operators with the greatest precedence are grouping with parentheses, and selecting a member from a list or structure (.).
Unary
> minus refers to a minus sign applied to a single argument, and it has high precedence. For example, - 3 + 4 yields 1, and not -7.
> However, the precedence of power-taking is higher than that of unary minus, so -3^2 is equal to -9. Power-taking has right
> associativity, so 3 ^ 4 ^ 2 is interpreted as 3 ^ (4 ^ 2) = 3 ^ 16.
>
> Using parentheses, one can explicitly indicate any desired precedence.
>
>
> Best regards,
> Tomasz Janeczko
> amibroker.com
> ----- Original Message -----
> From: "dtsokakis" <TSOKAKIS@xxxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Tuesday, April 30, 2002 9:07 AM
> Subject: [amibroker] Re: Are your Composites accurate???
>
>
> Richard,
> Note please that in AFL the following results are true:
> 10-3^2=1
> 10+-3^2=19
> !!!
> Dimitris Tsokakis
> --- In amibroker@xxxx, "Richard Alford" <richard.alford@xxxx> wrote:
> > not in this universe :) It may not, in fact, matter since the
> exponentiation operator always (by some other convention?) follows
> the operand. Actually the "unitary" is a relatively new term (in the
> past 20 years) jumping out after I was well out of grad school (in
> mathematical physics) and before the programmers began to worry about
> the difference between subtraction and what I always interpreted as a
> simple negative number - the computer worries about such things,
> people don't. (I do realize the mathematical distinction has been
> around for centuries - just ignored like most math in the real world
> until it found a use.)
> >
> > BTW - Multiplication and division are not generally on the same
> level ( My Dear Aunt Sally) for the antiques in the group; although,
> when in doubt most simply just hammer in parens by reflex - similar
> to the way a horse runs first and asks questions latter....
> >
> >
> > I still think that this is a simple documentation error on TJ's
> part , and,personally, I find that comforting :)
> >
> > Cheers,
> >
> > Richard
> > ----- Original Message -----
> > From: Steve Dugas
> > To: amibroker@xxxx
> > Sent: Monday, April 29, 2002 8:34 PM
> > Subject: Re: [amibroker] Re: Are your Composites accurate???
> >
> >
> > It just occurred to me - maybe they are on the same level (like
> multiplication and division), so it does the negation first because
> it comes to it first?
> >
> > Steve
> > ----- Original Message -----
> > From: Steve Dugas
> > To: amibroker@xxxx
> > Sent: Monday, April 29, 2002 9:08 PM
> > Subject: Re: [amibroker] Re: Are your Composites accurate???
> >
> >
> > Hi DT,
> >
> > I must be missing something. I tried your plot, and -1^10 did
> evaluate to 1, like you say. But, if exponentiation takes precedence
> over negation (as shown in your table), how come it doesnt evaluate
> to -1, like this? :
> >
> > -1^10 = -(1^10) = -(1) = -1
> >
> > Steve
> > ----- Original Message -----
> > From: dtsokakis
> > To: amibroker@xxxx
> > Sent: Monday, April 29, 2002 12:16 PM
> > Subject: [amibroker] Re: Are your Composites accurate???
> >
> >
> > Herman,
> > I really donīt know how do you realise things.
> > Well, -1^10 is equal to 1.
> > [It acts like (-1)^10 because of priorities in operators**
> > [try Plot(-1^10,"",1,1);]
> > -1*10^10 is a huge negative number
> > Another Amibroker expression is -1e10, also negative enough.
> > Your formula was not correct, because it was excuding stocks
> with
> > open==1 from counting.[see previous mails to you]
> > DT
> > **Operator precedence and the parentheses
> > AFL supports parentheses in formulas.
> >
> > Parentheses can be used to control the operation precedence
> (the
> > order in which the operators are calculated). AmiBroker
> always does
> > operations within the innermost parentheses first. When
> parentheses
> > are not used, the precedence is as follows (higher precedence
> listed
> > first):
> >
> > No Symbol Meaning
> > 1 ^ Exponentiation
> > 2 - Negation - Unary minus
> > 3 * Multiplication
> > 4 / Division
> > 5 + Addition
> > 6 - Subtraction
> > 7 < Less than
> > 8 > Greater than
> > 9 <= Less than or equal to
> > 10 >= Greater than or equal to
> > 11 == Equal to
> > 12 != Not equal to
> > 13 NOT Logical "Not"
> > 14 AND Logical "And"
> > 15 OR Logical "Or"
> > 16 = Variable assignment operator
> >
> > The expression
> >
> > H + L / 2;
> > (without parenthesis) would be calculated by AmiBroker
> as "L / 2"
> > plus "H", since division has a higher precedence. This would
> result
> > in a much different value than
> >
> > (H + L)/2;
> >
> > --- In amibroker@xxxx, "Herman van den Bergen" <psytek@xxxx>
> wrote:
> > > > -----Original Message-----
> > > > From: dtsokakis [mailto:TSOKAKIS@x...]
> > > > Sent: Sunday, April 28, 2002 11:13 AM
> > > > To: amibroker@xxxx
> > > > Subject: [amibroker] Re: Are your Composites accurate???
> > > >
> > > >
> > > > Herman,
> > > > I just noticed that your EMPTY is -1^10, ie equal to 1.
> > > > So, your equivalent formula is
> > > > EMPTY = 1;
> > >
> > > Just realized that -1^10 is not equal to 1 but is -1 * 10^10
> > >
> > > perhaps my code was OK anyway?
> > >
> > > Take care,
> > > Herman.
> > >
> > >
> > >
> > >
> > > > AddToComposite(IIf(Open == 1,0,1),"~DataPresent","v",3);
> > > > Do you have in the group of your gif some stocks with
> open==1 ?
> > > > This would give some explanation.
> > > > DT
> > > > PS The huge negative symbol in AFL is -1e10
> > > > --- In amibroker@xxxx, "dtsokakis" <TSOKAKIS@xxxx> wrote:
> > > > > Of course I receive an identical result list with your
> > > > > EMPTY = -1^10;
> > > > > AddToComposite(IIf(Open ==
> EMPTY,0,1),"~DataPresent","v",3);
> > > > > Buy= 0;
> > > > > f=Foreign("~datapresent","v");
> > > > > Filter=f!=101;
> > > > > AddColumn(f,"");
> > > > > EXACTLY the same results.
> > > > > To avoid any misuderstanding :your formula works, I
> just think
> > > > > Amibroker does not use the open==EMPTY hypothesis,
> because if
> > the
> > > > > ADLAC is not present on 16/4/2002, there is no
> reference for
> > ADLAC
> > > > > this date.
> > > > > My opinion is from experience, Tomasz knows how
> AddToComposite()
> > > > > works.
> > > > > DT
> > > > > --- In amibroker@xxxx, "Dimitris Tsokakis"
> <TSOKAKIS@xxxx>
> > wrote:
> > > > > > I respectfully disagree. If you are not concerned
> about bar-
> > by-
> > > > bar
> > > > > accuracy
> > > > > > than you are correct. In that case the "1" method
> works fine.
> > As
> > > > > long as you
> > > > > > know that this method will pick up holes of several
> days but
> > that
> > > > > it will
> > > > > > not pick up single bar holes.
> > > > > >
> > > > > >
> > > > > > Herman,
> > > > > > Of course we speak for daily search, bar-by-bar.
> > > > > > I have in my ^NDX 4 experimental holes on
> > > > > > 6/1/2000 [1], 15/2/2000 [1] and 1/3/2000[2]
> > > > > > plus the missing ADLAC after 15/4/2002.
> > > > > > As you see from the exploration, the population
> > > > > > is different from 101 exactly these dates.
> > > > > > I do not understand the conditions of your graph.
> > > > > > The
> > > > > > AddToComposite(1,"~count","v");
> > > > > > Buy=0;
> > > > > > scans bar-by-bar every stock for each date.
> > > > > > If the stock is present, it adds an 1 and moves to
> the next
> > stock.
> > > > > > If ADLAC is not present on 16/4/2002, then the sum
> will be 100
> > > > > > for the certain date.
> > > > > > It is impossible to have a 20% error, there should be
> another
> > > > > > reason for your results.
> > > > > > Dimitris Tsokakis
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > Your use of Yahoo! Groups is subject to
> > http://docs.yahoo.com/info/terms/
> > > >
> > > >
> >
> >
> > Your use of Yahoo! Groups is subject to the Yahoo! Terms of
> Service.
> >
> >
> >
> > Your use of Yahoo! Groups is subject to the Yahoo! Terms of
> Service.
> >
> >
> > Yahoo! Groups Sponsor
> > ADVERTISEMENT
> >
> >
> >
> >
> > Your use of Yahoo! Groups is subject to the Yahoo! Terms of
> Service.
>
>
>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
>
>
>
>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
>