VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
策略學院 / 商品與交易時段

期貨多空單:回測如何分開檢驗多單與空單

期貨多單在價格上漲時獲利,空單在價格下跌時獲利,兩者都是一般的合約交易,保證金與手續費相同。一個策略要把多單交易與空單交易分成兩份報表分別判斷,每份都有足夠的交易筆數,並且都已扣除成本,才算真正測試過。

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

目錄
  1. 期貨的多單與空單代表什麼?
  2. 為什麼期貨放空和買進一樣容易?
  3. 空單的保證金與手續費和多單相同嗎?
  4. 如何把回測報表拆成多單與空單的結果?
  5. 該測純做多、純做空,還是多空都做?
  6. 拆分之前,真實的 ES 多空回測長什麼樣子?
  7. 常見問題
  8. 參考文獻

期貨的多單與空單代表什麼?

期貨多空單,也就是期貨的多單與空單,是同一口合約的兩個方向:多單在價格上漲時獲利,空單在價格下跌時獲利。放空期貨合約只需一筆委託,和買進一樣。多單與空單在扣除成本後各自單獨衡量,且每一邊都撐得起自己,策略才算測試過。

多單是你先買進、之後再賣出的合約,因此價格上漲時獲利,下跌時虧損。空單是你先賣出、之後再買回的合約,因此價格下跌時獲利,上漲時虧損。可以想像兩個朋友約定下個月交貨的一袋米的價格。其中一人希望米價上漲,另一人希望米價下跌。兩人今天手上都沒有米。這就是期貨合約。

假設性範例

假設那斯達克 100 期貨合約報價 20,000 點。交易者買進一口,在 20,050 賣出,獲利 50 點。另一位交易者在 20,000 賣出一口,在 19,950 買回,同樣獲利 50 點。E-mini 合約每點價值 $20,所以兩筆交易在扣除成本前都獲利 $1,000。價格方向相反,獲利大小相同。

期貨的多單與空單互為鏡像:多單以買進進場,價格上漲時獲利,下跌時虧損,並以賣出出場;空單以賣出進場,價格下跌時獲利,上漲時虧損,並以買進出場 多空:互為鏡像 每一步都相反 多單 空單 進場 買進 賣出 獲利 價格上漲 價格下跌 虧損 價格下跌 價格上漲 出場 賣出 買進
多單與空單互為鏡像:進場方式、何時獲利、何時虧損、如何出場,全部相反。

鏡像在紙面上完美,在市場裡並不對稱。指數期貨緩升的時間多於急跌,因此程式碼上互為鏡像的規則,常產出兩份差異大的交易明細。這也是本文反覆強調的一點:不要用多空合計的總數來判斷多空策略。五種期貨演算法交易策略類型都能多空雙向交易,每一種都可能有一個弱勢的方向,被總數掩蓋。

為什麼期貨放空和買進一樣容易?

期貨合約是一紙約定,不是必須先借入的股票,所以先賣出不需要找券源、不用付借券費,也沒有價格下跌時禁止賣出的規定。賣出沒有持有的股票時,券商必須先找到可借的股票,向你收取借券費用,價格下跌期間賣單還可能無法成交。賣出尚未買進的期貨合約,則只是新建一口未平倉合約。交易所的結算所站在你與買方之間,雙方繳交相同的保證金。

步驟或成本放空股票放空期貨合約
必須先借入股票是否,新建一口合約
借券費或找券是,且費用可能每天變動否
價格下跌時賣出的限制可能適用否
需繳交的資金賣出所得現金加保證金與多單相同的保證金
委託的樣子附帶額外條件的賣單一筆委託,與買進相同
放空股票需要借入股票、支付借券費,還可能面臨賣出限制,並要繳交現金加保證金;放空期貨合約一項都不需要,繳交的保證金與多單相同,因此與買進一樣只需一筆委託 期貨放空更簡單 放空股票與放空合約 股票 期貨 借入股票 是 否 借券費 是 否 賣出限制 可能適用 否 保證金 現金+保證金 同多單 期貨放空只需一筆委託。 因此:多空共用一組成本設定。
放空股票需要的額外步驟,放空期貨合約都不需要。

