exit-strategies
暗号資産取引において、損失を限定するストップロスや利益を確定するテイクプロフィットなど、相場状況に応じた出口戦略を体系的に実行し、利益を最大化するための自動売買ルールを構築するSkill。
📜 元の英語説明(参考)
Systematic exit rules, stop-loss methods, take-profit strategies, and trailing stop implementations for crypto trading
🇯🇵 日本人クリエイター向け解説
暗号資産取引において、損失を限定するストップロスや利益を確定するテイクプロフィットなど、相場状況に応じた出口戦略を体系的に実行し、利益を最大化するための自動売買ルールを構築するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o exit-strategies.zip https://jpskill.com/download/10409.zip && unzip -o exit-strategies.zip && rm exit-strategies.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/10409.zip -OutFile "$d\exit-strategies.zip"; Expand-Archive "$d\exit-strategies.zip" -DestinationPath $d -Force; ri "$d\exit-strategies.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
exit-strategies.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
exit-strategiesフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
イグジット戦略
エントリーは簡単ですが、イグジットがすべてです。規律あるイグジットを伴う平凡なエントリーは、イグジットプランのない完璧なエントリーよりも優れた結果をもたらします。このスキルでは、暗号資産および Solana トークンの取引における体系的でルールに基づいたイグジット方法について説明します。
イグジットが重要な理由
- エントリーは、参加するかどうかを決定します。イグジットは、どれだけ保持するかを決定します。
- ほとんどのトレーダーは、エントリーに 90% の労力を費やし、イグジットに 10% の労力を費やしています。これを逆転させましょう。
- 定義されたイグジットがない場合、感情に頼ることになり、一貫性がなくなります。
- すべての取引には、エントリー前に定義された3つのイグジットが必要です。ストップロス、テイクプロフィット、およびトレーリングストップです。
イグジットのカテゴリ
1. ストップロス — リスク管理イグジット
ダウンサイドを制限するためにポジションをクローズする、事前に定義された価格水準。
| 方法 | 説明 | 最適な用途 |
|---|---|---|
| 固定パーセンテージ | エントリー価格 − 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 下
乗数ガイド:
- 1.5× — タイト。高い勝率が必要。スキャルプに適しています。
- 2.0× — 標準。ノイズフィルタリングとリスクのバランスを取ります。
- 3.0× — ワイド。ボラティリティの高い状況でのスイングトレード向け。
完全な方法論については、references/stop_loss_methods.md を参照してください。
2. テイクプロフィット — ターゲットイグジット
利益を確定する、事前に定義されたレベル。
固定リスク/リワードターゲット:
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% | トレーリングストップ | Moonbag — 放置 |
時価総額のマイルストーンイグジット:
R:R 比率があまり意味をなさない 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"},
# トレーリングストップで 25% を moonbag として保持
]
Fibonacci エクステンションターゲットやボリュームベースのイグジットを含む完全な方法論については、references/take_profit_strategies.md を参照してください。
3. トレーリングストップ — トレンドフォローイグジット
価格が上昇するとそれに追随しますが、決して下降しない動的なストップ。
パーセンテージトレーリング:
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 トレーリング:
# M 本の連続したバーで終値 < EMA の場合にイグジット
ema = df.ta.ema(length=20)
below_ema = df["close"] < ema
consecutive_below = below_ema.rolling(3).sum() == 3 # 3 本のバーが下回る
一般的な EMA 期間: 10 (スキャルプ)、20 (デイトレード)、50 (スイング)。
Parabolic SAR、SuperTrend、およびステップトレーリングについては、references/trailing_stops.md を参照してください。
4. 時間ベースのイグジット
定義された期間内に取引が有利に動かなかった場合にイグジットします。
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. シグナルベースのイグジット
エントリーシグナルを生成したインジケーターが反転した場合にイグジットします。
# RSI 反転イグジット
rsi = df.ta.rsi(length=14)
if position == "long" and rsi.iloc[-1] > 70:
exit_reason = "rsi_overbought"
# MACD クロスオーバーイグジット
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. 流動性ベースのイグジット
ボリュームまたは流動性が悪化し、クリーンにイグジットする能力が低下していることを示す場合にイグジットします。
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: # ボリュームがベースラインの 30% に低下
exit_reason = "liquidity_deterioration"
流動性が急速に蒸発する可能性のある低キャップの Solana トークンにとって重要です。
PumpFun 固有のイグジットルール
PumpFun トークンには、特殊なイグジットロジックを必要とする独自のダイナミクスがあります。
卒業前のイグジット
85 SOL フィルに達する前にボンディングカーブ上のトークン:
bonding_fill_pct = current_fill_sol / 85.0
if bonding_fill_pct > 0.90:
# 卒業間近 — 決定: スルーして保持するか、前にイグジットするか
# 卒業は、上下両方のボラティリティスパイクを作成します
pass
if bonding_fill_pct < 0.50 and time_since_entry > 300: # 5 分
exit_reason = "stalled_bonding_curve"
ボリューム減衰イグジット
buy_vol_1m = get_buy_volume(token, "1m")
buy_vol_5m = get_buy_volume(token, "5m") / 5 # 1 分あたりに正規化
if buy_vol_1m < buy_vol_5m * 0.3:
exit_reason = "buy_volume_decay"
PumpFun の時間減衰
ほとんどの PumpFun トークンは、
(原文はここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Exit Strategies
Entries are easy, exits are everything. A mediocre entry with a disciplined exit will outperform a perfect entry with no exit plan. This skill covers systematic, rule-based exit methods for crypto and Solana token trading.
Why Exits Matter
- Entries determine if you participate. Exits determine how much you keep.
- Most traders spend 90% of effort on entries and 10% on exits — invert this.
- Without defined exits you rely on emotion, which guarantees inconsistency.
- Every trade should have three exits defined before entry: stop loss, take profit, and trailing stop.
Exit Categories
1. Stop Loss — Risk Management Exits
Predefined price level where you close the position to cap downside.
| Method | Description | Best For |
|---|---|---|
| Fixed percentage | Exit at entry − X% | Simple setups, beginners |
| ATR-based | Entry − ATR(14) × multiplier | Volatility-adaptive |
| Support level | Below nearest swing low | Technically defined risk |
| Maximum loss | Absolute SOL/USD cap | Account protection |
ATR-based stop (recommended default):
import pandas_ta as ta
atr = df.ta.atr(length=14)
stop_loss = entry_price - (atr.iloc[-1] * 2.0) # 2x ATR below entry
Multiplier guide:
- 1.5× — Tight. High win rate needed. Good for scalps.
- 2.0× — Standard. Balances noise filtering with risk.
- 3.0× — Wide. For swing trades in volatile conditions.
See references/stop_loss_methods.md for complete methodology.
2. Take Profit — Target Exits
Predefined levels where you lock in gains.
Fixed risk/reward targets:
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
Scaled exit framework (recommended for meme/PumpFun tokens):
| Tranche | Size | Target | Action After |
|---|---|---|---|
| 1 | 25% | 2× risk | Move stop to breakeven |
| 2 | 25% | 3–5× risk | Trail remainder |
| 3 | 25% | 5–10× risk | Tighten trail |
| 4 | 25% | Trailing stop | Moonbag — let it ride |
Market cap milestone exits:
For PumpFun and meme tokens where R:R ratios are less meaningful:
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
]
See references/take_profit_strategies.md for full methodology including Fibonacci
extension targets and volume-based exits.
3. Trailing Stop — Trend-Following Exits
Dynamic stops that follow price upward but never move down.
Percentage trailing:
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 trailing (Chandelier Exit):
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 trailing:
# 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
Typical EMA periods: 10 (scalp), 20 (day trade), 50 (swing).
See references/trailing_stops.md for Parabolic SAR, SuperTrend, and step trailing.
4. Time-Based Exits
Exit if the trade hasn't moved in your favor within a defined window.
bars_since_entry = current_bar - entry_bar
if bars_since_entry > max_hold_bars and current_pnl <= 0:
exit_reason = "time_stop"
Guidelines:
- Scalp: 5–15 minutes
- Day trade: 4–8 hours
- Swing: 3–5 days
- PumpFun snipe: 2–10 minutes (token-specific)
Time stops prevent capital from sitting in dead trades.
5. Signal-Based Exits
Exit when the indicator that generated the entry signal reverses.
# 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"
Signal exits work well when combined with trailing stops — the signal triggers tightening the trail rather than an immediate full exit.
6. Liquidity-Based Exits
Exit when volume or liquidity deteriorates, signaling reduced ability to exit cleanly.
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"
Critical for low-cap Solana tokens where liquidity can evaporate rapidly.
PumpFun-Specific Exit Rules
PumpFun tokens have unique dynamics requiring specialized exit logic.
Pre-Graduation Exits
Tokens on the bonding curve before reaching 85 SOL fill:
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
Most PumpFun tokens that will succeed show momentum within the first few minutes:
| Timeframe | Action |
|---|---|
| 0–2 min | Hold — too early to judge |
| 2–5 min | Exit if no 2× from entry |
| 5–10 min | Exit if no 3× from entry |
| 10+ min | Should be trailing, not hoping |
Combining Exit Rules
A complete exit plan layers multiple rules. Here is a recommended template:
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,
},
}
Priority hierarchy: Hard stop > ATR trailing > Take profit > Time stop.
The hard stop is always active and never overridden. The ATR trailing stop activates after the first take-profit tranche fills. The time stop only fires if the trade is not yet profitable.
Common Exit Mistakes
| Mistake | Problem | Fix |
|---|---|---|
| No stop loss | Unlimited downside | Always define max loss before entry |
| Moving stops wider | Increases risk after the fact | Never move stops away from price |
| Not taking profits | Winners become losers | Use scaled exits |
| All-or-nothing exits | Leaves money on the table or exits too early | Scale out in tranches |
| Round-number stops | Cluster with other traders, get hunted | Offset by small random amount |
| Too-tight stops | Stopped out by normal volatility | Use ATR-based stops |
| Hoping instead of trailing | Gives back profits | Activate trail after first TP |
| Ignoring liquidity | Cannot exit at intended price | Check spread and depth before sizing |
Integration with Other Skills
position-sizing— Size the position based on the stop loss distance.position_size = (account_risk * account_balance) / (entry - stop_loss)risk-management— Exits are the mechanism that enforces risk limits.pandas-ta— Use ATR, EMA, RSI, MACD for signal-based and trailing exits.slippage-modeling— Estimate execution cost of the exit to set realistic targets.liquidity-analysis— Verify exit liquidity before entering a position.
Files
References
references/stop_loss_methods.md— Complete stop loss methodology and anti-patternsreferences/take_profit_strategies.md— Scaled exits, R:R targets, Fibonacci extensionsreferences/trailing_stops.md— Trailing stop implementations and parameter guidance
Scripts
scripts/exit_simulator.py— Simulate and compare exit strategies on synthetic price datascripts/stop_loss_calculator.py— Calculate stop levels, position sizes, and R:R targets