目的:通过比较14个上涨/下跌周期内的成交量加权价格与当前价格的差值,判断潜在价格方向
使用四个一维数组,分别存放:收盘价大于前一收盘价的 价格upPrices、成交量upVolumes,收盘价小于前一收盘价的 价格downPrices、成交量downVolumes。每个数组的初始化的大小是周期14。
新产生的数据用ArrayPushBack推入数组。(想象的推入是后面进入的数据将第一个数据顶走,保持数组在14的大小)
实际写作中产生的问题,有如下三中尝试以及得出的不合适的结果:
1、如果设定数组的变量类型为:array<numeric> ,则数组永远只有当前一个价格(或在上涨数组中,或在下跌数组中)
2、如果使用global类型数组,则数组会无限扩展,大小不受限制,且初始化的时候设定的值一直存在。
3、如果使用series< array<numeric>>定义数组,则在会提示使用数组运算函数的行:函数实现的参数列表和预声明的参数列表不符合。
想请老师指点,这个问题到底在哪?该如何尝试解决?以及认识盲区需要补充的知识方向。
这是数据结构的问题。
你必须搞清楚不同数据结构,重置的时机在什么时候
局部变量是当前大括号结束就会重置清空
全局变量不会清空
序列变量第一个方括号指的是回溯索引,不是元素索引
这些都在零基础课程里关于数据结构里有讲过
https://www.bilibili.com/video/BV1ZG411f7bt/?spm_id_from=333.999.0.0
建议把这个系列都过一遍
找了的问题,基本已解决。
不过,还遇到一个问题:
变量数组如果定义成series< array<numeric>>,无法使用一维数组相乘的函数:na1mul ,
编译会报错:函数实现的参数列表和预声明的参数列表不符合。
将series< array<numeric>>赋值给单独定义的array<numeric>后,就可以使用na1mul进行乘法运算了。
这是不是我对na1mul函数的理解有偏差?