這點影響回測,因為股票策略的空方帶有難以模擬的成本與中斷,這也是股票交易演算法的運作原理常讓它們只做多的原因之一,也是美股當沖的日內想法測試需要為借入的股票另列一項成本的原因。期貨策略沒有這些問題。空方可以寫成多方的完全鏡像,手續費相同,回測用同一組成本設定處理兩邊。所謂指數與商品期貨策略天生對稱,指的就是這件事。規則對稱不等於結果對稱,本文後半談的正是這一點。

空單的保證金與手續費和多單相同嗎?

交易所為每口合約訂定一個原始保證金與一個維持保證金,多單與空單都適用;手續費與交易所費用依每口、每邊收取,因此回測的成本設定對兩個方向完全一致。保證金是結算所為你的未平倉合約保管的押金。原始保證金是建立部位所需的金額,維持保證金是持有部位期間帳戶必須維持的較低金額。兩者都與方向無關。

交易所會在波動率變化時調整這些數值,所以設定測試的部位大小之前,先到交易所的合約規格頁查看現行數字,再用免費的期貨合約與損益計算機,把跳動點大小與每點價值換算成每筆交易的美元金額。E-mini 那斯達克 100 的交易所頁面列出合約規模為指數乘以 $20,最小跳動點為 0.25 點,價值 $5.00,多單與空單皆同。

回測設定多單空單
原始保證金每口相同每口相同
維持保證金每口相同每口相同
每口每邊手續費相同相同
交易所與結算費用相同相同
滑價假設相同設定相同設定,但急跌時成交可能較差
價格行為常不相同常不相同
多單與空單的回測設定:保證金、手續費與交易所費用相同,滑價是同一個設定,但急跌時空單的成交可能較差,價格行為也常不相同 成本相同,市場不同 回測設定:多單對空單 多單 空單 保證金 相同 相同 手續費 相同 相同 交易所費用 相同 相同 滑價 相同設定 可能較差 價格行為 常不相同
回測的成本設定對兩個方向完全一致,只有市場的表現不同。

最後一列是兩邊分歧之處。指數期貨往往跌得比漲得快。急跌時以停損委託進場放空,成交價可能比觸發價差數個跳動點;緩漲中鏡像的多單進場,成交價則貼近觸發價。成本設定對兩邊是同一個數字,但空方的實際成本,可能在最關鍵的日子偏高。可行的檢查方法見回測裡的交易成本:只重跑空方,滑價加倍,看平均每筆損益是否仍高於零。

如何把回測報表拆成多單與空單的結果?

多單交易讀五個數字,空單交易讀同樣五個數字,當作兩份獨立報表:淨損益、交易筆數、扣除成本後的平均每筆損益、勝率與最大回撤。合併總數把兩邊加在一起,可能看起來健康,實際上卻是一邊賺走全部獲利,另一邊只增加回撤。扣除成本後的平均每筆損益,是淨損益除以交易筆數,且每筆交易都已扣掉手續費與滑價。它是兩邊比較的第一個數字,因為不受各邊交易筆數多寡影響。

要讀的數字多單交易空單交易合計
扣除成本後的淨損益各自的數字各自的數字兩邊加總
交易筆數各自的筆數各自的筆數兩邊加總
扣除成本後的平均每筆損益淨損益 ÷ 筆數淨損益 ÷ 筆數看不出由哪一邊貢獻
勝率各自的數字各自的數字兩邊混合
最大回撤取自僅做多的權益曲線取自僅做空的權益曲線通常不是兩者加總

假設性範例

兩個策略在同一段歷史上,合計淨損益都是 $40,000。第一個策略的多方以 60 筆交易賺 $45,000,空方以 40 筆交易虧 $5,000,大部分回撤出現在空單持有期間。第二個策略的多方以 50 筆交易賺 $22,000,空方以 48 筆交易賺 $18,000,兩條權益曲線在整段期間都向上。總數相同,證據卻不同。第一個策略其實是附帶一個只會花錢的空方的純做多策略;第二個策略的兩邊各有貢獻。

