Change filtering orders

This commit is contained in:
Sik Yoon 2024-03-28 00:32:48 +09:00
parent cb37d0b39b
commit 6835b9cfa6

View File

@ -70,26 +70,6 @@ pub async fn list_up_for_buy(
} }
remove_keys(&mut filtered_data, keys_to_remove).await; 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<String> = 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) // supertrend(ATR period 10, multiplier: 2.0, 30m close price)
let mut keys_to_remove: HashSet<String> = HashSet::new(); let mut keys_to_remove: HashSet<String> = HashSet::new();
let server_epoch = get_server_epoch().await; 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; 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<String> = 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 // limit buy price: 3 * abs(이전 3 개 중 최대값 제거 한 opclo 값 평균 - 현재 open 값) + 현재 open 값 > current_price
let mut keys_to_remove: HashSet<String> = HashSet::new(); let mut keys_to_remove: HashSet<String> = HashSet::new();
let server_epoch = get_server_epoch().await; let server_epoch = get_server_epoch().await;