Generic selectors
Exact matches only
Search in title
Search in content
Filter by Categories
時事短評
量化程式投資
產業關鍵報告
投資觀念
實用指標教學
法說會快報
個股關鍵報告
未分類
test

繼 <程式交易是什麼?白話文看懂常見使用策略> 為各位讀者初步介紹了程式交易及數個常見的策略類型,此篇文章會帶讀者在建構自己的交易策略前,先了解一下如何評估策略的績效表現和開發過程中有哪些細節需要特別注意。看完這篇文章,你將了解以下幾件事情:

  1. 程式交易策略三大面向評估:獲利性、虧損性及交易類型
  2. 交易策略開發數點注意事項
  3. 實際回測圖表應如何解讀

策略的好壞不能僅評估報酬率,虧損幅度和交易次數等多個面向也需納入衡量

當程式交易者完成一個交易策略的開發後,會透過回測(back test)來檢視該策略在歷史行情中的表現,藉此評估該策略未來獲利的可能性和可能遭遇的虧損狀況等等,進而優化和調整策略內容。一般而言,我們可以透過回測評估策略的(1)獲利性(2)虧損性(3)策略交易類型,以下將為讀者一一介紹:

1. 獲利性評估

獲利性評估是投資人最常評估的面向,常見的指標包含毛利(損)、淨利、報酬率、獲利因子、Sharpe Ratio、Sortino Ratio 等等,除此之外,也會透過和買入持有策略(Buy & Hold)的績效進行比較,以確認策略是否能夠打敗大盤(評估是否白忙一場,否則投資人可選擇買進並持續持有來獲得更好的績效)。

毛利就是統計此策略獲利交易所產生的總報酬金額(毛損則是虧損交易產生的總損失金額),這邊會用「毛(gross)」的原因在於這邊的報酬或虧損都需要扣除手續費及稅金等交易成本。而毛利和毛損兩者相減之後就可以得到淨利,統計出該策略在此回測區間產生的總報酬有多少。獲利因子(Profit Factor)則是利用將毛利和毛損相除,來計算每虧損一塊錢可獲利多少錢,這個數字越高越好,通常至少希望可以大於1.5。

而一般系統所稱的報酬率都是泛指整個持有期間的報酬率(HPR,holding-period return)公式如下:

報酬率可幫助我們了解此策略產生報酬的效率如何(相同時間內投入相同資金可以產生的獲利有多少)。此外,我們還需要將報酬率年化,計算年化報酬率,除了能夠利用不同年份的年化報酬率進行比較,以了解這個策略在不同市況下是否能夠穩定獲利,還可以透過整體年化報酬率進一步計算 Sharpe Ratio(夏普值),將資金淨值的波動程度納入考量,以評估在承受資金淨值波動的狀況下產生的報酬率如何(其中波動度我們利用每筆交易的報酬率標準差來衡量)。

而 Sortino Ratio(索提諾比率)則是 Sharpe Ratio 的延伸,該比率認為只應該將下行風險(也就是導致我們的資產減少的風險)納入考量,因此 Sortino Ratio 在波動度的計算上採用每筆虧損交易的報酬率標準差。

一般而言,若報酬率與獲利因子相當,我們偏好 Sharpe Ratio 和 Sortino Ratio 較高的策略,因為這樣表示我們的策略在承擔同樣的資金風險下產生的報酬率越高

最後,策略的獲利性評估通常會與同一時間區間買進並持續持有該標的或是大盤的 Buy & Hold 策略績效進行比較,來了解這樣的交易策略是否有操作的必要性,否則忙進忙出,最後績效卻不如買進後放者不管,可說是白忙一場,一定要特別注意。

 

2.虧損性評估

虧損性評估的重要性在於透過回測(歷史數據)讓使用者對策略可能產生的虧損狀況有所預期,在投入實戰後即使發生虧損也能保持信心持續執行下去,或是在獲利不如預期時用以評估是否策略失效。此面向主要評估策略在產生虧損時資金淨值的回檔空間及持續虧損的時長,其中的指標包括最大策略虧損拉回(Maximun Drawdown,MDD)、單筆最大虧損、最大連續虧損筆數等。

策略虧損拉回(Drawdown,DD)指的是資金淨值從高峰值滑落的幅度,因此每當資金淨值創新高時,DD 都會重新計算。而 MDD 指的就是 DD 中的最大值,顯示了使用此策略需要預期的最大資金回檔幅度(甚至可以將它想像成資金一投入就可能產生的虧損幅度),因此 MDD 較大的策略較不適合對回檔耐受度低的投資人使用,且我們投入執行該策略的資金也應大於 MDD,否則可能在虧損尚未結束前,策略就因資金不足而被迫停止。

