exit-strategies について
exit-strategiesは、暗号資産やSolanaトークン取引向けのルールベースの決済計画スキルです。損切り、分割利確、トレーリングストップに加え、時間・シグナル・流動性に基づく決済方法を扱います。
主な機能
- 01固定率とATRによるストップ手法
- 02分割利確と時価総額の節目
- 03パーセンテージ、ATR、EMAのトレーリングストップ
- 04時間・シグナルによる決済
- 05PumpFun向けの決済ルール
- 06決済シミュレーターと損切り計算スクリプト
活用シーン
- 01エントリー前に損切りと利確目標を設定
- 02値動きの大きいトークンの分割決済を計画
- 03モメンタム、流動性、保有時間に応じて決済
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ agiprolabs/ claude-trading-skills --skill exit-strategiesインストール後、Claude Code で/exit-strategiesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/stop_loss_methods.mdtake_profit_strategies.mdtrailing_stops.mdscripts/exit_simulator.pystop_loss_calculator.py詳細
Exit Strategies
エントリーは簡単ですが、すべてを左右するのはエグジットです。規律あるエグジットを伴う平凡なエントリーは、エグジット計画のない完璧なエントリーを上回ります。このスキルでは、暗号資産およびSolanaトークンの取引における、体系的でルールに基づいたエグジット手法を扱います。
Why Exits Matter
- エントリーは、参加するかどうかを決めます。エグジットは、どれだけ利益を残せるかを決めます。
- ほとんどのトレーダーは労力の90%をエントリーに、10%をエグジットに費やしています。この比率を逆転させましょう。
- エグジットを明確に定めていないと感情に頼ることになり、一貫性を保てなくなります。
- すべての取引では、エントリー前に3種類のエグジットを定めておく必要があります。損切り、利益確定、トレーリングストップです。
Exit Categories
1. Stop Loss — Risk Management Exits
下落リスクを抑えるため、ポジションを決済する価格水準をあらかじめ定めます。
| 方法 | 説明 | 最適な対象 |
|---|---|---|
| 固定パーセンテージ | エントリー価格 − X%で決済 | シンプルなセットアップ、初心者 |
| ATRベース | エントリー価格 − ATR(14) × 倍率 | ボラティリティに応じた調整 |
| サポートレベル | 直近のスイング安値を下回ったら決済 | テクニカル指標で定めるリスク |
| 最大損失 | SOL/USDの絶対上限 | 口座の保護 |
ATRベースのストップ(推奨デフォルト):
import pandas_ta as ta
atr = df.ta.atr(length=14)
stop_loss = entry_price - (atr.iloc[-1] * 2.0) # 2x ATR below entry
倍率の目安:
- 1.5× — タイト。高い勝率が必要です。スキャルピングに適しています。
- 2.0× — 標準。ノイズの除去とリスクのバランスが取れています。
- 3.0× — 広め。ボラティリティの高い状況でのスイングトレード向けです。
詳しい手法については、references/stop_loss_methods.mdを参照してください。
2. Take Profit — Target Exits
利益を確定する水準をあらかじめ定めます。
固定リスクリワード目標:
risk = entry_price - stop_loss_price
tp_2r = entry_price + (risk * 2) # 2:1 R:R
tp_3r = entry_price + (risk * 3) # 3:1 R:R
tp_5r = entry_price + (risk * 5) # 5:1 R:R
段階的エグジットの枠組み(ミームトークン/PumpFunトークンに推奨):
| トランシェ | サイズ | 目標 | その後の対応 |
|---|---|---|---|
| 1 | 25% | リスクの2倍 | ストップを損益分岐点に移動 |
| 2 | 25% | リスクの3~5倍 | 残りにトレーリングストップを適用 |
| 3 | 25% | リスクの5~10倍 | トレーリングストップを引き締める |
| 4 | 25% | トレーリングストップ | ムーンバッグ — 保有を続ける |
時価総額の節目でのエグジット:
PumpFunやミームトークンでは、リスクリワード比があまり意味を持たないため、以下の方法を使います。
milestones = [
{"mcap": 50_000, "sell_pct": 0.25, "label": "Cover cost"},
{"mcap": 100_000, "sell_pct": 0.25, "label": "Lock profit"},
{"mcap": 500_000, "sell_pct": 0.25, "label": "Major profit"},
# Hold 25% as moonbag with trailing stop
]
フィボナッチ・エクステンション目標や出来高ベースのエグジットを含む詳しい手法については、references/take_profit_strategies.mdを参照してください。
3. Trailing Stop — Trend-Following Exits
価格上昇に追随し、下方向には決して動かない動的なストップです。
パーセンテージトレーリング:
def percentage_trailing_stop(
current_price: float,
highest_since_entry: float,
trail_pct: float = 0.10,
) -> tuple[float, bool]:
"""Return (stop_level, triggered)."""
highest = max(highest_since_entry, current_price)
stop = highest * (1 - trail_pct)
return stop, current_price <= stop
ATRトレーリング(シャンデリア・イグジット):
def chandelier_exit(
highs: list[float],
atr_value: float,
multiplier: float = 2.5,
lookback: int = 22,
) -> float:
"""Highest high over lookback minus ATR * multiplier."""
highest_high = max(highs[-lookback:])
return highest_high - (atr_value * multiplier)
EMAトレーリング:
# Exit when close < EMA for M consecutive bars
ema = df.ta.ema(length=20)
below_ema = df["close"] < ema
consecutive_below = below_ema.rolling(3).sum() == 3 # 3 bars below
一般的なEMA期間:10(スキャルピング)、20(デイトレード)、50(スイングトレード)。
パラボリックSAR、スーパートレンド、段階的トレーリングについては、references/trailing_stops.mdを参照してください。
4. Time-Based Exits
定めた期間内に取引が有利な方向へ動かなければ決済します。
bars_since_entry = current_bar - entry_bar
if bars_since_entry > max_hold_bars and current_pnl <= 0:
exit_reason = "time_stop"
目安:
- スキャルピング:5~15分
- デイトレード:4~8時間
- スイングトレード:3~5日
- PumpFunのスナイプ:2~10分(トークンによって異なります)
時間ベースのストップにより、動きのない取引に資金が拘束されるのを防げます。
5. Signal-Based Exits
エントリーシグナルを発生させたインジケーターが反転したときに決済します。
# RSI reversal exit
rsi = df.ta.rsi(length=14)
if position == "long" and rsi.iloc[-1] > 70:
exit_reason = "rsi_overbought"
# MACD crossover exit
macd = df.ta.macd()
if macd["MACDs_12_26_9"].iloc[-1] < macd["MACDh_12_26_9"].iloc[-1]:
exit_reason = "macd_bearish_cross"
シグナルによるエグジットは、トレーリングストップと組み合わせると効果的です。シグナルが出たときにすぐ全決済するのではなく、トレーリングストップを引き締めます。
6. Liquidity-Based Exits
出来高や流動性が低下し、円滑に決済しにくくなっていることを示したときに決済します。
recent_vol = df["volume"].rolling(10).mean().iloc[-1]
baseline_vol = df["volume"].rolling(50).mean().iloc[-1]
if recent_vol < baseline_vol * 0.3: # Volume dropped to 30% of baseline
exit_reason = "liquidity_deterioration"
流動性が急速に失われる可能性のある、時価総額の小さいSolanaトークンでは特に重要です。
PumpFun-Specific Exit Rules
PumpFunトークンには独自の値動きがあり、専用のエグジットロジックが必要です。
Pre-Graduation Exits
85 SOLに達する前のボンディングカーブ上のトークン:
bonding_fill_pct = current_fill_sol / 85.0
if bonding_fill_pct > 0.90:
# Near graduation — decide: hold through or exit before
# Graduation creates volatility spike, both up and down
pass
if bonding_fill_pct < 0.50 and time_since_entry > 300: # 5 min
exit_reason = "stalled_bonding_curve"
Volume Decay Exits
buy_vol_1m = get_buy_volume(token, "1m")
buy_vol_5m = get_buy_volume(token, "5m") / 5 # Normalize to per-minute
if buy_vol_1m < buy_vol_5m * 0.3:
exit_reason = "buy_volume_decay"
Time Decay for PumpFun
成功するPumpFunトークンの多くは、最初の数分で勢いを示します。
| 期間 | 対応 |
|---|---|
| 0~2分 | 保有 — 判断するには早すぎます |
| 2~5分 | エントリー時から2倍になっていなければ決済 |
| 5~10分 | エントリー時から3倍になっていなければ決済 |
| 10分以降 | 期待するのではなく、トレーリングストップを適用 |
退出ルールの組み合わせ
完全な退出計画では、複数のルールを組み合わせます。以下は推奨テンプレートです。
exit_plan = {
"hard_stop": {
"type": "fixed_percentage",
"value": 0.20, # -20% max loss
"priority": 1, # Checked first, always honored
},
"atr_stop": {
"type": "atr_trailing",
"multiplier": 2.5,
"atr_length": 14,
"priority": 2,
},
"take_profit": {
"type": "scaled",
"tranches": [
{"at_rr": 2, "sell_pct": 0.25},
{"at_rr": 4, "sell_pct": 0.25},
{"at_rr": 8, "sell_pct": 0.25},
],
"priority": 3,
},
"time_stop": {
"type": "max_bars",
"value": 50,
"condition": "if_not_profitable",
"priority": 4,
},
}
優先順位:ハードストップ > ATR トレーリング > 利益確定 > 時間ストップ。
ハードストップは常に有効で、決して上書きされません。ATR トレーリングストップは、最初の利益確定分が約定した後に有効になります。時間ストップは、トレードがまだ利益を出していない場合にのみ発動します。
よくある退出時のミス
| ミス | 問題 | 対処法 |
|---|---|---|
| 損切りを設定しない | 損失が無制限になる | エントリー前に必ず最大損失を定める |
| ストップを広げる | 事後的にリスクが増加する | ストップを価格から遠ざけない |
| 利益を確定しない | 勝ちトレードが負けに変わる | 分割決済を使う |
| 一括で決済する | 利益を取り逃す、または早すぎる決済につながる | 複数回に分けてポジションを縮小する |
| キリのよい価格にストップを置く | 他のトレーダーと注文が集中し、狙われやすくなる | 少しランダムな幅を設ける |
| ストップが近すぎる | 通常のボラティリティで損切りされる | ATR ベースのストップを使う |
| トレーリングせずに期待する | 利益を失う | 最初の利益確定後にトレーリングを有効にする |
| 流動性を無視する | 想定した価格で決済できない | ポジションサイズを決める前にスプレッドと板の厚さを確認する |
他のスキルとの連携
position-sizing— 損切りまでの距離に基づいてポジションサイズを決めます。position_size = (account_risk * account_balance) / (entry - stop_loss)risk-management— 退出はリスク制限を徹底する仕組みです。pandas-ta— ATR、EMA、RSI、MACD を使って、シグナルベースの退出やトレーリング退出を行います。slippage-modeling— 退出時の約定コストを見積もり、現実的な目標を設定します。liquidity-analysis— ポジションに入る前に退出時の流動性を確認します。
ファイル
リファレンス
references/stop_loss_methods.md— 損切りの手法とアンチパターンの完全なガイドreferences/take_profit_strategies.md— 分割決済、リスクリワード目標、フィボナッチ・エクステンションreferences/trailing_stops.md— トレーリングストップの実装とパラメーターのガイダンス
スクリプト
scripts/exit_simulator.py— 合成価格データを使って退出戦略をシミュレーションし、比較しますscripts/stop_loss_calculator.py— ストップ水準、ポジションサイズ、リスクリワード目標を計算します