請更新您的瀏覽器

您使用的瀏覽器版本較舊,已不再受支援。建議您更新瀏覽器版本,以獲得最佳使用體驗。

【TQuant 從 0 到 1 – Day 2】 避開量化交易的隱形殺手:用 TQuant Lab 精準控制手續費與滑價,讓策略更勝一籌!

TEJ 台灣經濟新報

更新於 2025年01月20日09:10 • 發布於 2025年01月02日05:30
量化交易

Photo byKelly Sikkema onUnsplash

前言

在投資市場中,往往都會忽略一個關鍵問題:交易其實是有成本的!手續費與滑價看似不起眼,但卻可能在不知不覺間吞噬你的獲利。我們今天就要用最簡單易懂的方式,帶你認識什麼是手續費和滑價,並教你如何用 TQuant Lab 精準控制這些交易成本,讓你的投資策略事半功倍!不管你對量化交易有多陌生,放心,跟著我們的步驟,馬上就能輕鬆上手!

手續費

手續費,其實在我們的日常生活中隨處可見。比如,當你轉帳給朋友,銀行可能會收取轉帳手續費;又或者你在 ATM 提款,有些銀行會收取跨行手續費。這些都是我們支付服務費用的一種形式。

在交易中也是一樣,每當我們買賣股票、期貨或其他金融商品,券商會收取一筆手續費作為交易服務的費用。就像轉帳需要付銀行手續費一樣,這筆費用看起來很小,但累積起來卻可能對你的投資回報產生不小的影響。所以,了解手續費並學會計算,是每個投資新手必須掌握的一個重要概念!

from zipline.api import set_commission from zipline.finance import commission def initialize(context): set_commission(commission.<其中一種commission models>)

程式碼中的commission models就是將以下五種模型依照使者用需求去做選用

1. NoCommission

這種方式不收取任何手續費,通常會出現在模擬交易或某些優惠活動中。

2. PerDollar

這種方式是按照交易金額的比例來收取手續費,每交易一元的股票所需支付的固定費用。預設為 0.0015 元。舉例來說,我們今天將cost設定為0.002,那麼買賣 10,000 元的股票就會支付 20 元手續費。

3. PerTrade

這種模式是根據每筆交易來收取固定的手續費。不管交易金額大小,都會支付相同的費用。預設為 0 元。舉例來說,我們今天將cost設定為50,那麼無論買賣 1,000 元還是 1,000,000 元的股票,手續費都固定是 50 元。

4. PerShare

這種方式是根據你交易的股數來計算手續費,每一股會收取固定的費用。例如,假設每股手續費是 0.01 元,那麼買賣 1,000 股 的股票,手續費就是 10 元

此外,這種計算方式通常可以設定一個「最低手續費」,也就是參數 min_trade_cost,預設情況下沒有最低收費限制(即為 0)。設定「最低手續費」的目的,是確保即使交易量很小,也能達到基本的收費標準。

延續上面的例子,假設我們設定 min_trade_cost = 15.0,但計算出來的手續費只有 10 元,這時候模型會自動將手續費調整為 15 元,以符合最低手續費的要求。

5. Custom_TW_Commission

台灣股票市場的手續費與稅金

在台灣股票市場,進行股票交易時主要會產生 兩個直接成本手續費證交稅

手續費

  • 計算方式:手續費 = 成交價 × 成交股數 × 0.1425% × 折扣

  • 預設手續費率為 0.1425%

    • 折扣(discount)預設值為 1,即沒有折扣(可自行設定優惠折扣)。
  • 最低手續費:預設最低手續費(min_trade_cost) 20 元,即使計算的手續費低於 20 元,也會按照 20 元收費。

  • 特點買進賣出時皆須繳交。

證交稅

  • 計算方式:證交稅 = 成交價 × 成交股數 × 證交稅率

  • 證交稅率(tax)預設值為 0.003

  • 特點:只有在賣出股票時才需要支付證交稅,買進時不收取。

舉例說明

假設你在台灣股票市場進行一筆交易:

  • 成交價:50 元/股
  • 成交股數:1,000 股
  • 手續費折扣:預設為 1.0(無折扣)

手續費計算 (買進或賣出都要繳交)

50×1,000×0.1425%×1=71.25 元
由於手續費高於最低手續費 20 元,所以實際收取手續費為 71.25 元(實際交易時若有小數點皆採無條件捨去)。

證交稅計算(賣出時才需要繳交)

50×1,000×0.3%=150 元

滑價

滑價(Slippage)是指你下單時所預期的價格和實際成交價格之間的差異。這種現象通常發生在市場價格快速波動流動性不足的情況下,特別是當你的下單量較大、標的交易量較小時更容易出現。

