多時間框架分析#
實盤交易中,單一時間框架的資訊常常不夠用。例如想用日線判斷趨勢、用 5 分鐘線找進場點,或想同時觀察主圖商品和大盤指數的相關性。MultiCharts 允許在一張圖表上載入多組資料序列(Data Series),腳本可以同時讀取每一組資料進行判斷。
資料序列編號#
主圖商品稱為 Data1,是腳本預設讀取的資料來源。後續加入的資料依序稱為 Data2、Data3,現行版本最多可達 Data50。
- 當腳本寫
Close、High、Volume時,預設都是讀取Data1。 - 要讀取其他資料,在價格函數後面加上
of dataN,例如Close of data2、High of data2。
加入資料序列#
在 MultiCharts 圖表上按右鍵 → Format → Add Symbol(或 Insert → Symbol,依版本而定)→ 選擇商品和週期 → 設定為 Data2(或更高編號)。加入後,該資料會以副圖或疊加的方式顯示在圖表上。
讀取 Data2 資料#
| |
K棒同步機制#
當圖表包含不同週期的資料時(例如 Data1 是 5 分鐘、Data2 是日線),MultiCharts 會以 小週期 為主驅動腳本執行。Data2 在腳本中讀到什麼值,取決於 Realtime-History Matching(以下簡稱 RHM)設定。
打開方式:Format Indicator/Signal → Properties(Signal 則為 Backtesting)→ Advanced → Realtime-History Matching 勾選框。此選項預設為啟用。
為什麼需要 RHM#
回測時所有 K棒都已收盤,腳本逐根按時間對齊跑,每一根 Data1 讀到的 Data2 都是「當下已收盤」的值。但實盤時 Data1 和 Data2 的 tick 節奏不同步,若直接採用 Data2 當前(可能尚未收盤)的值,結果會與回測產生落差。RHM 就是用來控制實盤計算要不要模擬回測那種「時間對齊、只取已收盤 K棒」的行為,讓兩者結果一致。
RHM 啟用(預設)#
腳本以 Data1 的最新 K棒加上 Data2 的 currently completed bar(最近一根已收盤的 K棒)計算。
以 Data1 = 5 分鐘、Data2 = 日線為例:
- 腳本每根 5 分鐘 K棒執行一次。
- 在同一天的所有 5 分鐘 K棒內,
Close of data2讀到的都是前一天的日線收盤價,不會隨 tick 變動。 - 直到今日日線 K棒收盤後,
Close of data2才會更新為今日日線收盤價。
這是最常見、也最容易推理的模式,避免了回測與實盤結果差異。
RHM 停用#
腳本以 Data1 的最新 K棒加上 Data2 的 current (completed or not) bar(可能尚未收盤)計算。
在同一情境下,Close of data2 會指向當前仍在形成的日線 K棒,其值會隨 Data1 每一筆新 tick 變動。這種模式反應較即時,但回測(只有已收盤歷史資料)與實盤結果可能會出現差異。
多時間框架範例#
用日線判斷趨勢、5 分鐘線進場:日線收盤價站上 20 日均線時,才在 5 分鐘線上做多。
| |
相對強弱範例#
比較主圖商品和大盤指數的相對強弱:主圖漲幅超過指數時進場。
| |
注意事項#
- 資料對齊:不同商品的交易時段、節假日可能不同。
Data2在Data1有K棒但自己沒有K棒時,價格函數會回傳上一根K棒的值。 - 回測速度:加入越多資料序列,回測越慢。實務上建議 2–3 組就足夠大多數策略。
- 下單限制:買賣指令預設作用在腳本套用的那一組資料上(通常是
Data1)。若要在Data2上下單,將策略直接套用到Data2上。 - RHM 設定:RHM 預設啟用,建議維持啟用以減少回測與實盤落差。若策略明確需要即時反應大週期的未收盤資訊,再考慮停用。
Reference#
https://www.multicharts.com/trading-software/index.php?title=Multiple_Data_Series
https://www.multicharts.com/trading-software/index.php?title=Of_Data
https://www.multicharts.com/trading-software/index.php?title=Realtime-History_Matching