为何FixAntenna发送NewOrder Single(D)时不自动添加Tag-60(TransactionTime)?
FixAntenna不自动添加Tag-60(TransactionTime)的原因及解决方法
原因
Epam.FixAntenna.NetCore 1.1.0版本默认未开启自动为NewOrder Single(D类型)消息生成TransactionTime(Tag-60)的功能,该字段的自动填充需要通过显式配置启用,并非默认行为。
解决方案
1. 启用自动生成TransactionTime的配置
在创建会话时,通过SessionParameter.AUTO_GENERATE_TRANSACTION_TIME参数开启自动生成逻辑:
var sessionParams = new SessionParameters(); // 开启自动生成TransactionTime sessionParams.SetProperty(SessionParameter.AUTO_GENERATE_TRANSACTION_TIME, "Y"); // 补充其他会话配置(如FIX版本、连接地址等) sessionParams.FixVersion = FixVersion.FIX44; // 根据你的实际协议版本调整 // 创建会话 _orderSession = SessionFactory.Instance.CreateSession(sessionParams);
2. 临时手动添加Tag-60(配置未生效时的备选方案)
如果配置调整后仍无法自动生成,可手动添加该字段以确保消息符合FIX协议要求:
// 在构造FixMessage时添加 messageContent.AddTag(60, DateTime.UtcNow.ToString("yyyyMMdd-HH:mm:ss.fff"));
3. 验证FIX版本配置
不同FIX协议版本对Tag-60的必填性要求不同,确认会话使用的FIX版本是否符合你的业务场景,若版本配置错误可能导致自动填充逻辑不触发。
内容的提问来源于stack exchange,提问作者Allstar
相关产品推荐
相关产品推荐

