VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
交易研究社 / 市場觀點

當沖(day trading)是什麼:如何在扣除成本後檢驗策略

當沖是指在同一個交易日內進場並出場。當沖策略要值得交易,必須在回測中以你實際拿得到的價格成交,且扣除買賣兩邊的成本後,平均每筆損益仍明顯為正。

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

目錄
  1. 當沖是什麼意思?
  2. 股票當沖與期貨當沖有什麼不同?
  3. 一次當沖的一買一賣(來回)要花多少成本?
  4. 如何用貼近實際的成交價回測日內規則?
  5. 為什麼交易次數越多,當沖反而越難?
  6. 好的與不好的當沖測試長什麼樣子?
  7. 常見問題
  8. 參考文獻

當沖是什麼意思?

當沖(day trading)是指在同一個交易日內進場並出場同一個部位,因此不留任何隔夜部位。當沖策略要能成立,扣除進場與出場兩邊的手續費、稅與滑價後,平均每筆損益必須仍明顯為正。回測也必須以你實際拿得到的價格成交。

完整名稱是「當日沖銷」,意思是同一天內互相抵銷。當沖是在同一個交易日內買進並賣出同一個商品,使收盤時你的部位為零。你可以先買後賣,也可以先賣後買回。你的結果是價差減去兩筆交易的成本。

由於當天結束時部位是平的,隔夜跳空不會打到你的部位。但另一面是成本:每個想法都變成一次完整的一買一賣(來回),每次來回都要付兩次成本。

對期貨而言,「一個交易日」指的是一個交易時段,而不是一個日曆日。台指期的夜盤從 15:00 進行到隔天清晨 05:00,期交所將它算作下一個交易日的一部分。假設你在 22:00 進場、01:00 出場,這筆交易雖然跨過午夜,但仍然是當沖。你的資料如何處理這一點很重要,詳見期貨回測中的夜盤:只用日盤 vs. 全時段 K 棒。

台灣交易時間時間軸:股票 09:00 至 13:30,台指期日盤 08:45 至 13:45,期貨夜盤 15:00 至 05:00,並算作下一個交易日 夜盤 = 次一交易日 台灣單一交易日(依比例) 股票 09:00–13:30 期貨日盤 08:45–13:45 期貨夜盤 15:00–05:00 次一交易日 期貨夜盤算作次一交易日。 所以:測試時使用同一套交易時段規則。
台灣股票當沖必須在 09:00 至 13:30 之間了結。台指期當沖也可以在夜盤進行,夜盤歸屬下一個交易日。

股票當沖與期貨當沖有什麼不同?

兩者都在同一天了結部位,但台灣股票當沖需要另外與券商簽署協議,且賣出時要按比例繳稅;期貨當沖的稅少得多,也可以在夜間進行。

問題台灣股票當沖(股票當沖)台指期當沖
誰可以做?符合券商條件並已簽署當沖協議的帳戶任何期貨帳戶皆可使用全額保證金;降低的當沖保證金需另與券商簽署風險預告書
交易時間09:00–13:30日盤 08:45–13:45,夜盤 15:00–05:00
先賣僅限符合資格的股票與帳戶放空與買進一樣簡單
手續費依成交金額的百分比,買賣各收一次每口固定金額,買賣各收一次
交易稅僅賣出時課徵,依金額的百分比契約價值的 0.002%,買賣各收一次
若無法了結必須在兩個營業日後交割全額買進款項部位留倉過夜,需要全額保證金

台灣股票一天的價格相對前一日收盤最多只能波動 10%。在股票鎖在漲跌停的日子,你可能完全無法了結當沖。期貨的槓桿較高,因為保證金只涵蓋契約價值的一部分。

一次當沖的一買一賣(來回)要花多少成本?

以全額手續費率計算,台灣股票一次來回的成本約為成交金額的 0.44%,且尚未計入滑價。價格必須走出超過這個幅度,這筆交易才開始賺錢。

一次來回是一次進場加上對應的出場。滑價是你的規則想要的價格與你實際成交價格之間的差距。任何一筆當沖,成本檢查都可以寫成一行:

淨損益 = 毛損益 − (2 × 手續費 + 稅 + 2 × 滑價)

這裡的毛損益是價差乘以數量。手續費是單邊的券商費用。稅是整個來回的交易稅。滑價是單邊損失的價格。

