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
相关产品推荐
相关产品推荐