Source:富果研究部

單筆最大虧損故名思義就是所有虧損交易中虧損金額最大的一筆。而最大連續虧損筆數則代表了策略最長會連續發生幾筆虧損交易(但視交易頻率的不同,同樣最大連續虧損筆數所對應的虧損時長可長可短),連續性的虧損容易使交易者開始對自己的交易策略失去信心,因此對於最大連續虧損筆數有所預期,將能夠支持交易者即使發生多筆虧損交易仍持續執行策略

在了解策略以上三個關於虧損的指標過後,我們可以大致上掌握策略實際執行時的下檔情況,並將這些預期中的虧損視為策略的一部分,即使發生也能處之泰然。於此同時,如果策略發生預期之外的虧損則可視為一個警訊,表示我們需要重新檢視策略在設計上是否有瑕疵、市況是否與預設不同,甚至回測資料本身有問題等等。

因此對於程式交易者而言,虧損性評估非常重要,除了當作定心丸穩定交易者情緒,同時也作為警報器協助我們發現問題。

 

3.策略交易類型評估

在進行完獲利性和虧損性兩大面向的評估後,我們將視角拉回到檢視整個策略的交易類型。這部分主要是讓策略使用者能夠掌握策略的交易行為樣貌,其中包含交易次數(頻率)、是否多空都做、平均持倉時間及勝率和報酬率的比較等。

交易次數(頻率)和平均持倉時間顯示了我們資金的使用效率如何,讓我們對於策略產生交易訊號的頻率有所準備,不會因長時間持倉或空倉失去耐心,導致過度交易而破壞策略原本應有的績效。

對於交易頻率高的策略(例如當沖交易策略)而言,系統的穩定性顯得更加重要(因為買賣的時間點通常會很大程度影響績效表現),使用者也因此需要花較多時間監控系統以及時排除障礙和調整策略參數等。除此之外,頻率高的交易策略也對應著較高的交易成本,如何控管買賣產生的摩擦成本(包含交易手續費、交易稅等)使其不會過度侵蝕獲利也十分重要。

而有些策略每個月或每一季才會重整(Rebalance)投資組合,此時對於系統穩定度的要求可能較低,資金規模較小的策略甚至手動下單即可,因此也較適合平時無暇看盤的投資人使用。

而在勝率和報酬率的比較上,我們通常很難找到勝率(也就是獲利交易次數占交易總次數的比例)和報酬率同時非常高的策略,因此策略開發者經常得在勝率和報酬率之間權衡(Trade-off)。

例如我們在前一篇報告中介紹的市場中性套利策略就是一個報酬率較低(由於多空兩個方向都建倉,花費了雙倍資金)但同時擁有較高的勝率(因為系統性風險已被抵銷)的策略;而趨勢跟隨策略只要掌握到正確的股價趨勢通常都可以產生較高的報酬率,但勝率卻因趨勢不易捕捉而較低。

策略開發者會避免開發出低勝率低報酬率的策略(或是績效不如買入持有的策略),並期望策略在調整和優化後勝率和報酬率都能夠持續增加,並往尋求自己的交易聖杯(高勝率高報酬率)持續努力。Source:富果研究部

儘管上圖中兩塊淺橘色區域(低勝率高報酬率和高勝率低報酬率)的策略都可能為程式交易者帶來不錯的報酬,然而大部分的交易者卻更喜好使用右上角較高勝率的策略,即使左下角的策略可能可以帶來更高的總報酬。這樣的行為可以藉由著名的行為經濟學「展望理論」來解釋,研究團隊將透過簡短的篇幅和讀者們討論為何會產生這樣的偏好產生。

 

程式交易者通常偏好選擇高勝率但報酬率較低的策略

根據心理學教授 Daniel Kahneman 著名的展望理論(Prospect Theory,該教授也因此理論獲得 2002 年諾貝爾經濟學獎),多數人對損失比對收益敏感(也稱作損失規避),且在面對獲利時,通常不願承擔風險(也稱作確定效應)。

這樣的行為體現在了程式交易者的策略選擇上:多數的交易者偏好使用勝率較高的策略(如套利策略、趨勢回歸策略),而非使用勝率較低但能帶來更大報酬率的策略(如趨勢跟隨策略),儘管後者所能帶來的總報酬金額可能遠高於前者。

