PineScript V5:止损保本更新是否独立于开仓条件waitForLong?
PineScript策略风控逻辑独立性问题
我开发了一款PineScript策略,满足指定条件时执行交易,最多可开立5笔交易,且首个止盈(TP1)触发后自动将止损(SL)更新至保本价。策略运行在5分钟K线周期,现有以下核心疑问:
- 若已开立5笔交易,后续K线未触发开仓条件
waitForLong,位于开仓条件代码块内的止损保本更新逻辑是否仍能生效? - 现有持仓的风控管理逻辑是否独立于新仓开立条件?即持仓建立后,后续K线未满足开仓条件时,是否仍会按原有SL/TP规则管理活跃持仓?
相关代码片段
交易组记录逻辑
// 记录该交易组的入场价与触发标记 array.push(longEntryPrices, buyOrSellPrice) array.push(longTP1Hit, false)
止损计算与开仓、风控逻辑
// 止损为最近5根K线的最低价 slLong = ta.lowest(5) if waitForLong currentPrice := close buyOrSellPrice := currentPrice + continuationPrice // 记录该交易组的入场价与触发标记 array.push(longEntryPrices, buyOrSellPrice) array.push(longTP1Hit, false) for i = 1 to 5 if slLong > currentPrice slLong := longCandleLow - spreadValue longProfit := (buyOrSellPrice + ((buyOrSellPrice - slLong) * i)) else longProfit := (buyOrSellPrice + ((buyOrSellPrice - actualSlLong) * i)) strategy.entry("Long " + str.tostring(i), strategy.long, qty=RiskValue, limit=buyOrSellPrice, stop=slLong) // 若TP1触发,将剩余交易的止损更新至保本价 if not array.get(longTP1Hit, array.size(longEntryPrices) - 1) and (high >=(buyOrSellPrice + ((buyOrSellPrice - actualSlLong)))) breakevenPrice = buyOrSellPrice for j = i + 1 to 5 strategy.exit("Long Exit " + str.tostring(j), "Long " + str.tostring(j), sto=breakevenPrice) array.set(longTP1Hit, array.size(longEntryPrices) - 1, true)
核心疑问总结
waitForLong条件是否与「TP1触发时更新剩余交易止损至保本价」逻辑相互独立?
内容的提问来源于stack exchange,提问作者Labeeb OPC
相关产品推荐
相关产品推荐

