From 458ff544df46a0b03e891454698a256b35610f98 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 11 Aug 2020 18:33:37 +0800
Subject: [PATCH] modify whole submit order
---
src/main/java/com/xcong/excoin/utils/CalculateUtil.java | 27 ++++++++++++++++++---------
1 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/utils/CalculateUtil.java b/src/main/java/com/xcong/excoin/utils/CalculateUtil.java
index 04fd536..65e5cac 100644
--- a/src/main/java/com/xcong/excoin/utils/CalculateUtil.java
+++ b/src/main/java/com/xcong/excoin/utils/CalculateUtil.java
@@ -16,7 +16,7 @@
/**
* 计算预估强平价
*
- * @param bondAmount 保证金
+ * @param bondAmount 保证金
* @param openPrice 开仓价
* @param symbolSkuNumber 张数
* @param lotNumber 规格
@@ -26,26 +26,20 @@
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);
- log.info("--->{}", member.getIsForce());
//卖空
if (type == 2) {
forcePrice = money.add(openPrice);
if (member.getIsForce() == 1) {
- log.info("预估强评价:{},{},{}", forcePrice, tradeSetting.getForceParam(), "空");
//预估强平价 = 预估强平价-预估强平价*系数
- forcePrice = forcePrice.subtract(forcePrice.multiply(tradeSetting.getForceParam()));
- log.info("预估强评价:{}", forcePrice);
+ forcePrice = forcePrice.subtract(forcePrice.multiply(member.getForceParam() == null ? BigDecimal.ZERO : member.getForceParam()));
}
} else {//开多
forcePrice = openPrice.subtract(money);
if (member.getIsForce() == 1) {
- log.info("预估强评价:{},{},{}", forcePrice, tradeSetting.getForceParam(), "多");
//预估强平价 = 预估强平价-预估强平价*系数
- forcePrice = forcePrice.add(forcePrice.multiply(tradeSetting.getForceParam()));
- log.info("预估强评价:{}", forcePrice);
+ forcePrice = forcePrice.add(forcePrice.multiply(member.getForceParam() == null ? BigDecimal.ZERO : member.getForceParam()));
}
}
if (forcePrice.compareTo(BigDecimal.ZERO) < 0) {
@@ -53,4 +47,19 @@
}
return forcePrice;
}
+
+ /**
+ * 计算保证金 -- 建仓价*规格*手数*(1/杠杆倍率)
+ *
+ * @param openingPrice 开仓价
+ * @param lotNumber 规格
+ * @param symbolCnt 张数
+ * @param leverRatio 杠杆倍率
+ * @return
+ */
+ public static BigDecimal getBondAmount(BigDecimal openingPrice, BigDecimal lotNumber, Integer symbolCnt, Integer leverRatio) {
+ return openingPrice.multiply(lotNumber).multiply(new BigDecimal(symbolCnt))
+ .multiply(BigDecimal.ONE.divide(new BigDecimal(leverRatio)))
+ .setScale(8, BigDecimal.ROUND_DOWN);
+ }
}
--
Gitblit v1.9.1