From a0a9f254e100874bf0e4c72e513779542cbd6e46 Mon Sep 17 00:00:00 2001 From: Sik Yoon Date: Sat, 25 May 2024 02:49:14 +0900 Subject: [PATCH] Change trade fee --- src/future/table_mgmt.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/future/table_mgmt.rs b/src/future/table_mgmt.rs index e19c213..b1bf768 100644 --- a/src/future/table_mgmt.rs +++ b/src/future/table_mgmt.rs @@ -175,7 +175,9 @@ async fn update_repeat_task( if !price.is_zero() { let mut update_values: Vec<(String, String)> = Vec::new(); // to get quote_commission_precision - let trade_fee = decimal_div(futures_trade_fee.maker_fee_percent, dec!(100)); + let entry_trade_fee_ratio = decimal_div(futures_trade_fee.maker_fee_percent, dec!(100)); + let exit_trade_fee_ratio = decimal_div(futures_trade_fee.taker_fee_percent, dec!(100)); + let trade_fee = decimal_div(futures_trade_fee.taker_fee_percent, dec!(100)); let lot_step_size = exchange_info_map.get(&element.symbol).unwrap().stepsize; let quote_precision = exchange_info_map .get(&element.symbol) @@ -186,8 +188,8 @@ async fn update_repeat_task( RoundingStrategy::ToZero, ); - let entry_trade_fee = decimal_mul(decimal_mul(position_size, element.entry_price), trade_fee); - let exit_trade_fee = decimal_mul(decimal_mul(position_size, price), trade_fee); + let entry_trade_fee = decimal_mul(decimal_mul(position_size, element.entry_price), entry_trade_fee_ratio); + let exit_trade_fee = decimal_mul(decimal_mul(position_size, price), exit_trade_fee_ratio); let fee_total = decimal_add(entry_trade_fee, exit_trade_fee); let initial_margin = decimal_add(decimal_mul(position_size, element.entry_price), entry_trade_fee); let mut unrealized_pnl = Decimal::new(0, 8);