在交易中,滑價是一種中性現象,並不一定是壞事。當市場價格對你有利時,滑價可以幫你節省成本或提高收益;而當市場價格對你不利時,滑價則可能增加你的交易成本或降低收益。

為什麼會發生滑價?

  • 市場價格波動在市場波動較大的情況下,下單時價格可能迅速變動,導致實際成交價格與你看到的預期價格不同。

  • 市場流動性不足當市場上的買賣單量較少(流動性低)時,很難立即以理想價格成交,可能需要與其他價格的單子進行撮合,導致滑價發生。

  • 大額交易的影響若你的交易量較大,而市場上的買賣單有限,則訂單可能會逐步撮合到不同的價格,這會產生較大的滑價。

例子

假設你準備買入 100 股股票,預期價格是 50 元/股

  • 不利滑價(價格上漲) 市場價格在你下單的瞬間上漲至 50.2 元,你實際成交的價格變為 50.2 元

  • 預期成本:100 股 × 50 = 5,000 元

  • 實際成本:100 股 × 50.2 = 5,020 元

  • 滑價成本:增加了 20 元

  • 有利滑價(價格下跌) 市場價格在你下單的瞬間下跌至 49.8 元,你實際成交的價格變為 49.8 元

  • 預期成本:100 股 × 50 = 5,000 元

  • 實際成本:100 股 × 49.8 = 4,980 元

  • 滑價收益:節省了 20 元

如何控制滑價?

雖然滑價難以完全避免,但我們可以透過以下方式來降低不利滑價的影響:

  • 選擇流動性較高的標的:交易量大的股票或市場,較少出現流動性不足的問題。
  • 避開市場波動劇烈的時段:例如開盤、收盤前後,或重要消息發布時。
  • 使用限價單:透過限價單設定成交價格上限,避免出現超出預期的成交價格。

為了更貼近真實交易的狀況,TQuant Lab提供了四種滑價模型,讓你可以根據需求設定不同的滑價情境,詳請請見後續教學”回測四大架構的基本設定 initialize的具體設定有什麼”:

from zipline.api import set_slippage from zipline.finance import slippage def initialize(context): set_slippage(slippage.<其中一種slippage models>)

程式碼中的slippage models就是將以下四種模型依照使用者需求去做選用

1. FixedSlippage

這種滑價模型設定一個固定的價差(spread)來模擬交易成本,不能設定成交量限制。

  • 計算方式

  • 買入時的成交價格:
    成交價格 = price + spread/2

    • 賣出時的成交價格:
      成交價格 = price - spread/2
  • Parameters

  • spread(float, optional):固定的價差,預設為 0.0

2. VolumeShareSlippage

這個模型根據交易量佔當天總成交量的比例(volume share)來計算滑價,並考慮價格影響。

  • 計算方式

  • 買入時:
    price × [1 + (price_impact) × (volume_share2)]

    • 賣出時:符號改為減號。
  • Parameters

  • volume_limit(float, optional):設定交易量佔當日總量的最高百分比,預設為 2.5%

    • price_impact(float, optional):滑價影響係數,預設為 0.1

3. FixedBasisPointsSlippage

這種模型使用固定基點(basis points)來計算滑價,並設置交易量限制。

  • 計算方式

  • 買入時:
    price × [1+(basis_points × 0.0001)]

    • 賣出時:符號改為減號。
  • Parameters

  • basis_points(float, optional):設定滑價的基點,預設為 5.0

    • volume_limit(float, optional):交易量佔當日總成交量的最高百分比,預設為 10%

4. NoSlippage

這種模型不設定任何滑價

【TQuant Lab 回測系統】解決你的量化金融痛點

全方位提供交易回測所需工具

點我註冊會員,開始試用

下一篇 -【TQuant 從 0 到 1 - Day 3】(連結待補)

延伸閱讀

程式交易是什麼?程式交易教學、優缺點及常見策略懶人包 - TEJ台灣經濟新報

相關連結

查看原始文章

更多理財相關文章

01

小確幸來了!115年發票加碼 雲端專屬5百元獎將增開70萬組

CTWANT
02

快訊/聯電發布重大訊息!15.78億向ASML購入機器設備

三立新聞網
03

年前只買「這檔ETF」1個月賺百萬!股市小白驚:有點怕

民視新聞網
04

台積電列注意股仍突破天價 下一步恐被抓去關?證交所發聲了

三立新聞網
05

多次爆倉仍加碼!黃立成帳戶僅剩78萬 深夜再投769萬翻身

CTWANT
06

0050換股倒數!市場預期「4進4出」 哪些最有望被納入?誰會被踢出?

新頭殼
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...