從 0 到 47 個版本、329 個自動化測試、81-tool MCP server、多代理人 AI 辯論引擎 —— 由一位台灣獨立開發者設計與實作。本頁是工程實作紀錄,不含任何價格或購買資訊。
一個給「自行做研究的人」用的桌面工具 —— 同時也是一個探索 local-first 架構、MCP 協定、與 agent 記憶設計的工程練習場。
Electron 殼 + 內嵌 Express server + 本機 SQLite。所有運算、所有資料都在使用者自己的機器上 —— 沒有後端伺服器、沒有帳號、沒有雲端資料庫。
蒙地卡羅顯著性檢定、因子探索、進階回測(grid / multi-strategy / CPCV)、參數化 VaR 與風險分解 —— 把量化研究方法做成可互動的工具。
台股場內法人籌碼資料的視覺化(主流圖表平台少見),加上美股跨市場研究 —— 同一套分析框架涵蓋兩個市場。
核心設計決定:運算與資料永遠不離開使用者的機器。資料層做成 3 段 fallback,讓進階使用者能接自家資料源而不必改動分析層。
工程踩坑紀錄之一:better-sqlite3 是原生模組,Electron 的 Node ABI(145)與系統 Node(137)不同 —— headless 測試與打包流程必須各自綁對 ABI。打包時 codesign + Apple 公證、bin/** 必須 asarUnpack 才能讓 MCP wrapper 可執行。
實作了一個 Model Context Protocol server,把 81 個分析工具暴露給 Claude Desktop 等 MCP client。讓 LLM「呼叫工具」而不是「閱讀原始資料表」。
工具涵蓋回測 / 籌碼 / 技術指標 / 風險 / 投組。另有 URI-template resource(如 saa://memory/{stockId}),讓外部 agent 直接 @ 到個股記憶。
工具在後端跑運算 + 摘要,回精煉 JSON 而非原始 OHLCV 表格 —— 大幅壓縮送進 LLM 的 input,減少使用者把整張資料表複製貼上的需要。
MCP server 走 stdio transport,不開 HTTP 埠 —— 刻意不做遠端 transport,以維持「資料不離機」的設計主張。
MCP server 的公開文件(安裝指南、工具清單、使用範例)以 MIT 授權開源於 GitHub。完整應用本身為閉源桌面程式。
AI 不是「再包一層 ChatGPT」。這一層的工程重點是:如何讓 LLM 帶著使用者的脈絡分析、又不變成附和使用者的回音室。
一次分析跑 5 個角色 agent(多頭 / 空頭 / 情緒 / 風險 / 統合),各自獨立論證後交由統合 agent 收斂。對抗式設計,避免單一視角偏誤。
對既有 SQLite 表的「讀取側投影」—— 零新表、零 migration。把使用者的投資論點、持倉、交易史、過去 AI 判斷組成有界的記憶封包注入每次分析。
記憶注入時不同 agent 用不同 framing:空頭 agent 拿到的是「使用者相信的東西 → 你要壓力測試它」,統合 agent 必須明說這是新資訊還是只是確認既有偏好。
用 Bry-Boschan 演算法判定大盤牛熊 regime,做成跟 Investor Memory 同樣的投影,讓個股判斷自動帶上市場背景。回測報酬也能依 regime 切段檢視。
AI 採 BYOK(Bring Your Own Key):使用者自選 Claude / GPT / Gemini / 本地 Ollama。用本地模型時,記憶封包完全不離機。
把量化研究方法實作成可互動的工具 —— 重點不是「告訴你買什麼」,而是「協助你自己判斷」。
跑 1000 次隨機選股組合當 baseline,比對策略的 Sharpe / 報酬 / 回撤落在哪個百分位,評估統計顯著性。
找出「高 Sharpe 組合都偏哪些因子」(動能 / 波動度 / 規模 / 產業集中度),附 Pearson r 與散點迴歸。
Grid search 參數網格、multi-strategy 並列、regime 跨牛熊驗證、CPCV 過擬合校正。報酬可依 regime 切段。
參數化 VaR、系統性風險指標、邊際風險貢獻(MCR)、Monte Carlo bootstrap 信賴區間。
外資 / 投信 / 自營商每日買賣超 sub-pane,跟主圖游標同步;融資餘額、大戶比等籌碼面資料。
K 線、Sunburst 持倉穿透、Treemap 熱力圖、報酬歸因瀑布、相關性矩陣、月度熱力圖 —— 全部 Canvas 自繪。
一個人的專案,但用對待正式產品的標準維護。
vitest 測試套件涵蓋回測不變式、portfolio 計算、regime 判定、MCP schema 轉換、AI 工具 smoke test。每次發版前全綠才打包。
electron-builder 打包 → Apple Developer ID codesign → notarytool 公證 → Gatekeeper 驗證。完整 release SOP 文件化。
electron-updater 差分更新;重大設計決策都寫成 ADR(Architecture Decision Record),踩過的坑寫成可查的教訓筆記。
Hardened Runtime、Electronegativity 靜態掃描(0 HIGH / 0 CRITICAL)、Ed25519 簽章授權檔、localhost-only server。
整個 app、所有圖表、所有 modal 都支援中英切換,含執行期 re-render —— 不是只翻 UI 字串。
AI 工具層拆成 14+ 模組,用 mutable registry pattern 解 cross-module 引用;資料路徑統一、scheduler / alert-engine 各自獨立。
實際執行畫面(非概念圖)。
台股場內法人視覺化,跟主圖游標同步
市場 → 產業 → 個股 3 層 Canvas 視覺化
1000 次隨機 portfolios,histogram 顯示 percentile
6 因子 vs Sharpe 散點 + 迴歸線 + Pearson r
依產業分區、面積按成交金額、顏色顯示漲跌幅
Claude / GPT / Gemini / 本地 Ollama 任一驅動
刻意維持輕量 —— 沒有重型前端框架、沒有 ORM、沒有雲端後端。
Stock Analyzer 由一位台灣獨立開發者自 2026 年 3 月開始密集開發,至今完成 47 個版本迭代。它的起點是一個個人需求:想要一套同時涵蓋台股場內籌碼與美股、又能跑量化研究方法的桌面工具 —— 介於入門圖表平台與機構級終端機之間的空缺。
對開發者來說,這個專案同時是一個工程命題:如何在 local-first 的限制下做出有深度的分析工具?如何把 LLM 接成「帶脈絡但不附和」的助理?如何讓一個人維護的 codebase 保持可測試、可演進?本頁記錄的就是這些問題的目前答案。
⚠️ 重要聲明
本軟體為研究與分析工具,不構成任何投資建議、推薦、或諮詢。所有研究結果僅供使用者自行參考;使用者依本軟體做出之任何決策所產生之盈虧由使用者自行承擔。本軟體不保證資料即時性、完整性或準確性。LLM 生成內容可能含幻覺,使用者應自行驗證。如需投資建議,請諮詢合格的財務顧問。