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,12 +194,7 @@ 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
&& weighted_unit_usdt > unit_trade_usdt
{
// adjust regulared_unit_usdt if available number of trade are over 5.
base_qty_ordered = decimal_div(weighted_unit_usdt, order_price)
.round_dp_with_strategy( .round_dp_with_strategy(
lot_step_size.normalize().scale(), lot_step_size.normalize().scale(),
RoundingStrategy::ToZero, RoundingStrategy::ToZero,
@ -213,14 +205,14 @@ pub async fn buy_coin(
base_commission_precision, base_commission_precision,
RoundingStrategy::ToZero, RoundingStrategy::ToZero,
); );
used_usdt = decimal_mul(base_qty_ordered, order_price) used_usdt = decimal_mul(base_qty_ordered, element.suggested_price)
.round_dp_with_strategy( .round_dp_with_strategy(
tick_size.normalize().scale(), tick_size.normalize().scale(),
RoundingStrategy::ToZero, RoundingStrategy::ToZero,
); );
expected_pure_profit_percent = decimal_sub( expected_pure_profit_percent = decimal_sub(
decimal_div( decimal_div(
decimal_mul(base_qty_fee_adjusted, order_price) decimal_mul(base_qty_fee_adjusted, element.suggested_price)
.round_dp_with_strategy( .round_dp_with_strategy(
tick_size.normalize().scale(), tick_size.normalize().scale(),
RoundingStrategy::ToZero, RoundingStrategy::ToZero,
@ -233,74 +225,19 @@ pub async fn buy_coin(
.unwrap() .unwrap()
* 100.0; * 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 // order the symbol based on base_qty_ordered and current_price
limit_order_buy( limit_order_buy(
element, element,
exchange_info_vec, exchange_info_vec,
trade_fee, trade_fee,
TimeInForce::Gtc, TimeInForce::Gtc,
order_price, element.suggested_price,
base_qty_ordered, base_qty_ordered,
used_usdt, used_usdt,
&base_qty_fee_adjusted.to_string(), &base_qty_fee_adjusted.to_string(),
&client, &client,
) )
.await; .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;