区间震荡指标的逻辑如下:
一、函数注解 1. Summation函数 功能:
计算给定价格序列Price的前Length个数据点的和,或在数据点数量超过Length时,计算滚动窗口内的价格和。
参数:
Price(1):价格序列,动态数组,至少包含一个数值。 Length(10):计算和的窗口长度,默认为10。
变量:
SumValue(0):存储计算得到的和,初始化为0。 i:循环变量,用于遍历价格序列。
逻辑流程:
如果当前数据点少于窗口长度,计算前Length个数据点的和。 否则,使用滚动窗口算法(减去最左边,加上当前价格)更新SumValue。 返回SumValue。
Summation函数注解:
函数功能:计算给定价格序列`Price`的前`Length`个数据点的和,或者在数据点数量超过`Length`时,计算滚动窗口内的价格和。
参数说明:
- `Price(1)`:价格序列,是一个动态数组,至少包含一个数值。
- `Length(10)`:计算和的窗口长度,是一个数值,默认为10。
变量说明:
- `SumValue(0)`:存储计算得到的和,初始化为0。
- `i`:循环变量,用于遍历价格序列。
逻辑流程:
1. 如果当前的数据点`CurrentBar`(可能代表当前K线位置,但在此代码中未明确定义)小于`Length`,即数据点数量少于或等于窗口长度:
- 初始化`SumValue`为0。
- 使用for循环遍历从0到`Length - 1`的价格数据点,并将它们累加到`SumValue`中。
2. 否则(即数据点数量超过`Length`):
- 使用前一次计算的`SumValue`(`SumValue[1]`)减去窗口最左边的价格(`Price[Length]`),再加上当前的价格(`Price`),从而更新`SumValue`。这是为了保持一个长度为`Length`的滚动窗口和。
3. 返回计算得到的`SumValue`
AverageFC函数注解:
函数功能:计算给定价格序列`Price`的前`Length`个数据点的平均值,或者在数据点数量超过`Length`时,计算滚动窗口内的价格平均值。
参数说明:
- `Price(1)`:价格序列,是一个动态数组,至少包含一个数值。
- `Length(10)`:计算平均值的窗口长度,是一个数值,默认为10。
变量说明:
- `AvgValue`:存储计算得到的平均值。
逻辑流程:
1. 调用`SummationFC`函数,来计算价格序列的和。
2. 将得到的和除以`Length`,得到平均值。
3. 返回计算得到的`AvgValue`。
指标思维导图: