VALYNOX
VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
策略學院 / 平台與匯出

MultiCharts 評測:回測、最佳化與經紀商自動下單

MultiCharts 適合想用一套 Windows 桌面程式完成盤中細節回測、參數最佳化,並透過自己的資料來源把委託送到期貨經紀商的交易者。它的報表是否可信,取決於你輸入的手續費、滑價、成交規則與盤中設定,程式不會替你決定這些數值。

作者 · 發佈 · 更新於 · 編輯原則

目錄
  1. MultiCharts 值得用來做回測與期貨自動交易嗎?
  2. MultiCharts 適合新手嗎?適合哪些人?
  3. MultiCharts 的回測與最佳化實際上做什麼?
  4. 如何在 MultiCharts 設定資料與下單?
  5. MultiCharts 要花多少錢?學習曲線有多陡?
  6. MultiCharts 和 TradingView 及其他替代方案有何不同?
  7. 一個 PowerLanguage 策略如何從編輯器進到 MultiCharts 的即時圖表?
  8. 常見問題
  9. 參考文獻

MultiCharts 值得用來做回測與期貨自動交易嗎?

這篇 MultiCharts 評測只回答一個問題:如果你想要一套 Windows 桌面程式,能做盤中細節回測、最佳化參數,並透過自己的資料來源把委託送到期貨經紀商,那麼 MultiCharts 值得用。如果你要的是瀏覽器看盤,或是免費的起步工具,MultiCharts 就不適合你,請改讀MultiCharts 與 TradingView 的比較。

MultiCharts 是一套用於 Windows 的看盤與策略程式。你要連接一個提供 K 棒的資料來源、一個用來下單的經紀帳戶,然後自行撰寫或匯入策略。剛安裝好時,程式可以打開,但在 QuoteManager(程式的商品與資料管理器)中加入資料來源之前,任何圖表都不會出現 K 棒;在設定經紀商連線(也就是你交易帳戶的已儲存連線,稱為 broker profile)之前,任何下單按鈕都不會作用。下表把程式提供的功能和你必須自備的部分分開列出,讓你在買之前就知道設定有多少要自己來。

兩欄:MultiCharts 提供 K 棒內回測、最佳化工具、下單自動化、PowerLanguage 與龐大社群;您需自備 Windows 電腦、付費授權、自有資料來源、程式碼或策略生成軟體,以及交易時段與轉倉設定 您需自備一半設定 MultiCharts 提供 您 需自備 K 棒內回測 最佳化工具 下單自動化 PowerLanguage 龐大社群 Windows 電腦 付費授權 自有資料來源 程式碼或生成器 交易時段與轉倉
MultiCharts 提供什麼,以及你在設定中必須自備什麼,並排對照。

MultiCharts 報表可信的程度,取決於你輸入的手續費、滑價、成交規則與盤中設定。程式把每一項控制權都交給你,數值則不會替你決定。把第一份報表當成事實、滑價設為零、成交一律在同一根 K 棒完成的交易者,其實還沒有開始測試。

MultiCharts 適合新手嗎?適合哪些人?

MultiCharts 適合已經有一條書面交易規則要測試,並準備學習 PowerLanguage,或準備從外部程式碼產生器帶入原始碼的交易者。完全的新手通常會先花好幾週處理資料、交易時段與編譯錯誤,才會碰到任何交易想法。PowerLanguage 是 MultiCharts 用來寫指標與策略的腳本語言,它和 TradeStation 使用的 EasyLanguage 很接近。

第一週的障礙人人都會遇到,但依你原本具備的條件不同,影響的程度也不同:

問題還沒有規則的新手有書面規則、不寫程式已經會寫程式
第一週的障礙先決定要測什麼,接著是資料與交易時段把規則轉成能通過編譯的 PowerLanguage學習成交與交易時段的設定
做出第一份誠實回測所需時間數週,常常更久用程式碼產生器約數天,手寫則數週數天
是好的第一套平台嗎?是,但要先用程式碼產生器或課程入門是是
依交易者類型適合度:尚無規則的新手需要數週,並須先修課程或使用策略生成軟體;已有書面規則但不寫程式的交易者需要數天到數週,適合;已會寫程式的交易者需要數天,適合 誰最快能完成回測? 首次可信回測所需時間 尚無規則 數週以上 先修課程 有規則、不寫程式 數天到數週 適合 已會寫程式 數天 適合 書面規則可省下數週。 因此:買之前先寫好規則。
依交易者類型區分適合度:誰能很快做出第一份回測,誰需要先借助程式碼產生器或課程。

