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

为何标签返回0,0,0且触发数组大小超限错误?当前Bar Index未达上限

数组过大错误排查与解决

问题描述

所有检查无异常但功能失效,测试从数组取值时发现数组无值存储,同时收到错误:

Study Error
Error on bar 10: Array is too large. Maximum size is 100000.

当前Bar Index约为17000,远未达到100000的数组限制,需排查问题根源。

相关代码片段:

// Establish loop numbers.

CurrentBarIndexRealtime = bar_index //This is around ~17,000 (Nowhere near the 100,000 array limitation. Hmm.)
LookbackForTotalArraySize = (365 * 24) 
FirstBarIndex = CurrentBarIndexRealtime - TotalDurationPeriod365Days1hr + 1 

CurrentBarIndex = CurrentBarIndexRealtime 

// Test data retrieval from plotted labels.

val1 = array.get(Array15, 5)
val2 = array.get(Array20, 25)
val3 = array.get(Array25, 55)

label.new(bar_index, high, "Values: " + str.tostring(val1) + ", " + str.tostring(val2) + ", " + str.tostring(val3), color=color.blue, textcolor=color.white, style=label.style_label_up)

问题根源

  1. TotalDurationPeriod365Days1hr变量异常:该变量未在提供的代码片段中定义,若其值远大于预期的8760(365*24),会导致FirstBarIndex = 17000 - 超大值 +1变成极小负数。后续若用此负数初始化数组或作为循环起始索引,数组会被强制创建成从负数索引到当前bar的超大跨度,直接触发100000的上限。
  2. 数组初始化/填充逻辑错误:若数组基于FirstBarIndex到CurrentBarIndexRealtime的区间创建或填充,当FirstBarIndex为负数时,区间长度会变为17000 - 负数,数值极易超过100000。
  3. 动态扩容失控:若数组通过循环不断添加元素,而循环次数因FirstBarIndex为负数被错误计算,会导致短时间内数组元素数量突破100000。

解决方案

  • 验证TotalDurationPeriod365Days1hr的值:添加代码输出该变量实际值,确认是否符合预期:
    label.new(bar_index, low, "TotalDuration: " + str.tostring(TotalDurationPeriod365Days1hr), color=color.red)
    
    确保它等于365*24(即8760),若不符则修正变量定义。
  • 修正FirstBarIndex计算逻辑:添加边界判断,避免出现负数:
    FirstBarIndex = math.max(0, CurrentBarIndexRealtime - TotalDurationPeriod365Days1hr + 1)
    
  • 检查数组实际尺寸:添加代码查看数组当前大小,确认是否真的超过限制:
    label.new(bar_index, low-10, "Array15 Size: " + str.tostring(array.size(Array15)), color=color.green)
    
  • 排查数组填充循环:若存在填充数组的循环逻辑,确保循环起始索引为FirstBarIndex、结束索引为CurrentBarIndexRealtime,且循环次数不超过100000。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 17:27:41