From 8fd540a4a03dd32cb66bf1e0fc5fac3e0b214515 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Sun, 31 May 2020 22:23:31 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/chonggaoxiao/new_excoin.git

---
 src/main/java/com/xcong/excoin/utils/CalculateUtil.java |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 49 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/utils/CalculateUtil.java b/src/main/java/com/xcong/excoin/utils/CalculateUtil.java
new file mode 100644
index 0000000..c0a3202
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/utils/CalculateUtil.java
@@ -0,0 +1,49 @@
+package com.xcong.excoin.utils;
+
+
+import com.xcong.excoin.modules.member.entity.MemberEntity;
+import com.xcong.excoin.modules.platform.entity.PlatformTradeSettingEntity;
+
+import java.math.BigDecimal;
+
+/**
+ * @author helius
+ */
+public class CalculateUtil {
+
+    /**
+     * 计算预估强平价
+     *
+     * @param bondAmount        保证金
+     * @param openPrice       开仓价
+     * @param symbolSkuNumber 张数
+     * @param lotNumber       规格
+     * @param type            1:买多2:卖空
+     * @return
+     */
+    public static BigDecimal getForceSetPrice(BigDecimal bondAmount, BigDecimal openPrice, int symbolSkuNumber, BigDecimal lotNumber,
+                                              int type, MemberEntity member) {
+        CacheSettingUtils cacheSettingUtils = SpringContextHolder.getBean(CacheSettingUtils.class);
+        PlatformTradeSettingEntity tradeSetting = cacheSettingUtils.getTradeSetting();
+        BigDecimal forcePrice = BigDecimal.ZERO;
+        BigDecimal money = bondAmount.divide(new BigDecimal(symbolSkuNumber).multiply(lotNumber), 8, BigDecimal.ROUND_DOWN);
+        //卖空
+        if (type == 2) {
+            forcePrice = money.add(openPrice);
+            if (member.getIsProfit() == 1) {
+                //预估强平价 = 预估强平价-预估强平价*系数
+                forcePrice = forcePrice.subtract(forcePrice.multiply(tradeSetting.getForceParam()));
+            }
+        } else {//开多
+            forcePrice = openPrice.subtract(money);
+            if (member.getIsProfit() == 1) {
+                //预估强平价 = 预估强平价-预估强平价*系数
+                forcePrice = forcePrice.add(forcePrice.multiply(tradeSetting.getForceParam()));
+            }
+        }
+        if (forcePrice.compareTo(BigDecimal.ZERO) < 0) {
+            forcePrice = BigDecimal.ZERO;
+        }
+        return forcePrice;
+    }
+}

--
Gitblit v1.9.1