# Sizing Portfolio Positions

> 將分析結論轉化為具體的倉位規模（Position Sizing）與風控參數（停損/證偽點）。解決「看對但賺不到錢」的執行斷層——在分析鏈（report）與實際下單之間，提供數學化的資金分配與動態風控框架。

- Skill: `alanlee0323/sizing-portfolio-positions` (Agent Skill)
- Install (CLI): `npx skillmds@latest add alanlee0323/sizing-portfolio-positions`
- Raw SKILL.md: https://api.skillmd.com/api/skills/alanlee0323/sizing-portfolio-positions/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: Alanlee0323 (https://skillmd.com/u/alanlee0323)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/alanlee0323/sizing-portfolio-positions

---


# Sizing Portfolio Positions

## When to use this skill
- 任何買入/加碼決策之前——將「我看好」轉化為「該投多少」。
- `constructing-forward-scenarios` 產出機率加權配置後，需要精算各標的的具體股數與金額。
- `stress-testing-portfolio` 完成後，需要根據最大回撤容忍度反推單一標的上限。
- 組合再平衡（rebalance）時，計算各標的的目標權重與實際交易量。
- 當持倉標的觸及停損/證偽點，需要評估「減碼多少」或「全部出清」。

## Workflow

1. Plan
- 收集必要輸入：
  - 總可投資資金（含現金與可賣出部位）
  - 各標的的分析結論（Bull/Base/Bear 目標價）
  - 各標的的信心度（來自 `analyzing-market-expectations` 的預期差）
  - 組合層面的壓力測試結果（來自 `stress-testing-portfolio`）
  - 用戶的風險偏好與最大單筆虧損容忍度
- 確認計算框架（見下方三套模型）。

2. Execute — 三階段計算

  ### Stage 1：信心加權目標配置 (Conviction-Weighted Allocation)

  根據分析結論的信心度分配「目標權重」：

  **信心度分級 → 權重上限**
  | 信心度 | 定義 | 單一標的權重上限 | 來源依據 |
  |---|---|---|---|
  | A（極高） | 多層分析一致看好 + 正向預期差 + 近期催化劑 | 10-15% | 全鏈一致 |
  | B（高） | 基本面強 + 估值合理，但預期差不大 | 5-10% | 分析鏈多數正面 |
  | C（中） | 有看點但存在不確定性 | 3-5% | 部分環節有疑慮 |
  | D（低） | 投機性或資訊不足 | 1-3% | 探索性部位 |

  **集中度硬限制（不可違反）：**
  - 單一標的：≤ 15%（無論信心度多高）
  - 單一產業：≤ 30%
  - 單一國家/幣別：≤ 65%
  - 攻擊部位合計：≤ 80%（至少 20% 防禦+現金）

  ### Stage 2：Kelly Criterion 倉位計算 (Kelly-Based Sizing)

  對每個標的計算「數學最優」倉位，然後打折使用：

  **Half-Kelly 公式：**
  ```
  Kelly % = (p × b - q) / b
  Position Size = Kelly % × 0.5  ← 使用 Half-Kelly（降低波動）

  其中：
  p = 勝率（基於歷史/分析判斷）
  q = 敗率 = 1 - p
  b = 賠率 = 預期獲利 / 預期虧損
      = (Base Case 目標價 - 現價) / (現價 - Bear Case 目標價)
  ```

  **Kelly 計算範例：**
  ```
  MSFT: 現價 $402, Base $550, Bear $380
  - 預期獲利 = $550 - $402 = $148 (上漲 37%)
  - 預期虧損 = $402 - $380 = $22 (下跌 5.5%)
  - 賠率 b = 148/22 = 6.7
  - 假設勝率 p = 0.6（基本面強但宏觀不確定）
  - Kelly = (0.6 × 6.7 - 0.4) / 6.7 = 54%
  - Half-Kelly = 27% → 但受限於單一標的上限 15%
  - 最終建議：10-12%（A 信心度上限）
  ```

  **Kelly 安全閥：**
  - Kelly < 0 → 不應持有此標的（預期虧損 > 預期獲利）
  - Half-Kelly > 集中度上限 → 使用集中度上限（永遠是天花板）
  - Half-Kelly < 1% → 部位太小不值得持有（交易成本抵消 alpha）

  ### Stage 3：動態風控參數設定 (Dynamic Risk Management)

  為每個持倉設定三道防線：

  **a) 證偽點 (Invalidation Point)**
  - 定義：當市場價格觸及此點，代表你的投資論述已被推翻。
  - 計算：通常設在 Bear Case 目標價的 90-95%。
  - 行動：觸及時**全部出清**，不猶豫。
  - 範例：MSFT Bear $380 → 證偽點 = $380 × 0.93 = $353

  **b) 移動停損 (Trailing Stop)**
  - 定義：隨股價上漲而向上調整的停損點。
  - 計算方法（二選一）：
    - **ATR 法：** 停損 = 最高價 - 2 × ATR(20日)
    - **百分比法：** 停損 = 最高價 × (1 - 停損百分比)
  - 停損百分比參考：
    - 大型股（MSFT, META）：10-15%
    - 中型成長股（PLTR, ZETA）：15-20%
    - 高波動/小型（台股設備股）：20-25%

  **c) 加碼觸發點 (Averaging-Down Trigger)**
  - 定義：在論述未改變的前提下，逢低加碼的價位。
  - 計算：現價下方 10-15%，且仍高於證偽點。
  - 加碼規則：
    - 第一次加碼：原始部位的 50%
    - 第二次加碼：原始部位的 30%
    - 不超過信心度對應的權重上限

  **d) 獲利了結規則 (Profit-Taking Rules)**
  - 觸及 Base Case 目標價：獲利了結 30-50%
  - 觸及 Bull Case 目標價：獲利了結 70-80%
  - 超越 Bull Case 20%：全部出清或設極緊移動停損

