Helius
2020-08-11 458ff544df46a0b03e891454698a256b35610f98
src/main/java/com/xcong/excoin/utils/CalculateUtil.java
@@ -16,7 +16,7 @@
    /**
     * 计算预估强平价
     *
     * @param bondAmount        保证金
     * @param bondAmount      保证金
     * @param openPrice       开仓价
     * @param symbolSkuNumber 张数
     * @param lotNumber       规格
@@ -33,13 +33,13 @@
            forcePrice = money.add(openPrice);
            if (member.getIsForce() == 1) {
                //预估强平价 = 预估强平价-预估强平价*系数
                forcePrice = forcePrice.subtract(forcePrice.multiply(member.getForceParam()));
                forcePrice = forcePrice.subtract(forcePrice.multiply(member.getForceParam() == null ? BigDecimal.ZERO : member.getForceParam()));
            }
        } else {//开多
            forcePrice = openPrice.subtract(money);
            if (member.getIsForce() == 1) {
                //预估强平价 = 预估强平价-预估强平价*系数
                forcePrice = forcePrice.add(forcePrice.multiply(member.getForceParam()));
                forcePrice = forcePrice.add(forcePrice.multiply(member.getForceParam() == null ? BigDecimal.ZERO : member.getForceParam()));
            }
        }
        if (forcePrice.compareTo(BigDecimal.ZERO) < 0) {
@@ -47,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);
    }
}