VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
策略學院 / 策略生成

交易系統是什麼:組成與自動化交易系統的建立

交易系統是一套完整的書面規則,涵蓋進場、出場、部位大小與風險,讓兩個人在相同資料上照做,會做出相同的交易。自動化系統則由電腦執行這些規則。請依固定順序建立,在看到結果前先固定規則,並以回測自身的數字來監控實單交易。

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

目錄
  1. 什麼是交易系統?
  2. 什麼是自動化交易系統?
  3. 每個交易系統都需要哪些組成:進場、出場、部位大小與風險?
  4. 如何一步步建立演算法交易系統?
  5. 單一規則系統的回測長什麼樣子?
  6. 建立交易系統後,如何測試與監控?
  7. 常見問題
  8. 參考文獻

什麼是交易系統?

交易系統是一套完整的書面規則,說明何時進場、何時出場、交易幾口,以及願意承擔多少風險。兩個人在相同資料上照同一套系統操作,會做出相同的交易。自動化交易系統則由電腦執行這些規則:電腦讀取價格,自行送出委託單。

可以拿食材清單與食譜來比較。指標是食材,交易系統是食譜:每樣食材怎麼處理、用多少、何時收手,都寫在裡面。多數自稱「有一套系統」的交易人,其實只寫下進場訊號,例如均線交叉或突破,其餘都沒有寫。本文要從幾個面向檢驗的,正是這個說法:進場精確、出場含糊、又沒有部位大小規則,不算系統,既無法測試,也無法自動化。

完整性的檢驗並不複雜:把規則和相同的價格資料交給朋友,不再多做說明。如果朋友問「交易虧損時該怎麼辦?」或「該下幾口?」,系統就還沒完成。Pardo (2008) 的整套交易系統評估都建立在這一點上:規則必須在測試開始前,把每個部分都定義完整,才能測試。

交易系統透過四個規則區塊把價格資料轉成委託單:進場、出場、部位大小與風險限制;單一指標本身不算系統 交易系統由什麼組成 價格資料進,委託單出 價格 進場 出場 部位大小 風險限制 委託單 單一指標 不算系統 四個區塊組成一套系統。 所以:每個區塊都寫成規則。
交易系統透過四個規則區塊把價格資料轉成委託單。單一指標本身只是食材,不是系統。

什麼是自動化交易系統?

自動化交易系統是同一套書面規則,改由電腦執行:電腦讀取價格、做出決定並送出委託單,過程中無需人員介入。規則沒有變,變的是每個步驟由誰執行。電腦不會猶豫,也不會漏掉訊號;但它同樣不會發現規則有誤、資料來源已中斷,或合約昨晚已轉倉。

步驟主觀交易者手動照規則交易者自動化系統
觀察價格人,依主觀判斷人電腦
決定是否交易人,依主觀判斷人,依規則電腦
送出委託單人,依主觀判斷人電腦
決定部位大小人,依主觀判斷人,依規則電腦
記錄交易人,依主觀判斷人電腦
三種交易方式比較:主觀交易者依主觀判斷決定;手動照規則交易者與自動化系統使用同一套書面規則,只是由人或由電腦執行 只有執行者不同 誰做決定,誰來執行 交易者 決定依據 執行者 主觀交易 主觀判斷 人 照規則交易 書面規則 人 自動化 書面規則 電腦 自動化不改變規則邏輯。 所以:規則先要能手動執行。
中間與右邊兩欄的規則可以完全相同。只有執行者不同,隨之不同的是會出現的錯誤類型。

中間那一欄比看起來重要。手動照規則交易者其實已經在用一套交易系統,只是用手執行。自動化改變的是執行速度與紀律,不是邏輯。如果規則無法照著書面資料手動執行,也就無法自動化。自動化的成本,以及多數規則扣除成本後為何虧損,請見程式交易的定義與成本。

有個名詞常被混淆。另類交易系統(ATS)根本不是策略。在美國,它是在傳統交易所之外撮合買賣委託的交易場所,並依此受監管。法規文件中的「ATS」,指的是委託單交會的地方,不是交易人遵循的一套規則。

每個交易系統都需要哪些組成:進場、出場、部位大小與風險?

系統需要四個組成,且全都要寫成可測試的條件;最常見的失敗,是進場精確、出場含糊,又完全沒有部位大小規則。可測試的條件,是電腦能在每根 K 棒上檢查並回答是或否的一句話。「看起來強就買進」無法檢查。「當天收盤高於過去 20 天的最高點時,在下一根 K 棒開盤進場做多」則可以。

