Delete unnecessary logic
This commit is contained in:
parent
7fc7aa8a25
commit
aa7ec40434
|
|
@ -160,9 +160,6 @@ pub async fn buy_coin(
|
|||
if !filtered_suggested_coin_vec.is_empty() {
|
||||
let available_usdt = get_available_usdt().await;
|
||||
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 base_qty_ordered = 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;
|
||||
|
||||
// buy the suggested coin and transfer it into [buy_ordered_coin_list]
|
||||
let order_price = 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)
|
||||
base_qty_ordered = decimal_div(unit_trade_usdt, element.suggested_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(
|
||||
lot_step_size.normalize().scale(),
|
||||
base_commission_precision,
|
||||
RoundingStrategy::ToZero,
|
||||
);
|
||||
base_qty_fee_adjusted =
|
||||
decimal_mul(base_qty_ordered, decimal_sub(dec!(1), trade_fee))
|
||||
used_usdt = decimal_mul(base_qty_ordered, element.suggested_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, element.suggested_price)
|
||||
.round_dp_with_strategy(
|
||||
base_commission_precision,
|
||||
tick_size.normalize().scale(),
|
||||
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;
|
||||
}
|
||||
} 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;
|
||||
}
|
||||
}
|
||||
),
|
||||
used_usdt,
|
||||
),
|
||||
dec!(1),
|
||||
)
|
||||
.to_f64()
|
||||
.unwrap()
|
||||
* 100.0;
|
||||
|
||||
// order the symbol based on base_qty_ordered and current_price
|
||||
limit_order_buy(
|
||||
element,
|
||||
exchange_info_vec,
|
||||
trade_fee,
|
||||
TimeInForce::Gtc,
|
||||
element.suggested_price,
|
||||
base_qty_ordered,
|
||||
used_usdt,
|
||||
&base_qty_fee_adjusted.to_string(),
|
||||
&client,
|
||||
)
|
||||
.await;
|
||||
|
||||
set_is_tradable().await;
|
||||
is_tradable = get_is_tradable().await;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user