因為多數人偏好規避損失(因此使用高勝率策略),而對於不確定的獲利則不願承擔相對應的高風險,因此寧可捨棄高報酬率策略。然而,我們若客觀的以評估結果來看,後者所能帶來的總報酬金額可能遠高於前者。

網路上戲稱的「幫證券商打工」,也某種程度的反應透過每次交易小小的獲利加上非常多的交易次數來獲利,其實往往反而是一個捨近求遠的過程。

然而這個問題並沒有正確解答,交易者也應該根據自己的風險偏好程度以及個性選擇適合自己的交易策略,因此這題我們就留給讀者們自行思考。

在了解完策略該如何透過回測進行評估過後,接下來我們來了解一下在開發和回測交易策略時有哪幾點需要特別注意,確保我們開發完成的策略在投入實戰後能更高機率的如我們預期來表現,而不會出現回測績效與實際績效明顯落差的問題。

 

開發和回測過程應注意以下幾點,以確保策略的實際執行結果符合預期

1.確保資料的正確性和完整性

工欲善其事,必先利其器。對於程式交易者而言資料和數據是策略的根本,唯有使用正確且完整的資料才能夠開發出良好的交易策略。錯誤資料所產生的結果可能會影響我們對策略在獲利性和虧損性的評估,進而導致我們誤判策略的績效表現,並在實際執行後產生虧損。

常見的資料問題包含資料缺值、資料誤植、未考量除權息和增減資對股價造成的影響等,都可能導致最終的回測結果出現異常。

為求資料的正確性和完整性,許多程式交易者會透過付費直接使用坊間的資料庫,但如果我們不想使用付費資料,也可以透過設計一些測試程式來檢視免費資料庫的資料內容是否有誤,進而修改和調整資料,以免後續在開發和回測上遭遇問題。

 

2.將手續費、證交稅(或其他可能之費用或稅)和滑價造成的交易成本納入衡量

策略在開發和回測時,一定要將交易手續費、證交稅和滑價(Slippage,指的是交易預期價格和執行價格之間的差異,可能來自系統延遲或因瞬間交易量大增造成市價價格波動)等交易成本納入考量,進行策略買賣點位和持有成本的調整。

這些看似微乎其微的交易成本即使只會影響幾個小數點的報酬率,但對於交易頻率高的策略而言非常重要,因為多次交易累積下來的成本可能會明顯吞噬策略的淨利(可參考後面實際案例的內容),導致我們對策略的獲利能力產生誤判。

 

3.避免誤用預視資料

部分策略在開發或回測的過程中會誤用到預視資料,也就是在產生交易訊號的資料中使用了某些在該時間點尚無法獲得的資料,例如回測時設定交易價格為當日的最低價(但標的當日的最低價應要等到休市後才能確認)、於月初使用前一個月的營收資料(但上市櫃公司營收公布的截止日為每月 10 號,因此有機會在月初使用到尚未公布前月營收資料)、於盤中買進當天三大法人買超的股票(但三大法人買賣超資料通常約在每日下午 3 點左右才會公布,盤中無法得知)等。

以上種種預視資料可能導致我們策略的回測績效表現極佳(就好像我們在樂透開獎前預先知道了開獎號碼),但實際投入交易時便會發現與回測績效的落差(或是可能因欠缺某些資料導致策略無法執行),嚴重的話可能導致原先預期能夠獲利的策略卻發生虧損。

 

4.考量交易商品之胃納量

胃納量的概念在於評估標的能夠承受多少資金的投入而價格不會因此產生太大的波動。通常使用較大資金的交易策略不適合操作胃納量過小的標的,否則可能會發生為了滿足策略的訊號(例如買足策略要求的股數),導致平均買價明顯增加(或是平均賣價減少)等交易成本上升的問題,因此在開發策略的過程中需考慮策略產出的標的胃納量是否與我們的資金規模相符,我們可以利用與成交量相關的濾網去除胃納量不足的標的,以避免投入實戰後交易成本的上升導致實際報酬和回測結果差異明顯的問題。

 

以移動平均雙線交叉策略為例,解讀回測圖表結果

最後我們透過一個簡單的實際操作案例帶大家解讀一下回測的結果。

我們使用移動平均雙線交叉策略以 100 萬元新台幣(以下同)的初始資金交易 1,000 股的台積電,當 20 日移動平均線由下往上穿過 60 日移動平均線時建立多單,而在 20 日移動平均線由上往下穿過 60 日移動平均線時平倉,並且將買賣的交易手續費都設定為 0.2%,回測區間則為 2005/7/1 – 2022/5/5。來看一下最終的回測結果:

