奇狐社區論壇
在這個頁面顯示本主題全部的 4 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- [問題]EMA函數 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=5082)


由 kny.lee8402 在 2006-04-26 21:42 發表:

問題 [問題]EMA函數

//EMA(X,N),求X的N日指數平滑移動平均。
//算法:
//若Y=EMA(X,N) 則Y=[2*X+(N-1)*Y']/(N+1), 其中Y'表示上一週期Y值。
//例如:
//EMA(CLOSE,20)
//表示求20日指數平滑均價


input:n(20,1,999);
a:=c;
VARIABLE:y=c;
for i=1 to datacount do
y:(2*a+(n-1)*y[i-1])/(n+1),PRECISION4;

//奇狐 EMA函數
EMA函數: EMA(C,N),PRECISION4;


//演算結果, y <> 奇狐 EMA函數, 請教 版主: y 公式 是哪出錯?

__________________
阿德


由 cgjj 在 2006-04-26 23:04 發表:

回覆: [問題]EMA函數

引用:
最初由 kny.lee8402 發表
y 公式 是哪出錯?


for i=1 to datacount do
y:(2*a+(n-1)*y[i-1])/(n+1),PRECISION4;

y[i-1] 碰上i 值為 1 時, 會變為 y[0]
數列是自1數起, 帶入0當然會出錯


由 cgjj 在 2006-04-26 23:06 發表:

這樣算

原碼:
X:=C; N:=20; Y:EMA(X,N);

與下列公式結果相等
原碼:
X:=C; N:=20; Y:C*0; Y1:=X[1]; for i=1 to datacount do begin Y[i]:=(2*X[i]+(N-1)*Y1)/(N+1); Y1:=Y[i]; end;


由 kny.lee8402 在 2006-04-27 07:25 發表:

了解, 謝謝版主!!!

__________________
阿德


全部時間均為台灣時間, 現在時間為06:32
在這個頁面顯示本主題全部的 4 個文章


Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.