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

Pine Script中na()函数的含义是什么?附自定义时间周期Heikin Ashi脚本示例

Pine Script na() 函数说明

基础定义

na() 是 Pine Script 内置的状态检测函数,名称是 not available 的缩写,作用是判断传入的参数是否为「未定义/无效值」状态:

  • 当传入值为无效的 na 类型时,函数返回 true
  • 当传入值为有效数值/序列时,函数返回 false

交易图表中经常出现 na 的场景包括:

  • 图表第一根K线不存在更早的历史数据,访问xxx[1]这类前置序列值时
  • 跨周期调用数据还未加载完成时
  • 函数传入非法参数返回无效结果时

结合示例脚本的用法解释

你提供的脚本中is_newbar函数就是na()的典型使用场景,该函数作用是判断指定自定义周期是否生成了新K线:

is_newbar(res) => 
    t = time(res) 
    not na(t) and (na(t[1]) or t > t[1])

逐段解释判断逻辑:

  1. not na(t):首先校验当前获取的目标周期时间戳是有效的,排除数据未加载完成的异常场景
  2. na(t[1]):检测上一根K线对应的目标周期时间戳是否未定义,这种情况一般出现在图表加载的第一根K线,默认判定为新周期起点
  3. t > t[1]:当前目标周期的时间戳大于上一根K线对应时间戳,说明已经进入新的周期,即新K线生成

常见拓展用法

na()常用来做异常值兜底,避免脚本因为无效值报错,例如:

// 前一根收盘价不存在时用当前开盘价兜底
pre_close = na(close[1]) ? open : close[1]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 07:27:01