From c47543cbe3f6683567c9398a204a86dc192a9608 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Sat, 10 Aug 2024 00:47:08 +0800
Subject: [PATCH] 1

---
 src/main/java/project/contract/internal/ContractOrderServiceImpl.java     |   16 ++++------------
 src/main/java/project/project/web/admin/AdminContractOrderController.java |   26 ++++++++------------------
 .idea/misc.xml                                                            |    1 -
 3 files changed, 12 insertions(+), 31 deletions(-)

diff --git a/.idea/misc.xml b/.idea/misc.xml
index d5cd614..911d29d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ExternalStorageConfigurationManager" enabled="true" />
   <component name="MavenProjectsManager">
diff --git a/src/main/java/project/contract/internal/ContractOrderServiceImpl.java b/src/main/java/project/contract/internal/ContractOrderServiceImpl.java
index 006f318..86559a3 100644
--- a/src/main/java/project/contract/internal/ContractOrderServiceImpl.java
+++ b/src/main/java/project/contract/internal/ContractOrderServiceImpl.java
@@ -501,29 +501,21 @@
 		} else {
 			map.put("profit", df.format(Arith.sub(Arith.add(order.getAmount_close(), order.getDeposit()), order.getDeposit_open())));
 		}
-
-
 		double currentPrice = Double.parseDouble(map.get("trade_avg_price").toString());
 
-		// 计算仓位总价
-		double positionValue = Double.parseDouble(map.get("deposit_open").toString()) * Double.parseDouble(map.get("lever_rate").toString());
-
-		// 计算数量
-		double quantity = positionValue / currentPrice;
-
-		// 得到强平价格
+		double leve = Double.parseDouble(map.get("lever_rate").toString());
+		//得到强平价格
 		if(null != map.get("direction")){
 			double liquidationPrice;
 			if(map.get("direction").equals("sell")){
-				liquidationPrice = currentPrice + (100 / quantity);
+				liquidationPrice = currentPrice * (1 + (1 / leve));
 			}else{
-				liquidationPrice = currentPrice - (100 / quantity);
+				liquidationPrice = currentPrice * (1 - 1 / leve);
 			}
 			DecimalFormat dfs = new DecimalFormat("#.#####");
 			String formattedPrice = dfs.format(liquidationPrice);
 			map.put("qiangPing",formattedPrice);
 		}
-
 		map.put("volume", order.getVolume());
 		map.put("volume_open", order.getVolume_open());
 
diff --git a/src/main/java/project/project/web/admin/AdminContractOrderController.java b/src/main/java/project/project/web/admin/AdminContractOrderController.java
index 29114ab..94acd11 100644
--- a/src/main/java/project/project/web/admin/AdminContractOrderController.java
+++ b/src/main/java/project/project/web/admin/AdminContractOrderController.java
@@ -113,19 +113,14 @@
 				}
 				double currentPrice = Double.parseDouble(map.get("trade_avg_price").toString());
 
-				// 计算仓位总价
-				double positionValue = Double.parseDouble(map.get("deposit_open").toString()) * Double.parseDouble(map.get("lever_rate").toString());
-
-				// 计算数量
-				double quantity = positionValue / currentPrice;
-
-				// 得到强平价格
+				double leve = Double.parseDouble(map.get("lever_rate").toString());
+				//得到强平价格
 				if(null != map.get("direction")){
 					double liquidationPrice;
 					if(map.get("direction").equals("sell")){
-						liquidationPrice = currentPrice + (100 / quantity);
+						liquidationPrice = currentPrice * (1 + (1 / leve));
 					}else{
-						liquidationPrice = currentPrice - (100 / quantity);
+						liquidationPrice = currentPrice * (1 - 1 / leve);
 					}
 					DecimalFormat df = new DecimalFormat("#.#####");
 					String formattedPrice = df.format(liquidationPrice);
@@ -224,19 +219,14 @@
 				}
 				double currentPrice = Double.parseDouble(map.get("trade_avg_price").toString());
 
-				// 计算仓位总价
-				double positionValue = Double.parseDouble(map.get("deposit_open").toString()) * Double.parseDouble(map.get("lever_rate").toString());
-
-				// 计算数量
-				double quantity = positionValue / currentPrice;
-
-				// 得到强平价格
+				double leve = Double.parseDouble(map.get("lever_rate").toString());
+				//得到强平价格
 				if(null != map.get("direction")){
 					double liquidationPrice;
 					if(map.get("direction").equals("sell")){
-						liquidationPrice = currentPrice + (100 / quantity);
+						liquidationPrice = currentPrice * (1 + (1 / leve));
 					}else{
-						liquidationPrice = currentPrice - (100 / quantity);
+						liquidationPrice = currentPrice * (1 - 1 / leve);
 					}
 					DecimalFormat df = new DecimalFormat("#.#####");
 					String formattedPrice = df.format(liquidationPrice);

--
Gitblit v1.9.3