Q:第一步要先進行什麼動作?請給我詳細的建議
A:
第一步:建立核心資料庫和數據收集流程
1. 確認系統範圍與需求細化
- 明確你需要存哪些數據:例如財報數據、技術指標、回測結果等。
- 梳理你的財報分析邏輯,將需要的計算公式和篩選條件列出來,作為系統數據表的設計基礎。
- 定義最小可行系統 (MVP) 的功能:
- 存儲每季篩選的財報結果。
- 每日更新技術線型數據。
- 建立一個初步的數據視覺化介面。
2. 選擇工具並建立基礎架構
- 選擇並搭建資料庫(推薦 PostgreSQL,或者若無伺服器可考慮 Google Sheets 作為臨時解決方案)。
- 使用 Python 作為數據處理和自動化腳本的核心工具,搭配以下套件:
pandas
:處理數據分析。SQLAlchemy
:連接資料庫。yfinance
或其他財報 API:下載股市財報數據。
具體操作步驟
步驟 1:資料庫設計與搭建
- 設計資料表結構(以下資料庫由GPT產生)
- 財報數據表 (financial_reports):
- stock_id (股票代號)/quarter (季度)/revenue, profit, eps (各種指標數據)/selected (是否符合篩選條件)/created_at (創建時間)
- 技術指標表 (technical_indicators):
- stock_id/date (交易日期)/rsi, macd, moving_avg (技術指標)
- 追蹤清單表 (watchlist):
- stock_id/label (標籤分類,例如「潛力股」、「高風險」)/notes (手動添加的備註)
- 啟動資料庫
- 如果本地測試,安裝 PostgreSQL 15.10
- 設定密碼/Port 5432/Local used
若使用雲端,選擇 AWS RDS 或 Google Cloud SQL。
步驟 2:數據收集腳本
- 收集財報數據
- 使用 API,編寫 Python 腳本下載財報數據並存入資料庫。
- 這裡先搜集各公司的基本資料當作練習。
def fetch_twse_data(api_url):
"""
從 TWSE API 獲取上市櫃公司資料
"""
response = requests.get(api_url)
response.raise_for_status() # 檢查是否有錯誤
return response.json()
def transform_data(data):
"""
將 JSON 數據轉換為 DataFrame,並整理格式以符合資料庫結構
"""
# 將 JSON 轉為 DataFrame
df = pd.DataFrame(data)
# 重命名欄位為資料表結構對應名稱
df = df.rename(columns={
"出表日期": "report_date",
搭配GPT+Google很快可以完成自己的資料庫。
短期目標:完成數據輸入與存儲
- 完成資料庫搭建,並驗證財報與技術指標的數據是否可以正常存取。
- 初步建立數據更新流程,確保數據能每日更新,並正確存入資料庫。
後續計畫
在完成這一步後,可以進一步進行:
- 分析模組的設計:建立篩選條件的函式,並實現每日追蹤。
- 可視化介面的搭建:使用簡單的工具(如 Streamlit)快速呈現篩選結果和技術線型。
完成第一步後,你將擁有一個穩定的數據存取與更新基礎,便於進一步優化與擴展系統功能!