如果你屬於左欄,花錢之前請先讀系統化交易者的 MultiCharts 軟體概覽。它會說明程式的各個部分,以及應該依什麼順序學習。如果你屬於中欄,最短的路是使用會替你寫 PowerLanguage 的工具,這樣前幾週的時間就能用來測試規則,而不是用來修語法。

MultiCharts 的回測與最佳化實際上做什麼?

MultiCharts 回測器會依你設定的手續費、滑價與成交規則,逐根 K 棒重播策略;它可以用更細的資料看進每根 K 棒內部,並提供窮舉、基因演算法與推進分析三種最佳化方式。因此你讀到的報表,由這些設定決定的程度,和由交易規則決定的程度一樣大。整個流程依固定順序執行,其中有兩個步驟對結果的影響,比其他所有步驟加起來還大。

MultiCharts 回測六步驟依序為:載入資料與交易時段、插入策略、設定手續費與滑價、設定成交規則與 Bar Magnifier、執行最佳化、閱讀報表;第三與第四步對結果影響最大 兩個步驟決定報表結果 1 2 5 6 3 4 載入資料與時段 插入策略 執行最佳化 閱讀報表 手續費、滑價 成交規則、Bar Magnifier 關鍵設定
MultiCharts 回測的步驟順序,以及每個誠實性設定在哪一步進入。

Bar Magnifier 是 MultiCharts 的一個設定,會載入更細的資料序列,例如在 60 分鐘圖表中載入 1 分鐘 K 棒,讓回測器能判斷停損與停利在這根 K 棒內哪一個先被碰到。沒有這個設定,引擎就必須假設 K 棒內的事件順序。停損與停利距離很近的策略,差異最大;MultiCharts 盤中回測指南說明了 K 棒內的成交可以把結果改變多少。

手續費與滑價是在策略屬性中按每口或每筆交易輸入的。滑價是訊號所用價格與實際委託成交價格之間的差距。如果報表的滑價為零,它衡量的只是價格變動,而不是一個帳戶最後真正留下來的錢。

假設性範例

一個策略在零滑價下,400 筆交易顯示淨損益為 $18,000。你估計每一邊有一個跳動點的滑價,以這個商品來說每邊價值 $12.50,所以每一買一賣(來回)為 $25。400 筆交易 × $25 = $10,000。誠實的淨損益約為 $8,000,不到第一份報表的一半。規則一點都沒有變,變的只是設定。

最佳化是結果最容易被美化的地方。窮舉最佳化會測試你設定範圍內每一種參數值的組合。基因演算法最佳化會保留並組合表現最好的組合,來搜尋大範圍的參數,速度較快,但不會測試每一個值。推進分析是一種測試方式:先在一段歷史資料上調整參數,接著在下一段資料上原封不動地執行,然後往前推進並重複。Pardo(2008)把它描述為檢查最佳化後的設定,是否能在沒看過的資料上成立的標準做法。不論用哪一種模式,從眾多組合中挑出的最佳組合,一部分是真實的,一部分則是擬合該段歷史的運氣;Bailey、Borwein、López de Prado 與 Zhu(2014)指出,你試的組合越多,那部分運氣的成分就越大。

為了讓你看到費用已經計入的報表長什麼樣子,這裡列出一次 AlphaPrime(Valynox)的執行結果。它不是 MultiCharts 的報表,也不是 MultiCharts 的基準。這次執行測試的是搜尋從 1,024 個候選中保留下來的那一個,依報酬對回撤挑選,只使用一個 CCI 規則作為唯一的進場與出場,沒有停損、停利或過濾條件。它是一個用標準指標建立的替代規則,並不是在測試 MultiCharts 本身。市場為 ES 日線,資料期間為 2019-01-02 至 2025-06-30,做多與做空,一口,每筆交易 $20 手續費與 $25 滑價,並在下一根 K 棒成交。

