Administrator
7 days ago b0c4c70716351b4c539c03b0f1f6c4fd516779f2
src/main/java/com/xcong/excoin/modules/okxNewPrice/OkxKlineWebSocketClient.java
@@ -3,6 +3,7 @@
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONException;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -247,6 +248,11 @@
     */
    private void handleWebSocketMessage(String message) {
        try {
            if ("pong".equals(message)) {
                log.debug("{}: 收到心跳响应");
                cancelPongTimeout();
                return;
            }
            JSONObject response = JSON.parseObject(message);
            String event = response.getString("event");
@@ -338,34 +344,28 @@
                    // 创建策略实例
                    MacdMaStrategy strategy = new MacdMaStrategy();
                    // 生成100个15分钟价格数据点
                    // 生成200个1m价格数据点
                    List<Kline> kline1MinuteData = getKlineDataByInstIdAndBar(instId, "1m");
                    List<BigDecimal> historicalPrices1M = kline1MinuteData.stream()
                            .map(Kline::getC)
                            .collect(Collectors.toList());
                    log.info("生成100个1分钟价格数据点成功!");
                    log.info("1m:{}", JSONUtil.parse( historicalPrices1M));
                    // 生成200个1D价格数据点
                    List<Kline> kline1DayData = getKlineDataByInstIdAndBar(instId, "1D");
                    List<BigDecimal> historicalPrices1D = kline1DayData.stream()
                            .map(Kline::getC)
                            .collect(Collectors.toList());
                    log.info("1D:{}", JSONUtil.parse( historicalPrices1D));
                    // 使用策略分析最新价格数据
                    MacdMaStrategy.TradingOrder tradingOrderOpen1M = strategy.generateTradingOrder(historicalPrices1M,MacdMaStrategy.OperationType.open.name());
                    MacdMaStrategy.TradingOrder tradingOrderOpen1M = strategy.generateTradingOrder(historicalPrices1M,historicalPrices1D,MacdMaStrategy.OperationType.open.name());
                    if (tradingOrderOpen1M == null ){
                        return;
                    }
//                    List<Kline> kline15MinuteData = getKlineDataByInstIdAndBar(instId, "15m");
//                    List<BigDecimal> historicalPrices15M = kline15MinuteData.stream()
//                            .map(Kline::getC)
//                            .collect(Collectors.toList());
//                    // 使用策略分析最新价格数据
//                    MacdMaStrategy.TradingOrder tradingOrderOpen15M = strategy.generateTradingOrder(historicalPrices15M,MacdMaStrategy.OperationType.open.name());
//                    if (tradingOrderOpen15M == null ){
//                        return;
//                    }
//
//                    if (!tradingOrderOpen1M.getPosSide().equals(tradingOrderOpen15M.getPosSide())){
//                        return;
//                    }
//                    log.info("1分钟和15分钟K线方向一致,开始执行交易操作!");
                    if (historicalPrices1D == null ){
                        return;
                    }
                    Collection<OkxQuantWebSocketClient> allClients = clientManager.getAllClients();
                    //如果为空,则直接返回
@@ -412,8 +412,6 @@
            requestParam.put("bar", bar);
            requestParam.put("limit", "200");
            String result = ExchangeLoginService.getInstance(ExchangeInfoEnum.OKX_UAT.name()).lineHistory(requestParam);
            log.info("加载OKX-KLINE,{}", result);
            JSONObject json = JSON.parseObject(result);
            String data = json.getString("data");
            
@@ -515,9 +513,7 @@
    private void sendPing() {
        try {
            if (webSocketClient != null && webSocketClient.isOpen()) {
                JSONObject ping = new JSONObject();
                ping.put("op", "ping");
                webSocketClient.send(ping.toJSONString());
                webSocketClient.send("ping");
                log.debug("发送ping请求");
            }
        } catch (Exception e) {