关于Pine Script读取用户绘制箱体并存储至数组的技术问询
Pine Script 读取自定义箱体相关问题解答
1. 能否读取rectangle函数绘制的箱体并存储到数组?
不行。Pine Script 没有内置接口可以直接读取通过rectangle.new()绘制的图形对象属性(如时间范围、高低价格)。这类绘制的图形属于视觉渲染层,不会向脚本逻辑暴露可访问的属性。
2. 替代实现方式
如果要让脚本获取用户自定义箱体数据并存储到数组,有几种可行方案:
- 手动输入参数存储:
给脚本添加输入参数,让用户手动输入箱体的起始时间、结束时间、顶部价格、底部价格,脚本直接将这些参数存入数组。示例代码://@version=5 indicator("自定义箱体存储", overlay=true) var boxDataArray = array.new<float>(4) // 输入箱体参数 boxStartTime = input.time(timestamp("2024-01-01"), "箱体起始时间") boxEndTime = input.time(timestamp("2024-01-10"), "箱体结束时间") boxTopPrice = input.float(50, "箱体顶部价格") boxBottomPrice = input.float(40, "箱体底部价格") // 将参数存入数组(顺序:起始时间、结束时间、顶部价格、底部价格) if barstate.islast array.clear(boxDataArray) array.push(boxDataArray, boxStartTime) array.push(boxDataArray, boxEndTime) array.push(boxDataArray, boxTopPrice) array.push(boxDataArray, boxBottomPrice) - 解析标注工具导出数据:
利用input.string()让用户复制粘贴 TradingView 内置矩形标注工具的导出文本,脚本解析文本后提取箱体数据存入数组。这种方式需要用户手动复制数据,操作稍繁琐。 - 脚本自动识别箱体:
编写K线形态识别逻辑,自动检测震荡区间(箱体),直接将识别到的箱体数据存入数组,无需用户手动绘制。这种方式完全由脚本逻辑驱动,无需用户交互。
内容的提问来源于stack exchange,提问作者law
相关产品推荐
相关产品推荐

