如何在Pine Script策略中添加5%追踪止损(已实现追踪止盈)
实现5%追踪止损 + 追踪止盈的Pine Script方案
我来帮你搞定这个5%追踪止损的设置问题!先理清你当前代码里的参数逻辑,再告诉你怎么把追踪止损加进去——在Pine Script v4的strategy.exit函数里,追踪止盈和追踪止损是通过不同参数组控制的,咱们一步步来:
核心参数说明
先把容易混淆的参数讲明白,避免踩坑:
trail_offset&trail_points:这俩是用来设置追踪止盈的。trail_offset是初始的止盈触发距离(比如你原代码里的5%收盘价),当价格向盈利方向移动超过这个偏移量后,止盈位会跟着价格以trail_points的步长追踪。trail_stop_percent:这个是专门用来设置百分比追踪止损的参数,刚好匹配你要的5%需求,比换算点数更直观省心。
修改后的完整代码
我保留了你原有的追踪止盈逻辑,加上了5%的追踪止损,还把参数单独抽出来方便后续调整:
//@version=4 strategy("My Strategy with Trailing TP & SL", overlay=true) // 交易信号条件 longCondition = crossover(sma(close, 14), sma(close, 28)) if (longCondition) strategy.entry("Long", strategy.long) shortCondition = crossunder(sma(close, 14), sma(close, 28)) if (shortCondition) strategy.entry("Short", strategy.short) // 提前定义追踪参数,方便调整 tp_initial_offset = 0.05 * close / syminfo.mintick // 5%初始止盈偏移(转换为点数) tp_trail_step = 0.1 * close / syminfo.mintick // 0.1%追踪步长(转换为点数) sl_trail_percent = 5 // 5%追踪止损幅度 // 多头退出:追踪止盈 + 5%追踪止损 strategy.exit("Long Exit", "Long", trail_offset=tp_initial_offset, trail_points=tp_trail_step, trail_stop_percent=sl_trail_percent ) // 空头退出:追踪止盈 + 5%追踪止损 strategy.exit("Short Exit", "Short", trail_offset=tp_initial_offset, trail_points=tp_trail_step, trail_stop_percent=sl_trail_percent )
关键调整说明
- 多头追踪止损逻辑:开多后价格上涨时,止损位会跟着向上移动,始终和当前价格保持5%的距离;如果价格从高点下跌5%,就会触发止损平仓。
- 空头追踪止损逻辑:开空后价格下跌时,止损位会跟着向下移动,保持当前价格的5%距离;如果价格从低点反弹5%,就触发止损。
- 适配不同品种:用
syminfo.mintick把百分比转换为点数,能让你的策略在股票、期货等不同品种上都正常工作,不用手动调整最小变动单位。
额外小提示
如果你不想用百分比,而是想用固定点数的追踪止损,可以把trail_stop_percent换成trail_stop,比如trail_stop=100就代表100个最小变动单位的追踪止损。
内容的提问来源于stack exchange,提问作者Vatsal Bindal
相关产品推荐
相关产品推荐

