From 7c0b8960cb66fe81408460b8edb468c6223158de Mon Sep 17 00:00:00 2001 From: Sik Yoon Date: Sat, 1 Jun 2024 14:01:53 +0900 Subject: [PATCH] Update filtering --- src/strategy_team/future_strategy_long.rs | 7 +++---- src/strategy_team/future_strategy_short.rs | 21 ++++++++++++++++++++- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/strategy_team/future_strategy_long.rs b/src/strategy_team/future_strategy_long.rs index b1ddbac..df6885f 100644 --- a/src/strategy_team/future_strategy_long.rs +++ b/src/strategy_team/future_strategy_long.rs @@ -116,7 +116,7 @@ pub async fn list_up_for_buy( let mut do_buy = false; if let Some(realtime_price_vec) = alldata.rt_price_1m_vec.get(symbol) { - let element_number = 30; + let element_number = 15; if let Some(truncated_vec) = realtime_price_vec.get(realtime_price_vec.len()-element_number..) { let min_price = truncated_vec @@ -143,7 +143,7 @@ pub async fn list_up_for_buy( } remove_keys(&mut filtered_data, keys_to_remove).await; - // Wiliams -20 > %R(100) > -80.0 + // Wiliams -30.0 > %R(100) let mut keys_to_remove: HashSet = HashSet::new(); let mut wpr100_map = wiliams_percent_r(100, &alldata.rt_price_1m_vec, &filtered_data).await?; let server_epoch = get_server_epoch().await; @@ -152,8 +152,7 @@ pub async fn list_up_for_buy( if let Some(wpr100_vec) = wpr100_map.get(symbol) { if wpr100_vec.len() > 15 && wpr100_vec.last().unwrap().close_time > server_epoch - && wpr100_vec.last().unwrap().r_value > -80.0 - && wpr100_vec.last().unwrap().r_value < -20.0 { + && wpr100_vec.last().unwrap().r_value < -30.0 { do_buy = true; } } diff --git a/src/strategy_team/future_strategy_short.rs b/src/strategy_team/future_strategy_short.rs index f660dac..30448da 100644 --- a/src/strategy_team/future_strategy_short.rs +++ b/src/strategy_team/future_strategy_short.rs @@ -116,7 +116,7 @@ pub async fn list_up_for_buy( let mut do_buy = false; if let Some(realtime_price_vec) = alldata.rt_price_1m_vec.get(symbol) { - let element_number = 30; + let element_number = 15; if let Some(truncated_vec) = realtime_price_vec.get(realtime_price_vec.len()-element_number..) { let max_price = truncated_vec @@ -143,6 +143,25 @@ pub async fn list_up_for_buy( } remove_keys(&mut filtered_data, keys_to_remove).await; + // Wiliams -70.0 < %R(100) + let mut keys_to_remove: HashSet = HashSet::new(); + let mut wpr100_map = wiliams_percent_r(100, &alldata.rt_price_1m_vec, &filtered_data).await?; + let server_epoch = get_server_epoch().await; + for (symbol, values) in &mut filtered_data { + let mut do_buy = false; + if let Some(wpr100_vec) = wpr100_map.get(symbol) { + if wpr100_vec.len() > 15 + && wpr100_vec.last().unwrap().close_time > server_epoch + && wpr100_vec.last().unwrap().r_value > -70.0 { + do_buy = true; + } + } + if do_buy == false { + keys_to_remove.insert(symbol.clone()); + } + } + remove_keys(&mut filtered_data, keys_to_remove).await; + // current Tema(15) < current Tema(30) // let mut keys_to_remove: HashSet = HashSet::new(); // let tema_10 = tema(10, &alldata.rt_price_30m_vec, &filtered_data).await?;