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

仅在多头持仓活跃时绘制止损线的Pine Script V5实现求助

解决方案:仅在多头持仓时绘制止损线(Pine Script v5)

要实现仅在多头持仓活跃时绘制止损线,只需做两处关键调整:

  • 按要求将止损线计算为长期EMA减去2倍ATR
  • 通过持仓状态判断控制止损线的显示时机

修改后的完整代码

//@version=5
strategy("EMA Crossover", overlay=true, margin_long=100, margin_short=100)

// 指标计算
SEMA = ta.ema(close, 24)
LEMA = ta.ema(close, 48)
atr_value = ta.atr(24)
long_stop_level = LEMA - 2 * atr_value  // 按要求计算多头止损:LEMA减2倍ATR
short_stop_level = LEMA + atr_value    // 原空头止损逻辑保留

// 绘制均线
plot(SEMA,"SEMA", color.black)
plot(LEMA,"LEMA",color.blue)

// 仅在对应持仓活跃时绘制止损线
plot(strategy.position_size > 0 ? long_stop_level : na, "Long Stop", color.green, linewidth=2)
plot(strategy.position_size < 0 ? short_stop_level : na, "Short Stop", color.red, linewidth=2)

// 多头入场
longCondition = ta.crossover(SEMA,LEMA)
if (longCondition)
    strategy.entry("Go Long", strategy.long)

// 空头入场
shortCondition = ta.crossunder(SEMA,LEMA)
if (shortCondition)
    strategy.entry("Go Short", strategy.short)

关键修改说明

  1. 止损线计算修正:把原代码中单独的STOP变量拆分,明确计算long_stop_level = LEMA - 2 * atr_value,完全匹配你要求的止损公式。
  2. 持仓状态判断:使用strategy.position_size > 0判断当前是否持有多头仓位——如果是,就绘制多头止损线;否则返回na让这条线隐藏。同理,空头止损线用strategy.position_size < 0控制显示。
  3. 视觉优化:给止损线添加linewidth=2,让它在图表上更醒目,你可以根据需求调整这个参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:45:36