Fix bound condition

This commit is contained in:
Sik Yoon 2024-03-12 13:03:25 +09:00
parent 00646370ab
commit 725bcec59c

View File

@ -99,28 +99,30 @@ filtered_symbols: &HashMap<String, FilteredDataValue>,) -> Result<HashMap<String
let adx_data = AdxData { adx: difference.abs()/divisor, close_time: di_data.close_time };
initial_adx_vec.push(adx_data);
}
let partial_vec1 = initial_adx_vec.get(..adx_len).unwrap(); // for calculation of initial value
let partial_vec2 = initial_adx_vec.get(adx_len..).unwrap(); // for calculation of the rest
let mut smoothed_adx_vec: Vec<AdxData> = Vec::new();
let mut adx_calculated = 0.0;
for element in partial_vec1 {
adx_calculated += element.adx;
}
adx_calculated /= adx_len as f64;
if let (Some(partial_vec1), Some(partial_vec2)) = (initial_adx_vec.get(..adx_len), initial_adx_vec.get(adx_len..)) {
// partial_vec1 is for calculation of initial value
// partial_vec2 is for calculation of the rest
let mut smoothed_adx_vec: Vec<AdxData> = Vec::new();
let mut adx_calculated = 0.0;
for element in partial_vec1 {
adx_calculated += element.adx;
}
adx_calculated /= adx_len as f64;
let adx_data = AdxData { adx: adx_calculated, close_time: partial_vec1.last().unwrap().close_time };
smoothed_adx_vec.push(adx_data);
let alpha: f64 = 1.0 /(adx_len as f64);
for element in partial_vec2 {
adx_calculated = alpha * element.adx + (1.0 - alpha) * adx_calculated;
let adx_data = AdxData { adx: 100.0 * adx_calculated, close_time: element.close_time };
let adx_data = AdxData { adx: adx_calculated, close_time: partial_vec1.last().unwrap().close_time };
smoothed_adx_vec.push(adx_data);
}
let mut adx_vec_arc_lock = adx_vec_arc_c.lock().await;
adx_vec_arc_lock.insert(symbol.clone(), smoothed_adx_vec.clone());
let alpha: f64 = 1.0 /(adx_len as f64);
for element in partial_vec2 {
adx_calculated = alpha * element.adx + (1.0 - alpha) * adx_calculated;
let adx_data = AdxData { adx: 100.0 * adx_calculated, close_time: element.close_time };
smoothed_adx_vec.push(adx_data);
}
let mut adx_vec_arc_lock = adx_vec_arc_c.lock().await;
adx_vec_arc_lock.insert(symbol.clone(), smoothed_adx_vec.clone());
}
}
}
}));