功能特性

Richfolio 在單一管線中整合 18+ 項能力 — 全部執行在免費版 API 上。


兩階段 AI 分析(Think/Plan 框架)

Richfolio 採用兩階段認知框架,靈感來自 OpenAlice 的 Think/Plan 架構:

階段 1:Observe(Think) — Gemini 為每個股票代碼擷取結構化觀察:有哪些價位訊號(P/E 低於均值、接近 52 週低點、低於 200 日均線)、哪些動能訊號生效(RSI < 35、MACD 看漲、布林通道 %B < 0.15、隨機指標 %K < 20)、風險旗標、1 句話的估值與技術摘要、新聞情緒,以及配置脈絡。此階段不給出動作建議 — 純粹資料解析。

階段 2:Decide(Plan) — 另一次 Gemini 呼叫接收結構化觀察(而非原始數字)以及全部決策規則、歷史推理上下文,然後套用 STRONG BUY 標準產出最終建議。由於決策階段處理的是預先消化過的觀察,STRONG BUY 標準會被一致地套用。

每個股票代碼會得到一個動作:STRONG BUYBUYHOLDWAIT,並附上建議金額、限價單價格、價值評級(股票)以及抄底訊號(超賣偵測)。如果 Gemini API 無法使用或額度耗盡,Richfolio 會自動回退到基於缺口的建議。對 Gemini 的暫時性錯誤(503/429)會以退避策略自動重試最多 2 次。

STRONG BUY 標的在電子郵件與 Telegram 訊息中還會附上“詳細分析”連結。點擊會開啟 GitHub Pages 上的專屬分析頁,內含互動式 TradingView 圖表、詳細買進論點、風險分析、關鍵指標、基本面與動作摘要 — 全部由 Gemini 2.5 Flash 產生。

每日簡報 STRONG BUY 分析


財報行事曆守護

Richfolio 透過 Yahoo Finance 的 calendarEvents 模組自動偵測即將到來的財報日(零額外 API 呼叫 — 重用既有的 quoteSummary 請求),並套用程式化的安全上限:

  • 財報 ≤ 3 天 → 強制 HOLD — 臨近財報持有的風險/報酬過於不對稱,不適合買進建議
  • 財報 ≤ 7 天 → 上限為 BUY — 臨近財報絕不發出 STRONG BUY
  • 財報 ≤ 14 天 → 在電子郵件中以彩色徽章顯示、在 Telegram 中以 [earnings Xd] 標籤顯示,提醒注意

此守護同時體現在 AI 提示詞中(軟性指示),以及守護管線中的程式化硬上限(AI 無法覆寫)。靈感來自 OpenAlice 的財報行事曆感知能力,以避開高風險事件期間的部位。


AI 後置守護驗證管線

AI 回傳建議後,程式化驗證管線會執行 6 項順序檢查,在抵達使用者之前攔截常見的 AI 錯誤。靈感來自 OpenAlice 帶上下文隔離的守護管線概念:

  1. 債券 ETF 上限 — 短天期債券 ETF(BSV、SHY 等)硬上限為 BUY,最高信心度 65%
  2. 財報臨近 — 程式化執行財報行事曆守護
  3. STRONG BUY 標準強制 — 驗證配置缺口 ≥ 2%、信心度 ≥ 80%,且至少存在 1 個價位訊號;任一未達標即降級為 BUY
  4. 最多 2 個 STRONG BUY — 依信心度排序,只保留前 2 個,其餘降級
  5. 信心度合理性 — 上限 95%(AI 偶爾會輸出 98-100);HOLD/WAIT 上限 70%
  6. 買進金額合理性 — 建議買進額上限為缺口金額;HOLD/WAIT 的買進金額歸零

每個守護觸發時都會記錄日誌以便除錯。守護彼此獨立 — 它們接收建議資料,而不是原始的券商/API 物件。


技術動能訊號

