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() {
|
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;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user