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

Pine Script v4未声明标识符错误求助:四乌鸦形态脚本问题

Pine Script v4 四乌鸦形态报错问题解决

错误原因

你遇到的「Undeclared identifier」错误,本质是直接使用了未声明的自定义变量(比如red_candle_3_days_ago、open_2_day_ago这类)。Pine Script 没有这类内置变量,也不会自动识别你自定义的命名,必须按照它的历史数据引用规则来获取过往K线数据。

正确的写法逻辑

在Pine Script v4中,获取过往第n根K线的数据,需要用数据变量[n]的格式:

  • open[n]:第n根前K线的开盘价
  • close[n]:第n根前K线的收盘价
  • high[n]:第n根前K线的最高价
  • low[n]:第n根前K线的最低价

红蜡烛的判断条件是close < open,对应过往K线的红蜡烛,就是close[n] < open[n]。

修正后的完整代码

//@version=4
study("四乌鸦形态识别", overlay=true)

// 定义四乌鸦的各个条件
fourBlackCrows = 
    // 连续4根红蜡烛(从3天前到今天)
    (close[3] < open[3]) and (close[2] < open[2]) and (close[1] < open[1]) and (close < open)
    // 每根K线开盘价 >= 前一根收盘价
    and (open[2] >= close[3]) and (open[1] >= close[2]) and (open >= close[1])
    // 前2天开盘价 >= 前1天最高价,前1天开盘价 >= 今天最高价
    and (open[2] >= high[1]) and (open[1] >= high)
    // 前2天最低价 >= 前1天收盘价,前1天最低价 >= 今天收盘价
    and (low[2] >= close[1]) and (low[1] >= close)

// 标记形态出现的位置
plotshape(fourBlackCrows, title="四乌鸦", location=location.belowbar, color=color.red, style=shape.labelup, text="四乌鸦")

代码说明

  • 开头必须声明版本//@version=4和脚本名称study(),这是Pine Script的基础要求
  • 所有历史数据都用[n]的方式引用,比如close[3]就是3根前K线的收盘价
  • 把你自定义的变量名全部替换成标准的历史引用语法,避免未声明错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 17:40:46