成本的各項輸入如下:

  • 股票手續費。公告的最高手續費是每邊成交金額的 0.1425%。許多券商提供折扣,請使用你自己的費率。
  • 股票稅。賣出時的一般證券交易稅為 0.3%。自 2017 年起,符合資格的股票當日來回適用降低後的 0.15% 稅率。法律只在限定期間內訂定這個降低的稅率,並已延長多次。如果你的回測涵蓋降稅之前的年份,這些年份請使用 0.3%。
  • 期貨稅。台指期的稅為契約價值的 0.002%,買賣各收一次。

假設性範例

股票:你以 NT$80.0 買進一張 1,000 股,並以 NT$80.6 賣出,使用全額手續費率。在這個價位,一個跳動點是 NT$0.1。

項目NT$
毛損益(0.6 × 1,000)600
手續費,買進(80,000 的 0.1425%)−114
手續費,賣出(80,600 的 0.1425%)−115
當沖稅(80,600 的 0.15%)−121
滑價,每邊一個跳動點−200
淨損益50

價格走了 0.75%,只剩下 NT$50。如果價格變動是 NT$0.5 而不是 NT$0.6,同一筆交易就會虧損。

期貨:台指期在 20,000 點,契約價值為 20,000 × NT$200 = NT$4,000,000。稅每邊 NT$80。假設手續費每邊 NT$50,每邊滑價一點(NT$200)。一次來回的成本是 NT$660,即 3.3 個指數點。以小型契約(每點 NT$50)來看,假設手續費每邊 NT$25。稅每邊 NT$20,每邊滑價一點為 NT$50。一次來回的成本是 NT$190,即 3.8 點。較小的契約需要以點數計算更大的波動才能打平。

假設一筆股票當沖毛利為新台幣600元;買進手續費114、賣出手續費115、稅121及滑價200共吃掉550元,淨損益剩50元 成本吃掉600中的550 假設股票當沖,新台幣元 毛利 +600 買進手續費 −114 賣出手續費 −115 稅 −121 滑價 −200 淨損益 +50 600元只剩50元。 所以:成本要與平均每筆損益比較。
假設性的股票交易:手續費、稅與滑價吃掉了 NT$600 毛利中的 NT$550。

相同的比較,以及更詳細的成本估算,請見回測中的交易成本:手續費、滑價與平均每筆損益。

如何用貼近實際的成交價回測日內規則?

要得到貼近實際的成交,請使用相對持有時間夠短的 K 棒進行測試,把每個訊號在下一根 K 棒成交並加入滑價,且只允許在你真正會交易的交易時段進場。請依序執行以下步驟:

  1. 選擇 K 棒週期。假設你的交易通常持續 30 分鐘。那麼 30 分鐘 K 棒幾乎看不到交易內部的走勢,而 1 分鐘或 5 分鐘 K 棒則能顯示價格走過的路徑。
  2. 設定交易時段。決定只用日盤,或日盤加夜盤,並在測試與實單交易中使用相同的選擇。讓規則在交易時段結束前出場,這樣測試中就不會有交易被留到隔夜。
  3. 使用下一根 K 棒成交。下一根 K 棒成交是指在產生訊號的那根 K 棒之後的下一根 K 棒成交委託。一個以某根 K 棒收盤價做出判斷的規則,不可能同時以那個收盤價成交。
  4. 每邊輸入成本。像上面的範例一樣輸入手續費、稅與滑價。使用測試中各期間當時適用的稅率。
  5. 嚴格對待限價單。只有當價格穿越限價時才算限價單成交,只是碰到不算。停損單以停損價或更差的價格成交。
  6. 處理同時觸及停損與停利的 K 棒。一根 K 棒的最高價與最低價無法告訴你哪個先發生。假設停損先被觸發。
  7. 檢視漲跌停鎖死的日子。對股票而言,找出價格收在 10% 漲跌幅限制的那些日子裡的交易。檢查測試是否以沒有成交過的價格出場。
多單於100進場後,一根K棒同時觸及103的停利價與98的停損價;K棒資料無法顯示何者先發生,因此保守假設為先觸及停損 假設先觸及停損 100做多;一根K棒同時觸及 停利 103 進場 100 停損 98 先停利? 先停損? 採此假設 K棒資料看不出順序。 因此:視為停損。
當一根 K 棒同時觸及停損與停利,K 棒資料無法顯示哪個先發生。安全的假設是停損先。

在 AlphaPrime(Valynox)中,回測讓你設定資料解析度、下一根 K 棒成交、費用與滑價,以及交易時段。搜尋中的每一個候選策略都會在這些設定已套用的前提下接受評估。

為什麼交易次數越多,當沖反而越難?

