package com.xcong.excoin.modules.okxApi; import java.math.BigDecimal; /** * OKX 策略通用接口 — WS 频道处理器的回调契约。 * *

定义所有 OKX 交易策略必须实现的核心回调方法,使得不同的策略实现 * 可以无缝接入相同的 WebSocket 基础设施。 * *

实现类

* * *

WS 回调映射

* * * * * *
WS频道回调方法说明
mark-priceonKline / setMarkPrice价格驱动 + PnL计算
positionsonPositionUpdate仓位变更通知
ordersonAutoOrder条件单状态变更
* * @author Administrator */ public interface IOkxStrategy { /** * K线/价格数据回调(公开频道 mark-price 推送)。 * * @param price 最新价格(标记价或最新价) */ void onKline(BigDecimal price); /** * 标记价格设置(用于 PnL 计算)。 * * @param markPrice 标记价格 */ void setMarkPrice(BigDecimal markPrice); /** * 仓位更新回调(私有频道 positions 推送)。 * * @param contract 合约名称 * @param direction 交易方向(LONG / SHORT) * @param size 持仓张数(绝对值) * @param entryPrice 开仓均价 */ void onPositionUpdate(String contract, Direction direction, BigDecimal size, BigDecimal entryPrice); /** * 自动订单状态变更回调(私有频道 orders 推送)。 * * @param orderId 条件单算法 ID(algoId) * @param status 订单状态(如 "finished") * @param reason 状态原因(如 "filled") * @param orderType 订单类型(如 "entry-long", "plan-close-long-position") * @param tradeId 成交 ID */ void onAutoOrder(String orderId, String status, String reason, String orderType, String tradeId); /** * 策略是否处于活跃状态(非 STOPPED/WAITING_KLINE)。 * * @return true 表示策略正在运行 */ boolean isStrategyActive(); /** * 保存 WS 客户端引用(用于判断订阅状态)。 * * @param wsClient OKX WebSocket 客户端 */ void setWsClient(OkxKlineWebSocketClient wsClient); }