組成含糊版本可驗證版本缺少時會發生什麼
進場看起來強就買進收盤高於 20 天高點時,在下一根 K 棒開盤進場做多沒有可測試的東西;每筆交易都是主觀判斷
出場轉向就出場收盤低於 10 天低點時,在下一根 K 棒開盤平倉;或持倉滿 15 根 K 棒後平倉交易從不依規則結束;結果取決於交易者當時的心情
部位大小憑感覺決定下多少口數 = 每筆交易的帳戶風險 ÷(停損距離點數 × 每點價值),無條件捨去一次虧損可能是另一次的十倍;權益曲線無法說明規則本身
風險限制不要虧太多當月虧損達帳戶的 6% 時,當月停止交易一段不順的行情沒有終點;系統是在恐慌中停機,而非依規則停機
缺少或含糊的規則區塊各會造成什麼後果:沒有進場規則就沒有可測試的東西,沒有出場規則則交易從不依規則結束,沒有部位大小規則則一次虧損可能是另一次的十倍,沒有風險限制則不順的一段沒有終點 缺少區塊的後果 含糊的規則等於沒有 進場 沒有可測試的 出場 交易從不平倉 部位大小 虧損相差 10× 風險限制 不順沒有終點
每個組成都有一個無法測試的含糊形式,與一個可以測試的形式。最後一欄是缺少該區塊對結果造成的影響。

部位大小規則負責把訊號轉成口數,通常依據每筆交易可承擔的帳戶風險,以及到停損的距離。免費的期貨部位大小計算機可針對指定的帳戶風險與停損距離計算。表中的部位大小規則需要三個數字。第一個是單筆交易願意虧損的美元金額。第二個是以指數點數計的停損距離。第三個是每點價值,也就是指數每變動一點,一口合約的美元變動。交易所可能調整每點價值與跳動點大小,因此定下數字前,請先查看交易所的合約頁面,或使用免費的期貨合約與損益計算機。

假設性範例

假設交易者每筆可承受 $500 的虧損,停損距離進場價 30 點,每個指數點價值 $20(E-mini Nasdaq-100 的乘數,見 CME 合約頁面)。口數 = $500 ÷ (30 × $20) = $500 ÷ $600 = 0.83,無條件捨去為 0。規則的結論是:這個大小不做這筆交易。若停損改為 20 點,結果為 1.25,無條件捨去為 1 口。部位大小規則算出零,就是它在發揮作用。

風險限制是單筆交易之上的規則:每日、每月或自權益高點起算的最大虧損,達到後系統即停止交易。進場與出場決定規則有沒有優勢;部位大小與風險限制,決定優勢出現時你是否還在場上。

如何一步步建立演算法交易系統?

請依固定順序建立,從一句話說完的想法,到書面的監控計畫;在看結果之前先寫下規則,這一步絕不能跳過。這個順序的用意,是每一步都保護下一步。看過回測才寫的規則,描述的是那份回測;先寫好的規則,才能被回測檢驗。

  1. 用一句話說出想法。「收盤大幅突破近期區間後,指數往往會再延續幾天。」一句話說不完,就是兩個想法。適用於期貨的五類規則,以及各自如何測試,見期貨演算法交易策略:5 種類型。
  2. 在紙上寫下四個規則區塊。進場、出場、部位大小、風險限制,各寫成可測試的條件。要搜尋的參數範圍也一併寫下,例如回看期間 10 至 40 天。
  3. 設定成本、交易時段與執行方式。每筆交易的手續費與滑價、規則適用的交易時段,以及訊號出現後於下一根 K 棒執行。這些設定對結果的影響,比多數參數選擇更大。
  4. 在樣本內期間回測。樣本內資料是歷史中較早的一段,用來選定設定。先看扣除成本後的平均每筆損益與交易筆數,其他都排在後面。
  5. 用未見過的資料檢驗。把固定下來的規則放到樣本外期間,也放進推進分析中跑。後面兩節會說明各自能抓出什麼。
  6. 小量實單。一口,或一口微型期貨合約,時間要長到足以收集真實成交,並與回測的滑價設定比較。
  7. 寫下監控計畫。要比較哪些數字、多久比較一次、到什麼程度就關閉系統。要在第一筆實單委託之前寫好。
依序的七個建置步驟:想法、寫規則、設定成本,接著固定規則,再回測、用未見過的資料檢驗、小量實單與監控 測試前先寫規則 七個建置步驟,依序進行 想法 寫規則 設定成本 規則在此固定 回測 檢驗 小量實單 監控 結果出來後才訂的規則會貼合結果。 所以:四個都寫好再測試。
七個建置步驟依序排列。鎖頭標示的位置之後,規則不再因為結果好不好看而更動。

