mcpField
E
exit-strategies

exit-strategies

github.com/agiprolabsその他456513 回インストール8 週間前に更新
リポジトリ

exit-strategies について

exit-strategiesは、暗号資産やSolanaトークン取引向けのルールベースの決済計画スキルです。損切り、分割利確、トレーリングストップに加え、時間・シグナル・流動性に基づく決済方法を扱います。

主な機能

  1. 01固定率とATRによるストップ手法
  2. 02分割利確と時価総額の節目
  3. 03パーセンテージ、ATR、EMAのトレーリングストップ
  4. 04時間・シグナルによる決済
  5. 05PumpFun向けの決済ルール
  6. 06決済シミュレーターと損切り計算スクリプト

活用シーン

  1. 01エントリー前に損切りと利確目標を設定
  2. 02値動きの大きいトークンの分割決済を計画
  3. 03モメンタム、流動性、保有時間に応じて決済

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/agiprolabs/claude-trading-skills --skill exit-strategies

インストール後、Claude Code で/exit-strategiesを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
stop_loss_methods.md
take_profit_strategies.md
trailing_stops.md
scripts/
exit_simulator.py
stop_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トークンに推奨):

トランシェサイズ目標その後の対応
125%リスクの2倍ストップを損益分岐点に移動
225%リスクの3~5倍残りにトレーリングストップを適用
325%リスクの5~10倍トレーリングストップを引き締める
425%トレーリングストップムーンバッグ — 保有を続ける

時価総額の節目でのエグジット:

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 — ストップ水準、ポジションサイズ、リスクリワード目標を計算します

コメント