兩個假設性策略合計皆為 $40k:策略 A 多方賺 $45k、空方虧 $5k,空方只增加回撤;策略 B 多方賺 $22k、空方賺 $18k,兩邊都有貢獻 總數相同,內情不同 合計皆 +$40k,假設性 策略 A 多單 +$45k 空單 −$5k 空單增加回撤 策略 B 多單 +$22k 空單 +$18k 兩邊皆獲利 只有拆開才看得出來。 因此:多空分開判斷。
總數相同,證據差異大。依方向拆分,才看得出哪個策略的兩邊都有效。

兩個細節讓拆分站得住腳。第一,每一邊的回撤,取自該邊自己的權益曲線,而不是把合併回撤拆開。純多曲線與純空曲線各有自己最差的一段,兩段通常落在不同日期。第二,每一邊的交易筆數,都要通過任何策略都該達到的同一個最低門檻。十年只有四十筆空單,只是線索,不是結論,由它算出的任何平均值,都不能單獨決定任何事。AlphaPrime(Valynox)績效報表中的多空分析,呈現的正是這種拆分,兩邊可以並排檢視,不必手動重建報表。

該測純做多、純做空,還是多空都做?

同一條規則跑三次:一次允許雙向,一次只做多,一次只做空;成本與交易時段一致,並且在跑之前,先寫下每個版本必須呈現什麼結果。Pardo(2008)將策略評估描述為以測試前定好的標準衡量績效,這裡的標準簡單明確:每一邊的最低交易筆數、扣除成本後的平均每筆損益高於零且明顯高於一買一賣(來回)成本,以及你在實單帳戶能接受的回撤上限。步驟順序重要,因為規則必須在看到任何結果之前就存在。

  1. 寫下通過規則。例如:每一邊至少 30 筆交易才算數,累積數百筆才可信;每一邊扣除成本後的平均每筆損益高於零;每一邊的回撤都在你的上限內。
  2. 跑雙向版本。記錄上一節的五個數字,涵蓋多單交易、空單交易與合併結果。
  3. 跑純做多版本,成本、交易時段與資料都相同,唯一的差別是停用空單進場。
  4. 跑純做空版本,做法相同。
  5. 決定:依步驟 1 寫下的通過規則,保留雙向、保留單向,或淘汰這條規則。
五個步驟:寫下通過規則、跑雙向版本、跑純做多版本、跑純做空版本,最後做決定;三次回測的成本與交易時段保持不變 先訂規則,再跑 3 次 五個步驟,一條固定規則 1 寫下 規則 2 多空 皆做 3 僅做 多單 4 僅做 空單 5 決定 成本+交易時段相同 規則先於結果存在。 因此:由規則決定。
以一條事先寫好的規則測試三個版本的步驟順序。三次回測的成本與交易時段保持不變。

為什麼要跑三個版本,而不是直接拆分雙向報表?因為對許多規則來說,純做多版本的結果,並不等於合併回測中的多單交易。反手規則是平多單的同時建立空單、平空單的同時建立多單,因此永遠在場內。拿掉空方後,每筆多單都需要自己的出場,交易明細、在場時間與回撤都會改變。步驟 2 的拆分報表告訴你哪一邊撐起結果;步驟 3 與 4 的單獨回測告訴你,那一邊獨自上陣時是否仍然有效。當沖演算法的建立與測試中的流程符合這個模式:規則只建一次,再當成三個候選策略測試。

三次回測的結果決定原因
兩邊單獨都通過規則兩邊都留每一邊的回撤都有相應的報酬;合併後曲線更平滑
一邊通過,另一邊未通過或筆數太少只留通過的一邊未通過的一邊增加回撤與成本,卻沒有可衡量的優勢
兩邊單獨都未通過,但合併總數看起來不錯淘汰,或回頭研究總數是兩個弱結果的加總,不是一個強結果的證據

拆分之前,真實的 ES 多空回測長什麼樣子?

拆分之前,雙向回測只呈現一組摘要數字與一條權益曲線,以下圖表是 E-mini S&P 500 期貨一次真實搜尋的樣子。這次回測用 ES 日線,期間為 2019-01-02 至 2025-06-30,允許多空雙向,一口合約,每筆交易收 $20 手續費與 $25 滑價。它是搜尋嘗試的 1,024 個中,唯一保留的候選策略,依報酬與回撤的比值挑出。唯一的進出場來自一條 Record Test 規則,是用標準指標拼成的替代規則,沒有停損、沒有停利、沒有濾網,因此它測的是雙向報表的樣貌,而不是任何特定的多空策略。

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