Richfolio 透過 Yahoo Finance 取得 250 天的歷史價格資料,並為投資組合中每個標的計算技術指標:

  • SMA50 / SMA200 — 50 日與 200 日簡單移動平均線,以及目前價相對於各自的位置
  • RSI(14) — 14 日相對強弱指數(低於 30 = 超賣、高於 70 = 超買)
  • MACD — 指數平滑異同移動平均線(EMA12 − EMA26,訊號線 = MACD 的 EMA9)。透過黃金/死亡交叉與柱狀圖方向偵測動能切換。最適合趨勢盤
  • 布林通道 — SMA(20) ± 2 個標準差。追蹤 %B(在通道中的位置:0 = 下軌、1 = 上軌)、頻寬(波動度)以及收縮偵測(頻寬處於 120 日範圍底部 20%,預示突破即將到來)。最適合震盪盤
  • ATR(14) — Wilder 平滑的平均真實區間。報告絕對值與相對價格百分比。ATR% > 3% = 高波動(AI 放寬限價單)、ATR% < 1% = 低波動(收緊限價單)。在部位規模判斷時有用
  • 隨機指標 — %K(14) 與 3 日平滑 %D。%K < 20 = 超賣確認(納入 STRONG BUY 的動能條件),%K > 80 = 超買。以不同的計算方式補充 RSI
  • OBV(能量潮) — 累積能量潮搭配 10 日線性迴歸趨勢分析。只報告方向:上升(吸籌)、下降(派發)或走平(中性)。OBV 絕對值跨標的沒有意義 — 只看趨勢
  • 黃金交叉 / 死亡交叉 — SMA50 上穿(看漲)或下穿(看跌)SMA200
  • 動能訊號 — 依價格相對均線與 RSI 分類為看漲看跌中性
  • 近期低點 — 7 日與 30 日低點,用於辨識附近的支撐位

AI 提示詞中包含明確的衝突解決規則:當 MACD 與布林通道衝突時,趨勢盤信 MACD、震盪盤信布林通道。兩者一致時提升信心度。布林通道收縮搭配同時的 MACD 黃金/死亡交叉視為最強進場訊號。

所有技術資料 — 包含成交量變化(7 日相對 30 日均量) — 都會餵給 AI 提示詞,以便給出更有根據的建議。對於 STRONG BUY 標的,動能細節(包含 MACD 交叉/柱狀圖、%B 與收縮狀態)會直接顯示於電子郵件與 Telegram 訊息。


限價單價格

當 Gemini 給出 STRONG BUYBUY 時,也會建議一個略低於市價的限價單價格。建議價格基於最近的支撐位:

  • 均線支撐 — 價格接近 50 日或 200 日均線
  • 近期低點 — 7 日或 30 日低點作為支撐底
  • 整數價位 — 整數價位的心理支撐

限價單價格與其依據會在每日電子郵件、Telegram 訊息和盤中警示中針對 STRONG BUY 標的呈現。


價值投資框架

對於個股(不包含 ETF 或加密貨幣),AI 會套用結構化的價值投資框架,依五項基本面標準給出 A-D 評級:

  • ROE > 15% — 強獲利能力
  • 負債權益比 < 50% — 穩健槓桿
  • FCF/營運現金流 > 80% — 強現金轉換能力
  • 正向盈餘成長 — 業務在成長
  • 價格低於分析師目標價 — 市場低估
評級 滿足項目 含意
A 4-5 優異價值
B 3 良好價值
C 1-2 普通價值
D 0 估值偏高

價值評級會納入 AI 的信心度計算(A 加約 10 分、D 減約 10 分),並在電子郵件與 Telegram 中以彩色徽章呈現。

所有基本面資料來自 Yahoo Finance 的 financialData 模組,被併入既有的 quoteSummary 呼叫 — 零額外 API 負擔


抄底模型

對所有標的(股票、ETF、加密貨幣),AI 會評估四項抄底指標以識別潛在的吸籌區:

  • RSI < 30 — 超賣區域
  • 成交量萎縮 > 20% — 賣壓衰竭(7 日均量 vs 之前 30 日均量)
  • 價格低於 200 日均線 — 深度價值區域
  • 出現死亡交叉 — 利空可能已反映在價格中(在 RSI 極低時是反向訊號)

不同資產類別使用不同門檻以減少誤報:

  • 加密貨幣(BTC、ETH):2 項以上指標命中即標記抄底訊號。3 項以上才考慮升級 STRONG BUY。
  • 股票與 ETF:3 項以上才標記抄底訊號(更嚴格)。全部 4 項齊備才考慮升級 STRONG BUY。

抄底訊號會在每日電子郵件、盤中警示和 Telegram 訊息中顯示。成交量變化基於既有圖表資料計算 — 不增加額外 API 呼叫


配置缺口分析

將目前持倉與目標配置百分比比較。每個標的會依偏離目標的程度評分,並給出以美元與股數表達的建議買進金額。

分析使用實際投資組合價值與配置估值中的較大者,使得即使你目前持倉小於目標配置規模,缺口計算仍然有意義。


動態 P/E 訊號

將滾動 P/E 與從 Yahoo Finance 歷史財報資料計算得到的均值 P/E 比較。不需手動設定基準 — 系統會取得季度 EPS 並自動計算均值。

低於歷史均值的標記為 below avg(潛在價值),高於均值的標記為 above avg(潛在高估)。ETF 與加密貨幣因無財報資料自動跳過此訊號。


ETF 重疊偵測

當你持有的個股同時是目標投資組合中 ETF 的前十持倉時,Richfolio 會偵測這種重疊並相應降低該 ETF 的買進優先度。

