急! 請問關於跨頻率 xf_EMA

  •   321 
  • 最後發表   WinnerC  2022 十二月 01
WinnerC 發文於   2022/11/23

執行策略為5分K, 我要取得台指期日線20期CLOSE的EMA,腳本如下:

var: day_EMA(0);

day_EMA=xf_EMA("D", Close,20);

Print(file("d:\Print\MyOutput.log"), currentdate, currenttime,day_EMA );

 

1. 回測時Print紀錄的資料,看來是對的

20221121.000000 134200.000000 13737.750000 

20221121.000000 134300.000000 13737.900000

20221121.000000 134400.000000 13737.500000

 

2. 交易策略真正執行時,紀錄的資料是目前5分K的價位

20221123.000000 114021.000000 14436.000000

20221123.000000 114021.000000 14436.000000 

20221123.000000 114021.000000 14434.000000

20221123.000000 114021.000000 14445.000000

 

怎麼會這樣? 我哪兒錯嗎?

謝謝。

排序方式: 標準 | 最新
XQ小幫手 發文於   2022/11/24

Hello WinnerC,

 

小幫手認為應該是您的資料讀取筆數不足。

EMA需要大概長度 * 4 的前期運算值才能計算出正確的數值。

所以上述的狀況就會需要 20 * 4 = 80 天的預讀筆數才能算出正確的值。

而您使用的是5分鐘頻率,所以要換算成1天有多少根5分鐘頻率的Bar。

舉例來說,單論日盤的話,每日有 60 根Bar,所以會需要 60 * 20 * 4 = 4800 根預讀筆數。

細節可以參考資料讀取範圍與腳本執行的關係

WinnerC 發文於   2022/11/25

應該不是讀取筆數不足的問題,設多了也沒用。

xaverage在期數超過100以後的計算就是錯的

EMA計算也是錯的

WinnerC 發文於   2022/11/25

暈倒了! 原來 xf_函數不能用在期貨商品 !

我的問題中有提到取得台指期日線20期CLOSE的EMA

.........................................................................................

XQ小幫手 發文於   2022/11/30

Hello WinnerC,

 

非常抱歉,小幫手沒有注意到您是使用在期貨商品上。

需注意 xf 和 xfmin 函數目前主要是支援股票商品,另外就是期貨日盤的日頻率以上的話也可以使用。

其他頻率和日夜盤商品是無法使用的。

 

WinnerC 發文於   2022/11/30

謝謝小幫手,再麻煩幫我確認一下:

執行5分鐘頻率,商品台指期日夜盤,使用下列的寫法是可以成功跨頻率取得正確的[日頻率]的5日,10日,20日均價(日盤收盤)

是嗎?

 

var: day_AVG5(0),day_AVG10(0),day_AVG20(0),day_AVG51(0),day_AVG101(0),day_AVG201(0);

day_AVG5=average(getField("收盤價", "D"),5); //日線5日均價

day_AVG10=average(getField("收盤價", "D"),10);//日線10日均價

day_AVG20=average(getField("收盤價", "D"),20);//日線20日均價

day_AVG51=average(getField("收盤價", "D")[1],5);//前一日日線5日均價

day_AVG101=average(getField("收盤價", "D")[1],10);//前一日日線10日均價

day_AVG201=average(getField("收盤價", "D")[1],20);//前一日日線20日均價

XQ小幫手 發文於   2022/12/01

Hello WinnerC,

 

是的,這種方式可以取得正確的日頻率移動平均。

您可以在內建的函數腳本中開啟average函數觀看該函數是如何運算的。

發表回覆
Close