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

[amibroker] Re: MA, DEMA and TEMA can take array parameters, but EMA can't?



PureBytes Links

Trading Reference Links

Tomasz,
thank you for the explanations [and the interesting ref].
I have no misunderstanding about the recursive mechanism of AMA etc.
--- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <amibroker@xxxx> 
wrote:
> Dimitris,
> 
> Yes we can call them equivalent because Wilders( array, 1/x) 
function uses
> exactly the same formula as AMA( array, 1/ x):
> 
> WildersToday = ( Array + ( Periods - 1 ) * WildersYesterday ) / 
Periods.
> 
> This is mathematically strictly the same as:
> 
> WildersToday = Array * ( 1/ Periods )  + (1 - (1/Periods) ) * 
WildersYesterday;
> 
> Now AMA is:
> 
> AMAToday = Array * Factor + (1-Factor) * AMAYesterday
> 
> When Factor = 1/periods those two are mathematically strictly 
equivalent.
> 
> There is no magic, just pure math.
> 
> It does not really matters if Factor is variable or not because the 
formula
> is constant.

This is exactly my point : A formula may be constant [the same] but 
the procedure may be meaningless.
The y=x^2-2 is well defined in integers, rationals and real numbers, 
the solution of x^2-2=0 is N/A for integers or rationals.
We may have, in AFL, variable per for MA(C,per), but what is the 
meaning ?
The definition of a 10-bar MA is
MA(C,10)=sum(C,10)/10
After this, the MA(C,9.3) is meaningless.
Now, if we make an internal agreement and "define" for every x, 
9<=x<10 the MA(C,x) equal to MA(C,9), then we say that we have 
variable MA but it is not true, it does not fit to the definition of 
MA.
So, before looking at the maths, we have to give some meaning to this 
variable period for Wilders, EMA etc.
This is my point, if a variable per MA, EMA exists or not.
We can not transfer in T/A the continuous functions without some 
special [and usually not declared] agreement, T/A time is not 
continuous, the beatiful continuous lines we see are nothing but 
illusions, the real thing is discrete dots without the intermediate 
points. You, as a creator, use a special technique to give us 
these "continuous" lines. And you need this technique, because your 
initial material is discontinuous [and a bit ugly...].
The continuous lines we see in an RSI graph is not a proof that our 
RSI arrays are continuous and it should be clear.
Thank you for the interesting dialogue, I will revert when you 
implement the variable period EMA in some future AFL edition.
Now, it would be better to come back to the final tests of the most 
interesting Equity Inspection Points application.
Dimitris Tsokakis