鎖頭是人們最常跳過的一步。人們容易先跑幾次回測、「看哪個有效」,再把看起來最好的寫下來。這樣選出來的規則,已經看過考題。這些步驟背後完整的研究流程,從資料到經過審查的策略,見量化交易:一步步建立自己的流程。若要日內版本,包含交易時段與日內規則必須克服的成本,見當沖演算法:如何建立與測試。

單一規則系統的回測長什麼樣子?

單一規則系統的實際回測,能看出一條只有進場與出場的規則會產生什麼,更有用的是看出它缺了什麼。下方回測使用 NQ 日 K 棒,期間 2019-01-02 至 2025-06-30,多空皆做,一口,每筆交易收取 $20 手續費與 $10 滑價。唯一的進場與出場規則取自DMI 動向指標,沒有停損、沒有停利、也沒有濾網。它是用標準指標拼成的替代範例,用來說明單一規則報表的樣子,並非推薦這條規則。AlphaPrime(Valynox)搜尋了 1,024 個候選策略,並依報酬相對回撤保留了這一個。

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

項目結果
淨損益(已平倉交易)$50,370
最大回撤$21,320
交易筆數76
勝率59.21%
獲利因子1.702
平均每筆損益$662.76
持倉時間7.72%
上述回測的摘要畫面。先看交易筆數,再看平均每筆損益,接著看最大回撤;淨損益那一行最後才看。
上述回測的摘要畫面。先看交易筆數,再看平均每筆損益,接著看最大回撤;淨損益那一行最後才看。 NQ · 日 K · 2019-01-02 至 2025-06-30 · CPU 引擎回測

閱讀報表請依這個順序。先看交易筆數:六年半只有 76 筆,樣本偏小,每一項單筆數字只是提示,不是測量。其次是平均每筆損益 $662.76,這是扣除每筆 $30 成本之後的數字,可看出規則在結果歸零前,還能吸收多少滑價。第三是最大回撤 $21,320,一口且沒有停損;這是交易這條規則的人必須熬過的虧損,而且完全來自出場規則,因為沒有其他機制在限制它。持倉時間占 7.72%,表示規則大部分時間是空手,這是規則的特性,不是優點。在 AlphaPrime 裡,績效報表把交易明細、回撤曲線與多空拆解放在這些摘要數字旁邊,可以看出是哪些交易撐起平均值、回撤發生在什麼時候。

這份報表缺的,正是組成那一節的兩個區塊。沒有部位大小規則,所以不論波動如何,都是一口。沒有風險限制,所以回撤只受出場規則限制,能跑多遠就跑多遠。以這個進場方式建立完整的系統,會把兩者都加上,再重新測試,因為加上它們會改變表中的每一個數字。

從一千多個嘗試過的候選策略,收斂到一個依報酬相對回撤保留下來的策略;其他都不會出現在報表中,下一步是用未見過的資料檢驗 眾多中的最佳者太好看 報表只顯示勝出的一個 嘗試的候選策略 留 1 其餘未顯示 下一步:未見資料 數字帶有挑選加成。 所以:用未見資料檢驗。
報表只顯示 1,024 個候選策略中保留下來的那一個。其他候選策略不在表中,因此保留者的數字帶有挑選加成。

關於這張表,最後要知道的是這個候選策略如何走到這裡。它是 1,024 次嘗試中的最佳者,是事後挑出來的。Bailey、Borwein、López de Prado 與 Zhu (2014) 指出,在這種規模的搜尋中,最佳回測看起來會比規則實際應得的更好,單純因為搜尋挑中了運氣最好的那一個。這些數字真實記錄了被保留的候選策略在這份資料上的表現,也被挑選過程美化了。不應把它們視為規則賺到的錢,也不應當作讀者可以期待的結果。這類候選策略的下一步,是未見過的資料。

建立交易系統後,如何測試與監控?

測試分成幾個階段,每個階段抓出不同的錯誤;監控則是把實單交易與回測自身的數字比較,並對照第一筆實單前就寫好的停止規則。沒有哪一種測試能抓出所有問題。樣本內回測能發現壞掉的規則,卻發現不了過度最佳化,因為規則本來就是在那份資料上選出來的。樣本外檢驗能發現過度最佳化,卻發現不了不合理的成交假設,因為它用的仍是同樣的模擬成交。只有實單交易才看得到真實滑價。

