Administrator
6 days ago ac41079aedd2949f30308a25cf1814e2cd6b49a6
src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxKlineWebSocketClient.java
@@ -22,6 +22,7 @@
import com.xcong.excoin.modules.okxNewPrice.okxpi.config.ExchangeInfoEnum;
import com.xcong.excoin.modules.okxNewPrice.okxpi.config.ExchangeLoginService;
import com.xcong.excoin.modules.okxNewPrice.utils.SSLConfig;
import com.xcong.excoin.modules.okxNewPrice.utils.WsMapBuild;
import com.xcong.excoin.modules.okxNewPrice.utils.WsParamBuild;
import com.xcong.excoin.utils.RedisUtils;
import lombok.extern.slf4j.Slf4j;
@@ -344,7 +345,6 @@
                 */
                String confirm = data.getString(8);
                if ("1".equals(confirm)){
                    log.info("{}开仓{}:{}",time,closePx,instId);
                    //调用策略
                    // 创建策略实例
                    MacdEmaStrategy strategy = new MacdEmaStrategy();
@@ -357,8 +357,7 @@
                    // 使用策略分析最新价格数据
                    MacdEmaStrategy.TradingOrder tradingOrderOpenOpen = strategy.generateTradingOrder(historicalPrices1M, MacdMaStrategy.OperationType.open.name());
                    MacdEmaStrategy.TradingOrder tradingOrderOpenClose = strategy.generateTradingOrder(historicalPrices1M, MacdMaStrategy.OperationType.close.name());
                    if (tradingOrderOpenOpen == null && tradingOrderOpenClose == null){
                    if (tradingOrderOpenOpen == null){
                        return;
                    }
@@ -372,10 +371,8 @@
                        String accountName = client.getAccountName();
                        if (accountName != null) {
                            if (ObjectUtil.isNotEmpty(tradingOrderOpenOpen)){
                                log.info("{}开仓{}:{}",instId,tradingOrderOpenOpen.getPosSide(),tradingOrderOpenOpen.getSide());
                                doOpen(client.getWebSocketClient(),accountName, tradingOrderOpenOpen, closePx);
                            }
                            if (ObjectUtil.isNotEmpty(tradingOrderOpenClose)){
                                doOpen(client.getWebSocketClient(),accountName, tradingOrderOpenClose, closePx);
                            }
                        }
                    }
@@ -384,29 +381,6 @@
        } catch (Exception e) {
            log.error("处理 K线频道推送数据失败", e);
        }
    }
    private void doclose(WebSocketClient webSocketClient, String accountName, MacdEmaStrategy.TradingOrder tradingOrderOpenClose, BigDecimal closePx) {
        // 根据信号执行交易操作
        TradeRequestParam tradeRequestParam = new TradeRequestParam();
        tradeRequestParam.setAccountName(accountName);
        tradeRequestParam.setMarkPx(String.valueOf(closePx));
        tradeRequestParam.setInstId(CoinEnums.HE_YUE.getCode());
        tradeRequestParam.setTdMode(CoinEnums.CROSS.getCode());
        tradeRequestParam.setOrdType(CoinEnums.ORDTYPE_MARKET.getCode());
        String posSide = tradingOrderOpenClose.getPosSide();
        tradeRequestParam.setPosSide(posSide);
        String side = tradingOrderOpenClose.getSide();
        tradeRequestParam.setSide(side);
        String clOrdId = WsParamBuild.getOrderNum(side);
        tradeRequestParam.setClOrdId(clOrdId);
        String positionAccountName = PositionsWs.initAccountName(accountName, posSide);
        BigDecimal pos = PositionsWs.getAccountMap(positionAccountName).get("pos");
        tradeRequestParam.setSz(String.valueOf(pos));
        TradeOrderWs.orderZhiYingZhiSunEventNoState(webSocketClient, tradeRequestParam);
    }
    private void doOpen(WebSocketClient webSocketClient, String accountName, MacdEmaStrategy.TradingOrder tradingOrderOpenOpen, BigDecimal closePx) {