QuickFIXN C#使用MarketDataSnapshotFullRefresh无法获取行情数据求助
QuickFIX/N仅收心跳无行情问题排查方案
- 配置会话时间逻辑错误:你当前配置的
StartTime=09:26:00晚于EndTime=09:25:00,QuickFIX/N会将会话识别为跨天运行模式,和你预期的1分钟运行窗口逻辑不符,虽然登出重连动作正常,但时序偏差可能导致行情推送逻辑异常,建议先修改为StartTime=09:25:00、EndTime=09:26:00匹配你的预设间隔。 - 未主动触发行情订阅:FIX协议的行情推送为请求触发模式,服务端不会在会话建立后主动推送行情数据。你需要在会话登录成功的回调逻辑中,主动构造并发送
MarketDataRequest(MsgType=V)消息,明确指定订阅标的、行情类型、更新模式等参数,服务端校验请求合法后才会返回MarketDataSnapshotFullRefresh(MsgType=W)类行情消息。 - 数据字典加载失败:配置中
TransportDataDictionary= C:\FIXT11.xml、AppDataDictionary= FIX50.xml的路径前存在多余空格,可能导致框架无法正常加载数据字典,无法解析非心跳类的业务消息,即便服务端推送了行情也会被直接丢弃,建议删除路径前的空格并确认两个XML文件存在于对应路径。 - 身份与权限校验不通过:核对
SenderCompID、SenderSubID、TargetCompID是否和服务端分配的配置完全一致,身份标识不匹配或者无对应行情权限时,服务端通常只会返回心跳维持会话,不会推送业务数据。 - 业务消息回调逻辑遗漏:检查你实现的
IApplication接口的FromApp方法,是否添加了MarketDataSnapshotFullRefresh消息的处理逻辑,若仅实现了心跳等管理类消息的回调,业务消息会被框架默认丢弃。 - 订阅请求参数错误:查看
FileLogPath配置目录下的消息日志,确认你发送的MarketDataRequest是否正常发出,服务端是否返回了业务拒绝消息,若订阅的标的不存在、参数格式不符合服务端要求,也会导致无行情返回。
内容的提问来源于stack exchange,提问作者Huseyin Durmus
相关产品推荐
相关产品推荐