階段能抓出什麼比較什麼
樣本內回測規則錯誤、前視偏差、成本敏感度扣除成本後的平均每筆損益,對照一買一賣(來回)成本;滑價加倍後的結果
樣本外檢驗對調整參數期間的過度最佳化樣本外扣除成本後的平均每筆損益,對照樣本內的數字
推進分析只有一次有效的設定串接後的樣本外曲線,對照單一的樣本內曲線;相鄰的設定
小量實單滑價與成交假設、資料與轉倉處理實單成交價,對照回測使用的訊號價格
持續監控與回測的偏離實單回撤,以回測最大回撤(上述回測為 $21,320)作為參考線;實單平均每筆損益,對照回測的平均值
五個測試階段與各自抓出的錯誤:樣本內抓規則錯誤,樣本外抓過度最佳化,推進分析抓一次性的設定,小量實單抓真實滑價,監控抓偏離;並將實單回撤與回測最大回撤比較 每項測試抓一種錯誤 階段與能抓出的錯誤 樣本內 規則錯誤 樣本外 過度最佳化 推進分析 一次性的設定 小量實單 真實滑價 監控 與測試的偏離 監控永不結束。 所以:追蹤回撤並對照回測。
五個階段抓五種不同的錯誤。監控是永不結束的階段,它把實單數字與回測自身的數字比較。

推進分析是這樣的測試:用一段歷史視窗調整設定,再原封不動套到接著的下一段視窗,然後往前移動並重複,使每一段樣本外資料,都是用在其資料出現之前就選好的設定來交易。這是回測最接近實單交易事件順序的做法。如果一套系統的設定在各視窗之間變動幅度大,或串接後的樣本外曲線是平的,就是在告訴你:樣本內的結果來自過度最佳化,而不是來自想法本身。

監控以回測作為參考,而不是承諾。兩項比較承擔了大部分工作。第一是實單扣除成本後的平均每筆損益,對照回測平均值:如果交易了合理的筆數之後,實單數字遠低於回測,代表成交假設錯了,或市場變了。第二是實單回撤,對照回測的最大回撤。實單回撤比回測中任何一次都深,就是關於這條規則的新資訊。事先寫下越過這條線時要怎麼做,因為在回撤中途做的決定,正是風險限制區塊原本要取代的那種決定。

假設性範例

某交易者的監控計畫寫道:每 20 筆實單交易比較一次;若此時實單扣除成本後的平均每筆損益低於零,或實單回撤任何時候高於回測最大回撤的 1.5 倍,就停止系統。20 筆交易後,實單平均每筆損益為 $180,回測數字為 $400;實單回撤為 $6,000,回測最大回撤為 $9,000。兩條停止規則都沒有觸發,因此系統繼續運行,交易者並記下實單滑價高於回測所用的設定。

接下來可以做的具體一件事:拿出你正在交易或打算交易的策略,用組成表中的可測試形式,把四個區塊寫在同一頁上。若有任何區塊是空的,或讀起來像含糊那一欄,下一個小時的工作就該放在那個區塊,而且要在跑任何回測之前。

常見問題

什麼是自動化交易系統?

自動化交易系統是一套書面的交易規則,由電腦執行:電腦讀取價格、決定何時進出場、決定部位大小並送出委託單,過程中無需人員介入。規則與手動系統相同,只有執行者不同。自動化免去了猶豫與漏掉訊號,但也免去了能發現規則有誤或資料來源中斷的那個人,因此監控成為系統的一部分。

如何無需撰寫程式就建立演算法交易系統?

先在紙上把四個規則區塊(進場、出場、部位大小、風險限制)寫成可測試的條件。接著使用策略研究軟體,把這些條件轉成含成本、交易時段與下一根 K 棒成交的回測,用未見過的資料檢驗結果,並把完成的規則匯出成交易平台的原始碼。思考的部分,也就是在看到結果前先寫好規則,有沒有程式都一樣。

什麼是另類交易系統?

另類交易系統是交易場所,不是策略。在美國,它是在傳統交易所之外撮合買賣委託的地方,並以交易場所的身分受監管。文件中提到「ATS」時,談的是委託單交會的地方。本文所說的交易系統,則是交易人用來決定送出哪些委託單的一套規則。

交易系統和交易策略是一樣的嗎?

日常用語中兩者有重疊,但系統是完整版。策略常常只是想法與進場訊號。系統還加上出場、部位大小規則與風險限制,每一項都寫成電腦能在每根 K 棒上檢查的形式。簡單的檢驗方式是:陌生人拿到相同資料,不必發問,是否會做出相同的交易。

一套系統需要多少筆交易,回測才有意義?

要夠多,使幾筆交易改變時,平均每筆損益不會有太大變動。少於約 30 筆只是提示,不算結果,許多系統化交易人要有幾百筆才會相信單筆數字。像本文這樣 76 筆的回測,能看出規則行為的輪廓,但無法精確得出平均值,這也是這類候選策略下一步該是增加資料、而不是開實單帳戶的原因之一。

參考文獻

  • 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.
  • CME Group. E-mini Nasdaq-100 Futures Contract Specs. https://www.cmegroup.com/markets/equities/nasdaq/e-mini-nasdaq-100.contractSpecs.html