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

如何将多单止损设置为入场前低点?Pine Script技术咨询

如何将多单止损设置为入场前的低点?

我希望将多单的止损设置为入场前的低点,请问需要使用什么指令?

入场前低点示意图

我当前使用的代码如下:

if ta.change(strategy.position_size) == 0
    strategy.exit(id="Close Long", stop=low)


if ta.change(strategy.position_size) == 0
    strategy.exit(id="Close Short", stop=high)

你当前的代码逻辑有误:ta.change(strategy.position_size) == 0 是持仓量未变化时执行止损设置,这会导致止损价被每根K线的实时low/high不断覆盖,根本无法锁定入场前的低点。

要实现锁定入场前低点作为多单止损的需求,核心是在开仓时记录下目标低点,之后用这个固定值作为止损价,具体实现代码如下:

// 定义变量存储入场前的关键价位,var确保只初始化一次
var float longEntryLow = na
var float shortEntryHigh = na

// 示例多单开仓条件(请替换成你实际的开仓逻辑)
longCondition = ta.crossover(ta.sma(close, 5), ta.sma(close, 20))
if (longCondition)
    strategy.entry("Long", strategy.long)
    // 记录入场前一根K线的低点,若需阶段性低点可改用ta.lowest(low, N)[1]
    longEntryLow := low[1]

// 示例空单开仓条件(请替换成你实际的开仓逻辑)
shortCondition = ta.crossunder(ta.sma(close, 5), ta.sma(close, 20))
if (shortCondition)
    strategy.entry("Short", strategy.short)
    // 记录入场前一根K线的高点
    shortEntryHigh := high[1]

// 多单持仓时,用记录的入场前低点设置止损
if (strategy.position_size > 0)
    strategy.exit(id="Close Long", stop=longEntryLow)

// 空单持仓时,用记录的入场前高点设置止损
if (strategy.position_size < 0)
    strategy.exit(id="Close Short", stop=shortEntryHigh)

关键说明:

  • 用var声明变量,避免每次K线更新都重置存储的价位
  • 开仓时同步记录目标价位,确保止损价固定为入场前的数值
  • 若你需要的是入场前N根K线内的阶段性低点,可把low[1]替换为ta.lowest(low, 5)[1](数字5代表最近5根K线,可按需调整)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 21:25:18