在<程式交易是什麼?白話文看懂常見使用策略>中提到趨勢和回歸策略因開發難度較低,是很多入門程式交易者常會使用的策略。
而這些策略通常會伴以各式技術分析指標來界定趨勢或是通道,因此我們在開發和使用這類型策略前,首先需要了解技術分析背後的原理和邏輯。看完這篇文章,你將了解以下幾件事情:
- 效率市場假說及技術分析背後原理
- 常見的技術指標類型 – 均線、布林通道、MACD
- 實際策略回測結果
♦ 富果推薦延伸閱讀:
【程式交易實戰01】從零開始建置股票當沖策略(內含策略 sample code)
技術分析的有效性源自效率市場假說
要瞭解技術分析及其理論,首先要從效率市場談起。底下將參考並根據<有關投資,先認識效率市場假說(疫情後篇)>重新檢視幾個要點。
一般公認的效率市場(Efficient Market Hypothesis, EMH)假說是由尤金.法馬(Eugene Fama)首先提出,其核心理論為:「金融資產的『價格』即時反應了與『價值』相關的一切可獲得『訊息』」。
所謂金融市場的效率,指的便是其能夠為金融資產定價的速度,越有效率的市場,就能越快用價格反應一切訊息,不過也就越難透過任何基於已存在資訊進行的分析來獲得超額報酬,包含財報分析、技術分析甚至是內線消息都沒有辦法。
不過在部分市場,仍可透過以上種種方式獲得打敗大盤的績效,這是因為市場並不一定是有效率的。關於 Fama 所定義的三階段效率市場,可以參考<認識投資常用詞:效率市場>富果文章。
而後來小勞勃·埃默生·盧卡斯(Robert Emerson Lucas, Jr.)則進一步認為金融市場的效率來自「個人利用訊息謀求個人利益」,也就是為了獲得個人私利,只要投資者願意,金融資產的價格可以高至天際,低到谷底,進而造成金融市場價格任意波動的現象,EMH 最終真正反映的是「個人利用訊息謀求私人利益」的結果。
因此市場會因反映投資者恐懼與貪婪情緒,而出現泡沫和錯殺。底下我們將透過一個簡單的假設和推論來說明這樣的現象如何使技術分析有效。
價格泡沫與錯殺證明聰明投資者並非主流,產生技術分析使力空間
我們簡單將市場參與者分成聰明投資人和一般投資人,並將聰明投資人假設像神一般的存在,知道股價底部在哪,然後進去抄底賺大錢;也知道股價頂部在哪,因此總能在高點賣出獲利了結。
但如果這樣的聰明投資人為市場的多數,那麼市場的長相應該會是:
- 市場價格永遠靠近真實價值。
- 不會出現股價過熱或是過冷的情形,投資人總能在市場過度反應時賣出股票昂貴的股票或抄底便宜的股票,維持市場秩序。
- 違反 EMH,投資人不為個人私利,而是追求社會所期望市場應該有的功能:反映金融資產真正價值。
然而,觀察過去的市場,舉近期一點的例子便是 2020、2021 年的新冠疫情和 2022 年的升息循環,可以十分客觀的說,市場的長相並非上述三點所描述,我們可以推論聰明投資者應不是主流。
因此市場上主流的投資人應該是一般投資人,主要追求的就是利用訊息來謀求個人利益,當股價在一段時間開始偏離基本面,在大幅上漲(或下跌)時,他們容易受到市場氣氛影響,選擇搭著這個趨勢追漲(或殺跌),而不是等股價跌深時抄底(或漲高時摸頭),因此容易造成市場進一步放大波動,觀察過去報酬分佈常呈現厚尾分佈(Fat tail)。
由此可進一步推論,價格的變動不總是獨立事件(這一秒的價格變動跟前一秒的價格變動可能有關連),而是時常會出現因前面價格的大幅上漲(或下跌),而發生的追漲(或殺跌)行情,且一再發生,往後若市場再次出現類型情形,投資人應會以類似的行為反應。
基於以上的結論,技術分析便有了用武之地,因為技術分析就是利用過去的統計資料來產生一系列指標,進而嘗試判斷(或是預測)未來股價的走勢。
除此之外,技術分析放在較低效率的市場中使用,效果將更加顯著,因為市場完整反映個人謀求利益的速度越慢,將使追漲或殺跌行情延續更久且波動加遽,如此一來便能解釋同樣的技術分析方式在相對成熟的市場(如美國股市)和相對新興的市場(如幣圈)為何會產生截然不同的效果了。
在理解完上述技術分析有效性的推論後,接下來介紹一些常見的技術分析指標。
♦ 富果推薦延伸閱讀:【關鍵報告】程式交易是什麼?白話文看懂常見使用策略
常見的數個技術指標介紹
技術分析可以簡單分類成指標法和型態學,由於型態學(例如 K 線分析、M 頭、W 底等等)牽涉較多主觀的圖形判斷,較難利用程式將其量化,本篇將僅著重介紹幾個程式交易常見的技術指標。
1. 移動平均線(Moving Average)
移動平均線(又稱均線,Moving Average,也常簡稱 MA),代表過去某段時間裡的平均成交價格,可以看作是買賣雙方的價格共識。
所以當股價保持在均線之上(或之下),代表上漲(或下跌)趨勢可能尚未改變(因為在這段時間買入的投資人大部分都是獲利的);反之,當股價漲破或跌破均線時,則代表趨勢可能已經發生改變,接下來的走勢也將受到影響。因此均線常被用來判斷目前的股價趨勢、支撐及壓力。
而移動平均線的公式為將價格(通常會使用收盤價)取平均,以 20 日均線(20 MA)為例,其公式如以下:
由於一個月的交易日差不多就是 20 天,20 MA 又被稱作月線,以此類推其他常見的均線包含:週線,5 MA;季線,60 MA;年線,240 MA 等。
此外,使用的 K 線的週期可能也有所不同,除了常見利用日 K 計算(取每日收盤價)外,也有使用小時 K(取每 1 小時的收盤價)甚至 10 分 K(取每 10 分鐘的收盤價) 等採樣週期。
而不同週期的均線通常適合不同的投資策略,例如進行極短線或當沖交易的交易者就會偏好用短週期 MA,波段交易者則會用較長週期的 MA(例如月線、季線)。
以上這種直接加總後取平均的計算方式稱為簡單移動平均線(Simple Moving Average,SMA),除此之外還有指數移動平均線(Exponential Moving Average,EMA)和加權移動平均線(Weighted Moving Average,WMA)兩種計算方式,兩者的邏輯在於:越近的股價應對近期的趨勢影響較大,因此計算平均值時給予近期數據較大權重、遠期數據較小權重,在實際應用上能協助我們更好掌握短期的趨勢改變。
底下同樣以 20 MA 為例:
不過常見的套件例如 Python 的 Ta-Lib 就有完整的移動平均功能可以使用,讀者只需大概理解其背後原理即可。
2. 布林通道(Bollinger Band,簡稱 BBand)
布林通道的概念由均線和標準差所組成,總共分為三條線,包含中線(由均線構成)、上線(均線 + n 個標準差)和下線(均線 – n 個標準差),一般最常見的布林通道是以 20 MA,加上上下各兩個標準差所組成。
Source:TradingView
布林通道背後邏輯是從統計學上的常態分佈出發,其假設價格分布符合常態分佈,那麼有 95% 機率價格會落在 2 倍標準差內的區間,也就是由上下線所組成的通道內,僅有 5% 的機率會出現在通道外。
不過根據上述的推導,報酬分佈(非股價分布,因此布林通道學理上的有效性仍有待評估)通常呈現厚尾分佈(Fat tail),常有極端值發生,因此有的布林通道使用者會將標準差取 2 倍以上來消弭這個因素。
布林通道根據逆勢交易和順勢交易,有兩種主流的使用方式:
i. 逆勢交易
因預估大多數的價格都會落在通道內部,上下通道可視為是價格的壓力(漲不過)和支撐(跌不破),逆勢交易的方式便是買低賣高,在股價上漲至上通道時逆勢賣出(或放空),並在股價下跌至下通道時逆勢買進(或回補),其實就是我們之前介紹過的均值回歸策略其中一套常見工具。
ii. 順勢交易
順勢交易的邏輯則認為在大趨勢發生時,股價會偏離原有的通道區間,因此在股價突破上通道時順勢買進,或是在股價跌破下通道時順勢放空,藉由價格出現的極端變化,捕捉新趨勢出現的訊號,也就是趨勢跟隨策略的操作邏輯。
除了上下通道外,還有其他根據布林通道衍生出來的常見指標,包含 %b 指標和帶寬指標(Bandwidth),底下也簡單介紹。
i. %b 指標
以數字的形式標示目前價格位於布林通道的位置,常用於網格交易(將通道切割成多個價格帶,後續報告將詳細介紹)中用來判斷何時買進和賣出,其公式如下:
ii. 帶寬指標
用以衡量一段期間的股價波動狀況,當帶寬指標變小,表示近期股價收斂,買賣方逐漸產生價格共識,接下來可能出現盤整行情,反之當帶寬指標變大則代表股價產生較大波動,買賣方的價格共識發生改變,接下來可能出現較明顯的上漲或下跌行情。其公式如下:
Source:TradingView
整體而言,布林通道計算邏輯簡單易懂,十分適合程式交易新手用於開發趨勢跟隨策略和均值回歸策略,但一樣,大多的程式套件都有,讀者不需硬記公式,只要理解其使用方法即可。
其他常見的技術指標有許多都是利用多條不同快慢週期的 K 線加以計算得出,大致上的邏輯是當短週期線的動能高過長週期線的話,則視為買進訊號,反之亦然。底下以 MACD 為例進行介紹。
3. MACD(Moving Average Convergence & Divergence)
MACD 透過比較兩條長短天數的指數移動平均線(EMA),加以兩次的平滑處理後,來判斷股價的趨勢變化。MACD 總共由三個參數組成,最常見的組合使用了 12 日和 26 日的 EMA,得出兩者差值(DIF)後再計算其 9 日 EMA,即得到 MACD 值,公式如以下:
Source:TradingView
註:同樣可使用相關套件計算結果
DIF 因為變動較快,被視為短週期的價格趨勢,而 MACD 線則因為進一步平滑,為長週期趨勢。常見的使用方式是在快線突破慢線(所謂的黃金交叉)時買進,快線跌破慢線(死亡交叉)時賣出,通常看盤軟體中會將快慢線相減的結果直接以柱狀呈現(如上圖綠轉紅為黃金交叉訊號),方便使用者判斷。
最後以上面介紹的技術指標組合一個簡單的趨勢跟隨策略,來看看其績效表現如何。
以布林通道和 MACD 為策略主軸,實際執行策略開發
以下為策略的進出場條件:
最終的回測結果如以下:
Source:FinLab API、富果研究部
註:關於各項績效評估指標可參考<程式交易 Part 2:如何評估策略績效?>報告
策略報酬率為 31.2%,對比同區間買入持有策略之報酬率 134.7%,績效明顯不如。截至 2022/9/1,策略總共交易了 28 次,勝率僅 42.9%,MDD 則是 -368,917 元。
交易成本部分,總共付出 89,516 元的佣金,接近三分之一的淨利,顯示淨利有相當大的部分被交易成本所侵蝕。總結以上,此趨勢跟隨策略績效十分普通,仍有待優化。
從以上結果來看,一個良好的趨勢策略並非簡簡單單套入幾個技術指標就可以獲得打敗大盤的報酬,除了在參數上需進行多次組合優化,還需設定加減碼策略(以把握真正的趨勢,放大獲利部位)、停損停利策略(使整體策略能夠賺大賠小)等。關於加減碼和停損停利將在後續報告介紹,持續完整投資策略的各階段開發。
結論
從效率市場角度出發,可發現技術分析的有效性源自於市場反應投資人謀求個人利益的低效率,導致追漲殺跌的行情能夠延續,利用過去統計資料產生的各項技術指標可能因此得以判斷未來的股價走勢,且尤其在效率仍低的新興市場中效果更加顯著。
而只要有了價格和成交量,就可以組成各種技術指標,本篇文章列舉了 MA、布林通道、MACD 三個常見的技術指標及其原理。技術指標包羅萬象,對這部分有興趣的讀者可以使用 Ta-Lib 套件多加探索,也可嘗試構建、優化自己的交易策略,後續報告將介紹更多程式交易策略的設計方式,歡迎讀者持續關注。
自我揭露與聲明:
本人/本撰寫相關團體(以下簡稱我)目前有持有本文提到之股票的多方部位,且預計不會在未來 72 小時內增加持股。我與本文所提到的公司沒有商業關係,撰寫本文僅為分享,並無收取任何報酬。本文之資訊僅供分析參考,不保證內容之完整性與正確性,也不構成任何買賣有價證券之要約或宣傳。
責任編輯:邱翊雲(合格證券投資分析人員)
一、 未經合法授權,請勿翻載,本站內容僅供參考,本公司不負任何法律責任。
二、 投資人若依此以為買賣依據,須自負盈虧之責。
三、 與本網站有關一切糾紛與法律問題,均依中華民國相關法令解釋及適用之。
閱讀進度