> You are making false assumption thinking that
> 
> evenbar = BarIndex()%2 == 0;
> 
> AMA( C, IIF( evenbar, 10, 11 ) ) 
> 
> will work like
> 
> IIF( evenbar, AMA( C, 10 ), AMA( C,11 ) )
> 
> but this is just that - false assumption. You assume that
> switching periods would cause all calculations to start from the 
very beginning,
> but it is not the case. 
> As for analogy: it is well known thing in electroacustics.
> 
> The EMA (AMA, etc) is single pole recursive low pass filter aka
> as infinite impulse response filter (IIR)
> 
http://www.ece.utexas.edu/~bevans/courses/realtime/lectures/06_IIR_Fil
ters/lecture6.pdf
> 
> 
> If you have PHYSICAL single pole low pass filter (for example 
simple RC or LC circuit) and you change
> the 'cut-off' frequency (by changing capacity of condenser for 
example) 
> then you are not able to 'start from the beginning'
> because physical filter has it's state and if you change
> the parameters these parameters are applied to current state.
> This is *exactly* how variable period AMA works.
> AMA and others work in 'real time'. They preserve its state 
(previous value of AMA)
> and apply parameters (smoothing factor) to produce next value. 
Exactly like physical circuit.
> Physical RC circuit can not go back and take the series voltage 
numbers from past year to calculate
> todays value. It just remembers its current state.
> Exactly the same AMA - all it needs is CURRENT data (price) and its 
previous state (single number
> representing previous value of AMA). It does not re-start 
calculations from the very beginning, ever.
> 
> And this is fundamentally different from FIR filter (Finite impulse
> response) like MA that is re-calculated for N-bars, not for 
infinite number of bars.
> 
> Best regards,
> Tomasz Janeczko
> amibroker.com
> ----- Original Message ----- 
> From: "DIMITRIS TSOKAKIS" <TSOKAKIS@xxxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Wednesday, October 15, 2003 2:47 PM
> Subject: [amibroker] Re: MA, DEMA and TEMA can take array 
parameters, but EMA can't?
> 
> 
> > Tomasz,
> > I clearly understand the recursive nature of these functions.
> > This is not the subject.
> > The question is : Can we call "equivalent" two never touching 
lines ?
> > It is somehow tricky to ask from the user to accept the following 
> > story:
> > 1. Wilders(C,x) is N/A for  variable x  
> > 2. For fixed x the Wilders(C,x)=AMA(C,1/x) is true
> > 3. Please accept the "analog" meaning for the argument
> > Arg. 1 : Wilders(C,x) is *also* AMA(C,1/x) *even when* x is 
variable
> > or
> > Arg. 2 : You may call AMA(C,1/x) as Wilders(C,x), x variable, 
> > *because* AMA(C,1/x) *is* Wilders(C,x), when x=fixed !!
> > 
> > We have no evidence that this "analogy" exists and, form my 
experiece 
> > in Physics, it is dangerous to speak [and use] for analogies just 
> > because we like them. 
> > >From this point of view, it is better not to have variable 
periods 
> > for EMA, Wilders. Now, AMA(C,1/x) , 10<=x<=20 is an interesting 
> > line "between" AMA(C,1/10) and AMA(C,1/20) and this could be the 
> > happy end of the story. If someone needs to call it Wilders with 
> > variable period, it is OK, but there is no evidence to do it.
> > Dimitris Tsokakis
> > --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" 
<amibroker@xxxx> 
> > wrote:
> > > Dimitris,
> > > 
> > > The explanation should be obvious to someone with the deep 
> > background
> > > in physics and mathematics as you.
> > > 
> > > The reason is that AMA, EMA, TEMA, DEMA, Wilders
> > > are all recursive functions. See
> > > http://www.amibroker.com/guide/afl/afl_view.php?name=AMA
> > > and
> > > http://www.amibroker.com/guide/afl/afl_view.php?name=DEMA
> > > 
> > > for detailed recursive algorithm.
> > > 
> > > What does it mean? It means that current value depends
> > > on input data array and PREVIOUS value of the indicator.
> > > The PREVIOUS value includes the value of "previous-previous" 
value
> > > and so on. 
> > > Now if you change the period every bar all these changes (for 
all 
> > previous bars)
> > > affect current bar value and that's why variable period AMA is 
> > smooth and
> > > does not jump from Wilders10-Wilders11.
> > > 
> > > Best regards,
> > > Tomasz Janeczko
> > > amibroker.com
> > > ----- Original Message ----- 
> > > From: "DIMITRIS TSOKAKIS" <TSOKAKIS@xxxx>
> > > To: <amibroker@xxxxxxxxxxxxxxx>
> > > Sent: Wednesday, October 15, 2003 1:36 PM
> > > Subject: [amibroker] Re: MA, DEMA and TEMA can take array 
> > parameters, but EMA can't?
> > > 
> > > 
> > > > Tomasz,
> > > > How do we understand this equivalence ?
> > > > x=10+(Cum(1)%11);  
> > > > is equal to 10 every 11 bars.
> > > > The
> > > > Wp=10;Plot(Wilders(C,Wp),"Wilders",1,1);
> > > > and
> > > > Plot(AMA(C,1/x),"AMA",7,8);
> > > > do not touch every 11 bars...
> > > > The same with Wilders(c,20).
> > > > See, for example the
> > > > 
> > > > x=10+(Cum(1)%11);  
> > > > Wp10=10;Plot(Wilders(C,Wp10),"Wilders10",1,1);
> > > > Wp20=20;Plot(Wilders(C,Wp20),"Wilders20",1,1);
> > > > Plot(AMA(C,1/X),"AMA",7,1);
> > > > Plot(AMA(C,1/10),"AMA 1/10",4,8);
> > > > Plot(AMA(C,1/20),"AMA 1/20",4,8);
> > > > 
> > > > AMA(C,1/10) is 1-1 equivalent to Wilders(C,10).
> > > > On the other side, AMA(C,1/X) touches only by coincidence the 
> > Wp10 or 
> > > > Wp20.
> > > > 
> > > > Dimitris Tsokakis
> > > > --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" 
> > <amibroker@xxxx> 
> > > > wrote:
> > > > > Stephane,
> > > > > 
> > > > > That's true but Wilders is nothing more nothing less than 
just 
> > AMA
> > > > > with 1/n smoothing factor.
> > > > > 
> > > > > Wilders( array, N )  =>>>  AMA( array, 1 / N )
> > > > > 
> > > > > 
> > > > > Best regards,
> > > > > Tomasz Janeczko
> > > > > amibroker.com
> > > > > ----- Original Message ----- 
> > > > > From: "Stephane Carrasset" <nenapacwanfr@xxxx>
> > > > > To: <amibroker@xxxxxxxxxxxxxxx>
> > > > > Sent: Wednesday, October 15, 2003 1:03 PM
> > > > > Subject: [amibroker] Re: MA, DEMA and TEMA can take array 
> > > > parameters, but EMA can't?
> > > > > 
> > > > > 
> > > > > > Hi, Dimitri,
> > > > > > 
> > > > > > Wilders does not accept variable period
> > > > > > 
> > > > > > Plot(Wilders(C,RSI(3)),"",2,1);
> > > > > > 
> > > > > > return a bad argument
> > > > > > 
> > > > > > stepghane
> > > > > > 
> > > > > > 
> > > > > > <nenapacwanfr@xxxx> wrote:
> > > > > > > Dimitri,
> > > > > > > 
> > > > > > > I didn't know that wilders accept variable period...
> > > > > > > Thanks
> > > > > > > 
> > > > > > > Stephane
> > > > > > > 
> > > > > > > > Dave,
> > > > > > > > I have posted in the files section the varPER.txt 
with 
> > the 
> > > > EMA, 
> > > > > > AMA 
> > > > > > > > and WILDERS smoothing relations.
> > > > > > > > AMA and WILDERS do accept variable periods, like MA.
> > > > > > > > You will also find some RSI applications there.
> > > > > > > > Dimitris Tsokakis
> > > > > > > > --- In amibroker@xxxxxxxxxxxxxxx, "Dave Merrill" 
> > > > <dmerrill@xxxx> 
> > > > > > > > wrote:
> > > > > > > > > thanks, much appreciated. seems like there's a new 
> > version 
> > > > just 
> > > > > > > out 
> > > > > > > > too (:-)
> > > > > > > > > 
> > > > > > > > > any chance of variable period RSI, CCI, ROC and the 
> > rest of 
> > > > the 
> > > > > > AB
> > > > > > > > > indicators I'm forgetting right now? some of these 
I've 
> > > > coded 
> > > > > > up 
> > > > > > > > myself in
> > > > > > > > > AFL, but they're much slower than the built in 
> > versions. 
> > > > I'd 
> > > > > > > > imagine your
> > > > > > > > > dll would be pretty close to built in speed, yes?
> > > > > > > > > 
> > > > > > > > > dave
> > > > > > > > >   In Indicators.dll varperiod Indicators are
> > > > > > > > >   Stochastic
> > > > > > > > >   GraphXSpace=1;
> > > > > > > > >   Plot(StochK(9,1),"",colorBlue,1);
> > > > > > > > >   Plot(scStoch(9),"",colorGreen,1+8);
> > > > > > > > >   Plot(scStoch(RSI(14)),"",colorRed,1);
> > > > > > > > > 
> > > > > > > > >   Ema
> > > > > > > > >   Plot(EMA(C,21),"",colorBlue,1);
> > > > > > > > >   Plot(scEMA(C,21),"",colorGreen,1+8);
> > > > > > > > >   Plot(scEMA(C,RSI(14)),"",colorRed,1);
> > > > > > > > >   Plot(C,"",1,64);
> > > > > > > > > 
> > > > > > > > >   Linregslope
> > > > > > > > >   Plot(LinRegSlope(C,21),"",colorBlue,1);
> > > > > > > > >   Plot(scLinRegSlope(C,21),"",colorGreen,1+8);
> > > > > > > > >   Plot(scLinRegSlope(C,RSI(14)),"",colorRed,1);
> > > > > > > > > 
> > > > > > > > >   MFI // just added today
> > > > > > > > >   Plot(MFI(21),"",colorBlue,1);
> > > > > > > > >   Plot(scMFI(21),"",colorGreen,1+8);
> > > > > > > > >   Plot(scMFI(RSI(14)),"",colorRed,1);
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > >   > thanks stephane, I'll take a look. until I do, 
can 
> > you 
> > > > tell 
> > > > > > > me 
> > > > > > > > if
> > > > > > > > >   it also
> > > > > > > > >   > contains variable period versions of other 
built in 
> > AB 
> > > > > > > > indicators?
> > > > > > > > >   other
> > > > > > > > >   > than allowing variable periods, do they perform 
the 
> > > > same as 
> > > > > > > the
> > > > > > > > >   native
> > > > > > > > >   > versions? if so, that'd be a nice workaround 
until 
> > > > variable 
> > > > > > > > periods
> > > > > > > > >   are a
> > > > > > > > >   > native AB capability for everything.
> > > > > > > > >   >
> > > > > > > > >   > dave
> > > > > > > > >   >   if you want, in indicators.dll there is a Ema 
> > with 
> > > > > > variable 
> > > > > > > > period
> > > > > > > > >   >
> > > > > > > > >   >   Plot(scEMA(C,RSI(14)),"",colorRed,1);
> > > > > > > > >   >   Plot(C,"",1,64);
> > > > > > > > >   >
> > > > > > > > >   >
> > > > > > > > >   >   stephane
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > >         Yahoo! Groups Sponsor
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > >   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 the 
Yahoo! 
> > Terms 
> > > > of 
> > > > > > > > Service.
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > 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/ 
> > > > > > 
> > > > > > 
> > > > > >
> > > > 
> > > > 
> > > > 
> > > > 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/ 
> > > > 
> > > > 
> > > >
> > 
> > 
> > 
> > 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 ---------------------~-->
Buy Ink Cartridges or Refill Kits for your HP, Epson, Canon or Lexmark
Printer at MyInks.com. Free s/h on orders $50 or more to the US & Canada.
http://www.c1tracking.com/l.asp?cid=5511
http://us.click.yahoo.com/mOAaAA/3exGAA/qnsNAA/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/