希望於日線畫出之EMA55及EMA144能轉至10分線圖表示,使用之設定為圖檔內.
(上方為日線圖,下方為10分線圖)

問題1:
比對2303聯電,2024/06/25之數值,EMA55兩圖相同,EMA144兩圖不同,為何會有差異??
問題2:
比對2303聯電,2023/05/02之數值,EMA55兩圖開始不同,是否是因為需要設定setbarback及settltalbar??
希望於日線畫出之EMA55及EMA144能轉至10分線圖表示,使用之設定為圖檔內.
(上方為日線圖,下方為10分線圖)

問題1:
比對2303聯電,2024/06/25之數值,EMA55兩圖相同,EMA144兩圖不同,為何會有差異??
問題2:
比對2303聯電,2023/05/02之數值,EMA55兩圖開始不同,是否是因為需要設定setbarback及settltalbar??
這種問題,一般大都是準備資料筆數不夠,不然就是跨頻率時序的操作不當造成。試著用setTotalBar增加資料筆數看看。
經測試setTotalBar(27 * (144 + 1) * 3.3),使用倍數3.3以上,且10分線圖上最新EMA144數值已經不會改變,但仍與日線圖的最新數值不同,判斷可能3.3倍數仍不夠計算,但系統已達取樣最大值,想請問是否有其他方式解決此問題??
(主要是於日線選股中,使用EMA55及EMA144獲利最高,所以想轉成10分線圖,於盤中完成選股策略,若此問題無法解決只能降低EMA144取樣範圍)
小編您好
請問「自行撰寫跨頻率指數移動平均函數,用陣列的方式計算保存日頻率前面所需長度的數值」這個部分,能參考原PO的條件「在10分K頻率算出正確的日K EMA144的值」,提供一份程式碼範例嗎?
因為關於這種跨頻率寫法,無論是 EMA 計算本身還是執行10分K頻率腳本需要的 backbar 跟 totalbar 在網路上都找不到一個數值正確、可參考的寫法版本,包含官方的 Help 或教學文件也沒有,希望能由官方提供範例讓我們學習。
謝謝您
(1)XQ有內建的跨頻率指數移動平均函數xfMin_EMA,不需要自己寫。
(2)10分鐘頻率,要計算日K的EMA144數值,可撰寫如下。不過,要提醒你,指數平均會因為使用的資料筆數不同而算出不同的數值,你若與技術分析圖表的數值比較,會有些許差異,若筆數不夠多,差異會很大。
settotalBar(20000);
if barfreq<>"Min" or barinterval<>10 then raiseRunTimeError("限用10分鐘頻率");
value1=xfMin_EMA("D",GetField("收盤價", "D"),144);
print(date,value1);
Hello 交易練習生,
小編很久以前有寫過 (自用的),這邊附上供您做參考。
setbackbar 和 settotalbar 的說明可以參考 資料讀取範圍與腳本執行的關係。
setbackbar的概念相對簡單,需要用多少資料就取多少。
舉例來說, average(close, 100) 代表需要100根Bar的資料,故可以設為 setbackbar(100);。
這個只會取資料,腳本本身不會運算在設定長度的Bar上。
settotalbar指的是在腳本設定的開始計算點之前,要向前多計算幾根。
這是因為有些指標會需要前期計算值 (ex. ema 在計算的時候會用到前一期的ema值),需要經過一定期數的計算後該值才會穩定下來。
這和指標的運算有關,需要了解該指標是如何運算並實際測試才能夠確定多長的筆數會比較適合 (ex. ema wiki 有寫要包含99.9% 的完整加權,需要設為 3.45 * (Len + 1))。
可以參考內建的選股腳本來設定一些常見值標所需的長度。
感謝 虎科大許教授 的熱心回覆。
本人目前測試的情況,
於10分線圖形中,
內定只會顯示約1012(一頁內最多K棒數) x 13(頁) ,
而且最舊資料約1個月無法繪出,
因此判定系統內定K棒最大數量不足已滿足EMA144需要計算之K棒數量,
且觀察於最新EMA144值往前約5個月才正確,
並測試settotalbar(20000)以上,
數值仍是錯誤,
故只能退而求其次,
最多只使用到EMA55,
且於回測及指標時,
最多回測2年,
並於程式中剔除最舊2個月(意指只使用22個月的資料),
分享一下我的測試結果希望對大家有用處,
也許結果是錯誤的還請大家指教.
Hello 新手測試員,
分鐘頻率的技術線圖會提供近2年的歷史資料,故不論使用再多的筆數 EMA144 計算出來的數值都會是錯誤的 (資料不夠長)。
您可以參考小編上面的建議,使用陣列的方式來抓取跨頻率資料計算EMA。
8 評論