今天是第三十天!真的是最後一天了!恭喜我們堅持走完了這漫長而充實的 30 天鐵人賽挑戰!
回顧這一個月的旅程,我們從最初的零基礎出發,一步一腳印地將這個台股 Telegram 機器人從無到有建構起來:
Day 01–10:建立專案架構(main.py, config.py, fetcher.py),串接 Telegram Bot API 與 yfinance,並運用 pandas-ta 計算 MA、RSI、MACD 等技術指標,繪製專業的 K 線副圖。
Day 11–20:加入三大法人籌碼分析、月營收基本面(YoY/MoM)、SQLite 資料庫快取機制,以及個股新聞關鍵字情緒分析,打造出「技術、籌碼、基本、消息」四維度全方位看盤系統!
Day 21–25:升級 UI/UX 導入 Inline Keyboard 互動按鈕選單、實作 SQLite 動態自選股管理(/add, /del, /watchlist)、串接台股加權/櫃買大盤與市場多空溫度計(/market),並透過 Docker 容器化完成雲端打包。
Day 26–29:成功將機器人部署至雲端免費平台實現 24 小時不間斷運作,串接 Google Tasks 任務清單,並導入防禦性編程與企業級 logging 日誌管理系統。
今天,我們將進行 30 天挑戰的最終總結,並盤點這套完整專案的最終檔案架構,為這趟旅程劃下最完美的句點!
一、 最終專案完整架構總覽
經過 30 天的精實迭代,我們的專案已經是一個高度模組化、具備企業級穩定度的 Python 專案:
stock-bot/
│
├── main.py # 主程式入口:初始化 App、排程器與日誌
├── config.py # 全域設定與環境變數載入 (Token, Chat ID)
├── database.py # SQLite 資料庫操作 (快取機制與動態自選股)
├── fetcher.py # 數據抓取核心:結合股價、技術指標、籌碼與新聞
├── chart.py # Matplotlib 專業 K 線圖與技術指標繪製
├── market.py # 大盤加權/櫃買指數與多空溫度計分析
├── news.py # 即時新聞爬蟲與關鍵字情緒評分模組
├── logger.py # 企業級日誌管理 (支援終端機輸出與日誌輪替)
├── requirements.txt # 專案 Python 依賴套件清單
├── Dockerfile # 容器化藍圖 (Python 3.10-slim + 時區設定)
├── docker-compose.yml # 容器編排與資料庫 Volume 持久化掛載
└── bot.log # 運行日誌記錄檔 (自動生成)
二、 核心亮點功能回顧
四維度全方位診斷:
不只看冰冷的股價線圖,還能同時掌握法人籌碼(外資/投信買賣超)、基本面(營收年增率)與消息面(新聞情緒評分)。
極致流暢的 UI/UX 體驗:
告別冗長的洗版文字!透過 Telegram Inline Keyboard 內嵌按鈕,使用者可以隨時透過指尖切換「技術線圖」、「籌碼動向」、「營收數據」與「即時新聞」。
雲端 24/7 自動化推播:
結合 APScheduler 與 Render 免費雲端容器,每日下午 14:30 自動產出大盤溫度計與個人化自選股巡檢簡報。
高可用性與防禦機制:
透過 SQLite 快取防止 API 頻率限制,並導入全域例外處理與結構化日誌,確保伺服器長期穩定運行不當機。
**三、 給開發者的未來延伸想像 **
雖然我們的 30 天鐵人賽在此畫下句點,但這套機器人的潛力永無止境!如果你未來還想繼續擴充功能,可以嘗試以下方向:
結語
真的非常佩服也不敢相信自己能夠堅持下來,花了那麼多時間與精力的投入!從一行行程式碼的除錯,到看著機器人在 Telegram 上順暢運作、在雲端 24 小時為你站崗,這不僅僅是一個專案的完成,更是我們程式能力與自動化思維的大幅進步,這次使用 python 這個語言,讓我多了一項小小瞭解的技能,不能說是精通,畢竟寫的過程還是遇到了不少瓶頸,幸好有順利解決,我覺得完成這個成果也讓我更精熟合理運用AI工具,能夠更精確清楚的向AI表達自己遇到的問題,快速獲得解決方法。很感謝這項專案帶給我的這些收穫。