如何修改TradingView Pine代码实现同步追踪止损止盈并修复退出订单显示问题
问题根源
- 存在语法错误:
longExitPrice赋值行意外换行,导致变量赋值失效 - 出场逻辑配置错误:同一方向持仓拆分了2个独立的
strategy.exit指令,分别设置止盈、止损规则且指定了不同ID,Pine Script会将其识别为两个互不相干的出场订单,会出现逻辑覆盖、配对错误问题,也无法实现「触发其中一个出场条件后自动取消另一个」的原生联动逻辑 - 未指定出场单对应的进场单ID,导致反向仓位的出场规则可能错配到当前持仓,出现EL→XS TP这类错误配对
修正方案
- 先修正
longExitPrice的语法错误,删掉多余换行:
longExitPrice = strategy.position_avg_price * (1 + longProfitPerc)
- 替换原STEP3的出场代码,将同一方向的止盈、追踪止损规则合并到同一个
strategy.exit指令中,同时增加from_entry参数明确绑定对应进场单,避免错配:
// STEP 3: // 同时绑定止盈+追踪止损OCO订单,触发任意条件自动平仓并取消另一条件 if (strategy.position_size > 0) strategy.exit(id="XL", from_entry="EL", limit=longExitPrice, stop=longStopPrice) if (strategy.position_size < 0) strategy.exit(id="XS", from_entry="ES", limit=shortExitPrice, stop=shortStopPrice)
效果说明
修正后所有进出单配对均可正常触发:
- 多单(EL)可触发止盈出场、追踪止损出场
- 空单(ES)可触发止盈出场、追踪止损出场
不会出现跨方向错配、部分出场规则不生效的问题。
内容的提问来源于stack exchange,提问作者Yilong Wu
相关产品推荐
相关产品推荐

