risk-management について
暗号資産や Solana のトレーダー向けリスク管理スキルです。ドローダウン、エクスポージャー、取引停止条件の枠組みに加え、分析スクリプトも備えています。
主な機能
- 01ポートフォリオのドローダウン管理
- 02日次・週次の損失上限
- 03集中度とエクスポージャーの上限
- 04取引のサーキットブレーカー条件
- 05VaR、CVaR などの指標
- 06Solana と PumpFun のリスクガイド
活用シーン
- 01口座のドローダウン・損失停止基準の設定
- 02トークン、戦略、相関資産のエクスポージャー制限
- 03連敗やボラティリティ急増時の取引調整
- 04資産曲線とポートフォリオリスクの分析
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ agiprolabs/ claude-trading-skills --skill risk-managementインストール後、Claude Code で/risk-managementを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/circuit_breakers.mddrawdown_management.mdexposure_limits.mdscripts/drawdown_analyzer.pyrisk_dashboard.py詳細
リスク管理
暗号資産および Solana 取引におけるポートフォリオレベルのリスク管理です。このスキルでは、ドローダウン管理、エクスポージャー上限、サーキットブレーカー、暗号資産特有のリスクに関するフレームワークを提供します。
リスク管理の優先順位
すべての判断で、次の優先順位を守る必要があります。
- 生存 — 口座の破綻につながるリスクは決して取らないでください。単一の取引、日、週によって、取引を続ける能力が脅かされてはなりません。
- 資本の保全 — 保有資産を守ってください。損失は幾何級数的に積み重なり、回復には通常を大きく上回る利益が必要です。
- 成長 — 生存と資本の保全を確保した後に限り、リターンを追求してください。
この優先順位に違反し(生存を犠牲にして成長を追い求めること)、口座を破綻させる主な原因となります。
ポートフォリオレベルの管理
1. 最大ドローダウン上限
ポートフォリオのエクイティピークからのドローダウンがしきい値に達したら、取引を停止します。
| 口座タイプ | 最大ドローダウン | 対応 |
|---|---|---|
| 保守的 | -15% | 完全停止し、すべての戦略を見直す |
| 中程度 | -20% | 完全停止し、回復時は最小サイズに縮小する |
| 積極的 | -25% | 完全停止し、必須のクールダウン期間を設ける |
回復に必要な計算から、この上限は非常に重要です。-20%のドローダウンから回復するには+25%が必要です。-50%のドローダウンからは+100%が必要です。回復率の完全な一覧は references/drawdown_management.md を参照してください。
2. 日次損失上限
日次損益(実現損益+含み損益)が次の水準に達したら、新規ポジションの開始を停止します。
- 保守的:口座の-3%
- 中程度:口座の-4%
- 積極的:口座の-5%
UTC の午前0時にリセットします。日次損失上限に3日連続で達した場合、週単位で取引を停止します。
3. 週次損失上限
週次損益が次の水準に達したら、サイズを縮小するか、取引を停止します。
- サイズを50%縮小:週次損失-5%
- 最小サイズのみ:週次損失-7%
- 完全停止:週次損失-10%
4. 集中度上限
次の各項目に対する最大配分を設定します。
| 項目 | 最大集中度 |
|---|---|
| 単一トークン(ブルーチップ) | 口座の10% |
| 単一トークン(ミッドキャップ) | 5% |
| 単一トークン(スモールキャップ) | 2% |
| 単一トークン(PumpFun/マイクロ) | 0.5% |
| 単一セクター/ナラティブ | 30% |
| 単一戦略 | 40% |
5. エクスポージャー上限
投下資本全体に制約を設けます。
- 通常の状況:50~80%を投下し、20~50%を現金準備として保持
- リスク上昇時:30~50%を投下
- ドローダウンが10%超:20~30%を投下
- 同時保有ポジションの最大数:口座規模に応じて5~10
6. 相関管理
暗号資産は売り局面で相関係数が0.7を超えます。実効的な分散には、次の対応が必要です。
- すべてのミームトークンを、相関する単一のグループとして扱う
- ミームトークン全体のエクスポージャーを、1ポジション分のサイズ相当に制限する
- トークンだけでなく、戦略(トレンド、平均回帰、スキャルプ)を分散する
- ローリング相関を監視し、相関が急上昇したらエクスポージャーを減らす
トークンタイプおよび戦略ごとの詳細な上限については、references/exposure_limits.md を参照してください。
ドローダウン管理
対応フレームワーク
| ドローダウン | 状態 | 対応 |
|---|---|---|
| 0~5% | 通常 | 通常サイズで取引を続ける |
| 5~10% | 注意 | ポジションサイズを25~50%縮小する |
| 10~15% | 警告 | 最小サイズのポジションのみ |
| 15~20% | 危機的 | 新規取引を停止し、既存ポジションの管理のみ行う |
| >20% | 緊急 | 完全停止し、再開前にすべてを見直す |
回復に必要な利益
| 損失 | 回復に必要な利益 |
|---|---|
| -5% | +5.3% |
| -10% | +11.1% |
| -15% | +17.6% |
| -20% | +25.0% |
| -30% | +42.9% |
| -40% | +66.7% |
| -50% | +100.0% |
この非対称性は急速に大きくなります。小さなドローダウンを管理することで、破滅的な損失への拡大を防げます。フレームワーク全体については、references/drawdown_management.md を参照してください。
サーキットブレーカー
条件を満たしたときに取引を制限する自動制御です。
時間ベース
- 日次損失上限に達した後は、24時間取引しない
- 週次損失上限に達した後は、48時間のクールダウン期間を設ける
- 週次レビュー日を必ず設ける(新規ポジションは禁止)
損失ベース
- 3連敗 → サイズを50%縮小
- 5連敗 → 最小サイズのみ
- 7連敗 → 24時間停止し、全面的に見直す
ボラティリティベース
- ポートフォリオのボラティリティがローリング平均の2倍を超えた場合 → エクスポージャーを50%削減します
- 市場全体で清算が発生した場合 → 新規エントリーをすべて一時停止します
- 個別トークンのボラティリティが急上昇した場合 → 決済するか、ストップを厳しく設定します
感情面(自己評価)
- 動揺の兆候を認識します:損失後の怒りや、「取り返したい」という衝動
- FOMO:適切な分析をせずにエントリーを急ぐこと
- 過信:連勝後、根拠なくポジションサイズを増やすこと
実装の詳細については、references/circuit_breakers.mdを参照してください。
リスク指標
バリュー・アット・リスク(VaR)
過去のリターンを用いた、日次損失の95パーセンタイル推定値:
import numpy as np
def historical_var(returns: list[float], confidence: float = 0.95) -> float:
"""Calculate historical VaR at given confidence level."""
sorted_returns = sorted(returns)
index = int((1 - confidence) * len(sorted_returns))
return abs(sorted_returns[index])
# Example: 95% VaR of 3.2% means on 95% of days, loss won't exceed 3.2%
期待ショートフォール(CVaR)
最悪の(1 - 信頼水準)%のシナリオにおける平均損失:
def expected_shortfall(returns: list[float], confidence: float = 0.95) -> float:
"""Average loss beyond VaR threshold."""
sorted_returns = sorted(returns)
index = int((1 - confidence) * len(sorted_returns))
tail = sorted_returns[:index]
return abs(sum(tail) / len(tail)) if tail else 0.0
最大ドローダウン
def max_drawdown(equity_curve: list[float]) -> float:
"""Peak-to-trough decline as a fraction."""
peak = equity_curve[0]
max_dd = 0.0
for value in equity_curve:
peak = max(peak, value)
dd = (peak - value) / peak
max_dd = max(max_dd, dd)
return max_dd
その他の指標
- 連勝・連敗の追跡:サーキットブレーカーのロジックに用いるため、好調・不調の連続を検出します
- ローリング・シャープレシオ:30日間のローリング方式による、リスク調整後リターン
- カルマーレシオ:年率リターン / 最大ドローダウン
- ソルティノレシオ:リターン / 下方偏差(マイナスのボラティリティのみを考慮します)
暗号資産特有のリスク
スマートコントラクトのリスク
- 監査を受けていない単一のプロトコルに、口座資産の5%を超えて割り当てないでください
- 利回り戦略では、監査済みのプロトコルに分散してください
- 新たな脅威を検知できるよう、エクスプロイト情報データベースやソーシャルチャネルを監視してください
ラグプルのリスク
- トークンの経過期間に反比例させてポジションサイズを決めます。新しいトークンほど、ポジションを小さくします
- 流動性がロックされていること、ミント権限が放棄されていること、保有者の分布を確認してください
- 危険な兆候を確認するため、
token-holder-analysisスキルと照合してください
ブリッジとカストディのリスク
- 単一のプラットフォームまたはブリッジに、資産の20%を超えて保有しないでください
- 取引資金の大半はセルフカストディで管理してください
- 執行計画では、ブリッジ手数料と遅延を見込んでください
MEVと執行のリスク
- Solana DEXの取引では、MEV/スリッページ分として1~3%を見込んでください
- 混雑時には優先手数料を使用してください
- 詳細なコスト見積もりについては、
slippage-modelingスキルを参照してください
相関の急上昇
- 暴落時には、暗号資産の相関係数が1.0に近づきます
- 「分散された」ポートフォリオが、単一のポジションのように動く可能性があります
- すべてのポジションが同時に下落する前提で、ポートフォリオのストレステストを行ってください
PumpFunのリスクフレームワーク
PumpFunや類似のミームトークン・プラットフォームでは、独自のリスク管理が必要です。
基本原則
PumpFunでの取引はすべて、全額損失となる可能性があるものとして扱います。それに応じてポジションサイズを決めてください。
ポジションの上限
- トークンごとの上限:0.1~0.5 SOL
- PumpFunの日次予算:固定の割当額(例:2 SOL/日)
- 予算を超えない:日次の割当額を使い切ったら、取引を停止してください
追跡
- PumpFunの損益はメインのポートフォリオとは分けて追跡してください
- PumpFunの勝率と期待値を個別に算出してください
- PumpFunの損失をメインのポートフォリオのリスク上限に影響させないでください
リスク調整
- PumpFunではストップロスを設定しません(エントリー時点で全額損失を想定します)
- 積極的に利益を確定します:2倍、3倍、5倍の段階的な部分決済
- 時間に基づいて決済します:数日ではなく、数時間以内に決済してください
他のスキルとの連携
position-sizing:このスキルのリスク上限を用いて、ポジションサイズを制限しますexit-strategies:サーキットブレーカーは、エグジット戦略より優先されます(強制決済)portfolio-analytics:リスク評価に使うポートフォリオ指標をフィードバックしますliquidity-analysis:利用可能な流動性に基づいて、ポジション上限を調整しますslippage-modeling:執行コストをリスク計算に反映します
ファイル
リファレンス
references/drawdown_management.md— ドローダウンの計算、対応フレームワーク、原因、是正措置references/exposure_limits.md— トークンの種類別ポジション上限、ポートフォリオ上限、相関管理references/circuit_breakers.md— すべての種類のサーキットブレーカーの実装詳細
スクリプト
scripts/risk_dashboard.py— 上限チェックと色分けされたステータス表示を備えた、ポートフォリオのリスクダッシュボードscripts/drawdown_analyzer.py— 対応策の推奨を含む、エクイティカーブのドローダウン分析
クイックスタート
# Run the risk dashboard with demo data
python scripts/risk_dashboard.py --demo
# Analyze drawdowns on a demo equity curve
python scripts/drawdown_analyzer.py --demo