區間震蕩指標的邏輯如下: ?
一、函數注解 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`。
?
指標思維導圖:
?