From e45e705c22df5bc979e72db6014dd1ff9637be42 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 24 Jun 2026 22:21:58 +0800
Subject: [PATCH] fix(okx): 修复网格交易成交日志记录问题
---
src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientMain.java | 63 +++++++++++++++++++++++++++++++
1 files changed, 63 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientMain.java b/src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientMain.java
new file mode 100644
index 0000000..5e8823e
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/okxApi/OkxWebSocketClientMain.java
@@ -0,0 +1,63 @@
+package com.xcong.excoin.modules.okxApi;
+
+import com.xcong.excoin.modules.okxApi.wsHandler.handler.MarkPriceOkxChannelHandler;
+import com.xcong.excoin.modules.okxApi.wsHandler.handler.OrdersOkxChannelHandler;
+import com.xcong.excoin.modules.okxApi.wsHandler.handler.PositionsOkxChannelHandler;
+
+import java.math.BigDecimal;
+import java.util.concurrent.CountDownLatch;
+
+/**
+ * OKX 网格策略独立启动入口(用于测试或非 Spring 环境)。
+ *
+ * @author Administrator
+ */
+public class OkxWebSocketClientMain {
+
+ public static void main(String[] args) throws InterruptedException {
+ OkxConfig config = OkxConfig.builder()
+ .apiKey("YOUR_OKX_API_KEY")
+ .apiSecret("YOUR_OKX_API_SECRET")
+ .passphrase("YOUR_OKX_PASSPHRASE")
+ .contract("ETH-USDT-SWAP")
+ .leverage("100")
+ .marginMode("cross")
+ .positionMode("long_short_mode")
+ .gridRate(new BigDecimal("0.003"))
+ .expectedProfit(new BigDecimal("25"))
+ .maxLoss(new BigDecimal("15"))
+ .baseQuantity("15")
+ .quantity("15")
+ .restartGridSpan(6)
+ .priceScale(2)
+ .contractMultiplier(new BigDecimal("0.01"))
+ .isProduction(false)
+ .build();
+
+ OkxGridTradeService gridTradeService = new OkxGridTradeService(config);
+ gridTradeService.init();
+
+ OkxKlineWebSocketClient wsClient = new OkxKlineWebSocketClient(config);
+
+ wsClient.addPublicHandler(new MarkPriceOkxChannelHandler(
+ config.getContract(), gridTradeService));
+ wsClient.addPrivateHandler(new PositionsOkxChannelHandler(
+ config, gridTradeService));
+ wsClient.addPrivateHandler(new OrdersOkxChannelHandler(
+ config, gridTradeService));
+
+ gridTradeService.setWsClient(wsClient);
+ wsClient.init();
+
+ gridTradeService.startGrid();
+
+ // 保持主线程不退出
+ CountDownLatch latch = new CountDownLatch(1);
+ Runtime.getRuntime().addShutdownHook(new Thread(() -> {
+ gridTradeService.stopGrid();
+ wsClient.destroy();
+ latch.countDown();
+ }));
+ latch.await();
+ }
+}
--
Gitblit v1.9.1