|
|
@@ -199,18 +199,18 @@ pub fn generate_msv_by_trades(mut trades: Vec<Trade>, mills_back: Decimal, simpl
|
|
|
sigma.rescale(6);
|
|
|
// 计算过去至多100个sigma值的平均值
|
|
|
if sigma_data.len() > 0 {
|
|
|
- let mut sigma_ma_index = sigma_data.len() - 1;
|
|
|
+ let mut sigma_ma_index = sigma_data.len();
|
|
|
let mut sigma_total = Decimal::ZERO;
|
|
|
let mut sigma_count = Decimal::ZERO;
|
|
|
loop {
|
|
|
- if sigma_ma_index == 0 || sigma_ma_index + 100 < sigma_data.len() {
|
|
|
+ if sigma_ma_index == 0 || sigma_ma_index + 99 < sigma_data.len() {
|
|
|
break
|
|
|
}
|
|
|
+ // 步进
|
|
|
+ sigma_ma_index -= 1;
|
|
|
// 计算
|
|
|
sigma_total += sigma_data[sigma_ma_index][1];
|
|
|
sigma_count += Decimal::ONE;
|
|
|
- // 步进
|
|
|
- sigma_ma_index -= 1;
|
|
|
}
|
|
|
let mut sigma_ma = sigma_total / sigma_count;
|
|
|
sigma_ma.rescale(6);
|