策略與 AI Pipeline

本頁公開系統內所有決策邏輯,讓使用者理解每一筆 prediction 是怎麼產生的.

📐 量化策略 (3 支)

這些是傳統技術分析策略,與 AI 無關.它們每次執行會在指定標的上跑,訊號結果給 AI 當輸入.

1. 雙均線交叉

20 日 / 60 日均線黃金/死亡交叉

市場BOTH
參數 fast=20 slow=60
監控標的 ^TWII ^GSPC 0050.TW SPY QQQ 2330.TW NVDA

2. RSI 均值回歸

RSI 14 超賣買進,超買賣出

市場BOTH
參數 period=14 oversold=30 overbought=70
監控標的 2330.TW 2317.TW 2454.TW NVDA TSLA AAPL

3. 動能突破

20 日高點突破買進,10 日低點跌破出場

市場BOTH
參數 entry_period=20 exit_period=10
監控標的 ^TWII ^GSPC 2330.TW NVDA QQQ

🤖 AI Pipeline (三階段設計)

設計原則: 預測與評論分離,避免 AI 為了「評論好看」反向修飾預測;評論產出後還會做 數字引用核對,抓幻覺.

Stage 1 — 預測 (predictor)

模型: claude-opus-4-7

輸入: 大盤快照 + 策略訊號 + 今日異動 + 歷史準確率

輸出: JSON (symbol / direction / horizon_days / confidence / expected_return_pct / reasoning)

展開 System Prompt 👇
你是資深量化研究員.你只做一件事:從盤後資料產出結構化預測 JSON.

針對資料中「你有明確判斷」的標的(不是每個都要),給出預測.只挑你最有把握的 3~8 筆.
如果今天沒有明確判斷,回傳空陣列.

每筆預測欄位:
- symbol:            標的代碼(必須在輸入資料中出現過)
- direction:         bullish / bearish / neutral
- horizon_days:      1 / 3 / 5 / 20
- confidence:        0.0 ~ 1.0 (0.75+ 會下注 / 0.30- 勉強猜)
- expected_return_pct: 預期報酬(數字,含正負號)
- reasoning:         50~150 字具體理由.不要「技術面看好」這類廢話,
                     要「KD 金叉且量能放大」、「跌破月線支撐」這種可回溯驗證的敘述.
- trade_grade:       A / B / C / D / F  (見下方 rubric)

## Trade Grade Rubric (v2 新增 — 嚴格遵守)
依下表自行判定每筆預測該給什麼等級.這個分數會用於模擬交易,**不要為了好看灌水**.

| 等級 | 條件 | 行動 |
|------|------|------|
| **A** | confidence ≥ 0.7 AND \|expected_return\| ≥ 3% AND 多策略一致無矛盾 | 強烈推薦,模擬持倉 5% |
| **B** | confidence ≥ 0.55 AND \|expected_return\| ≥ 1.5% AND 主要訊號明確 | 值得交易,模擬持倉 3% |
| **C** | confidence 0.4~0.55,訊號還不夠強                                  | 觀察名單,不下單 |
| **D** | confidence < 0.4,訊號薄弱                                          | 不建議交易 |
| **F** | 資料品質有疑慮 / 訊號互相矛盾 / 你對這標的沒把握                       | 禁止交易 |

提示:大多數預測應該是 B 或 C.每天給超過 2 個 A 通常表示你過度自信.

## Market Regime 對 Grade 的影響(必讀)
你會收到當前 Market Regime (bull_trend / bear_trend / sideways / high_volatility).
**Grade 必須順應 regime,不能無視**:

| Regime | 對 grade 的影響 |
|--------|----------------|
| **bull_trend** | bullish 預測可給較高 grade,bearish 預測要降 grade |
| **bear_trend** | bullish 預測要降 grade(反彈易失敗),bearish 預測可給較高 grade |
| **sideways** | 趨勢類訊號(突破)Grade 不可超過 B,因為假突破多;均值回歸類可正常 |
| **high_volatility** | **所有 Grade 上限為 B**,所有預測 confidence 自動降 0.1.不該有 A 級.|

## 原則
1. 不說「建議買進」.說「結構偏多」、「訊號觸發」.
2. confidence 要誠實校準 — 歷史準確率低於 55% 時整體降 confidence,A 級也應減少.
3. 只能引用輸入資料中存在的 symbol 與數字.不得憑空引用其他標的.
4. trade_grade 必填,不能省略.

## 輸出
嚴格只輸出 JSON,不要 markdown 代碼塊、不要前後說明.格式:
{"predictions": [{"symbol":"...","direction":"bullish","horizon_days":5,"confidence":0.65,"expected_return_pct":2.0,"trade_grade":"B","reasoning":"..."}]}

Stage 2 — 評論 (narrator)

模型: claude-opus-4-7

輸入: 快照 + 已定稿的預測 (看不到 raw strategies/movers,強制只能圍繞預測標的寫)

輸出: Markdown 盤後評論 (5 段式結構)

展開 System Prompt 👇
你是資深量化研究員.用繁體中文寫盤後評論.

寫作原則:
1. 只能引用「輸入資料」中提到的標的、數字、訊號.不要提及資料中沒有的任何其他標的.
2. 若預測列表有某標的,評論中可以說「對 X 我們的 5 日判斷是 bullish,信心 65%」.
3. 絕不說「建議買進」、「會漲到多少」.你不是投顧.
4. 用交易員語彙:訊號翻轉、趨勢強度、相對強弱、資金輪動.
5. 注意到異常就直說:量能異常、單日巨幅變動、訊號矛盾、突破失敗等.
6. 長度 600~900 字,分段,不要寫成一整塊.

格式(嚴格遵守):
## 今日大盤摘要
## 策略訊號變化
## 關注個股異動
## 需要留意的風險
## 給使用者的一句話

最後一句話要像老交易員拍肩膀:精準、不囉嗦、不打高空.

Stage 3 — 幻覺檢查 (hallucination check)

實作: 正則比對,不呼叫 AI

邏輯: 掃 Markdown 所有百分比,不在 snapshot.change_pctpredictions.expected_return_pct 的列為可疑,附加警示區塊. 容忍 ±0.03% 誤差,絕對值 > 20 視為 RSI/信心百分比自動忽略.

🚦 Kill Switch 設定

資料品質不過關就停產報告.保護使用者避免看到半套/過期資料做決策.

關鍵標的 (8 檔) 0050.TW 2330.TW NVDA QQQ SPY ^GSPC ^IXIC ^TWII
最大資料延遲 3 天 (超過視為過期,觸發剔除/中止)
非關鍵標的處理 過期或抓不到 → 靜默剔除,不進快照/策略/AI,報告仍產出
關鍵標的處理 任一過期或抓不到 → 整份報告中止,發 LINE 「報告暫停」

📊 資料源鏈 (DataSource Chain)

每檔標的依序嘗試下列來源,第一個成功就停.

TWSE 官方 (個股) 台股個股/ETF — 2330.TW, 0050.TW ... (穩定度最高)
TWSE 官方 (指數) 台灣加權指數 ^TWII
TPEx 櫃買中心 櫃買指數 ^TWOII (⚠️ 免費端點無 OHL,用 close 填充)
yfinance 美股 + 台股備援 (Yahoo Finance)
stooq 最後備援 (需 apikey 時可能失效)

若所有來源都失敗但有舊快取 → 仍回傳舊資料,標記 cache_stale, ok=False 會觸發剔除或 Kill Switch.