範例: 若你持有 30 股 AAPL,而 VOO 包含約 7% 的 AAPL,你直接持有的 AAPL 已部分覆蓋 VOO 的配置缺口。VOO 的建議買進金額會依重疊價值扣減。

這能避免你透過 ETF 不知不覺過度集中於已持有的股票。


52 週區間訊號

將每個標的的目前價格定位在其 52 週區間內(0% = 在最低、100% = 在最高):

  • 接近低位(低於 20%)— 潛在買進機會
  • 接近高位(高於 80%)— 謹慎以對
  • 區間中段 — 中性

AI 分析會把此訊號與 P/E、配置資料一同納入建議。


帶情緒評分的新聞摘要

透過 NewsAPI 取得每個標的的頭條新聞,使用批次請求以保持在免費版 100 次/日的額度內。基於公司名稱對應,將最近 24 小時內的頭條配對到對應代碼。

Gemini 會對每則相關頭條評分:

  • 情緒:看漲、看跌或中性
  • 影響:高、中或低(對股價的潛在推動力)
  • 整體情緒:每個標的的彙總(看漲、看跌、中性或混合)

情緒標籤會在 AI 提示詞的頭條旁顯示(例如 "Apple beats estimates" [看漲,影響高]),並彙總到整體新聞情緒評估。這項升級把先前二元的相關/不相關過濾替換為更豐富的訊號擷取 — 而沒有額外 API 成本(同一次 Gemini 呼叫,只是輸出 schema 更豐富)。


推理持久化

每次日執行後,Richfolio 會把每個 AI 建議的快照 — 動作、信心度、價格與理由 — 寫入一個滾動 7 天的歷史檔案(state/reasoning-history.json)。下次執行時,AI 會收到一段 “HISTORICAL CONTEXT”,呈現它自己的判斷是如何演進的:

AAPL: BUY 72% ($185) → BUY 68% ($187) → HOLD 55% ($192) — 弱化中
SMH: HOLD 45% ($220) → BUY 70% ($210) → STRONG BUY 85% ($205) — 強化中

這讓 AI 能識別信念動能 — 若一個標的連續 3 天以上強化,趨勢得到確認;若在弱化,AI 會變得更謹慎。靈感來自 OpenAlice 的腦/記憶持久化概念,後者把認知狀態作為可稽核的提交紀錄追蹤。

在 GitHub Actions 中,使用 actions/cache 快取 state/ 目錄,即可讓推理歷史跨工作流程持久保存。


投資組合健康度

基於目前持倉計算兩個組合層級指標:

  • 加權 Beta — 依部位加權的組合層級市場風險
  • 預估年度股息收入 — 基於目前股息率與部位規模的預估年度股息

盤中警示

別錯過當日的進場時機。早盤簡報執行後,Richfolio 會把 AI 建議存為基準。盤中檢查(npm run intraday)在交易時段每 2 小時執行一次,重新取得價格與技術指標,重新執行 Gemini 分析(略過新聞以節省 API 額度),並與早盤基準比較。

只在以下情況觸發警示:

  • 信心度提升至少 5 個百分點(可設定)且高於 80%(可設定)
  • 動作升級 — 例如早盤的 BUY 在下午變成 STRONG BUY
  • 新訊號 — 早盤未推薦的標的現在出現強買進訊號

警示透過電子郵件與 Telegram 投遞,格式聚焦,呈現早盤 vs 目前的比較、價格變化、AI 推理與 STRONG BUY 訊號的限價單價格。沒有警示就沒有訊息 — 你只在重要時刻才會收到 Richfolio 的通知。

所有門檻都可透過 CONFIG_JSON 變數中的 intradayAlerts 區段設定。詳見設定說明

盤中警示


每週再平衡報告

另一份每週報告(npm run weekly)專注於投資組合漂移與再平衡動作。沒有新聞、沒有 AI — 只有一張清爽的表格,顯示:

  • BUY — 部位偏低(缺口 > 1%)
  • TRIM — 部位偏高(缺口 < -1%)
  • OK — 在目標範圍內的部位

附上超額警告,並標記不在目標投資組合內的持倉。

每週再平衡


雙通道投遞

每份報告透過兩個通道送達:

  • 電子郵件 — 由 Resend 投遞的暗色主題 HTML 信件,含完整細節(配置表、P/E 訊號、AI 建議、技術動能、限價單、新聞)
  • Telegram — 由 Telegram Bot API 投遞的精簡純文字摘要,為行動裝置閱讀最佳化(含 STRONG BUY 的技術細節與限價單)

兩個通道彼此獨立 — 任一未設定時,另一個仍能正常投遞。


Richfolio — free, open-source portfolio monitoring.

This site uses Just the Docs, a documentation theme for Jekyll.