3. Validate
- **回測檢查：** 以過去 12 個月的數據，模擬此 sizing 策略的最大回撤。
- **相關性檢查：** 確認多個標的在壓力情境下不會同向暴跌（若會，降低合計權重）。
- **執行可行性：** 確認最小交易單位、手續費佔比、流動性是否支撐此倉位。
- **心理壓力測試：** 最大單日虧損金額（以台幣計）是否在用戶可承受範圍？

4. Synthesize
- 產出完整的倉位規模表與風控參數卡。

## Instructions

- **永遠使用 Half-Kelly 或更保守的估計**——Full Kelly 在實務中波動太大。
- Kelly 計算的勝率 (p) 必須保守估計——寧可低估也不可高估。
- 集中度硬限制永遠優先於 Kelly 計算結果。
- 停損/證偽點設定後**不可隨意下調**——這是紀律，不是建議。
- 計算結果必須考慮交易成本（手續費 + 匯差）對小額部位的影響。
- 台股與美股的停損百分比應分開設定（波動特性不同）。
- 所有金額同時以 USD 和 TWD 呈現（方便用戶對照）。

### Output template

```markdown
## 📐 倉位規模與風控參數 — <YYYY-MM-DD>

### 組合總覽
- 總可投資資金：<USD / TWD>
- 攻擊部位上限：<XX%>
- 防禦部位目標：<XX%>
- 現金儲備目標：<XX%>

### 倉位規模表
| Ticker | 信心度 | 現價 | Base | Bear | 賠率 | 勝率 | Half-Kelly | 上限約束 | 建議權重 | 金額 | 股數 |
|---|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|
| <TICKER> | A/B/C/D | $XX | $XX | $XX | X.X | X.X | XX% | XX% | **XX%** | $XX | XX |

### 風控參數卡
| Ticker | 現價 | 證偽點 | 停損% | 移動停損 | 加碼觸發 | 獲利了結 (Base) | 獲利了結 (Bull) |
|---|---:|---:|---:|---:|---:|---:|---:|
| <TICKER> | $XX | $XX | XX% | $XX | $XX | $XX (減 30%) | $XX (減 70%) |

### 最壞情境檢查
- 若所有停損同時觸發：總虧損 = <TWD> (<XX%>)
- 最大單日預估虧損（基於壓力測試）：<TWD>
- 用戶可承受？：✅/⚠️/🚨

### 執行注意事項
- 最小交易金額門檻：<部位 < $XXX 不建議持有>
- 手續費佔比過高的部位：<列出>
- 流動性不足的標的：<列出>

### 警報設定清單
| Ticker | 警報類型 | 觸發價 | 行動 |
|---|---|---:|---|
| <TICKER> | 證偽 | $XX | 全部出清 |
| <TICKER> | 移動停損 | $XX | 出清 |
| <TICKER> | 加碼觸發 | $XX | 加碼 XX 股 |
| <TICKER> | Base 獲利 | $XX | 減碼 30% |
```

## Error handling

- 若 Bear Case 目標價未設定，無法計算賠率/Kelly → 使用保守的固定權重法（C 信心度上限）。
- 若勝率/賠率估計極端（Kelly > 50%），強制使用 Quarter-Kelly 或上限約束。
- 若總建議權重超過 100%，按信心度比例縮減至 100%。
- 若某標的流動性不足（日均成交量 < 建議持倉的 10 倍），警告滑價風險。

## Resources

- `stress-testing-portfolio`（上游技能：最大回撤容忍度作為 sizing 約束）
- `constructing-forward-scenarios`（上游技能：機率加權配置作為目標權重輸入）
- `analyzing-market-expectations`（上游技能：預期差作為信心度判斷）
- `tracking-catalyst-calendar`（協同技能：近期催化劑影響加碼/獲利時機）
- `valuing-company`（上游技能：Bull/Base/Bear 目標價作為計算輸入）
- `attributing-portfolio-performance`（下游技能：執行後的績效歸因與回饋）