來源:AlphaPrime 產品引擎(CPU),2026-10-31 執行。ES 日線,2019-01-02 至 2025-06-30,多空都做,1 口,每筆手續費 $20、滑價 $25。

項目結果
淨利(已平倉)$117,700
最大回撤$50,127.5
交易筆數200
勝率60.5%
獲利因子1.41
平均每筆$588.5
在場時間60.07%
決定大部分回測與實單設定的兩個中性事實:跨這幾個平台來看,MultiCharts 使用盤中成交並連接多家券商;TradingView 的成交細節見供應商頁面,委託透過連結的券商送出;TradeStation 使用盤中成交並採用自家經紀商;NinjaTrader 使用盤中成交,並支援自家及其他經紀商 兩項事實 決定大半 ? = 見供應商頁面 成交細節 經紀商 MultiCharts TradingView TradeStation NinjaTrader 盤中 ? 盤中 盤中 多家 連結 自家 自家+其他 成交與經紀商決定設定。 因此:先檢查這兩項再看價格。
讀淨損益這一行時,要知道手續費與滑價已經計入;接著把最大回撤、獲利因子與交易筆數放在一起比較,不要只看其中任何一項。 ES · 日線 · 2019-01-02 至 2025-06-30 · CPU 引擎回測

讀這份結果,要用讀任何最佳化器輸出的方式來讀。$117,700 的淨損益屬於從 1,024 個候選中保留下來的那一個,事後才挑出它本身就會美化結果;其他候選並不在表中。相對於這筆獲利的 $50,127.5 最大回撤,正是選擇時所依據的標準;而六年半內 200 筆交易,是中等規模的樣本。它描述的是一個被選出的候選的過去,既不是 CCI 規則本身的獲利,也不是讀者可以期待的報酬。同樣的讀法也適用於窮舉執行後的 MultiCharts 策略績效報表:最佳化表格最上面那一列,就是被美化最多的一列。

如何在 MultiCharts 設定資料與下單?

一套能運作的 MultiCharts 設定需要三組各自獨立的連線:圖表用的資料來源、下單用的經紀商設定,以及讓策略部位與經紀商實際部位保持同步的自動化模式。每一組都要先用一口的委託確認,才能讓策略在無人看守下執行。很多交易者以為一組登入就能涵蓋三者,但 MultiCharts 是分開設定的,而且每一組都可能單獨失敗。

MultiCharts 有三個獨立連線:傳送 K 棒與報價的資料源、交換委託與成交回報的券商,以及讓策略與券商部位保持一致的同步模式;每一項都要用一口合約測試 三條連線,不是一組登入 MultiCharts 資料源 券商 同步模式 K 棒、報價 委託、成交 部位 每條連線都可能單獨失效。 所以:每一項都用一口合約測試。
正式運作的 MultiCharts 設定中三組獨立連線,以及每一組傳送的內容。
  1. 資料來源。資料來源是把歷史 K 棒與即時報價送到圖表的服務。在 MultiCharts 中,它是在 QuoteManager 裡加入的,期貨商品的交易時段範本與轉倉設定也在那裡設定。確認方法是打開一張圖表,檢查最後一根 K 棒的時間是否符合你預期的交易所時段。
  2. 經紀商設定。經紀商設定是 MultiCharts 送出委託並從你的期貨帳戶接收成交回報的已儲存連線。它和資料來源是分開的;同一家經紀商可以同時提供兩者,也可以由兩家不同的供應商分別提供。確認方法是從圖表交易面板送出一筆手動的一口委託,並確認成交回報有回傳。
  3. 自動化模式。自動化模式決定當策略部位與經紀商的實際部位不一致時該怎麼辦,例如委託被拒絕或斷線之後。MultiCharts 提供一種讓兩者保持同步的模式,以及一種讓策略依自身訊號繼續執行的模式;應該先從同步模式開始。確認方法是先以一口執行策略,並盯著前幾筆委託。

