From 14c1946eae86a86f8d1edee6cf3bdaf7572fc966 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Thu, 30 Oct 2025 19:44:38 +0800
Subject: [PATCH] 1

---
 trading-order-service/src/main/java/com/yami/trading/service/impl/StrongLevelCalculationServiceImpl.java |   25 ++++++++++++++++++-------
 1 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/trading-order-service/src/main/java/com/yami/trading/service/impl/StrongLevelCalculationServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/impl/StrongLevelCalculationServiceImpl.java
index 01d7e3a..cbe3b9e 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/impl/StrongLevelCalculationServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/impl/StrongLevelCalculationServiceImpl.java
@@ -38,7 +38,7 @@
         if (result < 0) {
             return 0;
         }
-        return new BigDecimal(result).setScale(2, RoundingMode.HALF_UP).doubleValue();
+        return new BigDecimal(result).setScale(2, RoundingMode.DOWN).doubleValue();
     }
 
 
@@ -66,7 +66,7 @@
         if (result < 0) {
             return 0;
         }
-        return new BigDecimal(result).setScale(2, RoundingMode.HALF_UP).doubleValue();
+        return new BigDecimal(result).setScale(2, RoundingMode.DOWN).doubleValue();
     }
 
 
@@ -89,16 +89,27 @@
     }
 
 
+    public static double  sss(double earnestMoney, int level, double faceValue, double recentQuotation){
+        double result = earnestMoney * level / (faceValue * recentQuotation);
 
+        BigDecimal bd = new BigDecimal(result).setScale(2, RoundingMode.DOWN);
+
+        return bd.doubleValue();
+    }
 
     public static void main(String[] args) {
         // 给定参数
-        double marginBalance = 10; // 保证金余额
+        double marginBalance = 925; // 保证金余额
         double faceValue = 0.01; // 合约面值(固定面值不能调整)
-        double contractQuantity = 0.5; // 合约张数  张数=可用保证金*杠杆倍数/(面值*最新成交价)
-        double openingPrice = 97016.4; // 开仓均价
+        double contractQuantity = 86.52218241682178; // 合约张数  张数=可用保证金*杠杆倍数/(面值*最新成交价)
+        double openingPrice = 106909; // 开仓均价
         double maintenanceMarginRate = 0.004; // 维持保证金率(固定不变)
         double feeRate = 0.0005; // 手续费率  根据实际设置
+
+        double sss = sss(1000, 100, 0.01, 106909);
+
+
+        System.out.println(sss);
 
         // 计算强平价
         double liquidationPrice = demoA(marginBalance, faceValue, contractQuantity,
@@ -128,7 +139,7 @@
         if (result < 0) {
             return 0;
         }
-        return new BigDecimal(result).setScale(2, RoundingMode.HALF_UP).doubleValue();
+        return new BigDecimal(result).setScale(2, RoundingMode.DOWN).doubleValue();
     }
 
 
@@ -155,7 +166,7 @@
         if (result < 0) {
             return 0;
         }
-        return new BigDecimal(result).setScale(2, RoundingMode.HALF_UP).doubleValue();
+        return new BigDecimal(result).setScale(2, RoundingMode.DOWN).doubleValue();
     }
 
 }

--
Gitblit v1.9.3