关于 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详细介绍
退出策略
入场容易,退出才是一切。纪律严明的退出策略,能让平庸的入场胜过完美入场却没有退出计划的交易。本技能介绍适用于加密货币和 Solana 代币交易的系统化、基于规则的退出方法。
退出为何重要
- 入场决定你_是否_参与。退出决定你_能留下多少_。
- 大多数交易者把 90% 的精力放在入场上,只用 10% 关注退出——应该反过来。
- 没有明确的退出策略,你就只能依赖情绪,这必然导致表现不一致。
- 每笔交易都应在入场前定义三种退出方式:止损、止盈和移动止损。
退出类别
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 below entry
倍数参考:
- 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
分批退出框架(建议用于 meme/PumpFun 代币):
| 批次 | 仓位比例 | 目标 | 之后的操作 |
|---|---|---|---|
| 1 | 25% | 2× 风险 | 将止损移至盈亏平衡点 |
| 2 | 25% | 3–5× 风险 | 对剩余仓位设置移动止损 |
| 3 | 25% | 5–10× 风险 | 收紧移动止损 |
| 4 | 25% | 移动止损 | 留仓搏高收益——任其上涨 |
市值里程碑退出:
对于 R:R 比率意义不大的 PumpFun 和 meme 代币:
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. 移动止损——趋势跟随型退出
随价格上涨而上移、但绝不下调的动态止损。
百分比移动止损:
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(波段交易)。
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 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. 基于流动性的退出
当成交量或流动性恶化、表明无法顺利退出时退出。
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 专属退出规则
PumpFun 代币的走势特点独特,需要专门的退出逻辑。
毕业前退出
尚未达到 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"
成交量衰减退出
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"
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— 分批退出、R:R 目标、斐波那契扩展位references/trailing_stops.md— 移动止损实现和参数指南
脚本
scripts/exit_simulator.py— 使用合成价格数据模拟并比较退出策略scripts/stop_loss_calculator.py— 计算止损位、仓位大小和 R:R 目标