一分鐘看懂
程式交易是把「什麼時候進場、出場、停損」寫成程式,讓電腦照規則回測和下單。流程大致是:選平台寫策略、用歷史資料回測、用沒看過的資料驗證、小口數實單、加上自動風控。最常見的失敗是把參數調到過去最好看,到了實單就失靈,程式寫錯反而少見。用加權指數十年資料實測,2016~2021 年表現第一名的均線參數,到了 2022~2026 年在 31 組參數裡只排第 23 名。
很多人想做程式交易,是因為受不了自己盤中亂下單:說好停損卻沒砍、看到大漲就追。把規則交給電腦,至少執行的時候不會猶豫。
但程式只會照你寫的做。規則本身不好,電腦會很有紀律地把錢虧掉。所以程式交易大部分的工作,是在確認「這套規則值得交給電腦」。
程式交易的五個步驟
| 步驟 | 要做的事 | 最常見的坑 |
|---|---|---|
| 1. 選平台 | MultiCharts、Python、XQ 等 | 選了跟自己的期貨商接不起來的平台 |
| 2. 寫策略 | 把進出場規則寫成程式 | 規則模糊,程式寫不出來 |
| 3. 回測 | 用歷史資料跑一次 | 忘了扣交易成本、偷看未來資料 |
| 4. 驗證 | 用沒看過的資料再測 | 把參數調到過去最好看 |
| 5. 實單與風控 | 小口數上線,加自動停機條件 | 斷線、重複下單、沒人看管 |
步驟 1:選平台
| 平台 | 語言 | 適合 |
|---|---|---|
| MultiCharts | PowerLanguage(類似 EasyLanguage) | 想用圖表介面、語法簡單,台灣多家期貨商有串接 |
| Python | Python | 想自己掌握資料和邏輯,願意多寫一些程式 |
| XQ 全球贏家 | XScript | 已經用 XQ 看盤,想直接在上面寫策略 |
步驟 2~3:寫策略、回測
一個最簡單的策略:20 日均線在 60 日均線上方就做多,否則空手。用加權指數 2016 年 10 月到 2026 年 10 月的日線回測,每次進出扣 2 點成本:
| 項目 | 均線策略 | 一直抱著不動 |
|---|---|---|
| 總損益 | 31,569 點 | 35,922 點 |
| 最大回撤 | −7,808 點 | −7,808 點 |
| 夏普值 | 1.07 | 0.97 |
| 持有時間 | 68% | 100% |
均線策略少賺了一些,但只有 68% 的時間在場上,夏普值也比較高。這就是回測要回答的問題:多花這些力氣,換到的是更高的報酬、更少的風險,還是什麼都沒換到?
步驟 4:驗證,最多人跳過的一步
拿 2016~2021 年的資料,測試 31 組不同的均線參數,找出夏普值最高的組合,是 40 日和 60 日均線。再拿這組參數去跑 2022~2026 年的資料:
| 2016~2021(找參數用) | 2022~2026(沒看過的資料) | |
|---|---|---|
| 40/60 的排名 | 31 組裡第 1 名 | 31 組裡第 23 名 |
| 40/60 的夏普值 | 1.11 | 1.12 |
| 31 組的夏普值中位數 | 1.22 |
在過去表現最好的參數,到了未來只是中下水準。參數調得越細,越容易只是貼合了過去的雜訊。這一步沒做,回測結果再漂亮都不能信。
步驟 5:實單與自動風控
| 風險 | 自動處理方式 |
|---|---|
| 單日虧損過大 | 虧到設定金額就全部平倉、當天停止下單 |
| 委託沒成交 | 超過設定秒數自動取消或改價 |
| 斷線 | 自動重連,重連後先對帳再繼續 |
| 部位跟程式認知不一致 | 每隔一段時間對帳,不一致就停機通知 |
| 電腦當機、停電 | 放在雲端主機(VPS),並設定手機通知 |
實單一開始用最小口數(例如微台一口),跑一兩個月確認跟回測差不多,再慢慢加大。
程式交易不能做到的事
| 常見期待 | 實際上 |
|---|---|
| 寫好就可以放著不管 | 要定期檢查成交、滑價、斷線紀錄 |
| 回測賺錢,實單就會賺 | 滑價、成交不到、市場改變都會讓結果變差 |
| 參數找到最佳就好 | 最佳參數常常只適用過去 |
| 程式交易一定比手動好 | 它只保證照規則做,規則好壞還是要靠你 |
程式交易專題文章
- 程式交易平台怎麼選?MultiCharts、Python、XQ 全球贏家比較
- MultiCharts PowerLanguage 語法速成
- Python 回測怎麼寫?附完整程式碼
- 回測報告怎麼看?勝率、獲利因子、夏普值與最大回撤
- 樣本外測試與滾動前進分析
- 期貨券商 API 串接實務
- 程式交易實盤風控與雲端主機(VPS)
台指期的合約規格、保證金和交易成本,可以先看台指期貨實戰全指南和台指期交易成本試算。技術指標的寫法和用法,可以看期貨技術分析怎麼入門。