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

Pine Script如何实现上次交易后等待指定K线数再触发买入条件

问题根因

ta.barssince() 函数的特性是:当传入的判断条件在历史K线中从未触发过时,返回值为 na 空值。空值和任意数值做逻辑比较的结果均为假,因此策略第一次开仓前,wait 变量会一直处于不满足的状态,自然无法触发任何交易。

修复代码

你只需要在wait变量的判断逻辑里新增初始空值状态的兼容处理即可:

barsfromclose = ta.barssince(strategy.position_size[1] > 0)
barstowait = input.int(title = "Bars to Wait", defval = 3)
// 兼容首次开仓的无历史持仓场景
wait = na(barsfromclose) or barsfromclose > barstowait
逻辑说明
  • 当策略还没有任何历史持仓记录时,na(barsfromclose) 结果为真,wait 条件直接成立,保证第一次开仓可以正常触发
  • 当策略有过持仓记录后,逻辑会自动切换为「上一次持仓为正的K线距离当前的数量大于设置的等待K线数」才满足wait条件,和你原本的需求一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:09:03