什麼是程式交易?
程式交易(Algorithmic Trading)是指將交易策略寫成程式碼,由電腦自動執行買賣決策的交易方式。它不是一種新的交易策略,而是一種執行策略的方法。你原本用眼睛看的技術指標、用手動下的委託單,全部交給程式來完成。
為什麼要用程式交易?
排除情緒干擾
人類天生不擅長在壓力下做決策。看到帳面虧損時不願停損、看到股價飆漲時衝動追買——這些情緒化行為是散戶虧損的主因。程式不會恐懼,也不會貪婪。
高速執行
程式能在毫秒之間完成判斷和下單,不會錯過轉瞬即逝的交易機會。
回測驗證
程式交易最大的優勢是:你可以用歷史數據驗證策略的有效性,在投入真金白銀之前就知道策略的預期表現。
一致性
同樣的策略,程式每次都會做出完全相同的決策。不會因為今天心情好就多買一點,心情差就不想下單。
入門技術路線
程式語言選擇
- Python:最受歡迎的選擇,生態系完整,適合策略研究和回測
- Excel VBA:門檻最低,適合簡單的策略自動化
- MultiCharts / TradeStation:專業交易平台,內建策略編寫功能
對新手而言,Python 是最推薦的起點。
Python 常用套件
- pandas:數據處理與分析
- numpy:數值計算
- matplotlib:圖表繪製
- backtrader / zipline:回測框架
- TA-Lib:技術指標計算
數據來源
台股的歷史數據可以從以下來源取得:
- 台灣證券交易所開放資料
- 各大券商提供的 API
- 付費數據供應商
第一個策略:雙均線交叉
以最經典的雙均線交叉策略為例:
策略規則
- 當 5 日均線向上穿越 20 日均線時,買進
- 當 5 日均線向下穿越 20 日均線時,賣出
- 每次交易投入固定金額
策略邏輯
短期均線穿越長期均線代表短期趨勢改變。雖然這個策略很簡單,但它展示了程式交易的基本框架:訊號產生 → 部位計算 → 下單執行 → 風險管理。
從策略到實盤的步驟
第一步:策略構思
用文字描述你的交易邏輯,包括進場條件、出場條件、部位大小、停損停利。
第二步:程式化
將策略翻譯成程式碼。建議先用簡單的邏輯開始,確認程式碼正確後再逐步增加複雜度。
第三步:回測
用歷史數據測試策略表現。觀察年化報酬率、最大回撤、勝率、盈虧比等指標。
第四步:紙上交易
在不投入真實資金的情況下,用即時行情模擬交易,觀察策略在實時環境中的表現。
第五步:小額實盤
確認策略在紙上交易中表現穩定後,先用小額資金實際交易,觀察滑價和手續費對績效的影響。
常見陷阱
過度最佳化
調整太多參數讓策略完美適配歷史數據,結果在未來行情中表現很差。這叫做「曲線擬合」(Curve Fitting)。
忽略交易成本
台股的交易成本包括手續費(買賣各 0.1425%)和證交稅(賣出 0.3%),頻繁交易的策略必須考慮這些成本。
存活者偏差
只用現在還存在的股票做回測,忽略了已經下市的公司,會高估策略績效。
實戰建議
程式交易的門檻正在快速降低,但成功的關鍵不在於寫程式的能力,而在於交易策略本身的邏輯是否合理。建議先學好基本的技術分析和風險管理,再將你已經驗證有效的手動策略程式化。記住,垃圾策略程式化之後,還是垃圾策略。