C# 向修复适配器发出安全定义请求
我正在尝试使用以下方法请求(安全定义请求)修复适配器。这是一个应用程序级调用,只要有一个到修复适配器的成功连接,我就手动调用这个方法 当我运行这个方法时,我得到一条“FieldNotFoundforTag:49”异常消息。但是,SecurityDefinitionRequest类不允许我为其设置标记49(SenderCompId) 首先,这是发出SecurityDefinitionRequest的正确方法吗?我试着查看QuickFix/N文档,但他们没有解释如何提出这样的请求 事实上,到目前为止我还没有在网上看到任何文章。有什么建议吗C# 向修复适配器发出安全定义请求,c#,.net,quickfix,fix-protocol,quickfixn,C#,.net,Quickfix,Fix Protocol,Quickfixn,我正在尝试使用以下方法请求(安全定义请求)修复适配器。这是一个应用程序级调用,只要有一个到修复适配器的成功连接,我就手动调用这个方法 当我运行这个方法时,我得到一条“FieldNotFoundforTag:49”异常消息。但是,SecurityDefinitionRequest类不允许我为其设置标记49(SenderCompId) 首先,这是发出SecurityDefinitionRequest的正确方法吗?我试着查看QuickFix/N文档,但他们没有解释如何提出这样的请求 事实上,到目前为
public void ToApp(Message message, SessionID sessionId)
{
var request =
new SecurityDefinitionRequest()
{
SecurityReqID = new SecurityReqID("1"),
SecurityID = new SecurityID("5"),
SecurityRequestType = new SecurityRequestType(3),
SecurityType = new SecurityType("FUT")
};
request.SetField(new SenderCompID("217"));
Session.SendToTarget(request);
}
构造的消息如下所示
8=FIX.4.29=3735=c48=549=217167=FUT320=1321=310=003
我建议:
SessionId currentSessionId = new QuickFix.SessionID("FIX4.2", "217","CBOE");
securityDefinitionRequest.SetSessionID(currentSessionId );
SenderCompId是标准修复规范的一部分。不应该有任何理由不能将其添加到SecurityDefinitionRequest中。也许您必须强制转换到基类?即使我执行类似request.SetField(newsendercompid(“217”))的操作;这是49号标签。QuickFix仍然找不到标记49。您使用的修复版本是什么?4.2我已经包含了刚刚在linqpad上尝试的构造消息<代码>控制台写入线(秒)代码>对我有用..嗨,刘易斯。请更新此securityDefinitionRequest.SetSessionId(sessionId)的答案。sessionId将是当前会话的sessionId。这对我有用。所以一旦更新,我会接受你的答案