請問powerlanguage中的ema寫法
小弟上網找的寫法如下input:FastDay(20),SlowDay(10);variable:EMA_F(0),EMA_S(0);EMA_F = EMA_F * ((FastDay - 1) / FastDay) + close * ( 1 / FastDay);EMA_S = EMA_S * ((SlowDay - 1) / SlowDay) + close * ( 1 / SlowDay); if marketposition=0 and EMA_F Cross Above EMA_S then beginbuy("buy") next bar at market;end;想法是當20ema穿越過10ema的時候進場買多但是用永豐eleader測試的時候跟用mc測試的時候數據差太大想說是不是ema的語法弄錯了軟體都買了無法實際上線真的很痛苦阿
EMA 會因為 k棒數不同, 出現數值不一樣的情形
永豐eleader 1000k 棒 vs 永豐eleader 2000k 棒
你看到的 ema 值就會不一樣
這是正常的
我一直以為 MultiCharts 上的 EMA 就是 xAverage(price, length) 咧? 這....請問20ema的語法是怎麼寫的呢
一直麻煩大家真的很抱歉 ema20 = XAverage(C, 20); 小弟貼一下改變過後的語法好了
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這邊數據卻很難看
有高手可以指導嗎
感謝
本帖最後由 saucer 於 12-3-16 09:13 編輯
改用
EMA_F = XAverageOrig(C, 20);
EMA_S = XAverageOrig(C, 10);
看看
感謝saucer兄的提供
不過數據跑出來好像更難看了
真的無解阿@@
程式交易真是個大門檻
本帖最後由 saucer 於 12-3-16 10:22 編輯
XAverageOrig 演算規則和你貼的 code 完全一樣
XAverageOrig , XAverage 其實就差在係數而已
規則和 ema 是一樣的
XAverage乘以係數2 / ( 週期 + 1 ) ;
XAverageOrig 乘以係數1 / ( 週期 + 0 ) ;
那小弟設定的宣告變數是如下寫的
input:FastDay(20),SlowDay(10);
variable:EMA_F(0),EMA_S(0);
EMA_F = XAverageOrig(C, 20);
EMA_S =XAverageOrig(C, 10);
是否是宣告變數的地方寫錯了呢 應該是
EMA_F = XAverageOrig(C, 10);
EMA_S =XAverageOrig(C, 20);
_F = Fast = 短週期
_S = Slow = 長週期
小弟的想法其實就是長週期穿越短週期之後買多
但是依照s兄的方式改來改去還是無法達到eleader上面所顯示的績效
在想說會不會是eleader測試有問題了
真的一團亂
白頭髮多好多根 會不會是歷史資料不一樣造成。
把兩邊的資料用Excel比對看看。
喔咧
資料可能會不一樣啊
那我再問問看兩邊的資訊人員
看歷史資料要怎麼抓出來
感謝 在MC中, 把EMA_F跟EMA_S用print指令印出, 再跟eleader比對, 看看是否資料相同, 如果不同, 訊號進出點當然也會不同