到奇狐勝券首頁 奇狐社區論壇 購買奇狐勝券 試用奇狐勝券
 
論壇首頁 你可以在這裡編輯你的資料,查看短訊,訂閱主題和論壇參數等等 免費會員註冊 會員列表 論壇幫助 論壇日曆 論壇搜索 加入我的最愛 登出論壇  
奇狐社區論壇 : Powered by vBulletin version 2.3.0 奇狐社區論壇 > 指標公式 > 問題交流 > EMA計算式(累算範例)
  上一主題   下一主題
作者
主題 發表新主題    回覆主題
yuan797
初級會員

註冊日期: Nov 2004
來  自:
文章數量: 22

EMA計算式 (累算範例)

版主您好!請教EMA計算式→Y:(2*C+(N-1)*REF(Y,1))/(N+1)我照著原始計算式寫入自設程式裡(不用EMA(C,N))公式調試通過,但為什麼劃不出平均線,是不是要先定義初始Y值,麻煩版主指導修正!謝謝!

最後由 yuan797 在 2008-06-14 17:37 編輯 向版主報告此篇 | 查IP位址
Old Post 2008-06-14 16:46
yuan797 現在離線 點選這裡查看 yuan797 的個人資料 點選這裡給 yuan797 傳送一條短訊 查找更多關於 yuan797 的文章 增加 yuan797 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18095

回覆: EMA計算式

引用:
最初由 yuan797 發表
版主您好!請教EMA計算式→Y:(2*C+(N-1)*REF(Y,1))/(N+1)我照著原始計算式寫入自設程式裡(不用EMA(C,N))公式調試通過,但為什麼劃不出平均線,是不是要先定義初始Y值,麻煩版主指導修正!謝謝!

舉例來說

運算式 X=A+B+C , 其中 A,B,C,X 均為數列

一般而言程式語言有兩種方法處理這樣的運算

第一種
 步驟1: X[1]=A[1]+B[1]+C[1]
 步驟2: X[2]=A[2]+B[2]+C[2]
 如此一直算下去
第二種
 步驟1: 先計算整個 A+B 的結果
 步驟2: 算完後再加入 C
 最終再將結果給X

在奇狐中採用的是第二種算法

--------------------------------------------------------------------------

EMA 算法
若Y=EMA(X,N) 則Y=[2*X+(N-1)*Y']/(N+1), 其中Y'表示上一週期Y值。

Y' 為上一週期已經算完的 Y值
故您想另寫公式來算, 必需採用迴圈技巧

以 YY:EMA(C,N); 為例, 自寫公式另算範例如下:(累算範例)
原碼:

XX
:=C;
StNo:=lbound(XX);
YY:XX*0;
YY[StNo]:=XX[StNo];
for 
I=StNo+1 to datacount do begin
  YY
[I]:=(2*XX[i]+(N-1)*YY[I-1])/(N+1);
end;

向版主報告此篇 | 查IP位址
Old Post 2008-06-16 09:23
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
yuan797
初級會員

註冊日期: Nov 2004
來  自:
文章數量: 22

感謝版主指導!了解!

向版主報告此篇 | 查IP位址
Old Post 2008-06-16 12:16
yuan797 現在離線 點選這裡查看 yuan797 的個人資料 點選這裡給 yuan797 傳送一條短訊 查找更多關於 yuan797 的文章 增加 yuan797 至你的好友列表 編輯/刪除訊息 引用回覆
38ORCHID
初級會員

註冊日期: Jul 2010
來  自:
文章數量: 3

請問如果平滑均線的第一組數值要以簡單平均的算法求出,程式該如何寫?例如50均,在第50根K的位置以MA(C,50)算法,但第51根之後要用EMA(C,50)的算法,謝謝!

向版主報告此篇 | 查IP位址
Old Post 2010-07-18 22:54
38ORCHID 現在離線 點選這裡查看 38ORCHID 的個人資料 點選這裡給 38ORCHID 傳送一條短訊 查找更多關於 38ORCHID 的文章 增加 38ORCHID 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18095

引用:
最初由 38ORCHID 發表
請問如果平滑均線的第一組數值要以簡單平均的算法求出,程式該如何寫?例如50均,在第50根K的位置以MA(C,50)算法,但第51根之後要用EMA(C,50)的算法,謝謝!


EMA 之 Y' 要引用上一週期 Y 值
算第二組時用的 Y' , 您要用第一組的 EMA(C,50) 還是 MA(C,50) 呢?

向版主報告此篇 | 查IP位址
Old Post 2010-07-19 10:48
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
38ORCHID
初級會員

註冊日期: Jul 2010
來  自:
文章數量: 3

要取MA(C,50)的數值,第52根起取EMA(C,50)的數值,謝謝!

向版主報告此篇 | 查IP位址
Old Post 2010-07-19 10:53
38ORCHID 現在離線 點選這裡查看 38ORCHID 的個人資料 點選這裡給 38ORCHID 傳送一條短訊 查找更多關於 38ORCHID 的文章 增加 38ORCHID 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18095

引用:
最初由 38ORCHID 發表
要取MA(C,50)的數值,第52根起取EMA(C,50)的數值,謝謝!


//按前面說的, 應是第51根起唷

原碼:

XX
:=MA(C,50);
StNo:=lbound(XX);
YY:XX*0;
YY[StNo]:=XX[StNo];
for 
I=StNo+1 to datacount do begin
  YY
[I]:=(2*XX[i]+(N-1)*YY[I-1])/(N+1);
end;

向版主報告此篇 | 查IP位址
Old Post 2010-07-19 11:03
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
全部時間均為台灣時間, 現在時間為19:02 發表新主題    回覆主題
  上一主題   下一主題
顯示可列印版本 | 訂閱此主題

論壇跳轉:
主題評分:

論壇規定:
你不可以發表新主題
你不可以回覆文章
你不可以上傳附件
你不可以編輯自己的文章
HTML語法禁止
vB 語法核准
表情符號核准
貼圖語法[IMG]核准
 

本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。

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

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.  聯絡我們