Administrator
4 days ago 097ee94cc027baf4970c4fc5daf2aece694d08d9
src/main/java/com/xcong/excoin/modules/gateApi/GateTradeExecutor.java
@@ -100,8 +100,10 @@
                order.setTif(FuturesOrder.TifEnum.IOC);
                order.setText("t-grid-long");
                FuturesOrder result = futuresApi.createFuturesOrder(SETTLE, order, null);
                log.info("[TradeExec] 开多成功, price:{}, id:{}", result.getFillPrice(), result.getId());
                if (onSuccess != null) onSuccess.run();
                log.info("[TradeExec] 开多成功, 价格:{}, id:{}", result.getFillPrice(), result.getId());
                if (onSuccess != null) {
                    onSuccess.run();
                }
            } catch (Exception e) {
                log.error("[TradeExec] 开多失败", e);
            }
@@ -125,8 +127,10 @@
                order.setTif(FuturesOrder.TifEnum.IOC);
                order.setText("t-grid-short");
                FuturesOrder result = futuresApi.createFuturesOrder(SETTLE, order, null);
                log.info("[TradeExec] 开空成功, price:{}, id:{}", result.getFillPrice(), result.getId());
                if (onSuccess != null) onSuccess.run();
                log.info("[TradeExec] 开空成功, 价格:{}, id:{}", result.getFillPrice(), result.getId());
                if (onSuccess != null) {
                    onSuccess.run();
                }
            } catch (Exception e) {
                log.error("[TradeExec] 开空失败", e);
            }
@@ -151,23 +155,23 @@
            FuturesPriceTriggeredOrder order = buildTriggeredOrder(triggerPrice, rule, orderType, autoSize);
            try {
                TriggerOrderResponse response = futuresApi.createPriceTriggeredOrder(SETTLE, order);
                log.info("[TradeExec] 止盈单已创建, tp:{}, orderType:{}, id:{}",
                log.info("[TradeExec] 止盈单已创建, 触发价:{}, 类型:{}, id:{}",
                        triggerPrice, orderType, response.getId());
            } catch (GateApiException e) {
                if ("AUTO_USER_EXIST_POSITION_ORDER".equals(e.getErrorLabel())) {
                    log.warn("[TradeExec] 止盈单已存在,清除后重试");
                    log.warn("[TradeExec] 止盈单已存在,清除旧单后重试");
                    try {
                        futuresApi.cancelPriceTriggeredOrderList(SETTLE, contract);
                        TriggerOrderResponse response = futuresApi.createPriceTriggeredOrder(SETTLE, order);
                        log.info("[TradeExec] 止盈单重试成功, tp:{}, id:{}", triggerPrice, response.getId());
                        log.info("[TradeExec] 止盈单重试成功, 触发价:{}, id:{}", triggerPrice, response.getId());
                    } catch (Exception retryEx) {
                        log.error("[TradeExec] 止盈单重试失败", retryEx);
                    }
                } else {
                    log.error("[TradeExec] 止盈单创建失败, tp:{}", triggerPrice, e);
                    log.error("[TradeExec] 止盈单创建失败, 触发价:{}", triggerPrice, e);
                }
            } catch (Exception e) {
                log.error("[TradeExec] 止盈单创建失败, tp:{}", triggerPrice, e);
                log.error("[TradeExec] 止盈单创建失败, 触发价:{}", triggerPrice, e);
            }
        });
    }
@@ -179,9 +183,9 @@
        executor.execute(() -> {
            try {
                futuresApi.cancelPriceTriggeredOrderList(SETTLE, contract);
                log.info("[TradeExec] 已清除所有止盈止损单");
                log.info("[TradeExec] 已清除所有止盈止损条件单");
            } catch (Exception e) {
                log.error("[TradeExec] 清除止盈止损单失败", e);
                log.error("[TradeExec] 清除止盈止损条件单失败", e);
            }
        });
    }