從一份歷史資料開始,完成可重做的回測練習
這一頁帶您把 Data Center 匯出的資料放進 MultiCharts,核對資料與策略設定,保存比較結果。最後再介紹已有靜態部位管理套件時,如何做 A/B 圖比較;不需要先學會改寫策略程式。
01 先完成一個小範圍練習
準備一個您認得的商品、一種資料模式,以及一支已能在 MultiCharts 正常計算的策略。以下用「一個期貨商品、1 分鐘資料、2025 年的一段歷史」作操作例子;商品與日期可以替換,不是交易建議。
| 先準備 | 要確認的內容 |
|---|---|
| 歷史檔案 | 在資料中心匯出 MultiCharts ASCII;資料狀態已可用,不只是 ZIP 下載完成。 |
| 資料識別 | 商品、交易所、未調整/調整後、1 分鐘/日線、實際期間、完整版本及 Auto/自訂規則。 |
| 研究用工作區 | 在 MultiCharts 使用另存的工作區與研究商品,便於與現有即時圖表分開核對。 |
| 可執行的策略 | 已安裝且能正常計算;若是外購策略,先取得提供者的相容版本與設定說明。 |
期貨 Back Adjusted 適合觀察跨月訊號,但價格不是當時實際成交價;股票 adjusted 適合研究較連續的訊號,成交與費用另需 raw 價格。先閱讀價格模式選擇,並在研究紀錄註明使用哪一種資料。
歷史 K 線在 Data Center 下載、在 MultiCharts 回測;QuantBrains 讀取的是策略輸出的狀態,再進行策略整合與資金配置。將 ASCII 放進 MultiCharts,並不會自動建立 QuantBrains 的策略來源。
02 把 ASCII 匯入 MultiCharts
- 開啟 MultiCharts 的 QuoteManager,選取要承接資料的研究商品。先核對商品的價格比例、交易所與時間設定。
- 選「檔案 → 匯入資料 → ASCII」,選取 Data Center 匯出的
_ASCII.txt。 - 在預覽確認欄位與日期、時間格式;資料週期選實際的 1 分鐘或 1 日,起始列要略過檔案表頭。
- 確認檔案時間採交易所當地時間、匯入期間正確,再完成匯入。
QuoteManager 匯入相同商品、相同時間的資料會覆蓋原有內容;先使用研究商品或備份既有資料。介面名稱依版本可能略有差異,詳見 MultiCharts 官方:匯入資料。
| Data Center 欄位 | 在預覽確認 |
|---|---|
| Date/Time | 日期與時間能正確辨識,前導零沒有消失,未重複位移。 |
| Open/High/Low/Close | 依序是開、高、低、收;與來源檔數值一致。 |
| TotalVolume | 成交量欄位,沒有誤配成價格。 |
第一次先保留 Data Center 原時間,不勾額外的「Time shift +1 分鐘」。若既有流程確實要求時間位移,另存一份位移後檔案,並把規則記清楚;不要一邊匯出位移、一邊匯入又轉一次。
開研究圖表,抽查最早一天、期間中間一天及最後一天,與檔案的日期、時間、收盤價和成交量比對。圖表期間應落在實際資料範圍內;畫得出 K 線只是第一步,抽查一致才繼續。
03 產生第一份基準回測
設定圖表條件
使用研究商品,設定策略需要的週期、交易時段及歷史範圍。策略若需要較長觀察期,圖表需有足夠較早資料,讓指標先完成計算。
套用已安裝策略
選一支能正常使用的策略,保留原始參數,先確認圖表上的方向與進出場位置合理。這一輪只計算歷史回測,不需要啟用 AA 自動下單。
核對交易與成本設定
確認口數、每大點價值、手續費與滑價的單位。不同商品不能沿用同一組數值;若尚未確認,將報告標示為「成本假設待確認」。
保存基準報告
查看 MultiCharts 績效報告,保存報告或截圖,記下交易次數、淨損益、最大回撤與最大口數。抽查幾筆交易是否能對回圖表。
先查資料期間、暖機資料、交易時段及策略是否啟用,再看策略條件本來是否會觸發。不要為了看到交易而同時改掉所有參數。
04 情境:比較一個設定改變前後
假設您想知道某個策略參數或部位管理選項的影響。先保留剛才的基準,另存比較用工作區:
- 兩次研究使用同一份資料、同一期間、相同交易時段與成本。
- 只改一個有明確用途的選項,例如策略提供的觀察天數;其他設定保持一致。
- 重新計算後,並排比較交易次數、淨損益、最大回撤、最大口數與交易明細。
- 再用另一段未參與調整的期間檢查。不要只保存結果最好的一次。
- 在交易備忘錄記下改了什麼、為什麼改、哪些交易有差異。
| 記錄欄位 | 範例填法 |
|---|---|
| 研究名稱 | YM 分鐘資料:原設定與觀察期調整 |
| 資料 | 商品/交易所、Auto、價格模式、完整版本、實際期間及檔案位置 |
| 唯一改動 | 參數名稱、原值、新值;其餘相同 |
| 比較結果 | 交易次數、含成本淨損益、最大回撤、最大口數 |
| 尚未確認 | 資料缺口、官方收盤限制、樣本外期間或外部執行差異 |
成功是能用相同檔案與設定重做結果,並說明差異來自哪個設定。結果變差也應保存,避免下次重複同樣的研究。
05 選用:靜態部位管理套件的 A/B 圖練習
舊版教材提到 @QB_Static_BackTest_Pass、@QB_Strategy_PureTrend 與 @QB_Strategy_PureTrend_GetDMM。這是一套需要另外確認版本的 MultiCharts 範例;目前專案內可見的 Connect 文字檔,不代表已包含這三支公式。若公式清單找不到,先向套件提供者取得完整相容版本,前面的基本回測仍可照常進行。
| 圖表 | 掛載內容 | 您要看什麼 |
|---|---|---|
| A 圖:基準與分析 | 套件提供的原始策略與 Static BackTest Pass | 原始交易,以及所選管理方式的計算結果。 |
| B 圖:管理後比較 | 套件對應的 GetDMM 策略 | 接收 A 圖結果後的方向與口數。 |
- 以套件提供的範例先建立 A/B 兩圖;商品、週期、資料期間、時段與成本需一致。
- 先確認原始策略能正常計算,再依套件說明選一種管理方式。多空分開的套件,就以相同方向做 A/B 比較。
- A 圖重新計算後,依套件操作重新載入 B 圖,確認它讀到這次結果。
- 比較實際口數與交易明細,查看部位變大時回撤是否也一起變大。
- 保存設定與結果。自己的策略若沒有相容管理版,請提供者協助,不直接覆寫原始策略。
教材提到的三種管理概念
| 名稱 | 一般觀察目的 | 先確認 |
|---|---|---|
| 風險位階 RiskLevel | 觀察相對位置改變時,部位是否跟著縮放。 | 是依商品價格還是策略績效決定位置,以及最大部位。 |
| 回撤管理 DD | 觀察策略從高點回落後的配置變化。 | 該模式是減少、等待或增加配置;不同模式不能只看數字猜意思。 |
| 波動管理 VarLevel | 觀察波動大小改變時的部位變化。 | 觀察期間、計算對象與配置上限。 |
參數與模式編號以實際套件說明為準;本頁不把舊版 Mode 1–6 或已移除參數當作目前產品的統一規格。
06 回測完成後,接回 QuantBrains 的順序
- 另存研究工作區與資料,選定要接入平台的策略版本。
- 依接上 MultiCharts 策略設定 Connect 與來源路徑,先確認來源檔存在且更新。
- 在 QuantBrains 加入來源,再到商品與策略整合核對方向、部位與商品。
- 進行單純讀取與模擬驗證,確認來源與平台顯示一致後,再依資金管理專案設定配置及輸出。
如果回測使用的是「已管理口數」策略,先記下哪些管理已在策略端完成,再檢查 Connect 和 QuantBrains 是否重複縮放。不要把舊教材的某個開關值直接套到不同版本;應以當前策略、Connect 參數與平台設定逐層核對。
07 常見問題
匯入後價格差 10 倍,或日期完全不對
回 QuoteManager 匯入預覽檢查價格比例、欄位順序、日期格式與表頭起始列,再對照來源檔。先修正一小段並抽查,不急著重新下載全部資料。
圖表時間差一分鐘或數小時
核對是否在匯出使用時間位移,以及 MultiCharts 是否再次轉換時區。Data Center 資料已採交易所當地時間;先使用保留原時間的檔案比對。
A/B 圖差很多,無法比較
先核對同一資料版本、價格模式、週期、交易時段、觀察期與成本,再確認 B 圖已重新載入 A 圖這次的結果。管理版改變了口數,可能使交易與損益不同,應查看明細找出原因。
換一份最新資料,舊回測結果也變了
還權或期貨接續資料可能隨更新調整較早歷史。比對兩次資料版本與規則,使用保存的原匯出檔重做原結果;把新資料的結果另存。
回測獲利很好,可以直接實盤嗎?
先確認資料品質、交易成本、最大口數與不同期間的表現,再做模擬訊號與外部工具驗證。回測無法證明日後績效,或證明實際委託已成交。