diff --git a/src/strategy_team/strategy_008.rs b/src/strategy_team/strategy_008.rs index b401099..a6c1ce7 100644 --- a/src/strategy_team/strategy_008.rs +++ b/src/strategy_team/strategy_008.rs @@ -70,26 +70,6 @@ pub async fn list_up_for_buy( } remove_keys(&mut filtered_data, keys_to_remove).await; - // StochRSI (RSI_len: 15, StochRSI_len: 15, K: 3, D: 3) K_current < 70, K_current > d_current - let mut keys_to_remove: HashSet = HashSet::new(); - let stoch_rsis = stoch_rsi(15, 15, 3, 3, &alldata.rt_price_30m_vec, &filtered_data).await?; - for (symbol, values) in &mut filtered_data { - if stoch_rsis.contains_key(symbol) { - let stoch_rsi_vec = stoch_rsis.get(symbol).unwrap(); - let search_result = stoch_rsi_vec.iter().position(|x| x.close_time == values.closetime); - if stoch_rsi_vec.len() > 10 && search_result.is_some_and(|a| stoch_rsi_vec[a].k > stoch_rsi_vec[a].d && - stoch_rsi_vec[a].k < 70.0 && - stoch_rsi_vec[a-1].k < 60.0 && - stoch_rsi_vec[a-2].k < 50.0) { - } else { - keys_to_remove.insert(symbol.clone()); - } - } else { - keys_to_remove.insert(symbol.clone()); - } - } - remove_keys(&mut filtered_data, keys_to_remove).await; - // supertrend(ATR period 10, multiplier: 2.0, 30m close price) let mut keys_to_remove: HashSet = HashSet::new(); let server_epoch = get_server_epoch().await; @@ -127,6 +107,26 @@ pub async fn list_up_for_buy( } remove_keys(&mut filtered_data, keys_to_remove).await; + // StochRSI (RSI_len: 15, StochRSI_len: 15, K: 3, D: 3) K_current < 70, K_current > d_current + let mut keys_to_remove: HashSet = HashSet::new(); + let stoch_rsis = stoch_rsi(15, 15, 3, 3, &alldata.rt_price_30m_vec, &filtered_data).await?; + for (symbol, values) in &mut filtered_data { + if stoch_rsis.contains_key(symbol) { + let stoch_rsi_vec = stoch_rsis.get(symbol).unwrap(); + let search_result = stoch_rsi_vec.iter().position(|x| x.close_time == values.closetime); + if stoch_rsi_vec.len() > 10 && search_result.is_some_and(|a| stoch_rsi_vec[a].k > stoch_rsi_vec[a].d && + stoch_rsi_vec[a].k < 70.0 && + stoch_rsi_vec[a-1].k < 60.0 && + stoch_rsi_vec[a-2].k < 50.0) { + } else { + keys_to_remove.insert(symbol.clone()); + } + } else { + keys_to_remove.insert(symbol.clone()); + } + } + remove_keys(&mut filtered_data, keys_to_remove).await; + // limit buy price: 3 * abs(이전 3 개 중 최대값 제거 한 opclo 값 평균 - 현재 open 값) + 현재 open 값 > current_price let mut keys_to_remove: HashSet = HashSet::new(); let server_epoch = get_server_epoch().await;