數字結果
淨利(已平倉)$56,377.5
最大回撤$30,507.5
交易筆數98
勝率60.2%
獲利因子1.498
平均每筆$575.28
在場時間34.26%
依方向拆分之前,雙向回測的摘要數字。把平均每筆損益與資料來源註記中的成本行相比,並留意整段期間共有多少筆交易。
依方向拆分之前,雙向回測的摘要數字。把平均每筆損益與資料來源註記中的成本行相比,並留意整段期間共有多少筆交易。 ES · 日線 · 2019-01-02 至 2025-06-30 · CPU 引擎回測

請把這些數字當成候選策略,而不是結論。事後挑出保留的候選,會讓它看起來比實際好:在同一段歷史上比較一千多組變體並保留最佳者,它呈現的一部分是剛好貼合那幾年的運氣,Bailey 等人(2014)把這點描述為搜尋中最佳回測通常被高估的原因。這些數字也看不出哪個方向賺了多少。整段期間共 98 筆交易,兩個方向共用,所以各邊單獨看只拿到其中一部分。預先寫好的通過規則裡的最低交易筆數條款,就是為這種情況而設。

合併權益曲線與回撤。先看整段期間裡成績是在哪裡賺到的、最差的一段落在哪裡,再問各段持有的是哪一邊。
合併權益曲線與回撤。先看整段期間裡成績是在哪裡賺到的、最差的一段落在哪裡,再問各段持有的是哪一邊。 ES · 日線 · 2019-01-02 至 2025-06-30 · CPU 引擎回測

下一步是本文一路鋪陳的重點。取一份你自己的雙向回測,資料類型相同,打開績效報表中的多空分析,把每一邊的五個數字寫進你在回測前訂下的通過規則。接著用相同的成本與交易時段,跑純做多與純做空版本,讓規則而不是合併總數,決定哪一邊保留。

常見問題

期貨交易中的多單與空單是什麼意思?

多單是做多部位:你先買進合約,價格上漲就獲利。空單是做空部位:你先賣出合約,價格下跌就獲利。兩者都是一般的期貨交易,以一筆委託建立,再以反向委託出場。兩者都不需要持有或借入任何東西。

期貨可以放空嗎?

可以,而且和買進一樣簡單。期貨合約是一紙約定,賣出尚未買進的合約,只是新建一口未平倉合約,不需要借入股票。沒有找券、沒有借券費,價格下跌時賣出也沒有限制。你繳交的保證金,與同樣大小的多單相同。

空單的手續費與保證金和多單相同嗎?

就單純的期貨部位而言,交易所對每口合約訂定一個原始保證金與一個維持保證金,多單與空單都適用。手續費與交易所費用依每口、每邊收取,與方向無關。唯一的實務差異是滑價:急跌時的空單進場,成交可能比鏡像的多單進場差,因此信任空方之前,先用較高的滑價設定測試。

回測中要怎麼分開看多單與空單的結果?

每個方向各讀五個數字,當作兩份獨立報表:扣除成本後的淨損益、交易筆數、扣除成本後的平均每筆損益、勝率,以及該邊自己權益曲線的最大回撤。有些報表工具直接列出這種拆分;否則匯出交易明細再依方向分組。接著把規則重跑成純做多與純做空版本,因為拿掉一邊,可能改變另一邊的出場。

為什麼策略在指數期貨上做多有效、做空卻無效?

指數期貨緩升的時間多於急跌,所以寫成鏡像的規則會產出兩份不同的交易明細:緩慢趨勢中有許多多單,急跌中則是較少、較快的空單。空方的筆數常少到無法判斷,而且在最關鍵的日子付出更多滑價。因此該用空方自己的交易筆數與扣除成本後的平均每筆損益來判斷,而不是看合併總數。

參考文獻

  • 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.
  • Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies (2nd ed.). John Wiley & Sons.
  • CME Group. E-mini Nasdaq-100 Futures contract specifications (contract size $20 × index, minimum tick 0.25 index points = $5.00). cmegroup.com/markets/equities/nasdaq/e-mini-nasdaq-100.contractSpecs.html