當沖(day trading)是什麼:如何在扣除成本後檢驗策略
當沖是指在同一個交易日內進場並出場。當沖策略要值得交易,必須在回測中以你實際拿得到的價格成交,且扣除買賣兩邊的成本後,平均每筆損益仍明顯為正。
作者 Soren Huang · 發佈 · 更新於 · 編輯原則
目錄
當沖是什麼意思?
當沖(day trading)是指在同一個交易日內進場並出場同一個部位,因此不留任何隔夜部位。當沖策略要能成立,扣除進場與出場兩邊的手續費、稅與滑價後,平均每筆損益必須仍明顯為正。回測也必須以你實際拿得到的價格成交。
完整名稱是「當日沖銷」,意思是同一天內互相抵銷。當沖是在同一個交易日內買進並賣出同一個商品,使收盤時你的部位為零。你可以先買後賣,也可以先賣後買回。你的結果是價差減去兩筆交易的成本。
由於當天結束時部位是平的,隔夜跳空不會打到你的部位。但另一面是成本:每個想法都變成一次完整的一買一賣(來回),每次來回都要付兩次成本。
對期貨而言,「一個交易日」指的是一個交易時段,而不是一個日曆日。台指期的夜盤從 15:00 進行到隔天清晨 05:00,期交所將它算作下一個交易日的一部分。假設你在 22:00 進場、01:00 出場,這筆交易雖然跨過午夜,但仍然是當沖。你的資料如何處理這一點很重要,詳見期貨回測中的夜盤:只用日盤 vs. 全時段 K 棒。
股票當沖與期貨當沖有什麼不同?
兩者都在同一天了結部位,但台灣股票當沖需要另外與券商簽署協議,且賣出時要按比例繳稅;期貨當沖的稅少得多,也可以在夜間進行。
| 問題 | 台灣股票當沖(股票當沖) | 台指期當沖 |
|---|---|---|
| 誰可以做? | 符合券商條件並已簽署當沖協議的帳戶 | 任何期貨帳戶皆可使用全額保證金;降低的當沖保證金需另與券商簽署風險預告書 |
| 交易時間 | 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 點。較小的契約需要以點數計算更大的波動才能打平。
相同的比較,以及更詳細的成本估算,請見回測中的交易成本:手續費、滑價與平均每筆損益。
如何用貼近實際的成交價回測日內規則?
要得到貼近實際的成交,請使用相對持有時間夠短的 K 棒進行測試,把每個訊號在下一根 K 棒成交並加入滑價,且只允許在你真正會交易的交易時段進場。請依序執行以下步驟:
- 選擇 K 棒週期。假設你的交易通常持續 30 分鐘。那麼 30 分鐘 K 棒幾乎看不到交易內部的走勢,而 1 分鐘或 5 分鐘 K 棒則能顯示價格走過的路徑。
- 設定交易時段。決定只用日盤,或日盤加夜盤,並在測試與實單交易中使用相同的選擇。讓規則在交易時段結束前出場,這樣測試中就不會有交易被留到隔夜。
- 使用下一根 K 棒成交。下一根 K 棒成交是指在產生訊號的那根 K 棒之後的下一根 K 棒成交委託。一個以某根 K 棒收盤價做出判斷的規則,不可能同時以那個收盤價成交。
- 每邊輸入成本。像上面的範例一樣輸入手續費、稅與滑價。使用測試中各期間當時適用的稅率。
- 嚴格對待限價單。只有當價格穿越限價時才算限價單成交,只是碰到不算。停損單以停損價或更差的價格成交。
- 處理同時觸及停損與停利的 K 棒。一根 K 棒的最高價與最低價無法告訴你哪個先發生。假設停損先被觸發。
- 檢視漲跌停鎖死的日子。對股票而言,找出價格收在 10% 漲跌幅限制的那些日子裡的交易。檢查測試是否以沒有成交過的價格出場。
在 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 棒成交、費用與滑價,以及交易時段。績效報表會分別顯示權益、回撤、個別交易、各期間績效,以及多空兩側。

