如何让Pine Script中的限价单等待实际触发限价再成交?
解决Pine Script限价单提前成交问题
你的问题核心是代码仅判断了策略触发条件,未验证价格是否实际触及限价。默认逻辑下,strategy.entry的限价单在回测中可能会在K线结束时模拟成交,但实际行情里价格还未到达设定价位。
要让脚本等待价格真正触及限价再执行订单,需在触发条件中加入价格实际触及限价的判断:
修改后的代码示例:
//Short Entry if (shortCondition) and allowedTimes() and close <= sessionHighPrice and low <= sessionLowPrice strategy.entry("Enter Short", strategy.short, 1, limit = sessionLowPrice)
关键说明:
- 添加
low <= sessionLowPrice条件:确保当前K线的最低价已经触及或低于你的空头限价(sessionLowPrice),确认行情已到达设定的成交价位,此时发送限价单才会在对应价位真实成交。 - 若需要更精准的即时触发,可在策略设置中切换到tick级回测精度,同时结合
ta.barstate.isrealtime判断实盘场景,进一步减少回测中的模拟成交误差。
内容的提问来源于stack exchange,提问作者US1 Trader
相关产品推荐
相关产品推荐

