程式交易是什麼?一次看懂程式交易是如何運作(附策略範例)

最後更新:2022-11-10

「程式交易,到底在做些什麼?」

「有可能靠程式交易,一年賺20%以上嗎?」

過去有很多朋友,問了提到這些問題,
程式交易常常被很多人誤以為是一個神奇的公式或印鈔機,

一被問到這個問題,我通常這樣回答:「程式交易,就是你把自己想的交易方法叫電腦去做。」

程式交易是什麼?

程式交易就是讓程式去自動執行你的投資想法。

程式交易的好處是,能夠剛好幫我一次解決兩個投資困擾,包括:

  1. 自動交易:
    人不在電腦前,也可以照程式的規則幫你買賣。電腦的優點是很有紀律,但缺點是笨,不會有一般人的反應與應變能力。
  2. 回溯測試:
    簡稱回測,透過程式工具與資料,把策略規則套用在歷史資料上,驗證成效。

最簡單的理解,應該把它當成一個輔助你執行策略的自動化工具。對我來說,它是能把想法確實的去做執行,該買就買、該賣就賣,節省看盤操作的時間。

要注意的是,這無關損益,不是說用程式交易就一定賺錢。

能否賺錢取決於自己設計出來的策略,如果設計出來的策略會賠錢,程式就會自動幫你賠。

市場先生第一次碰到程式交易:

我是在唸研究所時初次接觸到程式交易,那時候在PTT上認識了一群網友,

大家開始互相交流討論投資與交易時,偶然開始嘗試。剛開始使用的第一套軟體是Multicharts,那時剛引進台灣。

於是我一邊寫論文,一邊研究程式交易,曾經一天從早上8點一直研究程式到凌晨4點,花的時間比寫論文的還要多。

一直到退伍後,才開始把重心慢慢的轉移到累積資金上,減少做研究的比例。

程式交易的流程是什麼?

程式交易的流程,一般會拆成策略建立以及程式的執行。

策略建立包括把想法轉變為收集與清理資料、建立程式邏輯、回測驗證,避免程式錯誤。

程式的執行就是自動化執行,包括取得即時報價數據,符合程式條件時自動下單買賣交易。

程式交易流程

程式交易可以解決什麼投資困擾?

你想的事情會賺錢,電腦就幫你賺;你想的事情會賠錢,電腦就幫你賠,而且還是穩定的賠。

我在剛開始學投資時遇到了 2件困擾的事情:

  • 困擾1. 交易的執行上缺乏紀律
    在操作上,我其實跟大多數人遇到一樣的紀律問題,停損時會拖延,獲利時會太快了結,或是沒辦法天天看盤,有大行情時正好要期中考…。
  • 困擾2.
    每個決策缺乏回測驗證
    我不確定現在的操作方法,在過去是否能賺錢,那就更不用說未來能不能賺錢。當時手邊的工具只有EXCEL,還有學校的一些資料庫、公開資訊等等,要做驗證其實非常困難。

對我來說,程式交易在策略建立的過程,最大的幫助是可以讓自己的策略更有邏輯性,藉由回測去對各種策略有更精確的認識。

而程式交易的自動化執行則是省時間精力且保持紀律工具,正好可以幫我解決常遇到的投資困擾。

程式交易範例》看懂程式交易是怎麼賺錢的?

首先,一套程式交易方法要證實在過去能賺到錢。

因為過去能賺到錢的方法,未來才可能賺到錢;而過去不能賺錢的方法,雖然未來也可能賺到錢,但當它虧損時,你不會有足夠的信心堅持下去。

下面是一支去年2015年底寫的策略

因為邏輯很簡單,程式碼大概不到30行,都在做簡單的加減乘除。

沒有做過特別的濾網和參數調整,也沒有加上特別的風控、資金控管。風控、資金控管,就跟烹飪調味一樣,很重要但不是最首要的。

