iT邦幫忙

2026 iThome 鐵人賽

DAY 30
0
Software Development

30 天打造專屬盯盤機器人:資料爬取、策略指標到 Telegram/LINE 推播系列 第 30 篇

Day 30:30 天鐵人賽完賽總結 — 從零打造全自動、專業、模組化的台股 Telegram 機器人!

  • 分享至 

  • xImage
  •  

今天是第三十天!真的是最後一天了!恭喜我們堅持走完了這漫長而充實的 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              # 運行日誌記錄檔 (自動生成)

二、 核心亮點功能回顧

  1. 四維度全方位診斷:
    不只看冰冷的股價線圖,還能同時掌握法人籌碼(外資/投信買賣超)、基本面(營收年增率)與消息面(新聞情緒評分)。

  2. 極致流暢的 UI/UX 體驗:
    告別冗長的洗版文字!透過 Telegram Inline Keyboard 內嵌按鈕,使用者可以隨時透過指尖切換「技術線圖」、「籌碼動向」、「營收數據」與「即時新聞」。

  3. 雲端 24/7 自動化推播:
    結合 APScheduler 與 Render 免費雲端容器,每日下午 14:30 自動產出大盤溫度計與個人化自選股巡檢簡報。

  4. 高可用性與防禦機制:
    透過 SQLite 快取防止 API 頻率限制,並導入全域例外處理與結構化日誌,確保伺服器長期穩定運行不當機。
    **三、 給開發者的未來延伸想像 **
    雖然我們的 30 天鐵人賽在此畫下句點,但這套機器人的潛力永無止境!如果你未來還想繼續擴充功能,可以嘗試以下方向:

  • 串接券商 API 進行實盤交易:串接台灣券商(如永豐 API、元大 API)或 Fugle 富果 API,實現條件觸價自動下單。
  • 導入 AI 語言模型:將新聞面與財報數據送入 LLM API(如 OpenAI 或 Claude),產出更具深度的「AI 財經研究員」逐日盤勢解析。
  • Web Dashboard 儀表板:使用 Streamlit 或 FastAPI 幫機器人外掛一個網頁版控制台,隨時在網頁上檢視投資組合績效。

結語
真的非常佩服也不敢相信自己能夠堅持下來,花了那麼多時間與精力的投入!從一行行程式碼的除錯,到看著機器人在 Telegram 上順暢運作、在雲端 24 小時為你站崗,這不僅僅是一個專案的完成,更是我們程式能力與自動化思維的大幅進步,這次使用 python 這個語言,讓我多了一項小小瞭解的技能,不能說是精通,畢竟寫的過程還是遇到了不少瓶頸,幸好有順利解決,我覺得完成這個成果也讓我更精熟合理運用AI工具,能夠更精確清楚的向AI表達自己遇到的問題,快速獲得解決方法。很感謝這項專案帶給我的這些收穫。


上一篇
Day 29:日誌管理與健康監控 — 打造企業級的日誌追蹤系統!
系列文
30 天打造專屬盯盤機器人:資料爬取、策略指標到 Telegram/LINE 推播 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言