
ZhuLinsen開發的daily_stock_analysis是當下星標數最高的AI金融專案之一——曾登上Trendshift單日Python倉庫榜首。但有意思的並不是星標數量,而是這個專案拒絕假裝自己能預測價格。相反,它解決的是一個更窄、卻實用得多的問題:每個交易日,拿你的自選股清單生成一份結構化、可解釋的分析報告——並把它送到你真正會去看的地方,也就是你的即時通訊工具。
專案作者免責聲明: 僅供學習與研究使用,不構成投資建議。市場有風險。
核心思路:不是機器人,而是每日的分析師兼撰稿人
大多數“AI交易”倉庫都在追逐同一個幻想:模型輸入、訊號輸出、收益上漲。daily_stock_analysis建立在一個更誠實的前提之上——投資真正困難的部分不在於再多生成一個訊號,而在於為某隻標的拼出一幅完整、一致的全景圖,並且每天都用同樣的方式把它寫下來。
因此它的行為更像一位按計劃工作的初級分析師。整條管道是線性且清晰可讀的:
| 階段 | 發生了什麼 |
|---|---|
| 資料抓取 | 行情、日K線、指標、資金流向、基本面、籌碼 |
| 技術分析 | 均線、RSI、成交量、乖離率、趨勢分類 |
| 新聞與資訊 | 按標的檢索近期新聞、公告與情緒 |
| LLM分析 | 構建上下文包與提示詞,產出JSON決策儀表盤 |
| 報告渲染 | Markdown報告,可選轉換為圖片 |
| 推送通知 | 推送到企業微信、飛書、Telegram、Discord、Slack或郵箱 |
預設情況下它按計劃執行(工作日、收盤後),並會跳過非交易日。它覆蓋A股、港股、美股及ETF,在資料來源覆蓋不到的地方,對日本與韓國市場提供降級支援。
低調而聰明的部分:資料回退

專案裡最穩健的工程決策不是LLM——而是它如何預設把資料視為不可靠。
行情資料通過六個資料提供方組成的優先順序鏈來抓取,每一個都是上一個的回退方案:
Efinance (P0) → Tencent (P0) → Akshare (P1) → Pytdx (P2) → Baostock (P3) → Yfinance (P4)
當你分析一隻美股標的時,系統會自動跳過僅限中國的資料來源,並轉向Yahoo Finance。如果某個資料來源失敗、超時或只返回部分資料,本次執行會讓對應的那一塊降級,而不是讓整份報告崩潰。提示詞甚至會被告知哪些資料塊是fallback、partial或missing——這樣模型就被要求寫出“資料不可用”,而不是編造一個數字。
對於任何生產系統而言,這都是正確的直覺:單個數據源失敗絕不應該拖垮整個分析。 把每一路資料來源都當作盡力而為,統一欄位,並讓缺失的資料可見,而不是被悄悄填上。
決策儀表盤
LLM並不返回散文——它返回的是一份嚴格的JSON“決策儀表盤”,報告會把它渲染成統一的版式:
- 核心結論 — 一句話:買入、持有或觀望,並附上時間敏感度。
- 分場景建議 — 對持倉者與空倉者給出不同的指引。
- 資料視角 — 均線排列、價格相對支撐/阻力位、乖離率、量能解讀。
- 資訊 — 風險提示與利好催化劑,每一條都必須帶日期。
- 作戰計劃 — 具體的狙擊點位:理想買點、止損、目標、倉位管理。
- 檢查清單 — 每個條件標註 ✅ / ⚠️ / ❌(多頭排列、乖離在區間內、量能、無重大利空、估值)。
提示詞中內建的紀律是有明確立場且合乎情理的:不追高(高於MA5超過5%的乖離是硬性的“不買”),只在多頭排列時交易(MA5 > MA10 > MA20),偏好在縮量回踩支撐時買入,並且絕不因為單日波動就在買入和賣出之間反覆切換。
智慧體策略:向系統提問
除了每日報告,專案還提供了一種智慧體模式,內建15套策略劇本,你可以針對每隻標的進行問詢:
| 類別 | 示例 |
|---|---|
| 趨勢 / 均線 | 均線金叉、多頭趨勢 |
| 結構理論 | 纏論、艾略特波浪 |
| 行為 / 流動性 | 情緒週期、放量突破、底部放量、縮量回踩 |
| 催化 / 敘事 | 熱點題材、事件驅動、預期重定價 |
| 質量 / 成長 | 成長質量 |
每個策略都是一個YAML檔案,擁有自己的規則、所需工具與評分調整——因此這份“智慧”是可配置、可審計的,而不是藏在一個龐大的提示詞裡。
如何在不自欺的前提下解讀它
任何這類專案都很容易被過度信任。一份誠實的評估清單:
- 新聞來源質量。 資訊模組的好壞完全取決於你配置的檢索提供方——沒有它們,情緒與催化劑就會空白,報告將完全依賴技術面。
- 確定性。 LLM輸出會有波動;同一只標的在不同次執行中讀起來可能略有差異。把儀表盤當作一種結構化的觀點,而非固定的真理。
- 各市場覆蓋度。 A股的深度資料(資金流向、籌碼、龍虎榜)在資料無法覆蓋的市場上會優雅降級為
not_supported。 - 資料新鮮度。 留意
fallback/partial標記——降級的輸入應當降低你的信心,正如提示詞所指示的那樣。 - 回測 ≠ 盈利。 報告是決策支援,而不是經過驗證的優勢。
侷限與誠實評估
daily_stock_analysis不是什麼:
- 不是執行系統。 它做分析和報告;它不下單,也不對流動性建模。
- 依賴模型。 輸出質量取決於你接入的LLM。
- 依賴檢索。 沒有新聞API金鑰,報告中定性的那一半就會變得稀薄。
- 非確定性。 完全相同的輸入也可能產出略有差異的儀表盤。
連結
- 💻 GitHub: ZhuLinsen/daily_stock_analysis
- 📄 許可證: MIT
結語
daily_stock_analysis的價值不在於它是一個先知,而在於它是一種被自動化的、可重複的分析習慣:
- 把“看一隻股票”到底意味著什麼標準化,每天如此。
- 把資料視為不可靠,並讓缺口可見。
- 讓結論可解釋——評分、點位、檢查清單、風險。
- 把想法生成(15套策略)與有紀律的決策框架分開。
用於學習、每日復盤以及為研究工作流做原型,它做得很紮實。要走向生產,下一層就是每個嚴肅系統都需要的那一層:經過驗證的資料、模型漂移控制、貼近現實的執行,以及活在程式碼裡、而不僅僅活在提示詞裡的風險規則。
Authors
Trading-systems engineer
Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.