就像一道菜,最基礎的重點是選取好的食材,

只要食材夠新鮮,後面的烹飪和調味後才會讓它加分。如果一個食材夠好,策略本身就有獲利的利基在,後面的調整就只是水到渠成。

從下圖可以看到它的一些成效。數據是用2009年~2016年。(一般來說,建議至少回推測到2004年),交易成本和滑價設1點 (200元/口)。

程式交易策略例子

  • 淨利:最後的總獲利
  • 毛利:獲利交易賺的錢
  • 毛損:虧損交易賠的錢
  • 最大策略虧損(MDD):在任何地方開始這個策略,過去最大的績效回檔。
  • 滑價:買賣有時後價格變化很快,不見得能成交在程式預設的位置,中間可能會有些微的成本或盈利。

程式交易策略例子2

最大可能虧損:
底下紅色,是從每一個績效高點,拉回的金額。
換句話說,我今天假設不幸的在近期的最高點進場,過去最衰可能會先累積虧損84000元才開始獲利。
當然這是過去歷史的最高,未來會不會更高不知道,我認為一定會。

  • 總交易次數:如果交易次數越多,統計上的可信度就越高,交易成本相對也高
  • 勝率:輸贏交易的比率,你不需要每次都贏也可以賺錢
  • 平均交易(獲利虧損):平均每做一次交易一次賺多少錢
  • 平均獲利交易:賺錢的時候,平均一筆賺多少
  • 平均虧損交易:賠錢的時候,平均一筆賠多少

程式交易如何判斷策略是否能夠穩定獲利?

一年賺30%就沒問題了嗎?

如果多做回測會發現,平均一年30%報酬率不算什麼特別高的,一年50%、100%以上的策略也是找的到,

但即使有你也不見得敢用,因為投資不能只看最後的獲利,還有很多需要注意的事。

以上段分享的策略為例,分享一下我個人是怎麼評估一個策略的幾個重點:

1. 獲利性怎麼樣?

8年淨利92萬,相當於每年獲利11萬左右,以30萬本金來算每年報酬率是有 30%,如果去除槓桿倍數,大約年報酬率約6~8%左右。

績效曲線從左下到右上,這是最基本的年年都獲利,這也是基本的

勝率5成,但贏時賺的多,輸時賠的相對少一點平均一筆交易獲利 8點,以短線策略來說就勉勉強強。

P.S. 如果是長線策略,本金也許會抓40~50萬/口,甚至不槓桿,用140萬~160萬一口去評估,
不過這策略是僅會抱隔夜短線策略,所以當年會用比較少的保證金去運作。
事後回頭看,雖然當時有賺錢,但這樣其實風險依然很高。
可閱讀:期貨保證金應該準備多少才安全?

2. 風險性怎麼樣?

策略設計本身有承受開盤跳空的隔夜風險。

最大單筆虧損目前是3萬多,未來可能有更高最大策略虧損拉回(MDD)只有8萬,這數字太低了,投資人應該很愛,但應該未來有機會遇到更大的連續規損,反正MDD就是拿來被破的。

如果降低槓桿,那這些波動風險其實會更低。

並非採用突破進場,但有突破出場,所以滑價可能會再高一點

使用的策略短線運算量大,要非常確保網路和電腦效能以及資料端連線品質,算是很大的缺點

3. 統計上的特性

樣本數夠多,537次交易,觀察每個實際交易的點位,是否跟我想的一樣,最好測到08年以前的資料比較保險。

其中有幾部份是需要特別小心的地方,我會對一些細節做額外評估例如:

這策略能賺錢嗎?我覺得可以,獲利性普通,但好處是風險也不大。

我比較喜歡這種低風險小賺小賠的方式,唯一較猶豫的是單筆獲利的效益偏低。

也有人喜歡的是大賺大賠,或是小賺大賠但高勝率,

