Article View: alt.pl.matematyka
Article #12800Re: Wykładnicza średnia krocząca.
From: Maciek
Date: Fri, 28 Jan 2011 13:23
Date: Fri, 28 Jan 2011 13:23
74 lines
3407 bytes
3407 bytes
Użytkownik "Endriu" <nmp3@interia.pl> napisał
w wiadomości news:ihr6qu$s0i$1@usenet.news.interia.pl...
> Czy ktoś byłby w stanie podpowiedzieć lub jakoś
> naprowadzić na odpowiedź odnośnie problemu
> "Wykładniczej średniej kroczącej" dla N-okresów.
>
> Na stronie wikipedii mamy wzór na EMA:
>
> Wykładnicza średnia krocząca
> http://pl.wikipedia.org/wiki/%C5%9Arednia_krocz%C4%85ca
>
> a na stronie:
>
> Moving Averages
> <http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:moving_averages>
>
> mamy wzór na ta samą EMA, tylko obliczoną na podstawie :
>
> EMA = (Ostatnia wartość - EMApoprzedniego dnia) x alfa + EMApoprzedniego dnia.
>
> lub jak kto woli po przekształceniach:
>
> EMA = (EMApoprzedniego dnia *(1-alfa)) + Ostatnia wartość * alfa
>
> Czy ktoś z tej grupy jest w stanie udowodnić, albo jakos
> wyprowadzić drugi wzór z pierszego (lub jakoś ??? w oparciu
> o pierwszy) ?. Reasumując, skąd wział się drugi wzór na EMA ?.
Ja bym to raczej wyprowadzał w przeciwną stronę,
bo to drugi wzór jest pierwotny, a pierwszy wtórny. :)
Tak zresztą uzasadniają go w Wiki angielskiej
http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average
Niech EMA(n) oznacza wartość średniej n okresów (typowo: dni)
wstecz, v(n) wartość z chwili n okresów wstecz. Podobnie uprościmy
zapis zastępując alfa=a i (1 - alfa)=b.
Drugi wzór na wartość średniej w chwili t:
EMA(t) = a v(t) + b EMA(t-1)
Podstawiając rekurencyjnie:
EMA(t) = a v(t) + b EMA(t+1)
= a v(t) + b ( a v(t+1) + b EMA(t+2) )
= a v(t) + b ( a v(t+1) + b ( a v(t+2) + b EMA(t+3) ) )
= ...
= a [ v(t) + b v(t+2) + b^2 v(t+3) + ... + b^n v(t+n+1) + ... ]
Korzystamy z prostej tożsamości
a = 0 + a = 1 - 1 + a = 1 - (1 - a)
i z niej (wiedząc że 0 < a < 1) otrzymujemy
1/a = 1/(1 - (1-a))
- liczba 1/a jest sumą szeregu geometrycznego \sum_n{(1 - a)^n}.
Stąd czynnik (a) możemy zmienić na mianownik z sumą szeregu
i ostatecznie dostajemy wzór
EMA(t)
= a [ v(t) + b v(t+2) + b^2 v(t+3) + ... + b^n v(t+n+1) + ... ]
= [ v(t) + b v(t+2) + b^2 v(t+3) + ... + b^n v(t+n+1) + ... ]
: ( 1 + b + b^2 + b^3 + ... )
Zauważ, że mamy tu dwa nieskończone sumowania (szeregi) wzór
w Wikipedii jest jego obcięciem dla skończonej liczby okresów.
Dlaczego jednak na sztywno związano wartość alfa z N - nie wiem.
Maciek
Technical Details
Message-ID:
<ihug1m$opo$1@opal.futuro.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!opal.futuro.pl!not-for-mailReferences:
<ihr6qu$s0i$1@usenet.news.interia.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!opal.futuro.pl!not-for-mail From: "Maciek" <maciek@elkomtech.com.pl.nospam> Newsgroups: alt.pl.matematyka Subject: Re: Wykładnicza średnia krocząca. Date: Fri, 28 Jan 2011 14:23:59 +0100 Organization: Bractwo Smocze Lines: 75 Message-ID: <ihug1m$opo$1@opal.futuro.pl> References: <ihr6qu$s0i$1@usenet.news.interia.pl> NNTP-Posting-Host: ns.elkomtech.com.pl Mime-Version: 1.0 X-Trace: opal.futuro.pl 1296221046 25400 62.233.147.142 (28 Jan 2011 13:24:06 GMT) X-Complaints-To: usenet@futuro.pl NNTP-Posting-Date: Fri, 28 Jan 2011 13:24:06 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5994 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit