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

PineScript v5中使用var与不使用var声明变量的差异咨询

PineScript v5中var与普通变量声明的区别及var的作用

两种声明方式的核心区别

  • 普通变量声明(int test_var = 5):每根K线(bar)都会重新执行赋值逻辑,变量值会被重置为初始值5。也就是说,变量无法保留上一根K线结束时的状态,每次bar更新都会回到初始设定。
  • var关键字声明(var int test_var = 5):仅在脚本首次加载时执行一次初始化,后续每根K线更新时不会重置变量值,变量会持续保留上一根K线结束时的状态。

为什么需要var关键字

PineScript的执行逻辑是逐bar运行的,默认情况下变量会随bar更新重置。但实际编写策略或指标时,很多场景需要跨bar保存状态,var关键字就是为这类需求设计的:

  • 累计统计类需求:比如统计上涨K线的数量、交易信号触发次数
  • 状态记录类需求:比如记录上一根bar的收盘价、是否已经触发过某个条件
  • 性能优化类需求:缓存计算成本较高的结果,避免每根bar重复计算

举个直观的对比例子:

// 普通声明:每次bar重置为0,永远统计不出正确的上涨K线数量
int up_count = 0
if close > open
    up_count += 1

// var声明:仅初始化一次,持续累计上涨K线数量
var int up_count_var = 0
if close > open
    up_count_var += 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 17:52:35