COCO研究院

 找回密碼
 註冊
搜索
查看: 18256|回復: 41

請問powerlanguage中的ema寫法

[複製鏈接]
發表於 12-3-15 10:06 | 顯示全部樓層 |閱讀模式
小弟上網找的寫法如下
input:FastDay(20),SlowDay(10);
variable:EMA_F(0),EMA_S(0);
EMA_F = EMA_F[1] * ((FastDay - 1) / FastDay) + close * ( 1 / FastDay);
EMA_S = EMA_S[1] * ((SlowDay - 1) / SlowDay) + close * ( 1 / SlowDay);
if marketposition=0 and EMA_F Cross Above EMA_S then begin
buy("buy") next bar at market;
end;
想法是
當20ema穿越過10ema的時候進場買多
但是用永豐eleader測試的時候跟用mc測試的時候數據差太大
想說是不是ema的語法弄錯了
軟體都買了
無法實際上線真的很痛苦阿

發表於 12-3-15 10:38 | 顯示全部樓層
EMA 會因為 k棒數不同, 出現數值不一樣的情形
永豐eleader 1000k 棒 vs 永豐eleader 2000k 棒
你看到的 ema 值就會不一樣
這是正常的




發表於 12-3-15 17:16 | 顯示全部樓層
我一直以為 MultiCharts 上的 EMA 就是 xAverage(price, length) 咧?
 樓主| 發表於 12-3-15 17:24 | 顯示全部樓層
這....請問20ema的語法是怎麼寫的呢
一直麻煩大家真的很抱歉
發表於 12-3-15 18:37 | 顯示全部樓層
ema20 = XAverage(C, 20);
 樓主| 發表於 12-3-16 00:07 | 顯示全部樓層
小弟貼一下改變過後的語法好了
input:FastDay(20),SlowDay(10);

variable:EMA_F(0),EMA_S(0);

EMA_F = XAverage(C, 20);
EMA_S = XAverage(C, 10);

if marketposition=0 and EMA_F Cross Above EMA_S then begin

buy("buy") next bar at market;

end;

在永豐eleader上面的寫法則是
cross(ema(c,20), ema(c,10))

如果mc的ema語法正確的話
回測的結果兩邊應該一樣
但是mc這邊數據卻很難看
有高手可以指導嗎
感謝

發表於 12-3-16 09:03 | 顯示全部樓層
本帖最後由 saucer 於 12-3-16 09:13 編輯

改用  

EMA_F = XAverageOrig(C, 20);
EMA_S = XAverageOrig(C, 10);

看看
 樓主| 發表於 12-3-16 10:13 | 顯示全部樓層
感謝saucer兄的提供
不過數據跑出來好像更難看了
真的無解阿@@
程式交易真是個大門檻
發表於 12-3-16 10:19 | 顯示全部樓層
本帖最後由 saucer 於 12-3-16 10:22 編輯

XAverageOrig 演算規則和你貼的 code 完全一樣


XAverageOrig , XAverage 其實就差在係數而已
規則和 ema 是一樣的

XAverage  乘以係數  2 / ( 週期 + 1 ) ;

XAverageOrig   乘以係數  1 / ( 週期 + 0 ) ;


 樓主| 發表於 12-3-16 12:53 | 顯示全部樓層
那小弟設定的宣告變數是如下寫的
input:FastDay(20),SlowDay(10);
variable:EMA_F(0),EMA_S(0);
EMA_F = XAverageOrig(C, 20);
EMA_S =XAverageOrig(C, 10);

是否是宣告變數的地方寫錯了呢
發表於 12-3-16 13:26 | 顯示全部樓層
應該是
EMA_F = XAverageOrig(C, 10);
EMA_S =XAverageOrig(C, 20);

_F = Fast = 短週期
_S = Slow = 長週期


 樓主| 發表於 12-3-16 21:32 | 顯示全部樓層
小弟的想法其實就是長週期穿越短週期之後買多
但是依照s兄的方式改來改去還是無法達到eleader上面所顯示的績效
在想說會不會是eleader測試有問題了
真的一團亂
白頭髮多好多根
發表於 12-3-18 00:05 | 顯示全部樓層
會不會是歷史資料不一樣造成。
把兩邊的資料用Excel比對看看。
 樓主| 發表於 12-3-18 00:57 | 顯示全部樓層
喔咧
資料可能會不一樣啊
那我再問問看兩邊的資訊人員
看歷史資料要怎麼抓出來
感謝
發表於 12-3-18 09:34 | 顯示全部樓層
在MC中, 把EMA_F跟EMA_S用print指令印出, 再跟eleader比對, 看看是否資料相同, 如果不同, 訊號進出點當然也會不同
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-12-28 14:51

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |