Delete unnecessary logic

This commit is contained in:
Sik Yoon 2023-08-12 18:33:51 +09:00
parent 7fc7aa8a25
commit aa7ec40434

View File

@ -160,9 +160,6 @@ pub async fn buy_coin(
if !filtered_suggested_coin_vec.is_empty() { if !filtered_suggested_coin_vec.is_empty() {
let available_usdt = get_available_usdt().await; let available_usdt = get_available_usdt().await;
let vec_len = Decimal::new(filtered_suggested_coin_vec.len() as i64, 0); let vec_len = Decimal::new(filtered_suggested_coin_vec.len() as i64, 0);
let weighted_unit_usdt =
(((available_usdt / vec_len).trunc() / unit_trade_usdt).trunc() * unit_trade_usdt)
.trunc();
let mut used_usdt = Decimal::new(0, 8); let mut used_usdt = Decimal::new(0, 8);
let mut base_qty_ordered = Decimal::new(0, 8); let mut base_qty_ordered = Decimal::new(0, 8);
let mut base_qty_fee_adjusted = Decimal::new(0, 8); let mut base_qty_fee_adjusted = Decimal::new(0, 8);
@ -197,110 +194,50 @@ pub async fn buy_coin(
let trade_fee = trade_fee_result.unwrap().takercommission; let trade_fee = trade_fee_result.unwrap().takercommission;
// buy the suggested coin and transfer it into [buy_ordered_coin_list] // buy the suggested coin and transfer it into [buy_ordered_coin_list]
let order_price = element.suggested_price; base_qty_ordered = decimal_div(unit_trade_usdt, element.suggested_price)
if filtered_suggested_coin_vec.len() >= 10 .round_dp_with_strategy(
&& weighted_unit_usdt > unit_trade_usdt lot_step_size.normalize().scale(),
{ RoundingStrategy::ToZero,
// adjust regulared_unit_usdt if available number of trade are over 5. );
base_qty_ordered = decimal_div(weighted_unit_usdt, order_price) base_qty_fee_adjusted =
decimal_mul(base_qty_ordered, decimal_sub(dec!(1), trade_fee))
.round_dp_with_strategy( .round_dp_with_strategy(
lot_step_size.normalize().scale(), base_commission_precision,
RoundingStrategy::ToZero, RoundingStrategy::ToZero,
); );
base_qty_fee_adjusted = used_usdt = decimal_mul(base_qty_ordered, element.suggested_price)
decimal_mul(base_qty_ordered, decimal_sub(dec!(1), trade_fee)) .round_dp_with_strategy(
tick_size.normalize().scale(),
RoundingStrategy::ToZero,
);
expected_pure_profit_percent = decimal_sub(
decimal_div(
decimal_mul(base_qty_fee_adjusted, element.suggested_price)
.round_dp_with_strategy( .round_dp_with_strategy(
base_commission_precision, tick_size.normalize().scale(),
RoundingStrategy::ToZero, RoundingStrategy::ToZero,
); ),
used_usdt = decimal_mul(base_qty_ordered, order_price) used_usdt,
.round_dp_with_strategy( ),
tick_size.normalize().scale(), dec!(1),
RoundingStrategy::ToZero, )
); .to_f64()
expected_pure_profit_percent = decimal_sub( .unwrap()
decimal_div( * 100.0;
decimal_mul(base_qty_fee_adjusted, order_price)
.round_dp_with_strategy( // order the symbol based on base_qty_ordered and current_price
tick_size.normalize().scale(), limit_order_buy(
RoundingStrategy::ToZero, element,
), exchange_info_vec,
used_usdt, trade_fee,
), TimeInForce::Gtc,
dec!(1), element.suggested_price,
) base_qty_ordered,
.to_f64() used_usdt,
.unwrap() &base_qty_fee_adjusted.to_string(),
* 100.0; &client,
)
if (element.registerer == 5 || element.registerer == 6) .await;
&& expected_pure_profit_percent < -0.5
{
} else {
// order the symbol based on base_qty_ordered and current_price
limit_order_buy(
element,
exchange_info_vec,
trade_fee,
TimeInForce::Gtc,
order_price,
base_qty_ordered,
used_usdt,
&base_qty_fee_adjusted.to_string(),
&client,
)
.await;
}
} else {
base_qty_ordered = decimal_div(unit_trade_usdt, order_price)
.round_dp_with_strategy(
lot_step_size.normalize().scale(),
RoundingStrategy::ToZero,
);
base_qty_fee_adjusted =
decimal_mul(base_qty_ordered, decimal_sub(dec!(1), trade_fee))
.round_dp_with_strategy(
base_commission_precision,
RoundingStrategy::ToZero,
);
used_usdt = decimal_mul(base_qty_ordered, order_price)
.round_dp_with_strategy(
tick_size.normalize().scale(),
RoundingStrategy::ToZero,
);
expected_pure_profit_percent = decimal_sub(
decimal_div(
decimal_mul(base_qty_fee_adjusted, order_price)
.round_dp_with_strategy(
tick_size.normalize().scale(),
RoundingStrategy::ToZero,
),
used_usdt,
),
dec!(1),
)
.to_f64()
.unwrap()
* 100.0;
if (element.registerer == 5 || element.registerer == 6)
&& expected_pure_profit_percent < -0.5
{
} else {
// order the symbol based on base_qty_ordered and current_price
limit_order_buy(
element,
exchange_info_vec,
trade_fee,
TimeInForce::Gtc,
order_price,
base_qty_ordered,
used_usdt,
&base_qty_fee_adjusted.to_string(),
&client,
)
.await;
}
}
set_is_tradable().await; set_is_tradable().await;
is_tradable = get_is_tradable().await; is_tradable = get_is_tradable().await;