From d615fc515fc52d6ed970c11d59a017e48de4be32 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Tue, 16 Jun 2026 16:43:58 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/utils/TradeFeeUtil.java |   20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/nq/utils/TradeFeeUtil.java b/src/main/java/com/nq/utils/TradeFeeUtil.java
index 195ed57..c97e9de 100644
--- a/src/main/java/com/nq/utils/TradeFeeUtil.java
+++ b/src/main/java/com/nq/utils/TradeFeeUtil.java
@@ -5,16 +5,32 @@
 
 public class TradeFeeUtil {
 
-    public static final BigDecimal BUY_FEE_RATE = new BigDecimal("0.03");
+    /** 默认买入手续费率 0.0035 = 0.35% */
+    public static final BigDecimal BUY_FEE_RATE = new BigDecimal("0.0035");
 
     private TradeFeeUtil() {
     }
 
+    public static BigDecimal resolveBuyFeeRate(BigDecimal configured) {
+        if (configured == null || configured.compareTo(BigDecimal.ZERO) <= 0) {
+            return BUY_FEE_RATE;
+        }
+        return configured;
+    }
+
     public static BigDecimal calcBuyFee(BigDecimal buyAmt) {
+        return calcBuyFee(buyAmt, BUY_FEE_RATE);
+    }
+
+    public static BigDecimal calcBuyFee(BigDecimal buyAmt, BigDecimal feeRate) {
         if (buyAmt == null) {
             return BigDecimal.ZERO;
         }
-        return buyAmt.multiply(BUY_FEE_RATE).setScale(2, RoundingMode.HALF_UP);
+        return buyAmt.multiply(resolveBuyFeeRate(feeRate)).setScale(2, RoundingMode.HALF_UP);
+    }
+
+    public static BigDecimal calcBuyFeeByNotional(BigDecimal notional, Integer lever, BigDecimal feeRate) {
+        return calcBuyFee(notional, feeRate);
     }
 
     public static BigDecimal calcBuyFeeByNotional(BigDecimal notional, Integer lever) {

--
Gitblit v1.9.3