From 33221f253ac244ffb1a0a5554f7e4f37611370a6 Mon Sep 17 00:00:00 2001 From: Sik Yoon Date: Sat, 1 Jun 2024 20:29:44 +0900 Subject: [PATCH] Update filtering --- src/strategy_team/future_strategy_long.rs | 51 +++++++++++----------- src/strategy_team/future_strategy_short.rs | 34 +++++++-------- 2 files changed, 43 insertions(+), 42 deletions(-) diff --git a/src/strategy_team/future_strategy_long.rs b/src/strategy_team/future_strategy_long.rs index bed9200..9193ebb 100644 --- a/src/strategy_team/future_strategy_long.rs +++ b/src/strategy_team/future_strategy_long.rs @@ -141,23 +141,23 @@ pub async fn list_up_for_buy( remove_keys(&mut filtered_data, keys_to_remove).await; // Wiliams -50.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 < -50.0 { - // do_buy = true; - // } - // } - // if do_buy == false { - // keys_to_remove.insert(symbol.clone()); - // } - // } - // remove_keys(&mut filtered_data, keys_to_remove).await; + 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 < -50.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(); @@ -349,15 +349,16 @@ pub async fn list_up_for_sell(all_data: &AllData, futures_exchange_info_map: &Ha .build() .unwrap(); - let mut supertrend_vec: Vec = Vec::new(); let server_epoch = get_server_epoch().await; - let mut filtered_symbols: HashMap = HashMap::new(); - for element in &filled_positions { - filtered_symbols.insert(element.symbol.clone(), FilteredDataValue::new()); - } - let supertrend_1m_map = - supertrend(30, 2.0, true, &all_data.rt_price_1m_vec, &filtered_symbols).await?; - let adx_vec = adx(15, 15, &all_data.rt_price_1m_vec, &filtered_symbols).await?; + + // let mut supertrend_vec: Vec = Vec::new(); + // let mut filtered_symbols: HashMap = HashMap::new(); + // for element in &filled_positions { + // filtered_symbols.insert(element.symbol.clone(), FilteredDataValue::new()); + // } + // let supertrend_1m_map = + // supertrend(30, 2.0, true, &all_data.rt_price_1m_vec, &filtered_symbols).await?; + // let adx_vec = adx(15, 15, &all_data.rt_price_1m_vec, &filtered_symbols).await?; for element in filled_positions { let mut is_sell = false; diff --git a/src/strategy_team/future_strategy_short.rs b/src/strategy_team/future_strategy_short.rs index fb7454f..7923c94 100644 --- a/src/strategy_team/future_strategy_short.rs +++ b/src/strategy_team/future_strategy_short.rs @@ -141,23 +141,23 @@ pub async fn list_up_for_buy( remove_keys(&mut filtered_data, keys_to_remove).await; // Wiliams -50.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 > -50.0 { - // do_buy = true; - // } - // } - // if do_buy == false { - // keys_to_remove.insert(symbol.clone()); - // } - // } - // remove_keys(&mut filtered_data, keys_to_remove).await; + 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 > -50.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();