布萊恩·強森 (Brian Johnson) 經歷與投資哲學
過往經歷:
Brian Johnson 擁有超過 30 年的機構投資管理與自營交易經驗。 且著有多本量化交易聖經,包含《Option Strategy Risk / Return Ratios》(選擇權風險報酬比)以及《Exploiting Earnings Volatility》(利用盈餘波動率獲利)。
核心投資哲學:
- 純粹的系統化與演算法交易 (Algorithmic Trading):他極度排斥依賴直覺的主觀交易,主張所有的交易邏輯都必須能被量化、編碼化,並經過嚴密的歷史數據回測。
- 利用「盈餘與波動率」的定價異常 (Exploiting Pricing Anomalies):他特別擅長在企業發布財報(Earnings)前後,尋找市場因為過度恐慌或貪婪所造成的「波動率錯價」。在股票操作上,這轉化為尋找「基本面極佳,但短線遭市場情緒錯殺」的均值回歸機會。
- 極致的風險/報酬優化 (Risk/Return Optimization):在進場前必定先計算風險。他習慣透過加入嚴格的流動性過濾器(Trade Filters)與趨勢保護,來避免極端的回撤(Drawdown)。
⚙️ XScript 邏輯解構 (Type A: 選股腳本)
為了貼合 Brian Johnson 的投資哲學,我們將從知識庫中提取對應的正規欄位,建立一個 「盈餘動能 + 短線波動均值回歸 的量化選股模型:
- 盈餘基本面濾網 (Earnings Filter):
- 確保企業真的很 賺錢:使用 每股稅後淨利(元) >N元 。這裡是用每季賺超過五元。
- 確保營收具備成長動能:使用 營收年增率 (月頻率) > 15%。
- 定價異常與均值回歸 (Volatility Anomaly):
- 趨勢保護:股價必須在季線之上(長期趨勢向上,具備大資金保護)。
- 短線錯殺:股價跌破月線(利用短線市場恐慌的波動,進行均值回歸套利)。
- 流動性與防呆風險控管 (Risk Management):
- 排除成交量過低的殭屍股以控制滑價風險,限制 成交量 > 1000。
// 腳本類型:Type A 選股腳本 (Screener)
// 策略名稱:Brian Johnson 量化盈餘與波動率回歸策略 (修正版)
// 策略邏輯:結合強勢盈餘動能與短線波動錯殺的均值回歸模型
// 確保長天期歷史資料讀取足夠 (計算 60 日均線需要)
SetTotalBar(60);
// 變數宣告鐵律:無底線、無系統保留字 daily、預設給定初始值
var: revYoy(0), epsNum(0), volToday(0);
var: isLongTrend(false), isShortPullback(false);
// 修正:直接使用 "月營收年增率" 來抓取營收動能
revYoy = GetField("月營收年增率", "M");
epsNum = GetField("每股稅後淨利(元)", "Q"); // 必須包含(元)
volToday = GetField("成交量", "D"); // 確保流動性
// 條件一:長線趨勢保護 (確保大趨勢為多頭,Brian Johnson 強調的風險控管)
if Close > Average(Close, 60) then
isLongTrend = true
else
isLongTrend = false;
// 條件二:短線波動率異常/均值回歸 (短線跌破月線,尋找錯殺點)
if Close < Average(Close, 20) then
isShortPullback = true
else
isShortPullback = false;
// 核心量化綜合判斷:單一等號、完整邏輯包覆、加上防呆
if revYoy > 15.0 and epsNum > 2.0 and isLongTrend = true and isShortPullback = true and volToday > 1000 then begin
// 觸發條件成立
ret = 1;
// 輸出九宮格檢驗欄位 (警示腳本禁用,但選股腳本可使用)
OutputField1(revYoy, "月營收年增率(%)");
OutputField2(epsNum, "每股稅後淨利(元)");
OutputField3(volToday, "今日成交量");
end;
回測過去一年台股,持有20天,回測報告如下

這種策略在大多頭且很多好公司在大賺錢時特別有用,空頭市場就千萬別用
