You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建带trailing stop(移动止损)的买卖订单是否有更简便的实现方法?

Pine Script带止损/移动止损交易指令优化方案

现有代码问题梳理

  • 止损逻辑错误:做多仓位的止损位设置为100,远高于入场价和止盈价,仅会在价格上涨超过100时触发,完全背离做多止损(控制下跌亏损)的需求
  • 离场指令ID重复:两个strategy.exit都使用了相同的IDS1,会导致后定义的离场规则覆盖前者,无法为两个入场单独立配置止盈止损参数
  • 硬编码价位灵活性差:所有入场、止盈、止损价位都写死为固定值,回测不同品种或周期时需要逐行修改,效率极低

优化后实现代码

//@version=5
strategy("带移动止损的买卖指令优化版", overlay=true, margin_long=100, margin_short=100)

// 抽离可配置参数,方便调整
base_price = input.float(90, title="基准价位", minval=0)
qty = input.int(10, title="下单数量", minval=1)
trail_offset = input.float(1, title="移动止损偏移量", minval=0.1)
stop_loss_offset = input.float(4, title="止损偏移量", minval=0.1)

// 第一组多单
strategy.entry ("L1", strategy.long, qty = qty, limit = base_price - 2, stop = base_price - 4)
strategy.exit ("S1", "L1", limit = base_price + 8, stop = strategy.position_avg_price - stop_loss_offset, trail_price=trail_offset)

// 第二组多单
strategy.entry ("L2", strategy.long, qty = qty, limit = base_price - 4, stop = base_price - 6)
strategy.exit ("S2", "L2", limit = base_price + 6, stop = strategy.position_avg_price - stop_loss_offset, trail_price=trail_offset)

优化点说明

  • 修正止损逻辑:止损位改为以持仓平均价为基准向下偏移固定值,符合做多仓位控制下跌亏损的需求
  • 离场指令ID独立:两个离场指令分别使用S1、S2独立ID,可分别对应各自的入场单生效,不会出现规则覆盖问题
  • 参数可配置化:所有核心参数都抽离到input输入项,调整参数不需要修改业务逻辑代码,适配不同品种、周期的回测需求
  • 价位动态计算:以基准价为核心计算所有入场、止盈价位,调整时只需修改基准价即可,避免硬编码出现的数值错配问题

内容的提问来源于stack exchange,提问作者SimpleTrading101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:45:03