PureBytes Links
Trading Reference Links
|
Richard,
The - (unary minus) operator negates the value of the operand.
The result of applying the unary minus operator to a signed operand is
equivalent to the negative promoted type of the operand.
For example, if quality has the value 100, then -quality has the value -100.
The unary minus has right associativity and higher precedence than most other
operators (except exponentiation)
In the first Dimitris example the minus sign is treated as
binary minus (regular subtraction) there fore the result is 10 - (3^2) = 10 - 9 = 1
In the second Dimitirs example the minus sign follows addition
operator. Addition (binary plus operator) expects numbers from left and right side.
This time minus is treated as unary minus operator
So this is evaluated as:
10 + ( (-3)^2 ) = 10 + 9 = 19
(right associativity of unary minus and precedence over binary plus operator).
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/
|