Fix bound condition
This commit is contained in:
parent
00646370ab
commit
725bcec59c
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
}));
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user