白話解讀版禁止使用 emoji(🟢🟡🔴),改用純文字標記 [+]/[!]/[-], 避免 weasyprint 嵌入 Apple Color Emoji 字型導致 PDF 開啟時報錯。 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
161 lines
5.7 KiB
Markdown
161 lines
5.7 KiB
Markdown
---
|
||
name: stocks-report
|
||
description: 產生台股個股完整分析報告(Markdown + PDF)。輸入股票代號(例如 2330、00922),自動執行所有查詢腳本、整合本地持股紀錄,輸出排版完整的 .md 與 .pdf 到 stocks/ 目錄。
|
||
---
|
||
|
||
# stocks-report
|
||
|
||
產生台股個股完整分析報告,輸出 Markdown 與 PDF。
|
||
|
||
## 執行流程
|
||
|
||
### 1) 先執行 stocks-query skill 取得所有資料
|
||
|
||
依序執行(盡量平行呼叫以加快速度):
|
||
|
||
```bash
|
||
python3 skills/stocks-query/scripts/yahoo-institutional-browserless.py <代號>
|
||
python3 skills/stocks-query/scripts/yahoo-quote-browserless.py <代號>
|
||
python3 skills/stocks-query/scripts/yahoo-technical-browserless.py <代號>
|
||
python3 skills/stocks-query/scripts/twse-margin-trading.py <代號>
|
||
python3 skills/stocks-query/scripts/yahoo-dividend-browserless.py <代號>
|
||
python3 skills/stocks-query/scripts/yahoo-market-brief.py
|
||
python3 skills/stocks-query/scripts/yahoo-broker-trading-browserless.py <代號>
|
||
python3 skills/stocks-query/scripts/twse-day-trading.py <代號>
|
||
python3 skills/stocks-query/scripts/twse-foreign-holdings.py <代號>
|
||
```
|
||
|
||
若標的**不是** ETF(非 `00` 開頭),額外執行:
|
||
|
||
```bash
|
||
python3 skills/stocks-query/scripts/twse-monthly-revenue.py <代號>
|
||
python3 skills/stocks-query/scripts/twse-pe-pbr.py <代號>
|
||
```
|
||
|
||
若標的是 ETF(`00` 開頭),改為額外執行:
|
||
|
||
```bash
|
||
python3 skills/stocks-query/scripts/yahoo-etf-holdings.py <代號>
|
||
```
|
||
|
||
同時檢查本地是否有該代號的持股紀錄(`stocks/<代號>-TW.md`)。
|
||
|
||
### 2) 組裝 Markdown 報告
|
||
|
||
將所有腳本輸出整合為一份結構化 Markdown,存為 `stocks/<代號>-report-YYYYMMDD.md`。
|
||
|
||
報告結構(依序):
|
||
|
||
```
|
||
# <代號> <名稱>|完整分析報告
|
||
> 報告日期:YYYY-MM-DD
|
||
---
|
||
## 大盤同步
|
||
## 報價
|
||
## 三大法人
|
||
## 主力券商進出
|
||
### 買超前 5 大券商(表格)
|
||
### 賣超前 5 大券商(表格)
|
||
## 融資融券
|
||
## 當沖統計
|
||
## 外資持股
|
||
## 技術面
|
||
### 近 5 日 K 線(表格)
|
||
## 股利殖利率
|
||
### 近期配息明細(表格)
|
||
## ETF 持股與配置(僅 ETF)
|
||
### 前十大持股
|
||
### 行業比重
|
||
### 資產分佈
|
||
## 月營收(僅非 ETF)
|
||
## 本益比/股價淨值比(僅非 ETF)
|
||
## 白話判斷
|
||
## 個人持股紀錄(若有本地紀錄)
|
||
```
|
||
|
||
規則:
|
||
- 所有表格使用 Markdown table 語法
|
||
- 若某腳本失敗或無資料,該區段標註「無資料」,不要省略區段
|
||
- 白話判斷要綜合技術面、籌碼面、配息面給出偏多/偏空/震盪的結論
|
||
- 個人持股需正確計算平均成本、含息報酬、哪幾張可領配息(對照除息日)
|
||
|
||
### 3) 轉換為 PDF
|
||
|
||
用以下 Python 程式將 Markdown 轉為 PDF:
|
||
|
||
```python
|
||
import markdown
|
||
from weasyprint import HTML
|
||
|
||
with open('<md_path>', 'r') as f:
|
||
md_text = f.read()
|
||
|
||
html_body = markdown.markdown(md_text, extensions=['tables', 'fenced_code'])
|
||
|
||
full_html = '''<!DOCTYPE html>
|
||
<html><head><meta charset="utf-8">
|
||
<style>
|
||
body {
|
||
font-family: "PingFang TC", "Heiti TC", "Microsoft JhengHei", "Noto Sans CJK TC", sans-serif;
|
||
font-size: 13px;
|
||
line-height: 1.6;
|
||
color: #1a1a1a;
|
||
max-width: 750px;
|
||
margin: 0 auto;
|
||
padding: 30px 40px;
|
||
}
|
||
h1 { font-size: 22px; border-bottom: 2px solid #333; padding-bottom: 8px; }
|
||
h2 { font-size: 17px; color: #2c3e50; border-bottom: 1px solid #ddd; padding-bottom: 5px; margin-top: 24px; }
|
||
h3 { font-size: 14px; color: #34495e; margin-top: 16px; }
|
||
table { border-collapse: collapse; width: 100%; margin: 10px 0; font-size: 12px; }
|
||
th, td { border: 1px solid #ddd; padding: 6px 10px; text-align: left; }
|
||
th { background: #f5f6fa; font-weight: 600; }
|
||
tr:nth-child(even) { background: #fafbfc; }
|
||
blockquote { background: #f0f4ff; border-left: 4px solid #4a90d9; padding: 8px 14px; margin: 12px 0; font-size: 13px; }
|
||
strong { color: #c0392b; }
|
||
hr { border: none; border-top: 1px solid #eee; margin: 20px 0; }
|
||
ul, ol { padding-left: 20px; }
|
||
li { margin-bottom: 3px; }
|
||
p { margin: 6px 0; }
|
||
</style>
|
||
</head><body>''' + html_body + '</body></html>'
|
||
|
||
HTML(string=full_html).write_pdf('<pdf_path>')
|
||
```
|
||
|
||
輸出:`stocks/<代號>-report-YYYYMMDD.pdf`
|
||
|
||
### 4) 產生白話解讀版
|
||
|
||
除了專業版之外,額外產生一份「白話解讀版」,讓不熟悉股市的人也能看懂。
|
||
|
||
存為 `stocks/<代號>-report-YYYYMMDD-beginner.md` 及對應 `.pdf`。
|
||
|
||
白話解讀版規則:
|
||
- 標題格式:`# <代號> <名稱>|白話解讀版`
|
||
- 每個區段用**問句**當標題(例如「現在多少錢?」「大咖們在幹嘛?」「散戶有沒有在瘋搶?」)
|
||
- 所有術語第一次出現時,用括號或「像是在說...」欄位附上白話翻譯
|
||
- 表格多加一欄「白話意思」,用日常語言解釋數字的含義
|
||
- 技術指標用生活化比喻(例如 RSI 像溫度計、布林通道像天花板和地板)
|
||
- 最後總結用簡單評分表呈現結論
|
||
- **禁止使用 emoji**(如 🟢🟡🔴),改用純文字標記(如 `[+]` 正面、`[!]` 留意、`[-]` 負面),避免 weasyprint 嵌入 Apple Color Emoji 字型導致 PDF 開啟時出現字型錯誤
|
||
- 個人持股區段用「什麼時候買的/買多少/能不能領紅包」等直白欄位
|
||
- 字體稍大(font-size: 14px)、行距較寬(line-height: 1.8)方便閱讀
|
||
|
||
轉 PDF 時使用與專業版相同的程式,但 CSS 調整為:
|
||
- `font-size: 14px`(body)
|
||
- `line-height: 1.8`
|
||
- `font-size: 13px`(table)
|
||
|
||
### 5) 回覆使用者
|
||
|
||
告知四個檔案路徑(專業版 .md/.pdf + 白話解讀版 .md/.pdf)和檔案大小。
|
||
|
||
## 回覆風格
|
||
|
||
- 使用繁體中文(台灣)
|
||
- 報告內容全部繁體中文
|
||
- 日期使用西元格式 YYYY-MM-DD
|
||
- 金額使用千分位格式
|
||
- 標題和內容要自行措辭,不要直接引用使用者的指令用語
|