| | |
| | | |
| | | 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) { |