唯一可以確定的是,測試過這麼多的策略,我並沒有找到一個超強沒風險的賺錢方法,這方法通常被稱為「聖盃」,但大多時候都只有靠盃而已…。

「沒有缺點的人,優點往往也很少。」 – 林肯

程式交易常見問與答

loader-image

市場先生的程式交易心得

神奇的印鈔機並不存在,成功的關鍵在於「信心」。

有人會說「測出來能賺錢不就好了嗎?幹嘛看這麼多指標。」但過去的歷史能賺錢,不保證未來一定和過去一樣,

沒人知道未來的行情怎麼走、市場的結構怎麼變。過程一個不小心虧損可能會超乎你意料,因此我傾向更保守的看待這件事。難題並不在前期的評估,而是未來實際執行。

比方說:連續虧損突然創下歷史新高,是否策略失效了?過去每年都賺錢,但今年沒賺,是否策略失效了?政府又突然宣布證所稅稅率提高,是否市場組成結構改變,會讓策略失效?

交易的本質就像創業做生意一樣,一開始提出規劃時每個人都很興奮,覺得一定能賺大錢,但到了實際執行面總會遇到種種困難與意外,

該放棄還是堅持?是前功盡棄,還是明哲保身?這是永遠的難題,完全就是看你對生意本身的信心。

遇到這些難題時,困難的永遠不是當初回測有多好,而是你是否有一套準則,讓自己決定適時的出場,或是堅持到底。

待續…更多程式交易文章,持續構思中

延伸閱讀:更多學習投資好文章

1. 如何十倍速度學投資
學投資如果這樣用「EXCEL」,等於賺到10年投資經驗!

2. 更多回測與統計的資料
超過30篇投資統計研究文章

3. 勝率9成並非不可能,但…你敢用嗎?
勝率9成的「選擇權賣方策略」內附 回測Excel 下載

4. 學投資該看那些書?
我的投資書單:超過30本投資好書分享

加入市場先生FB社團,充實更多理財好知識

50歲之前想退休一定要懂理財,
解決投資的煩惱!


如果覺得這篇文章有幫助,
幫我按個讚,分享給更多人看到,謝謝!

上 / 下一篇文章

一般留言

  1. 用個合邏輯的想法, 好賺的為什麼不自己賺?
    就是少了白老鼠來測試磨練這套系統, 或者它賺的是手續費

    1. 傻 我可以用這套系統吸引你付費加入會員使用 但這套系統的know how 他是不會告訴你的

  2.   因為台股將在10月26日開放盤中零股交易,本人想藉助電腦程式,在盤中同時建立100檔股票的投資組合。所需條件如下:
      一、希望電腦程式能在盤中快速選出符合條件的100檔股票。
      二、希望電腦程式能夠平均分配資金。例如要用200萬元投資100家公司股票,每一檔股票可分配到的投資金額就是2萬元(=200萬÷100檔)。
      三、因每一家公司的價位不同,希望電腦程式能以平均成本自動算出每一家公司可以買進多少股數(含交易費用)。例如某家公司股價30元,2萬元可買股數就是666股(=20,000÷30);另一家公司股價40元,2萬元可買股數就是500股(=20,000÷40);以此類推。
      四、電腦程式完成「篩選資格+分配資金+確認股數」之後,於盤中某一設定時間或13:24同時買進100檔股票。
      五、到期賣出部分:因為這是短期交易,持股時間設定在兩~五天,所以希望電腦程式能在到期當天盤中某一設定時間或13:24同時賣出所有持股。
      六、停損賣出部分:當整體投資組合的損失超過 -5%時,希望電腦程式能在13:24同時賣出所有持股。

      請問電腦程式能做到上述六點要求嗎?
      請問高屏地區有沒有在教人寫上述電腦交易程式?

    1. 我想是有遇過有人做得到,但就不知道收費多少。

  3. 我手動交易半年獲利156%,勝率100%,程式交易實在沒有什麼特別的。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *