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 }; let adx_data = AdxData { adx: difference.abs()/divisor, close_time: di_data.close_time };
initial_adx_vec.push(adx_data); 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(); if let (Some(partial_vec1), Some(partial_vec2)) = (initial_adx_vec.get(..adx_len), initial_adx_vec.get(adx_len..)) {
let mut adx_calculated = 0.0; // partial_vec1 is for calculation of initial value
for element in partial_vec1 { // partial_vec2 is for calculation of the rest
adx_calculated += element.adx; let mut smoothed_adx_vec: Vec<AdxData> = Vec::new();
} let mut adx_calculated = 0.0;
adx_calculated /= adx_len as f64; for element in partial_vec1 {
adx_calculated += element.adx;
let adx_data = AdxData { adx: adx_calculated, close_time: partial_vec1.last().unwrap().close_time }; }
smoothed_adx_vec.push(adx_data); adx_calculated /= adx_len as f64;
let alpha: f64 = 1.0 /(adx_len as f64); let adx_data = AdxData { adx: adx_calculated, close_time: partial_vec1.last().unwrap().close_time };
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); 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 };
smoothed_adx_vec.push(adx_data);
}
let mut adx_vec_arc_lock = adx_vec_arc_c.lock().await; let mut adx_vec_arc_lock = adx_vec_arc_c.lock().await;
adx_vec_arc_lock.insert(symbol.clone(), smoothed_adx_vec.clone()); adx_vec_arc_lock.insert(symbol.clone(), smoothed_adx_vec.clone());
}
} }
} }
})); }));