三項檢查全部通過之後,才能讓策略在你不在螢幕前的情況下執行。每一項檢查都會花掉一次一買一賣(來回)的手續費,以及幾分鐘時間;之後才發現不一致,代價會大得多。

MultiCharts 要花多少錢?學習曲線有多陡?

MultiCharts 的總成本包括授權費、資料來源費、經紀商手續費與交易所費用,再加上一台必須持續開機的電腦;學習曲線則要以數週來計算,因為你要讀 PowerLanguage 參考手冊與回測設定。所以在做決定之前,請同時預估金錢與時間。每一筆金額都請以當天的官方頁面或經紀商對帳單為準,因為它們都會變動。

MultiCharts 的總成本分為四個區塊(未按比例繪製):授權費一次買斷或以租約支付、每月的資料訂閱、每筆交易的手續費與交易所費用,以及每月常駐運作的電腦或虛擬伺服器;各項金額請依官方來源查證 不只是授權費 大小未按比例繪製 授權費 資料訂閱 手續費、費用 常駐電腦 一次買斷或租約 每月 每筆交易 每月 總成本為四項加總。 因此:請依來源查證each項金額。
執行 MultiCharts 的總成本,不只是授權費那一行。
  • 授權。MultiCharts 販售一次買斷的授權,也提供按期支付的租賃方案。有些經紀商也會向客戶提供與該經紀商綁定的版本;MultiCharts 授權、資料與費用成本拆解說明了經紀商版本與完整授權之間的差異。
  • 資料來源。每月支付給資料供應商或經紀商。歷史資料的長度在這裡很重要:歷史太短,回測就只能回溯到有限的時間。
  • 經紀商手續費與交易所費用。依每口、每一邊收取。這些數字也正是你應該填進策略屬性中的數字,所以請從真實的對帳單取得。
  • 持續開機的電腦。自動化只有在 MultiCharts 開啟並保持連線時才會執行,因此需要一台專用桌機,或是租用的虛擬伺服器。

在時間上,請把 PowerLanguage 參考手冊、策略屬性對話框與交易時段範本當成三個獨立的主題,各花幾個晚上研讀。會寫程式的交易者可以縮短第一個主題的時間;另外兩個則沒有人能跳過。

MultiCharts 和 TradingView 及其他替代方案有何不同?

MultiCharts、TradingView 與 TradeStation 的差異在於它們在哪裡執行、使用哪種語言、回測是否能取得更細的盤中資料,以及委託如何送到期貨經紀商;最適合的選擇取決於你如何研究,以及在哪裡下單。下表只陳述事實,不做排名。

功能MultiChartsTradingViewTradeStation
執行環境Windows 桌面瀏覽器與應用程式Windows 桌面,綁定 TradeStation 經紀商
策略語言PowerLanguagePine ScriptEasyLanguage
盤中回測細節搭配更細資料的 Bar Magnifier較高等級方案提供更細的盤中資料策略設定中可選更細的盤中資料
委託路由透過外掛連接多家經紀商透過連接器連接部分經紀商整合型經紀商
K 棒來源由你自行連接的資料來源由平台提供由該經紀商提供
三個平台並列:MultiCharts 在 Windows 上執行,使用 PowerLanguage、自備資料來源,支援多家券商;TradingView 在瀏覽器中執行,使用 Pine Script 與平台行情,支援部分券商;TradeStation 在 Windows 上執行,使用 EasyLanguage 與平台行情,並使用其自家券商 同一任務,不同設定 MultiCharts TradingView TradeStation Windows PowerLanguage 自備資料 多家券商 瀏覽器 Pine Script 平台行情 部分券商 Windows EasyLanguage 平台行情 單一券商 各有適合的工作流程。 所以:依資料與券商選擇。
MultiCharts、TradingView 與 TradeStation 逐項功能差異。

從實務來看:如果你想分開挑選資料供應商與經紀商,MultiCharts 的設計正是為此而生。如果你想要在任何裝置上都能打開的圖表,並且 K 棒來自平台自己的資料來源,那是 TradingView 的設計思路。如果你希望經紀商與平台是同一個帳戶,那是 TradeStation 的做法。許多交易者會同時使用兩套,一套用來看盤,一套用來下單。更廣泛的選擇,包括不需要任何程式碼的平台,請參閱無程式碼自動交易平台比較。

