選股策略分析:運用意圖因子衡量主力的方向

簡單有效的選股策略

如何找到主力護航護價的股票標的,是每位投資者的挑戰。介紹一個簡單有效的選股策略,從價格的資訊,就能夠識別主力的蹤跡,找出具有高報酬的股票。

image 1

核心選股邏輯

這個選股法,有一個核心邏輯,在於價格從 A 點到 B 點的距離,最快通常應該類似於直線(或類似弧線),也就是股價從 A 點慢慢爬升到 B 點,這種股票就比較容易穩定上漲,背後的原因,有可能是:

  • 可基於某種協議,公司付費給造市公司讓價格穩定
  • 或是公司大戶主力,希望讓價格穩定,自然而然就會少量買入來穩定股價。

我們希望篩選出上述股票,並且排除其它容易大起大落的股票,假如股票的路徑繞來繞去,看不出明顯的價格路徑,就很難看的出主力的意圖。

下圖中,左側就是單純找出上漲接近 20%的股票 10 檔,而右側也是一樣,但有先以價格意圖因子「經過篩選」,可以發現右側的股票以肉眼可見,穩定上漲,並不會有大起大落的狀況。

image

我們相信右圖中,價格上漲的現象,未來可能會能夠有更多的報酬,而非只是隨機漫步造成的現象。我們把這樣的指標簡稱為「價格意圖因子」,假如數值越大,會更接近上圖右側的股票走勢。

價格意圖因子

這個選股策略的核心是運用三個重要指標:

  • 報酬率:計算股票過去 60 天的總報酬率。
  • 變動率:計算過去 60 天每日報酬的絕對值總和,這樣可以衡量股票價格變化的速度。
  • 價格意圖因子報酬率 / 變動率,這就是所謂的價格意圖因子,在同樣的報酬下,我們希望變動率越小越好,代表股票是「直線方向上漲」。

三大篩選條件

為了確保選中的股票風險可控、基本面良好,這個策略設定了三個篩選條件:

  1. 收益率上限:過去 60 天的收益率需小於 20%,這樣避免挑選近期漲幅過大的股票,減少追高風險。
  2. 最低交易量:日成交量需大於 200,000 股,確保有足夠的市場流動性。
  3. 有基本面數據:必須有營收資料支持,增加投資的可靠性。

選股指標

選股指標採用一個簡單的公式:

  • 價格意圖因子 / 交易量

為什麼

這個指標的設計,目的在於挑選那些在單位風險下獲得較高收益,且交易量較低的股票。低交易量意味著這些股票可能未受到市場的充分關注,存在價格被低估的機會。

為什麼這個策略有用?

  1. 風險調整後收益高:通過收益與波動率的比值,選擇那些風險控制得當且收益相對較高的標的。
  2. 市場關注度低:偏好交易量較低的股票,有機會在市場認識到它們的價值前提早介入。
  3. 避免追高風險:設定收益率上限,排除近期漲幅過大的股票,降低回調風險。
from finlab import data
from finlab.backtest import sim

close = data.get('price:收盤價')
volume = data.get('price:成交股數')
rev = data.get('monthly_revenue:當月營收')

days = 60

m = (volume).rolling(days).sum()
v = close.pct_change().abs().rolling(days).sum()
s = close / close.shift(days) - 1

position = (s / v / volume)[(s < 0.2) & (volume > 50_000) & (rev.notna())].is_largest(50)
r = sim(position.loc['2010':], resample='Q', upload=False)
r.display()
image 4
image 5

可以發現每年的 Sharpe ratio 幾乎都比大盤還要優秀!

總結

這個選股策略的目標是找到風險可控、報酬潛力大的股票。透過歷史報酬率、波動率與交易量的結合,可以挖掘出那些被市場低估但具備成長潛力的投資標的。簡單的公式背後,是對風險與收益的細緻平衡,讓投資者在風險可控的情況下,捕捉到最佳的機會。

FinLab - 韓承佑

嗨大家好,我是韓承佑,FinLab創辦人,畢業於巴黎薩克雷大學資工博士,目前擔任臺灣量化交易協會 學術顧問、台北商業大學 創新育成中心 創業技術顧問與上市科技公司 量化交易顧問。當初,我喜歡寫程式、無意間因為軟體比賽接觸Fintech,從此開始了財經跟程式的學習之路。我們成立 FinLab 量化投資部落格,用自己研發的軟體,對台灣股市做大量快速的實驗。希望可以在量化投資的路上,當大家的「武器製造商」!