Jag har inte hittat att dagens moderna medelvärderna finns upplagda och samlade någonstans.
Här kommer en sammanställning som man kan labba lite med.
Sammanställningen är gjort i ett enda script som anpassar sig till den upplösning man valt i diagrammet.
Formlerna för uträkningarna av respektive medelvärde är utlagda inom klammerparenteser i rubriken för respektive medelvärde så man kan följa beräkningarna i NAT-språket.
Tema, Dema, Gd, T3 utgår från medelvärdet m1.
ie/2 samt tma utgår från egna medelvärden.
Man kan naturligtvis ersätta m1 (samt de andra medelvärderna) med andra favoriter för att se hur dessa påverkas. (man kan exemelvis ta ema istället för som jag valt NAT:S "e-variant"). Periodlängd och k1 kan ställas i scriptet så man kan se hur detta påverkar.
Man kan väl säga som så att tema, dema, gd, t3n och ie/2 "överdriver" grundmedelvärdet på lite olika sätt, medan tma smetar ut det.
Det enda moderna medelvärdet som inte kan scriptas i NAT-språket är AMA (adaptiv moving average) och detta enbart för att det inte går att generera någon dataserie. Det är väldigt synd för det är ett medelvärde man kan göra väldigt många bra och intressanta saker med. Det har funnits på marknaden sedan mitten av 90-talet och jag tycker det är på tiden att detta medelvärde läggs in i NAT-språket som standard. Det är en kod som är väldigt lätt och tar inte lång tid att skriva i C-språket.
Det finns en gammal tråd om detta här:
http://www.autostock.se/vbulletin/sh...daptive+moving
Håll till godo.
EDIT 20131201: AMA finns numera inlagd i NAT-språket från version 2.1.2.12.
En ny tråd om ama finns här:
http://www.autostock.se/vbulletin/showthread.php?t=3417
{ TEMA (tripple) and DEMA (double) exponential moving averages. Även GD, T3, IE/2 samt TMA (triangular sma) }
{ Detta script är skrivet så att kurvorna anpassas till den upplösning som väljs i diagrammet }
per:=20
K1:=1
{ Vanligt medelvärde mv1 som tema, dema, gd och t3n utgår ifrån }
mv1=mov(c,per,e)
mv2=mov(mv1,per,e)
mv3=mov(mv2,per,e)
{TEMA=3 * EMA – 3 * EMA of EMA + EMA of EMA of EMA }
TEMA=add(sub(mult(3,mv1),mult(3,mv2)),mv3)
{DEMA=2 * EMA - EMA of EMA }
DEMA=sub(mult(2,mv1),mv2)
{ GD generalized DMA (med k1=1 är detta detsamma som DEMA) }
GD=sub(mult(add(k1,1),mv1),mult(k1,mv2))
{ T3(n) = GD(GD(GD(n))) (Tim Tillson's medelvärde) }
T1=sub(mult(add(k1,1),mov(c,per,e)),mult(k1,mov(mov(c,per,e),per,e))) { GD explicit }
T2=sub(mult(add(k1,1),mov(T1,per,e)),mult(k1,mov(mov(T1,per,e),per,e)))
T3n=sub(mult(add(k1,1),mov(T2,per,e)),mult(k1,mov(mov(T2,per,e),per,e)))
{ IE/2 (Tim Tillson's medelvärde) }
ILRS=add(linreg(c,per,-1),mov(c,per,s))
EPMA=linreg(c,per)
IE2=div(add(ilrs,epma),2)
{ TMA = (SMA1 + SMA2 ... SMAn) / n (Triangular moving average) }
{ TMA på SMA ger nära nog samma kurva som T3n med k=0 }
mv4=mov(c,per,s)
TMA=div(sum(mv4,per),per)
draw(mv1,0,bqbw)
draw(tema,1,dgqbw)
draw(dema,2,dmqbw)
draw(ie2,3,mqbw)
draw(gd,4,cqbw)
draw(t3n,5,kqb)
draw(tma,6,rqbw)
mult(0,1)
Här kommer en sammanställning som man kan labba lite med.
Sammanställningen är gjort i ett enda script som anpassar sig till den upplösning man valt i diagrammet.
Formlerna för uträkningarna av respektive medelvärde är utlagda inom klammerparenteser i rubriken för respektive medelvärde så man kan följa beräkningarna i NAT-språket.
Tema, Dema, Gd, T3 utgår från medelvärdet m1.
ie/2 samt tma utgår från egna medelvärden.
Man kan naturligtvis ersätta m1 (samt de andra medelvärderna) med andra favoriter för att se hur dessa påverkas. (man kan exemelvis ta ema istället för som jag valt NAT:S "e-variant"). Periodlängd och k1 kan ställas i scriptet så man kan se hur detta påverkar.
Man kan väl säga som så att tema, dema, gd, t3n och ie/2 "överdriver" grundmedelvärdet på lite olika sätt, medan tma smetar ut det.
Det enda moderna medelvärdet som inte kan scriptas i NAT-språket är AMA (adaptiv moving average) och detta enbart för att det inte går att generera någon dataserie. Det är väldigt synd för det är ett medelvärde man kan göra väldigt många bra och intressanta saker med. Det har funnits på marknaden sedan mitten av 90-talet och jag tycker det är på tiden att detta medelvärde läggs in i NAT-språket som standard. Det är en kod som är väldigt lätt och tar inte lång tid att skriva i C-språket.
Det finns en gammal tråd om detta här:
http://www.autostock.se/vbulletin/sh...daptive+moving
Håll till godo.
EDIT 20131201: AMA finns numera inlagd i NAT-språket från version 2.1.2.12.
En ny tråd om ama finns här:
http://www.autostock.se/vbulletin/showthread.php?t=3417
{ TEMA (tripple) and DEMA (double) exponential moving averages. Även GD, T3, IE/2 samt TMA (triangular sma) }
{ Detta script är skrivet så att kurvorna anpassas till den upplösning som väljs i diagrammet }
per:=20
K1:=1
{ Vanligt medelvärde mv1 som tema, dema, gd och t3n utgår ifrån }
mv1=mov(c,per,e)
mv2=mov(mv1,per,e)
mv3=mov(mv2,per,e)
{TEMA=3 * EMA – 3 * EMA of EMA + EMA of EMA of EMA }
TEMA=add(sub(mult(3,mv1),mult(3,mv2)),mv3)
{DEMA=2 * EMA - EMA of EMA }
DEMA=sub(mult(2,mv1),mv2)
{ GD generalized DMA (med k1=1 är detta detsamma som DEMA) }
GD=sub(mult(add(k1,1),mv1),mult(k1,mv2))
{ T3(n) = GD(GD(GD(n))) (Tim Tillson's medelvärde) }
T1=sub(mult(add(k1,1),mov(c,per,e)),mult(k1,mov(mov(c,per,e),per,e))) { GD explicit }
T2=sub(mult(add(k1,1),mov(T1,per,e)),mult(k1,mov(mov(T1,per,e),per,e)))
T3n=sub(mult(add(k1,1),mov(T2,per,e)),mult(k1,mov(mov(T2,per,e),per,e)))
{ IE/2 (Tim Tillson's medelvärde) }
ILRS=add(linreg(c,per,-1),mov(c,per,s))
EPMA=linreg(c,per)
IE2=div(add(ilrs,epma),2)
{ TMA = (SMA1 + SMA2 ... SMAn) / n (Triangular moving average) }
{ TMA på SMA ger nära nog samma kurva som T3n med k=0 }
mv4=mov(c,per,s)
TMA=div(sum(mv4,per),per)
draw(mv1,0,bqbw)
draw(tema,1,dgqbw)
draw(dema,2,dmqbw)
draw(ie2,3,mqbw)
draw(gd,4,cqbw)
draw(t3n,5,kqb)
draw(tma,6,rqbw)
mult(0,1)
Comment