Source:TradingView、富果研究部

首先,透過權益曲線圖可以看出來這個策略在後面幾年才開始明顯產生獲利(來自 2020-2021 年的大多頭),然而自 2021 年下半年開始的盤整行情使我們的資金開始出現大幅回檔,MDD 持續創高。

進一步研究各項回測指標,其中淨利為 319,080 元、報酬率為 31.91%,而 MDD 則是 -107,092 元(表示有可能在某一個時間點投入一百萬後連續虧損約十分之一的資金)。對比同樣的回測區間,若一開始選擇將一百萬全部買入台積電後就持續持有不賣出,則可以獲得高達 885 萬的報酬(圖中 Buy & Hold 淨利),從這點可明顯看出這個策略的績效遠遠不如買入持有策略。

截至 2022/5/5,總共交易了 36 次,勝率僅 47.22%,而其中單筆最大獲利為 301,222 元;單筆最大虧損則為 52,388 元,平均一次交易持有 73 個交易日且可獲利 8,863 元。

交易成本部分,總共付出 22,920 元的佣金,這個數字約達 7% 的淨利,顯示我們的淨利其實有顯著的部分被交易成本所侵蝕(也再次印證將交易成本納入衡量的重要性)。

總結以上結果,此移動平均雙線交叉策略在過去交易台積電的績效十分普通,相比買入持有策略則大為遜色,整體而言屬於一個勝率普通且低報酬率的策略,有待我們進一步優化以獲得更好的績效表現。

 

結論

了解如何評估策略的好壞及避免開發過程經常犯下的錯誤與開發策略本身一樣重要,因此在學習開發策略前應做足相關的準備和功課。

  • 獲利性評估讓策略使用者對報酬和承受相同風險下對應的報酬率有所掌握,也可以針對不同策略產生報酬的效率進行比較(如淨利、報酬率、Sharpe Ratio 等)
  • 虧損性評估幫助使用者對策略可能產生的虧損有所準備,即使發生預期內的虧損也能保持信心持續執行下去(如 MMD、最大連續虧損筆數等)
  • 策略的交易類型則顯示了策略的交易樣貌如何,以及勝率和報酬率權衡之後的結果。

唯有在了解策略三大面向的評估結果後,才能夠對優化過後的策略進行比較,以及更完善的掌握策略投入實戰後的樣貌

而避免在策略開發過程中犯下一些常見的錯誤則可以幫助程式交易者降低開發出不如預期甚至虧損策略的可能性,也是我們在之後開發過程中要時時注意的細節。

此篇文章所介紹的僅是一般最基礎的策略評估,有點類似透過歷史資料回測對交易策略進行一次性的健檢。然而如果真的要拿真金白銀進行交易,在策略的可行性及有效性的評估上,則是另一門學問,之後會再透過另一篇文章進行討論。

除此之外,後續的研究報告也帶大家開始嘗試開發程式交易策略,歡迎讀者持續關注。

 

▼ 「富果直送」的讀者有福啦!
使用本富果帳戶推薦碼,完成開戶後即獲得 108 枚富果幣!

 

自我揭露與聲明:

本人/本撰寫相關團體(以下簡稱我)目前無持有本文提到之股票的多方部位,且預計不會在未來 72 小時內增加持股。我與本文所提到的公司沒有商業關係,撰寫本文僅為分享,並無收取任何報酬。本文之資訊僅供分析參考,不保證內容之完整性與正確性,也不構成任何買賣有價證券之要約或宣傳。

 

責任編輯:邱翊雲(合格證券投資分析人員)

一、 未經合法授權,請勿翻載,本站內容僅供參考,本公司不負任何法律責任。

二、 投資人若依此以為買賣依據,須自負盈虧之責。

三、 與本網站有關一切糾紛與法律問題,均依中華民國相關法令解釋及適用之。 


看完這篇文章,如果你覺得:
【很有收穫】請幫我們拍手 1-5 下
【想看更多同類型文章】請幫我們拍手 6-10 下
【有其他建議 / 想許願文章主題】請留言在底下
也歡迎用 Facebook / Line / Telegram 分享文章給身邊有興趣的朋友!

69
Author

Fugle 富果研究團隊 / 台大材料系
跨足商管領域的理工青年,持續培養跨域思維和能力
相信價值投資,喜歡從科技趨勢中找尋投資機會