From a6831d7f3e8edc57f1465231746e194d0c752d6b Mon Sep 17 00:00:00 2001 From: Sik Yoon Date: Thu, 2 May 2024 23:16:59 +0900 Subject: [PATCH] Update filtering --- src/strategy_team/strategy_008.rs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/strategy_team/strategy_008.rs b/src/strategy_team/strategy_008.rs index 65155ce..02804c9 100644 --- a/src/strategy_team/strategy_008.rs +++ b/src/strategy_team/strategy_008.rs @@ -51,15 +51,19 @@ pub async fn list_up_for_buy( // } // remove_keys(&mut filtered_data, keys_to_remove).await; - // Wiliams %R < -50.0 + // Wiliams %R(200) < -50.0 + // Wiliams %R(30) < -30.0 let mut keys_to_remove: HashSet = HashSet::new(); - let mut wprs = wiliams_percent_r(200, &alldata.rt_price_30m_vec, &filtered_data).await?; + let mut wprs200 = wiliams_percent_r(200, &alldata.rt_price_30m_vec, &filtered_data).await?; + let mut wprs30 = wiliams_percent_r(30, &alldata.rt_price_30m_vec, &filtered_data).await?; let server_epoch = get_server_epoch().await; for (symbol, values) in &mut filtered_data { - if let Some(wpr_vec) = wprs.get(symbol) { - if wpr_vec.len() > 15 - && wpr_vec.last().unwrap().close_time > server_epoch - && wpr_vec.last().unwrap().r_value < -50.0 + if let (Some(wpr200_vec), Some(wpr30_vec)) = (wprs200.get(symbol), wprs30.get(symbol)) { + if wpr200_vec.len() > 15 && wpr30_vec.len() > 15 + && wpr200_vec.last().unwrap().close_time > server_epoch + && wpr200_vec.last().unwrap().r_value < -50.0 + && wpr30_vec.last().unwrap().close_time > server_epoch + && wpr30_vec.last().unwrap().r_value < -30.0 { } else { keys_to_remove.insert(symbol.clone());