第四节:止损策略设计——固定止损、移动止损、时间止损、波动率止损
止损这件事,我做了十几年,踩过的坑比赚到的钱还多。说实话,很多新手一上来就问我“止损设多少点合适”,这问题本身就不对。止损不是拍脑袋定的,它是一套完整的策略体系。今天我把四种最核心的止损方法掰开揉碎了讲给你听。
4.1 固定止损:最基础,也最容易被滥用
固定止损,说白了就是设一个硬性价格。比如你做多螺纹钢,入场价3800,止损设在3750。亏50个点就砍。简单粗暴,对吧?
但我见过太多人把固定止损当成了“心理安慰”。设个止损,然后就不管了。结果呢?行情来回扫,止损被打掉,价格又回去了。我早期做股指期货时就吃过这种亏,连续三次被扫止损,第四次我干脆不设了,结果那波行情直接爆仓。
固定止损的核心参数有两个:
- 止损幅度:一般用ATR的1.5到2倍,或者用固定金额。我个人习惯用ATR,因为不同品种波动不一样,固定金额容易失效。
- 止损位置:放在关键支撑/阻力位下方。别放在整数关口,容易被扫。
避坑指南:我曾经在橡胶上设了固定止损,结果夜盘跳空低开,直接穿过了止损位。后来我才明白,固定止损只适用于流动性好、跳空少的品种。像橡胶、棉花这种,你得配合时间止损一起用。
4.2 移动止损:让利润奔跑的艺术
移动止损,也叫跟踪止损。它的逻辑很简单:价格朝有利方向移动,止损也跟着移动。这样既能保护利润,又不会过早离场。
我常用的移动止损方式有三种:
- 固定点数移动:每涨10个点,止损上移10个点。适合趋势明显的行情。
- 百分比移动:比如每涨5%,止损上移3%。适合波动率大的品种。
- 基于ATR移动:止损放在当前价格减去2倍ATR的位置。这是我最推荐的方式,因为它自适应市场波动。
你想想看,为什么很多人拿不住单子?就是因为没有移动止损。价格涨了,心里慌,怕回调,早早平仓。移动止损就是帮你解决这个心理问题的工具。
我的经验:移动止损不要设得太紧。我见过有人用1倍ATR做移动止损,结果一个正常回调就被扫出去。建议至少用2倍ATR,趋势行情可以用3倍。
4.3 时间止损:被忽视的隐形杀手
时间止损,很多人不理解。为什么持仓时间也要止损?
我举个例子。你开了一单,等了三天,价格还在原地打转。这时候你该问问自己:这笔交易还有意义吗?时间成本也是成本。市场没有按预期方向走,说明你的判断可能有问题。
时间止损的常见设置:
- 日内交易:收盘前必须平仓,不过夜。
- 波段交易:持仓超过3天没盈利,主动离场。
- 趋势交易:持仓超过10天没创新高/新低,考虑减仓。
我记得有一次做铜,持仓两周,价格一直在窄幅震荡。我舍不得走,总觉得“马上要突破了”。结果呢?震荡了一个月,最后向下破位,亏了20%。从那以后,我给自己定了个规矩:持仓超过5天没盈利,先减一半仓位。
注意:时间止损不是让你频繁交易。它的目的是防止“死扛”和“无效持仓”。如果你做的是长线趋势策略,时间止损可以放宽到两周甚至一个月。
4.4 波动率止损:最科学的止损方式
波动率止损,是我现在最常用的方法。它的核心思想是:止损幅度应该与市场波动率挂钩。市场波动大,止损就宽一点;波动小,止损就窄一点。
具体怎么算?我一般用ATR(平均真实波幅)。比如:
- 入场价:100
- 当前ATR:2
- 止损幅度:2倍ATR = 4
- 止损价:100 - 4 = 96
这样做的好处很明显:你不会在波动率放大的时候被轻易扫出去,也不会在波动率收缩的时候承担不必要的风险。
波动率止损的进阶用法:
- 动态调整:每周重新计算一次ATR,根据最新波动率调整止损。
- 多周期结合:日线ATR用于大方向止损,小时线ATR用于入场后短期保护。
- 波动率突变处理:当ATR突然放大到前值的2倍以上,立即收紧止损。
避坑指南:我曾经在原油上用过波动率止损,结果遇到OPEC会议,ATR瞬间放大3倍。按道理应该收紧止损,但我没反应过来,结果被一波急跌打穿。后来我加了个条件:当ATR连续两天放大超过50%,手动检查持仓,必要时提前离场。
4.5 四种止损的实战组合
单一止损方法都有缺陷。我建议组合使用:
| 策略类型 | 主止损 | 辅助止损 | 适用场景 |
|---|---|---|---|
| 日内高频 | 固定止损 | 时间止损 | 股指期货、国债期货 |
| 波段交易 | 移动止损 | 波动率止损 | 螺纹钢、铁矿石 |
| 趋势跟踪 | 波动率止损 | 时间止损 | 原油、铜 |
| 套利交易 | 固定止损 | 波动率止损 | 跨品种、跨期套利 |
举个例子。我做螺纹钢波段时,主止损用移动止损(2倍ATR),辅助用时间止损(持仓超过3天没盈利就减仓)。这样既保住了趋势利润,又防止了无效持仓。
4.6 止损策略的核心逻辑图
下面这张图是我自己画的,把四种止损的关系和适用场景理清楚了。你一看就明白。
4.7 代码示例:基于ATR的波动率止损
最后,给你一个我实际在用的Python代码片段。它实现了基于ATR的波动率止损,并且加入了动态调整逻辑。
import pandas as pd
import numpy as np
def atr_stop_loss(df, period=14, multiplier=2):
"""
基于ATR的波动率止损
df: 包含'high','low','close'的DataFrame
period: ATR计算周期
multiplier: 止损倍数
"""
# 计算ATR
high = df['high']
low = df['low']
close = df['close']
tr = np.maximum(
high - low,
np.maximum(
abs(high - close.shift(1)),
abs(low - close.shift(1))
)
)
atr = tr.rolling(window=period).mean()
# 动态止损价
df['stop_loss'] = df['close'] - multiplier * atr
# 波动率突变检测
atr_ratio = atr / atr.shift(period)
df['volatility_spike'] = atr_ratio > 2.0
# 如果波动率突变,收紧止损
df.loc[df['volatility_spike'], 'stop_loss'] = df['close'] - 1.5 * atr
return df
# 使用示例
# df = pd.read_csv('rb_data.csv')
# df = atr_stop_loss(df, period=14, multiplier=2)
# print(df[['close', 'stop_loss']].tail())
小提示:代码里的波动率突变检测,是我踩过坑之后加上的。你可以在回测时看看自己的品种,ATR突然放大时,是不是经常伴随大行情?如果是,这个逻辑就很有用。
好了,四种止损策略就讲到这里。记住一句话:止损不是用来证明你错了,而是用来保证你还能继续玩下去。下次我们聊聊仓位管理的具体算法。
公众号:蓝海资料掘金营,微信deep3321