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

Pine Script中strategy.entry的limit参数被忽略原因咨询

问题解析与解决方案

核心误解:多单limit参数的逻辑搞反了

你对strategy.entry的limit参数理解完全错了——多单的limit是用来挂「限价买入单」,逻辑是等价格跌到设定值(或更低)时才开仓,而不是等价格上涨到该值。

为什么三种代码回测结果一致?

你的三种写法回测结果相同,本质是因为这三种情况都触发了「立即成交」:

  • 无limit参数:默认是市价单,信号触发时直接以当前价格开仓。
  • 原代码limit=buyPrice:如果触发信号时的当前价格 ≤ buyPrice,限价单的成交条件已经满足,会立即以当前价格开仓,和市价单无区别。
  • limit=1000000:这个值远高于当前行情价格,当前价格必然满足「≤1000000」,所以限价单也会立即成交,效果和前两者完全一致。

只有当buyPrice 高于 信号触发时的当前价格时,多单的limit参数才会真正进入「等待状态」——但此时是等价格跌到buyPrice再开仓,这和你想要的「等价格上涨开仓」完全是两回事。

正确用法:要等价格上涨开多,用stop参数

如果你的需求是等待价格上涨到buyPrice时再开多仓,应该用stop参数而非limit:

strategy.entry('Long', strategy.long, stop=buyPrice, comment=enterLongComment)

多单的stop参数是「止损开仓单」逻辑:当价格上涨到等于或高于buyPrice时,触发开仓,这才是你想要的效果。

再梳理下两类参数的核心区别

  • 多单场景:
    • limit=X:愿意以≤X的价格买入,价格跌到X(或更低)时成交
    • stop=X:愿意以≥X的价格买入,价格涨到X(或更高)时成交
  • 空单场景:
    • limit=X:愿意以≥X的价格卖出,价格涨到X(或更高)时成交
    • stop=X:愿意以≤X的价格卖出,价格跌到X(或更低)时成交

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:42:43