position-sizing について
トレーダー向けのポジションサイズ管理スキルです。固定比率、ボラティリティ調整、Kelly、流動性制約などを扱い、口座リスクやプール深度を踏まえて保守的なサイズを決めます。
主な機能
- 015 種類のポジションサイズ手法
- 02口座リスク比率に基づく計算
- 03ボラティリティに応じた調整
- 04プール深度による取引制限
- 05最も厳しいサイズ制約の選択
- 06口座とミーム資産の上限
活用シーン
- 01損切り幅とリスク比率からサイズを計算
- 02ボラティリティ上昇時に取引サイズを縮小
- 03流動性の低い Solana トークンの上限設定
- 04勝率とペイオフ比から Kelly サイズを評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ agiprolabs/ claude-trading-skills --skill position-sizingインストール後、Claude Code で/position-sizingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/practical_guide.mdsizing_formulas.mdscripts/portfolio_sizer.pysize_calculator.py詳細
ポジションサイジング
ポジションサイジングは、トレードにおけるリスク管理で最も重要な判断です。エントリーシグナルが方向を決め、ポジションサイズが生き残れるかどうかを決めます。適切なサイジングを行う平凡な戦略は、無謀なサイジングを行う優れた戦略を、十分な期間で見れば上回ります。
基本原則:エントリーではなく、サイズが生き残れるかどうかを決めます。同じシグナルを使う2人のトレーダーでも、サイジングが異なれば結果は大きく変わります。保守的にサイズを決めるトレーダーはドローダウンを乗り越え、資本を複利で増やします。一方、過剰なサイズを取るトレーダーは破綻します。
対象とする手法
| 手法 | 最適な用途 | 主な入力 |
|---|---|---|
| 固定フラクショナル | 一般的なトレード、最も推奨 | 口座資金に対するリスク% |
| ボラティリティ調整型 | ボラティリティの高い市場、マルチアセット | ATRまたは実現ボラティリティ |
| ケリー基準 | 実績に基づいてエッジを定量化できる場合 | 勝率+ペイオフ比率 |
| 流動性制約型 | 流動性の低いSolanaトークン | プールの深さ |
| アンチ・マーチンゲール | トレンドフォロー戦略 | 直近の損益の連続状況 |
1. 固定フラクショナル・サイジング
ほとんどのトレーダーに最も推奨される手法です。各トレードで口座資金の一定割合をリスクにさらします。
計算式
risk_amount = account_value * risk_percentage
price_risk_per_unit = entry_price - stop_loss_price
position_size_units = risk_amount / price_risk_per_unit
position_value = position_size_units * entry_price
リスク階層
| 階層 | 1トレードあたりのリスク | 用途 |
|---|---|---|
| 保守的 | 0.5–1% | 新しい戦略、ドローダウンからの回復 |
| 標準 | 1–2% | ほとんどのトレーダー、実績のある戦略 |
| 積極的 | 3–5% | 強く、測定可能なエッジがある確信度の高いセットアップ |
例
account = 10_000 # $10,000 or 100 SOL
risk_pct = 0.02 # 2%
entry = 1.50
stop_loss = 1.30
risk_amount = account * risk_pct # $200
price_risk = entry - stop_loss # $0.20
position_units = risk_amount / price_risk # 1,000 tokens
position_value = position_units * entry # $1,500
このサイジングでは、ストップロスに達した場合、トークンの価格やボラティリティにかかわらず、口座資金のちょうど2%を失います。
2. ボラティリティ調整型サイジング
ボラティリティに反比例してポジションサイズを調整します。ボラティリティが高いときはポジションを小さくし、低いときは大きくします。これにより、さまざまな市場環境でドルベースのリスクを均一化できます。
計算式
adjusted_size = base_size * (target_vol / current_vol)
ここで:
target_vol:目標とするポートフォリオの日次ボラティリティ(例:2%)current_vol:トークンの現在の日次ボラティリティ(ATRまたは実現ボラティリティから算出)
ATRの使用
atr_14 = 0.12 # 14-period ATR
close_price = 1.50
daily_vol_pct = atr_14 / close_price # 8%
target_daily_vol = account * 0.02 # $200 target daily move
position_size = target_daily_vol / atr_14 # 1,667 units
これにより、ボラティリティの高い市場ではエクスポージャーが自動的に減少し、落ち着いた市場では増加します。
3. ケリー基準
長期的な成長率を最大化する、リスクにさらす資本の数学的に最適な割合です。期待対数効用を最大化することで導出されます。
計算式
f* = (p * b - q) / b
ここで:
p= 勝率(トレードに勝つ確率)q= 1 - p(トレードに負ける確率)b= 平均利益 / 平均損失(ペイオフ比率)f*= リスクにさらす資本の最適な割合
同等の式:f* = (p * (b + 1) - 1) / b
重要なルール:フル・ケリーは絶対に使わない
フル・ケリーは、エッジを完全に把握していることを前提とします。実際には、エッジの推定値にはノイズが含まれます。必ずフラクショナル・ケリーを使ってください。
| 割合 | 用途 | 備考 |
|---|---|---|
| 0.25x ケリー | 保守的、推奨されるデフォルト | エッジの推定誤差に対して堅牢 |
| 0.50x ケリー | 中程度、十分に測定されたエッジ向け | それでもドローダウンのリスクは大きい |
| 1.0x ケリー | 実践では使わない | 理論上の最大値。エッジを過大評価すると壊滅的 |
例
win_rate = 0.55 # 55% win rate
avg_win = 2.0 # Average win is 2x the average loss
avg_loss = 1.0
payoff_ratio = avg_win / avg_loss # b = 2.0
kelly = (win_rate * payoff_ratio - (1 - win_rate)) / payoff_ratio
# kelly = (0.55 * 2.0 - 0.45) / 2.0 = 0.325 = 32.5%
quarter_kelly = kelly * 0.25 # 8.1% — use this
half_kelly = kelly * 0.50 # 16.25%
ケリー値がマイナスなら、エッジはありません。トレードしないでください。
数学的な完全な導出については、references/sizing_formulas.mdを参照してください。
4. 流動性制約型サイジング
Solanaトークンでは重要です。リスクモデル上は大きなポジションを取れる場合でも、スリッページが許容できない水準にならずにプールが対応できるとは限りません。
計算式(定積AMM)
slippage ≈ trade_size / pool_liquidity
max_trade = pool_liquidity * max_slippage_pct
経験則
| 制約 | 指針 |
|---|---|
| 1回の取引の最大額 | プール流動性の2% |
| ポジションの最大額 | プール流動性の5% |
| プールの最小深度 | 希望するポジションサイズの10倍 |
例
pool_sol = 500 # 500 SOL in pool
max_slippage = 0.02 # 2% max slippage
max_trade_sol = pool_sol * max_slippage # 10 SOL
# For a $150 SOL price, that's $1,500 max per trade
最大のプールだけでなく、必ずすべてのプールを確認してください。 全体像を把握するには、Raydium、Orca、Meteoraの流動性を合算します。プールの深さの評価については、liquidity-analysisスキルを参照してください。
5. アンチ・マーチンゲール法によるポジションサイズ調整
勝った後はサイズを増やし、負けた後はサイズを減らします。これはギャンブラーの誤謬(マーチンゲール法)とは正反対です。考え方は、連勝は戦略が市場の動きと噛み合っている可能性を示し、連敗は市場レジームの変化を示している可能性があるというものです。
実装
def anti_martingale_size(
base_size: float,
consecutive_wins: int,
consecutive_losses: int,
scale_factor: float = 0.25,
max_multiplier: float = 2.0,
min_multiplier: float = 0.5,
) -> float:
if consecutive_losses > 0:
multiplier = max(min_multiplier, 1.0 - consecutive_losses * scale_factor)
elif consecutive_wins > 0:
multiplier = min(max_multiplier, 1.0 + consecutive_wins * scale_factor)
else:
multiplier = 1.0
return base_size * multiplier
慎重に使用してください。3回以上連続で負けた後にサイズを50%減らすことで、ドローダウン中の資金を守れます。
ポジションサイズ調整の優先順位
すべての方法を組み合わせ、最も保守的な結果を採用します。
1. Calculate Kelly size → theoretical max based on edge
2. Calculate fixed fractional → risk-based size
3. Calculate volatility-adjusted → vol-normalized size
4. Calculate liquidity-constrained max → market-based ceiling
5. Final size = min(all four) → binding constraint wins
適用される制約から、サイズを制限している要因が分かります。
- ケリー基準による制約:優位性が小さいため、それに応じたサイズにします
- リスクによる制約:標準的なリスク管理が上限です
- ボラティリティによる制約:市場のボラティリティが高すぎるため、サイズを大きくできません
- 流動性による制約:プールは、スリッページなしではこれ以上の取引を吸収できません
アカウントレベルの上限
個々のポジションのサイズ調整は必要ですが、それだけでは不十分です。ポートフォリオレベルの制約も必要です。
| 上限 | ガイドライン | 理由 |
|---|---|---|
| 単一ポジションの最大額 | ポートフォリオの10% | 分散投資の最低基準 |
| 相関資産へのエクスポージャー上限 | ポートフォリオの25% | 相関のある資産は連動して動きます |
| 合計エクスポージャーの上限 | ポートフォリオの50~80% | 機会や証拠金に備えて現金を確保します |
| ポジション数の上限 | 同時に5~10件 | 注意力と管理能力の範囲内に収めます |
PumpFun/ミームトークンのサイズ調整
PumpFunや初期段階のミームトークンでは、特に慎重なサイズ調整が必要です。
- ポジションは非常に小さく:リスクが極めて高いため、1回の取引につき0.1~1 SOLにします
- ボンディングカーブの充足率に応じて調整:初期段階では(ラグプルのリスクが高いため)小さくし、実績が確認できた後(Raydiumに移行した後)はやや大きくします
- 期待リターンを基準にサイズを決めないでください。許容できる最大損失を基準にします
- 宝くじのようなものとして扱います:大半は価値がゼロになると想定します
- ポジション上限:すべてのミームポジションを合計して、ポートフォリオの5~10%を超えないようにします
# PumpFun sizing example
account_sol = 100
meme_budget = account_sol * 0.05 # 5 SOL total for memes
per_trade = meme_budget / 10 # 0.5 SOL each, 10 shots
他のスキルとの連携
| スキル | 連携内容 |
|---|---|
risk-management | ポートフォリオレベルの上限、ドローダウンルール |
liquidity-analysis | 流動性の制約に用いるプールの深さデータ |
kelly-criterion | より詳細なケリー基準の計算、優位性の推定 |
exit-strategies | 損切りの設定が固定比率によるサイズ調整に影響します |
volatility-modeling | ボラティリティ調整型のサイズ調整に用いる、より正確なボラティリティ推定 |
slippage-modeling | 流動性の制約に用いる、より正確なスリッページ推定 |
ファイル
リファレンス
references/sizing_formulas.md— すべてのサイズ調整方法の数学的導出と、計算例references/practical_guide.md— アカウントサイズやトークンの種類に応じたサイズ調整と、よくある間違い
スクリプト
scripts/size_calculator.py— すべての方法でポジションサイズを計算し、適用される制約を表示しますscripts/portfolio_sizer.py— ポジションごとのリスクと利用可能な予算を表示する、ポートフォリオリスクダッシュボード
クイックリファレンス
# Minimal fixed fractional sizing — copy-paste starter
def calc_position_size(
account: float, risk_pct: float, entry: float, stop: float
) -> float:
"""Return number of units to buy."""
risk_amount = account * risk_pct
price_risk = abs(entry - stop)
if price_risk == 0:
return 0.0
return risk_amount / price_risk