diff --git a/src/strategy_team/strategy_003.rs b/src/strategy_team/strategy_003.rs index 67c26db..e60b2a3 100644 --- a/src/strategy_team/strategy_003.rs +++ b/src/strategy_team/strategy_003.rs @@ -69,7 +69,7 @@ pub async fn list_up_for_buy( } try_join_all(task_vec).await?; - // 2nd filtering: SMA5 (opclo_price) < EMA3 (opclo_price) + // 2nd filtering: SMA5 (opclo_price) < EMA3 (opclo_price) && 5 previous MA > current MA let filtered_data_1st = filtered_data_1st_arc.lock().await.clone(); let mut filtered_data_2nd: Vec = Vec::new(); let mut filtered_data_2nd_arc: Arc>> = @@ -116,7 +116,8 @@ pub async fn list_up_for_buy( ); if sma_search_result.is_ok() && ema_search_result.is_ok() { if sma_vec[sma_search_result.unwrap()].sma_value < ema_vec[ema_search_result.unwrap()].ema_value && - sma_vec[sma_search_result.unwrap()-1].sma_value > ema_vec[ema_search_result.unwrap()-1].ema_value { + sma_vec[sma_search_result.unwrap()-1].sma_value > ema_vec[ema_search_result.unwrap()-1].ema_value && + sma_vec[sma_search_result.unwrap()-4].sma_value > sma_vec[sma_search_result.unwrap()].sma_value { let mut filtered_data_2nd_lock = filtered_data_2nd_arc_c.lock().await; let mut filtered_data = FilteredData::new(); filtered_data.symbol = element.symbol.clone();