Administrator
2025-12-17 7419e72a3dc57355cbd9990cafa660281970ead5
feat(okxNewPrice): 修改策略操作接口以支持传入标记价格

- 更新 `caoZuoLong` 方法签名,新增 `markPx` 参数用于传递标记价格
- 更新 `caoZuoShort` 方法签名,新增 `markPx` 参数用于传递标记价格
- 调整方法内部逻辑,使用传入的 `markPxStr` 构造 `BigDecimal` 对象替代从账户映射中获取
- 在调用 `caoZuoLong` 和 `caoZuoShort` 时传入标记价格参数
- 注释原有从账户映射中获取标记价格的代码逻辑
2 files modified
18 ■■■■■ changed files
src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoService.java 4 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java 14 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoService.java
@@ -7,7 +7,7 @@
    String caoZuo(String accountName);
    String caoZuoLong(String accountName);
    String caoZuoLong(String accountName,String markPx);
    String caoZuoShort(String accountName);
    String caoZuoShort(String accountName,String markPx);
}
src/main/java/com/xcong/excoin/modules/okxNewPrice/celue/CaoZuoServiceImpl.java
@@ -150,9 +150,9 @@
            return null;
        }
        if (CoinEnums.POSSIDE_LONG.getCode().equals(posSide)){
            return caoZuoLong(accountName);
            return caoZuoLong(accountName,markPx);
        }else if (CoinEnums.POSSIDE_SHORT.getCode().equals(posSide)){
            return caoZuoShort(accountName);
            return caoZuoShort(accountName,markPx);
        }else{
            log.error("账户未设置持仓方向......");
            return null;
@@ -160,13 +160,14 @@
    }
    @Override
    public String caoZuoLong(String accountName) {
    public String caoZuoLong(String accountName,String markPxStr) {
        log.info("开始看涨执行操作CaoZuoServiceImpl......");
        try {
            String positionAccountName = PositionsWs.initAccountName(accountName, CoinEnums.POSSIDE_LONG.getCode());
            // 获取标记价格和平均持仓价格
            BigDecimal markPx = PositionsWs.getAccountMap(positionAccountName).get("markPx");
//            BigDecimal markPx = PositionsWs.getAccountMap(positionAccountName).get("markPx");
            BigDecimal markPx = new BigDecimal(markPxStr);
            BigDecimal avgPx = PositionsWs.getAccountMap(positionAccountName).get("avgPx");
            log.info("开仓价格: {}, 当前价格:{},匹配队列中......", avgPx, markPx);
@@ -262,14 +263,15 @@
    }
    @Override
    public String caoZuoShort(String accountName) {
    public String caoZuoShort(String accountName,String markPxStr) {
        log.info("开始看空执行操作CaoZuoServiceImpl......");
        try {
            String positionAccountName = PositionsWs.initAccountName(accountName, CoinEnums.POSSIDE_SHORT.getCode());
            // 获取标记价格和平均持仓价格
            BigDecimal markPx = PositionsWs.getAccountMap(positionAccountName).get("markPx");
//            BigDecimal markPx = PositionsWs.getAccountMap(positionAccountName).get("markPx");
            BigDecimal markPx = new BigDecimal(markPxStr);
            BigDecimal avgPx = PositionsWs.getAccountMap(positionAccountName).get("avgPx");
            log.info("开仓价格: {}, 当前价格:{},匹配队列中......", avgPx, markPx);