position-sizer について
株式のロング取引で購入株数を算出するスキルです。固定比率、ATR、Kelly基準を使い、口座やセクターの集中度制限を適用して、株数・ポジション価値・リスクをJSONとMarkdownで報告します。
主な機能
- 01固定比率・ATR・Kelly方式に対応
- 02口座リスクと損切り価格から株数を算出
- 03ポジションとセクターの上限を適用
- 04複数のパラメーター条件を比較
- 05JSONとMarkdownのレポートを生成
活用シーン
- 01エントリー価格と損切り価格から株数を算出
- 02リスク率やATR倍率を比較
- 03集中度の上限に収まるか確認
- 04過去の勝率・損益データから配分を推定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ wind-alice/ alicemarket --skill position-sizerインストール後、Claude Code で/position-sizerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/sizing_methodologies.mdscripts/position_sizer.pyscripts/tests/conftest.pytest_position_sizer.py詳細
ポジションサイズ計算ツール
概要
リスク管理の原則に基づき、株式の買い取引における最適な購入株数を計算します。次の3つのポジションサイズ計算方法に対応しています。
- 固定比率法:取引ごとに口座資産の一定割合をリスクにさらします(デフォルト:1%)
- ATR ベース:Average True Range を使用して、ボラティリティに応じて調整した損切り幅を設定します
- ケリー基準:過去の勝敗統計から、数学的に最適なリスク配分を計算します
すべての方法でポートフォリオの制約(最大ポジション比率、最大セクター比率)を適用し、リスクの詳細を含む最終的な推奨株数を出力します。
使用する場面
- ユーザーが「何株買えばよいですか?」と尋ねた場合
- ユーザーが特定の取引設定に対するポジションサイズの計算を希望する場合
- ユーザーが1取引あたりのリスク、損切り幅の設定、またはポートフォリオ配分について言及した場合
- ユーザーがケリー基準または ATR ベースのポジションサイズについて尋ねた場合
- ユーザーがポジションがポートフォリオの集中度制限内に収まるか確認したい場合
前提条件
- API キーは不要です
- Python 3.9 以降(標準ライブラリのみ)
ワークフロー
ステップ 1:取引パラメーターを収集する
ユーザーから次の情報を収集します。
- 必須:口座サイズ(総資産)
- モード A(固定比率法):エントリー価格、損切り価格、リスク比率(デフォルト 1%)
- モード B(ATR ベース):エントリー価格、ATR 値、ATR 倍率(デフォルト 2.0x)、リスク比率
- モード C(ケリー基準):勝率、平均利益、平均損失。必要に応じて、株数計算用のエントリー価格と損切り価格
- 任意の制約:口座に対する最大ポジション比率、最大セクター比率、現在のセクターエクスポージャー
ユーザーが株式ティッカーを提示しても具体的な価格を指定していない場合は、利用可能なツールで現在価格を調べ、テクニカル分析に基づいてエントリー価格と損切り価格を提案します。
ステップ 2:ポジションサイズ計算スクリプトを実行する
ポジションサイズを計算します。
# Fixed Fractional (most common)
python3 skills/position-sizer/scripts/position_sizer.py \
--account-size 100000 \
--entry 155 \
--stop 148.50 \
--risk-pct 1.0 \
--output-dir reports/
# ATR-Based
python3 skills/position-sizer/scripts/position_sizer.py \
--account-size 100000 \
--entry 155 \
--atr 3.20 \
--atr-multiplier 2.0 \
--risk-pct 1.0 \
--output-dir reports/
# Kelly Criterion (budget mode - no entry)
python3 skills/position-sizer/scripts/position_sizer.py \
--account-size 100000 \
--win-rate 0.55 \
--avg-win 2.5 \
--avg-loss 1.0 \
--output-dir reports/
# Kelly Criterion (shares mode - with entry/stop)
python3 skills/position-sizer/scripts/position_sizer.py \
--account-size 100000 \
--entry 155 \
--stop 148.50 \
--win-rate 0.55 \
--avg-win 2.5 \
--avg-loss 1.0 \
--output-dir reports/
ステップ 3:計算方法のリファレンスを読み込む
選択した方法、リスクの指針、ポートフォリオ制約のベストプラクティスについて説明するため、references/sizing_methodologies.md を読み込みます。
ステップ 4:複数のシナリオを計算する
ユーザーが単一の方法を指定していない場合は、比較のために複数のシナリオを実行します。
- 固定比率法:リスク比率 0.5%、1.0%、1.5%
- ATR ベース:倍率 1.5x、2.0x、3.0x
- 各シナリオの株数、ポジション価値、ドル建てリスクを示す比較表を提示します
ステップ 5:ポートフォリオ制約を適用し、最終サイズを決定する
ユーザーがポートフォリオの情報を提示している場合は、制約を追加します。
python3 skills/position-sizer/scripts/position_sizer.py \
--account-size 100000 \
--entry 155 \
--stop 148.50 \
--risk-pct 1.0 \
--max-position-pct 10 \
--max-sector-pct 30 \
--current-sector-exposure 22 \
--output-dir reports/
どの制約が有効で、なぜポジションが制限されるのかを説明します。
ステップ 6:ポジションレポートを生成する
最終的な推奨内容として、次を提示します。
- 使用した方法とその根拠
- 正確な株数とポジション価値
- ドル建てリスクと口座に占める割合
- 損切り価格
- 適用される制約
- リスク管理上の注意事項(ポートフォリオ全体のリスク量、損失を抑える規律)
出力形式
JSON レポート
{
"schema_version": "1.0",
"mode": "shares",
"parameters": {
"entry_price": 155.0,
"account_size": 100000,
"stop_price": 148.50,
"risk_pct": 1.0
},
"calculations": {
"fixed_fractional": {
"method": "fixed_fractional",
"shares": 153,
"risk_per_share": 6.50,
"dollar_risk": 1000.0,
"stop_price": 148.50
},
"atr_based": null,
"kelly": null
},
"constraints_applied": [],
"final_recommended_shares": 153,
"final_position_value": 23715.0,
"final_risk_dollars": 994.50,
"final_risk_pct": 0.99,
"binding_constraint": null
}
Markdown レポート
JSON レポートとともに自動生成されます。次の内容が含まれます。
- パラメーターの概要
- 適用する方法の計算詳細
- 制約の分析(該当する場合)
- 株数、価値、リスクを含む最終的な推奨内容
レポートは reports/ に保存されます。ファイル名は position_sizer_YYYY-MM-DD_HHMMSS.json および .md です。
リソース
references/sizing_methodologies.md:固定比率法、ATR ベース、ケリー基準について、例、比較表、リスク管理の原則を含む包括的なガイドscripts/position_sizer.py:メインの計算スクリプト(CLI インターフェース)
重要な原則
- まずは生き残ること:ポジションサイズの目的は、勝ちを最大化することではなく、連敗を乗り切ることです
- 1%ルール:1回の取引あたりのリスクは1%を基本とし、特別な理由がない限り2%を超えないでください
- 切り捨てる:株数は必ず整数に切り捨ててください(切り上げないでください)
- 最も厳しい制約を優先する:複数の上限が適用される場合、最も厳しい上限で最終的なサイズを決定します
- ハーフ・ケリー:実践ではフル・ケリーを使用しないでください。ハーフ・ケリーなら、リスクを大幅に抑えながら成長率の75%を得られます
- ポートフォリオのリスク量:オープンポジションのリスク合計は、口座資産の6~8%を超えないようにしてください
- 損失の非対称性:50%の損失から回復するには100%の利益が必要です。それに応じたサイズにしてください