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

TradingView策略止盈止损配置不生效,如何正确设置卖出规则?

问题核心原因排查

该问题90%以上是参数配置和逻辑编写错误导致,并非TradingView平台Bug,常见问题点如下:

  • 参数单位误用
    strategy.exit()的profit参数默认单位是标的最小报价单位(tick),不是百分比也不是目标价格。如果你直接传入按价格或百分比计算的数值,会导致止盈阈值远小于预期,比如标的tick为0.01时,传10就代表止盈10个tick即0.1元的涨幅,自然会出现1%不到就平仓的情况。
    如果你要按固定目标价格止盈,应该使用limit参数而非profit参数,limit支持直接传入平仓的目标价格位。
  • 止盈止损值动态更新导致逻辑失效
    你的现有代码是只要持有多单,每个K线周期都会重新执行一次strategy.exit(),如果longExitPrice、longStopLossPrice是基于当前K线价格计算的动态值,每次执行都会覆盖上一次设置的止盈止损阈值,自然不会按你入场时的预期触发。
    正确逻辑是仅在入场下单的那一刻,基于入场成交价格计算固定的止盈止损值,后续调用strategy.exit()时始终传入该固定值。
  • 阈值计算逻辑错误
    检查longExitPrice、longStopLossPrice的计算逻辑,是否没有和入场价绑定,比如错误基于当前K线收盘价计算百分比,而非入场时的成交均价计算百分比;另外要注意对齐标的的价格精度,避免阈值小于标的最小变动单位被系统忽略。

修正后代码示例

// 声明变量持久存储入场时的止盈止损值
var float longEntryPrice = na
var float longExitTarget = na
var float longStopTarget = na

// 入场逻辑
if (indicatorColor == color.orange and strategy.position_size <= 0)
    strategy.entry("buy", strategy.long, 3)
    longEntryPrice = strategy.entry_price("buy")
    // 示例:按入场价的10%止盈、5%止损计算固定阈值
    longExitTarget = longEntryPrice * 1.1
    longStopTarget = longEntryPrice * 0.95

// 平仓逻辑:始终使用入场时计算的固定阈值
if (strategy.position_size > 0)
    strategy.exit("bracket", "buy", limit=longExitTarget, stop=longStopTarget)

额外排查项

如果修改后仍存在问题,检查策略设置中的「平仓规则优先级」,确认是否有其他平仓逻辑(比如反手订单、时间平仓规则)优先级高于止盈止损,提前触发了平仓。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:54:01