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

Pyramiding模式下带唯一Entry ID的独立止损关联错误求助

解决Pine Script中金字塔下单时独立止损绑定混乱的问题

你的问题核心是Pine Script默认会把同方向无指定qty的entry归为同一仓位组,哪怕你给了唯一名称,from_entry的关联逻辑也会因为仓位组的默认匹配规则出错,导致止损触发时错位平仓。

解决方案要点

  • 给每一笔strategy.entry指定明确的qty值(哪怕是1),强制让系统把每个entry视为独立的仓位单元
  • 确保strategy.exit的from_entry严格对应目标entry的唯一名称

修改后的完整代码

//@version=5
strategy(title="Example Strategy", overlay=true, pyramiding=5)

// 明确允许同方向多次开仓(配合pyramiding设置)
strategy.risk.allow_entry_in(strategy.long)

// Entries storage.
var longId = 1
var longs = array.new<string>()

// 测试用的开仓条件(保留原逻辑)
backtestStartDate = timestamp("1 Jan 2020")
backtestEndDate = timestamp("1 Jan 2021")
inTradeWindow = time >= backtestStartDate and time < backtestEndDate
var currentOrder = 1
var ordersLimit = 5
var barsBetweenEntries = 5
var barsSinceLastEntry = barsBetweenEntries
// -----------------------------------------------------

if inTradeWindow
    if currentOrder <= ordersLimit and barsSinceLastEntry == barsBetweenEntries
        stopLossPrice = low*0.8

        entryName = "LE#" + str.tostring(longId)

        // 关键修改:指定qty=1,让每个entry成为独立仓位
        strategy.entry(entryName, strategy.long, qty=1)
        strategy.exit(entryName + "#SL", from_entry=entryName, stop=stopLossPrice)

        log.info("Entry " + entryName + " @ " + str.tostring(close) + ", SL " + str.tostring(stopLossPrice))
        
        longs.push(entryName)
        longId += 1
        currentOrder += 1
        barsSinceLastEntry := 0
    else
        barsSinceLastEntry += 1
else if inTradeWindow[1]
    strategy.cancel_all()
    strategy.close_all(comment="Date Range Exit")

原理说明

当你不指定qty时,Pine Script会使用策略的默认下单量(通常是账户资金的固定比例或固定手数),并且把所有同方向的entry合并到同一个仓位组里。这时候from_entry的匹配逻辑会优先关联最早的未平仓仓位,而不是你指定的entry名称,就会出现止损错位的情况。

指定qty=1后,每一笔entry都会被系统标记为独立的、不可合并的仓位单元,from_entry就能精准绑定对应的entry订单,触发止损时只会平仓对应的那一笔仓位,不会影响其他entry。

测试后你会看到,LE#4#SL触发时只会关闭LE#4的仓位,其他entry的止损也会各自对应正确的开仓订单。

内容的提问来源于stack exchange,提问作者Bartłomiej Zieliński

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 14:38:22