如何正確的使用頻率設置

  •   240 
  • 最後發表   散散惹人愛  2023 五月 02
散散惹人愛 發文於   2023/04/23

XQ小幫手你好,本想編譯出 以30分鐘為頻率 EMA169 :30分鐘為停損設置,指定頻率為1分鐘。

主要是本想在藍色畫圈位置觸發XQ停損!

if

 

實際上卻在一開始啟動時便觸發了,策略排程是0903開始

 

以下為程式碼:

getfielddate("Date") <> getfielddate("Date")[1] then 

value7 = xfMin_EMA("30", Close,169); //計算30分鐘線169期收盤價的XQ EMA

RET=  GetField("收盤價","30") <value7;

>>>>>還是應該設成close<value7  ?

以下為屬性

 

 

請協助發現問題所在?謝謝

排序方式: 標準 | 最新
XQ小幫手 發文於   2023/04/26

Hello 散散惹人愛,

 

如果您有使用 print 函數印出的話,就會發現 xfMin_EMA("30", Close,169) 計算出的數值和圖上的不同。

這是因為指數移動平均是種需要用到前期值的指標,而您的資料讀取筆數設定不足。

若要使用在1分鐘頻率上的話,169 長度的30分鐘頻率EMA約需要 170 * 4 *30 = 20400 筆1分鐘頻率的資料。

就上面的腳本來看,其實您可以直接使用30分鐘頻率並勾選逐筆洗價,這樣就只需要 170 * 4 = 680 筆30分鐘資料即可。

 

如果value7 是要30分鐘頻率下開盤第1分鐘的資料,可以使用currenttime來限制,像是:

if currenttime < 090100 then value7 = ema(close, 169);

散散惹人愛 發文於   2023/04/26

請問為何 需要乘以4呢?

XQ小幫手 發文於   2023/05/02

 Hello 散散惹人愛,

 

因為要計算函蓋 99.9% 的完整加權數值大約需要 (169 + 1) * 3.45 筆的前期運算值,小幫手只是將他無條件進位比較好計算。

若您有興趣的話可以參考指數移動平均的wiki頁面,裡面有更詳細的推導。

發表回覆
Close