一個 PowerLanguage 策略如何從編輯器進到 MultiCharts 的即時圖表?

策略以 PowerLanguage 原始碼的形式進入 MultiCharts,在 PowerLanguage Editor 中編譯,然後以研究時相同的 K 棒週期、交易時段、手續費與滑價插入圖表,最後以一口的自動化先行執行。這四項設定都必須和研究時的設定一致,否則即時圖表測試的就會是另一個策略。

從 PowerLanguage 原始碼到實際執行策略的四個步驟:匯出、編譯、插入與實單交易;在插入步驟時,K 棒週期、交易時段、手續費與滑價必須與研究時相同,且實單交易從一口開始 配對 四項設定 匯出 編譯 實單交易 插入 與研究時相同 K 棒週期 交易時段 手續費 滑價 設定不同即為不同的測試。 因此:實單交易從一口開始。
從 PowerLanguage 原始碼到執行中的 MultiCharts 策略:四個步驟,以及第三步中要對齊的設定。
  1. 匯入原始碼。把 PowerLanguage 檔案貼上或匯入 PowerLanguage Editor,建立為新策略。如果你的規則是在 AlphaPrime 找到的,支援平台匯出清單會顯示 MultiCharts(PowerLanguage)是原始碼可以輸出的六個目標之一,因此這一步是從一個檔案開始,而不是從空白編輯器開始。
  2. 編譯。編輯器會按行號回報錯誤。編譯成功只表示語法被接受,不代表邏輯正確。
  3. 插入到相符的圖表。打開一張與研究時使用相同商品、K 棒週期與交易時段範本的圖表。在策略屬性中,輸入相同的手續費、滑價與成交規則。把策略匯入 MultiCharts 的逐步指南會逐欄說明這個對話框;產生策略的 PowerLanguage 比較檢查表則列出要對齊的設定,以及兩份報表通常不一致的原因。
  4. 執行一口。以一口開啟同步模式的自動化,在離開之前,先盯著最初幾個訊號變成委託與成交。

你的下一步:打開一個你已經信任、且在 MultiCharts 中使用的策略屬性,記下它的手續費、滑價與成交設定,然後把滑價加倍,再執行同一個策略。如果只改了這一項之後,報表仍然顯示平均每筆損益為正,就表示結果並不是靠你選的那組設定撐起來的。

常見問題

MultiCharts 可以自動化期貨交易嗎?

可以。MultiCharts 透過經紀商設定把策略委託送到期貨經紀商,並透過自動化模式讓策略部位與經紀商部位保持同步。資料來源、經紀商連線與自動化模式是分開設定的。自動化只有在程式開啟並保持連線時才會執行,因此需要一台持續開機的桌機或虛擬伺服器。

MultiCharts 的價格資料從哪裡來?

來自你選擇並在 QuoteManager 中加入的資料來源,費用與授權分開計算。資料來源提供的歷史長度,決定你的回測能回溯多遠。同一家經紀商通常可以同時提供 K 棒與委託路由,但在程式中它們仍是兩組連線。

MultiCharts 和 TradeStation 有什麼差別?

MultiCharts 是一套獨立的 Windows 程式,連接你選擇的資料來源與經紀商,使用 PowerLanguage。TradeStation 是綁定 TradeStation 經紀商的 Windows 平台,由該經紀商提供 K 棒並路由委託,使用 EasyLanguage。兩種語言很接近,因此許多策略只需做少量修改就能在兩者之間轉移。

Bar Magnifier 在 MultiCharts 回測中做什麼?

Bar Magnifier 會在圖表的 K 棒底下載入更細的資料序列,例如在 60 分鐘圖表中載入 1 分鐘 K 棒,讓回測器能看見每根 K 棒內價格變動的先後順序。當停損與停利可能在同一根 K 棒內都被碰到時,這一點很重要。沒有它,引擎就必須假設哪一個先發生,而這個假設可能改變結果。

參考文獻

  • Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies (2nd ed.). John Wiley & Sons.
  • Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.