package com.xcong.excoin.modules.station.service; import com.baomidou.mybatisplus.extension.service.IService; import com.xcong.excoin.modules.station.entity.StrategyEventLog; import com.xcong.excoin.modules.station.entity.StrategyStatus; import com.xcong.excoin.modules.station.model.GateStatsEvent; import java.util.List; import java.util.Map; public interface StationService extends IService { /** 启动策略(通过 MQ 发送 START 到目标 JAR) */ void startStrategy(String apiKey); /** 停止策略(通过 MQ 发送 STOP 到目标 JAR) */ void stopStrategy(String apiKey); /** 启动策略(直接使用 apiKeyMd5,跳过内部 md5 计算) */ void startByMd5(String apiKeyMd5); /** 停止策略(直接使用 apiKeyMd5,跳过内部 md5 计算) */ void stopByMd5(String apiKeyMd5); /** 更新策略参数(通过 MQ 发送 UPDATE_CONFIG 到目标 JAR,仅持久化,需手动启动生效) */ void updateConfig(String apiKeyMd5, Map params); /** 取消多仓止盈止损(通过 MQ 发送 CANCEL_LONG_TP_SL 到目标 JAR) */ void cancelLongTpSl(String apiKeyMd5); /** 取消空仓止盈止损(通过 MQ 发送 CANCEL_SHORT_TP_SL 到目标 JAR) */ void cancelShortTpSl(String apiKeyMd5); /** 生成多仓止盈止损(通过 MQ 发送 REBUILD_LONG_TP_SL 到目标 JAR) */ void rebuildLongTpSl(String apiKeyMd5); /** 生成空仓止盈止损(通过 MQ 发送 REBUILD_SHORT_TP_SL 到目标 JAR) */ void rebuildShortTpSl(String apiKeyMd5); /** 多单平仓(通过 MQ 发送 CLOSE_LONG 到目标 JAR) */ void closeLong(String apiKeyMd5); /** 空单平仓(通过 MQ 发送 CLOSE_SHORT 到目标 JAR) */ void closeShort(String apiKeyMd5); /** 保存实例别名(空白/空串 = 清除别名),持久化到 strategy_status */ void saveAlias(String apiKeyMd5, String alias); /** 查询实例别名,不存在返回 null */ String getAlias(String apiKeyMd5); /** 保存策略事件(幂等) */ void saveEvent(GateStatsEvent event); /** 查询事件日志 */ List getEvents(String apiKeyMd5); /** 查询每轮多/空止损次数(口径:数 STOP_LOSS_TRIGGERED 事件条数) */ List> getRoundStopLossCount(String apiKeyMd5); /** 查询策略实时状态 */ StrategyStatus getStrategyStatus(String apiKeyMd5); }