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

PineScript如何在无TP/SL条件下实现持仓部分平仓?

用strategy.exit实现自定义条件下的部分平仓(无需TP/SL)

要绕过strategy.exit必须指定TP或SL的限制,你可以给它设置一个永远不会触发的极端价格参数,这样就能仅依靠自定义条件完成50%的部分平仓。

核心思路

给strategy.exit配置一个超出标的合理价格范围的stop或limit参数,让TP/SL永远不会触发,同时保留自定义条件触发时执行部分平仓的逻辑:

  • 多头持仓:设置stop为极低价格(如0,适用于无零价的标的)或limit为极高价格;
  • 空头持仓:设置limit为极低价格或stop为极高价格。

代码示例(多头场景)

//@version=5
strategy("自定义条件部分平仓", overlay=true)

// 开仓逻辑
long_entry = ta.crossover(ta.sma(close, 5), ta.sma(close, 20))
if (long_entry)
    strategy.entry("多单进场", strategy.long)

// 自定义平仓条件(示例:收盘价下穿10周期均线)
partial_close_condition = ta.crossunder(close, ta.sma(close, 10))
if (partial_close_condition)
    // 设置永远不会触发的stop参数,仅执行自定义条件下的部分平仓
    strategy.exit(
        id="多单部分平仓", 
        from_entry="多单进场", 
        comment="平50%多单", 
        qty_percent=50, 
        stop=0
    )

注意事项

  • 如果担心极端价格设置不合理,可以用历史极值来定义:比如多头stop设为ta.lowest(low, 1000) * 0.9,确保价格不会触及;
  • 空头场景下,将stop设为ta.highest(high, 1000) * 1.1即可避免触发止损,仅通过自定义条件平仓;
  • 该方法不会影响strategy.exit的部分平仓逻辑,自定义条件满足时会精准平掉指定比例的持仓。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 18:15:26