Administrator
5 days ago 4bc9c7ce436f5e1f184ec6c262344099dd55531c
fix(positions): 修复保证金计算逻辑并调整默认比例

- 将总保证金比例从0.1调整为0.2
- 移除对总保证金金额的除以2操作
- 修正了持仓数据中的保证金冻结状态判断逻辑
2 files modified
5 ■■■■■ changed files
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/PositionsWs.java 3 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/enums/CoinEnums.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/PositionsWs.java
@@ -138,8 +138,7 @@
        WsMapBuild.saveBigDecimalToMap(accountMap, "fundingFee", WsMapBuild.parseBigDecimalSafe(posData.getString("fundingFee")));
        BigDecimal ordFrozImr = PositionsWs.getAccountMap(accountNamePositons).get("imr");
        BigDecimal totalOrderUsdt = WsMapBuild.parseBigDecimalSafe(AccountWs.getAccountMap(accountName).get(CoinEnums.TOTAL_ORDER_USDT.name()))
                .divide(new BigDecimal("2"), RoundingMode.DOWN);
        BigDecimal totalOrderUsdt = WsMapBuild.parseBigDecimalSafe(AccountWs.getAccountMap(accountName).get(CoinEnums.TOTAL_ORDER_USDT.name()));
        log.info("账户{}持仓数据, 冻结保证金: {}, 总下单金额: {}",accountNamePositons,ordFrozImr,totalOrderUsdt);
        if (ordFrozImr.compareTo(totalOrderUsdt) <= 0){
            WsMapBuild.saveBigDecimalToMap(accountMap, CoinEnums.READY_STATE.name(), WsMapBuild.parseBigDecimalSafe(CoinEnums.READY_STATE_YES.getCode()));
src/main/java/com/xcong/excoin/modules/okxNewPrice/okxWs/enums/CoinEnums.java
@@ -45,7 +45,7 @@
    PING_CANG_SHOUYI("平仓收益比例", "0.5"),
    //下单的总保障金为账户总金额cashBal * TOTAL_ORDER_USDT用来做保证金
    TOTAL_ORDER_USDTPECENT("总保证金比例total_order_usdtpecent","0.1"),
    TOTAL_ORDER_USDTPECENT("总保证金比例total_order_usdtpecent","0.2"),
    TOTAL_ORDER_USDT("总保证金totalOrderUsdt","0"),
    KANG_CANG("抗压比例KANG_CANG","0.1"),
    ZHI_SUN("止损比例ZHI_SUN","0.2"),