Update filtering

This commit is contained in:
Sik Yoon 2024-05-30 19:36:26 +09:00
parent 7483258922
commit aac7d00e9f
3 changed files with 11 additions and 9 deletions

View File

@ -125,7 +125,7 @@ pub async fn list_up_for_buy(
.min_by(|x, y| x.opclo_price.partial_cmp(&y.opclo_price).unwrap())
.unwrap().opclo_price;
if values.current_price.to_f64().is_some_and(|a| a > min_price) {
let stoploss_percent = (min_price - values.current_price.to_f64().unwrap()) / values.current_price.to_f64().unwrap();
let stoploss_percent = ((min_price - values.current_price.to_f64().unwrap()) * 100.0) / values.current_price.to_f64().unwrap();
values.stoploss = rust_decimal::prelude::FromPrimitive::from_f64(stoploss_percent).unwrap();
let target_percent = stoploss_percent.abs() * 2.0;
values.target_price = rust_decimal::prelude::FromPrimitive::from_f64(target_percent).unwrap();

View File

@ -40,17 +40,17 @@ pub async fn list_up_for_buy(
let mut do_buy = false;
let price_and_closetime = get_current_price_decimal(&symbol, &alldata.rt_price_1m_vec).await;
if let (Some(ema30_vec), Some(ema200_vec), Some(current_info)) = (ema30.get(symbol), ema200.get(symbol), price_and_closetime) {
if ema30_vec.len() > 10
&& ema200_vec.len() > 10
if ema30_vec.len() > 20
&& ema200_vec.len() > 20
&& ema30_vec.last().unwrap().close_time > server_epoch
&& ema30_vec.last().unwrap().close_time == ema200_vec.last().unwrap().close_time
{
if ema30_vec.last().unwrap().ema_value < ema200_vec.last().unwrap().ema_value
&& ema30_vec[ema30_vec.len()-1].ema_value - ema200_vec[ema200_vec.len()-1].ema_value < ema30_vec[ema30_vec.len()-2].ema_value - ema200_vec[ema200_vec.len()-2].ema_value
&& ema30_vec[ema30_vec.len()-2].ema_value - ema200_vec[ema200_vec.len()-2].ema_value < ema30_vec[ema30_vec.len()-3].ema_value - ema200_vec[ema200_vec.len()-3].ema_value
&& ema30_vec[ema30_vec.len()-3].ema_value - ema200_vec[ema200_vec.len()-3].ema_value < ema30_vec[ema30_vec.len()-4].ema_value - ema200_vec[ema200_vec.len()-4].ema_value
&& ema30_vec[ema30_vec.len()-4].ema_value - ema200_vec[ema200_vec.len()-4].ema_value < ema30_vec[ema30_vec.len()-5].ema_value - ema200_vec[ema200_vec.len()-5].ema_value
&& ema30_vec[ema30_vec.len()-5].ema_value - ema200_vec[ema200_vec.len()-5].ema_value < ema30_vec[ema30_vec.len()-6].ema_value - ema200_vec[ema200_vec.len()-6].ema_value
&& (ema30_vec[ema30_vec.len()-1].ema_value - ema200_vec[ema200_vec.len()-1].ema_value).abs() < (ema30_vec[ema30_vec.len()-2].ema_value - ema200_vec[ema200_vec.len()-2].ema_value).abs()
&& (ema30_vec[ema30_vec.len()-2].ema_value - ema200_vec[ema200_vec.len()-2].ema_value).abs() < (ema30_vec[ema30_vec.len()-3].ema_value - ema200_vec[ema200_vec.len()-3].ema_value).abs()
&& (ema30_vec[ema30_vec.len()-3].ema_value - ema200_vec[ema200_vec.len()-3].ema_value).abs() < (ema30_vec[ema30_vec.len()-4].ema_value - ema200_vec[ema200_vec.len()-4].ema_value).abs()
&& (ema30_vec[ema30_vec.len()-4].ema_value - ema200_vec[ema200_vec.len()-4].ema_value).abs() < (ema30_vec[ema30_vec.len()-5].ema_value - ema200_vec[ema200_vec.len()-5].ema_value).abs()
&& (ema30_vec[ema30_vec.len()-5].ema_value - ema200_vec[ema200_vec.len()-5].ema_value).abs() < (ema30_vec[ema30_vec.len()-6].ema_value - ema200_vec[ema200_vec.len()-6].ema_value).abs()
{
values.current_price = current_info.0;
values.closetime = current_info.1;
@ -125,7 +125,7 @@ pub async fn list_up_for_buy(
.max_by(|x, y| x.opclo_price.partial_cmp(&y.opclo_price).unwrap())
.unwrap().opclo_price;
if values.current_price.to_f64().is_some_and(|a| a < max_price) {
let stoploss_percent = (values.current_price.to_f64().unwrap() - max_price) / values.current_price.to_f64().unwrap();
let stoploss_percent = ((values.current_price.to_f64().unwrap() - max_price) * 100.0) / values.current_price.to_f64().unwrap();
values.stoploss = rust_decimal::prelude::FromPrimitive::from_f64(stoploss_percent).unwrap();
let target_percent = stoploss_percent.abs() * 2.0;
values.target_price = rust_decimal::prelude::FromPrimitive::from_f64(target_percent).unwrap();

View File

@ -178,7 +178,9 @@ pub async fn future_duplicate_filter(
// exists_condition_build.push_str("\' AND close_time=");
// exists_condition_build.push_str(filtered_data.closetime.to_string().as_str());
exists_condition_build.push_str("\' AND position=");
exists_condition_build.push_str("\'");
exists_condition_build.push_str(position.to_string().as_str());
exists_condition_build.push_str("\'");
let exists_condition = Some(exists_condition_build);
let exists_condition_c = exists_condition.clone();