每多一筆交易,就多一次完整的來回成本,也多一次成交不佳的機會。策略持有交易的時間越短,成本吃掉毛優勢的比例就越大。

想像一家店,每賣出一件商品賺一枚硬幣。它賣出數千件,所以總額看起來很大。如果租金每件商品多一枚硬幣,整家店就賺不到錢。短持有期策略也是同樣的道理。它的大量交易看起來令人放心,但每邊多一個跳動點的滑價就能抹掉成果。

高頻交易是持有部位只有數秒或更短,並依賴你在委託隊列中的位置與你連到交易所的速度的交易。K 棒資料看不到委託簿、你的隊列位置或你的延遲,所以 K 棒回測無法檢驗這種風格。對以 K 棒為基礎的當沖,請選擇交易持續數根 K 棒的規則。這樣每筆交易的波動相對於一個跳動點才夠大。

日內資料也讓過度最佳化更容易發生。過度最佳化是指選出符合過去雜訊、而非可重複出現的型態的規則。分鐘 K 棒給了搜尋數百萬個小波動可供擬合。你測試的變體越多,最佳的那個就越可能只是運氣好(Bailey et al., 2014)。策略生成中的過度最佳化:如何不被自己騙說明了如何讓搜尋保持誠實。

好的與不好的當沖測試長什麼樣子?

較強的當沖測試在較高成本下,仍能在未見過的資料上、跨越交易時段各個時間維持正的平均每筆淨損益。較弱的測試則依賴其中某一項條件。

樣本內資料是搜尋用來挑選規則的期間;樣本外資料是搜尋從未見過的較後期間。

檢查較弱的結果較強的結果
毛平均每筆損益 vs. 一買一賣(來回)成本大致相等是成本的數倍
滑價加倍轉為負仍為正
樣本外視窗只有樣本內獲利多數視窗為正
一天中的時間幾乎所有獲利都來自開盤後的第一根 K 棒分散在你交易的各個時段
多空兩側其中一側扛下所有獲利,而你無法解釋原因兩側都有貢獻,或單側的原因很清楚
每個測試視窗的交易筆數寥寥幾筆每個視窗都有足夠的交易

大多數的股票當沖技巧與當沖教學描述的是進場型態。這張表提供了一個方法,讓你在自己的資料上檢查其中任何一種。要在未見過的資料上測試,請使用推進分析。AlphaPrime 的策略檢驗可以用自訂門檻執行推進分析。

若你使用 AlphaPrime,這代表:在第一次執行之前,先把你實際的每邊成本與交易時段放進搜尋設定。然後在看其他任何東西之前,先用兩倍滑價與推進分析檢驗入圍的策略。

常見問題

當沖是什麼意思?

當沖是當日沖銷的簡稱,意思是同一天內互相抵銷。它指的是在同一個交易日內進場並出場同一個部位,因此不留任何隔夜部位。你可以先買後賣,也可以先賣後買回。你的結果是價差減去兩筆交易的成本。

在台灣,期貨當沖比股票當沖便宜嗎?

台指期的稅低得多:每邊為契約價值的 0.002%。當沖股票的賣出要繳 0.15%。手續費與滑價兩邊仍然都要付。請把一次來回的總成本,與你的策略通常能捕捉到的波動(以點數或跳動點計)相比。

如果我無法了結股票當沖,會怎樣?

如果你是先買,就必須在交割日(兩個營業日後)像一般買進一樣付清全額買進款項。如果你是先賣,券商必須取得股票來交割,這會增加成本。當股票鎖在每日漲跌幅限制時,就可能發生這種情況。

回測當沖策略需要逐筆(tick)資料嗎?

對於持有一筆交易數根 K 棒的規則,不需要。用 1 分鐘或 5 分鐘 K 棒搭配下一根 K 棒成交與滑價,就能貼近實際地測試。依賴委託簿或極快成交的策略則需要委託層級的資料,無法用 K 棒來評斷。

我怎麼知道當沖回測是不是好得不真實?

用兩倍滑價重跑一次,並檢查平均每筆淨損益。接著在搜尋沒用過的資料上測試。如果獲利消失,或幾乎全部來自交易時段的第一根 K 棒,這個結果很可能反映了過於樂觀的成交或被擬合的雜訊。

參考文獻

  • 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.

AlphaPrime 在這裡能幫上什麼

AlphaPrime 的 回測在每一次評估中都會套用你所選的資料解析度、下一根 K 棒成交、費用與滑價,以及交易時段。績效報表會分別顯示權益、回撤、個別交易、各期間績效,以及多空兩側。

看方案與價格