PureBytes Links
Trading Reference Links
|
<SPAN
class=596345113-25102003>I'm really not trying to be a pain here. the only
reason I got into this at all was that when the MACD I posted in the
auto-optimization framework, I noticed a difference in the performance stats
between using the AMA version always, or only when I had to because the periods
were arrays.
<SPAN
class=596345113-25102003>
<SPAN
class=596345113-25102003>I graphed the output of both versions with simple
numeric periods, their difference amount and their equality, and it looks
like they do converge completely after a while, as you said they do. they
actually converge a long time before the first difference in trade
histories, so I'm puzzled, since that's the only change I made between the two
runs.
<SPAN
class=596345113-25102003>
<SPAN
class=596345113-25102003>maybe when I post the coming update to the
auto-optimization stuff, someone can figure this out.
<SPAN
class=596345113-25102003>
<SPAN
class=596345113-25102003>dave
<SPAN
class=596345113-25102003>
<BLOCKQUOTE
>
It is not odd initialization. It is initialization with MA
that is perfectly OK and has been added to match Metastock output
(people asked me for this).
Anyway it simply does not matter after 3 *
period of bars since the effect of initialization is then
attentuated.
Various programs do different things, one initialize with MA
one with first value of the array (as AMA).
But it does not matter. The difference is only for a few
first bars.
Instead of wondering/guessing/etc just plot these two
plots:
function EMAx( array, period )
{
return
AMA( array, <FONT
color=#ff00ff size=1>2/(period+<FONT color=#ff00ff
size=1>1));
}
Plot( EMA<FONT
size=1>( Close, 10<FONT
size=1> ), "EMA10",
colorRed );
Plot( EMAx( Close, <FONT color=#ff00ff
size=1>10 ), <FONT color=#ff00ff
size=1>"EMA10", color<FONT face="Courier New"
size=1>Blue );<FONT
size=2>
You can also run this exploration code:
function EMAx(
array, period )
{
return
AMA( array, <FONT
color=#ff00ff size=1>2/(period+<FONT color=#ff00ff
size=1>1));
}
a1=<FONT
size=1> EMA( Close,
10
);
a2= <FONT
size=1>EMAx( Close, 10
);<FONT
size=1>
AddColumn<FONT face="Courier New"
color=#000000 size=1>( <FONT face="Courier New" color=#ff00ff
size=1>100<FONT face="Courier New"
size=1>*(a1 - a2<FONT
face="Courier New" size=1>)/a2,
"<FONT
face="Courier New" color=#ff00ff size=1>% <FONT face="Courier New"
color=#ff00ff size=1>Difference"<FONT face="Courier New"
size=1>);Filter=<FONT
face="Courier New" color=#ff00ff size=1>1<FONT face="Courier New"
size=1>;
ANY
difference with initialization is quickly
neglected.
Best regards,Tomasz Janeczkoamibroker.com
<BLOCKQUOTE
>
----- Original Message -----
<DIV
>From:
Dave Merrill
To: <A title=amibroker@xxxxxxxxxxxxxxx
href="">amibroker@xxxxxxxxxxxxxxx
Sent: Saturday, October 25, 2003 2:52
PM
Subject: RE: [amibroker] Re: AMA vs
EMA, malfunctioning brain
<SPAN
class=352544212-25102003>hmmm, strange. so the native EMA function has this
odd initialization behavior that originated in metastock, and AMA doesn't. I
take that to mean that AMA can't be used to build an array-capable EMA that
matches the native EMA, right?
<SPAN
class=352544212-25102003>
<SPAN
class=352544212-25102003>do MACD and other functions that are built on EMAs
do this too? I wonder what the various web sites and other TA programs
do.
<SPAN
class=352544212-25102003>
<SPAN
class=352544212-25102003>stephane, if you're watching this, what does
indicators.dll do?
<SPAN
class=352544212-25102003>
<SPAN
class=352544212-25102003>dave
<SPAN
class=352544212-25102003>
<BLOCKQUOTE
>
See User's Guide
<A
href="">http://www.amibroker.com/guide/afl/afl_view.php?name=EMA
Best regards,Tomasz Janeczkoamibroker.com
<BLOCKQUOTE
>
----- Original Message -----
<DIV
>From:
Dave
Merrill
To: <A
title=amibroker@xxxxxxxxxxxxxxx
href="">amibroker@xxxxxxxxxxxxxxx
Sent: Saturday, October 25, 2003
12:46 PM
Subject: RE: [amibroker] Re: AMA vs
EMA, malfunctioning brain
<SPAN
class=551153110-25102003>oops tomasz, you're correct, careless, and not
the first time, truly sorry for that.
<SPAN
class=551153110-25102003>
<SPAN
class=551153110-25102003>however, I don't think that's the reason that
the EMA and AMA versions act differently, even with static numbers. I
made the change, and backtest results are still different, but only when
either or both of the second two EMAs are replaced by EMAx. the first
one doesn't seem to make a difference, at least on the data I
tried.
<SPAN
class=551153110-25102003>
<SPAN
class=551153110-25102003>maybe I'm doing something else carelessly, and
I apologize in advance if that's the case, but I don't see
it.
<SPAN
class=551153110-25102003>
<SPAN
class=551153110-25102003>dave
<SPAN
class=551153110-25102003>
<BLOCKQUOTE
>
You should really check your code twice or more. It is really
easy and would save me
hundreds of hours of answering such basic stuff.
Your formula has simply a basic error:
YOUR CODE (wrong):
========
function MACDHistogram()
{ if(using_arrays)
{ m = EMAx(c, 12) - EMAx(c, 26);// MACD
line s = m
- EMAx(m, 9); // <--- WRONG
!!!!!!!!!!!!!!!! Signal line is simply EMA of MACD. Not
MACD - EMA( MACD) !!!!! }
else
{ m = EMA(c, 12) - EMA(c,
26); s = m
- EMA(m, 9); // <--- WRONG
!!!!!!!!!!!!!!!!Signal line is simply EMA of MACD. Not MACD - EMA(
MACD) !!!!! } hist = m - s; //
histogram return hist;}
CORRECTED CODE:
YOUR CODE (wrong):
========
function MACDHistogram()
{ if(using_arrays)
{ m = EMAx(c, 12) - EMAx(c, 26);// MACD
line s = EMAx(m, 9); // <--- GOOD!
Signal line is simply EMA of MACD. }
else
{ m = EMA(c, 12) - EMA(c,
26); s = EMA(m, 9); <---
GOOD! Signal line is simply EMA of
MACD. } hist = m - s; // histogram is HERE
!!! return hist;}
Best regards,Tomasz Janeczkoamibroker.com
<BLOCKQUOTE
>
----- Original Message -----
<DIV
>From:
Dave
Merrill
To: <A
title=amibroker@xxxxxxxxxxxxxxx
href="">amibroker@xxxxxxxxxxxxxxx
Sent: Saturday, October 25,
2003 10:18 AM
Subject: RE: [amibroker] Re:
AMA vs EMA, malfunctioning brain
<SPAN
class=993201508-25102003>thanks, I know about that. I just didn't
want my auto-optimization stuff to have to depend on that,
especially since tj said an AFL equivalent
exists.
<SPAN
class=993201508-25102003>
<SPAN
class=993201508-25102003>any other responses from anyone?
tj?
<SPAN
class=993201508-25102003>
<SPAN
class=993201508-25102003>dave
<SPAN
class=993201508-25102003>
<BLOCKQUOTE
>dave
if you want an EMA with varperiod download indicators.dll and
use scEMA(array, varperiod)stephanewrote:>
I need a poke in the head...> > I wanted a version
of the MACD histogram that can take arrays for its
three> parameters. I used the array-capable version of EMA
provided by tomasz, but> I'm not getting the same
results as with the native EMA function, even with>
static numbers as parameters. (I said I was doing this to use
arrays, but> since even static numbers don't work
right, I used them here for> simplicity.) oddly enough, the
results are the same using tomasz's EMAx the> first two
times, but using it the third time causes a difference. that's
the> one marked with '<<< HERE <<<'
below.> > what's wrong with this picture?>
> here's the code:> >
-----------------> function EMAx(array, period) { // use
for EMA when period is an array>
return AMA(array, 2 / (period +
1));> }> > function MACDHistogram() {>
if(using_arrays) {>
m =
EMAx(c, 12) - EMAx(c, 26);// MACD line>
s =
m - EMAx(m, 9);
// signal line;
<<< HERE
<<<> } else
{>
m = EMA(c, 12) - EMA(c,
26);>
s = m - EMA(m, 9);>
}>
hist = m -
s;
//
histogram> return
hist;> }> -----------------> >
thanks,> >
dave
Yahoo! Groups Sponsor
ADVERTISEMENT
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 the Yahoo! Terms of Service.
|