簡單有效的選股策略
如何找到主力護航護價的股票標的,是每位投資者的挑戰。介紹一個簡單有效的選股策略,從價格的資訊,就能夠識別主力的蹤跡,找出具有高報酬的股票。
核心選股邏輯
這個選股法,有一個核心邏輯,在於價格從 A 點到 B 點的距離,最快通常應該類似於直線(或類似弧線),也就是股價從 A 點慢慢爬升到 B 點,這種股票就比較容易穩定上漲,背後的原因,有可能是:
- 可基於某種協議,公司付費給造市公司讓價格穩定
- 或是公司大戶主力,希望讓價格穩定,自然而然就會少量買入來穩定股價。
我們希望篩選出上述股票,並且排除其它容易大起大落的股票,假如股票的路徑繞來繞去,看不出明顯的價格路徑,就很難看的出主力的意圖。
下圖中,左側就是單純找出上漲接近 20%的股票 10 檔,而右側也是一樣,但有先以價格意圖因子「經過篩選」,可以發現右側的股票以肉眼可見,穩定上漲,並不會有大起大落的狀況。
我們相信右圖中,價格上漲的現象,未來可能會能夠有更多的報酬,而非只是隨機漫步造成的現象。我們把這樣的指標簡稱為「價格意圖因子」,假如數值越大,會更接近上圖右側的股票走勢。
價格意圖因子
這個選股策略的核心是運用三個重要指標:
- 報酬率:計算股票過去 60 天的總報酬率。
- 變動率:計算過去 60 天每日報酬的絕對值總和,這樣可以衡量股票價格變化的速度。
- 價格意圖因子:報酬率 / 變動率,這就是所謂的價格意圖因子,在同樣的報酬下,我們希望變動率越小越好,代表股票是「直線方向上漲」。
三大篩選條件
為了確保選中的股票風險可控、基本面良好,這個策略設定了三個篩選條件:
- 收益率上限:過去 60 天的收益率需小於 20%,這樣避免挑選近期漲幅過大的股票,減少追高風險。
- 最低交易量:日成交量需大於 200,000 股,確保有足夠的市場流動性。
- 有基本面數據:必須有營收資料支持,增加投資的可靠性。
選股指標
選股指標採用一個簡單的公式:
- 價格意圖因子 / 交易量
為什麼
這個指標的設計,目的在於挑選那些在單位風險下獲得較高收益,且交易量較低的股票。低交易量意味著這些股票可能未受到市場的充分關注,存在價格被低估的機會。
為什麼這個策略有用?
- 風險調整後收益高:通過收益與波動率的比值,選擇那些風險控制得當且收益相對較高的標的。
- 市場關注度低:偏好交易量較低的股票,有機會在市場認識到它們的價值前提早介入。
- 避免追高風險:設定收益率上限,排除近期漲幅過大的股票,降低回調風險。
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()
可以發現每年的 Sharpe ratio 幾乎都比大盤還要優秀!
總結
這個選股策略的目標是找到風險可控、報酬潛力大的股票。透過歷史報酬率、波動率與交易量的結合,可以挖掘出那些被市場低估但具備成長潛力的投資標的。簡單的公式背後,是對風險與收益的細緻平衡,讓投資者在風險可控的情況下,捕捉到最佳的機會。