如何在同一会话中向不同的TargetCompID发送和接收Fix消息
public void ToAdmin(Message message, SessionID sessionID)
{
if ( (message.ToString().IndexOf("35=D") > 0) || (message.ToString().IndexOf("35=G") > 0) || (message.ToString().IndexOf("35=F") > 0))
{ message.Header.SetField(new TargetCompID("1"));
}
}
9:56:38 ToApp: 8 =FIX.4.2�9=261�35=D�34=63�49=555�50=BBBBBB�52= 20180918-06:56:38�56=0�128=1�129=AAAAAA�1= 555 -----126�11=1�21=1�22=4�38=2500�40=2�44=0.03�47=C�48=JO3109211016�54=2�55=JO3109211016�58=测试中 固定 Connec.59 = 1.60 = 20180918-09:56:38.579.109 = 126.110 = 50.111 = 100.9596 = 2.9947 = 55500350.10 = 140。 9:56:38交流: 8 =FIX.4.2�9=115�35=3�34=73�49=0�50=AAAAAA�52= 20180918-09:56:38�56=555�45=63�58=无法 流程订单:TargetCompID无效.372 = D.10 = 067。
答案 0 :(得分:1)
TargetCompID是会话标识符的一部分,请参见http://quickfixn.org/tutorial/configuration.html:
FIX会话在QuickFix / N中定义为BeginString(FIX版本号),SenderCompID(您的ID)和TargetCompID(交易对手的ID)的唯一组合。
因此,尝试在同一会话中将消息发送到不同的TargetCompID
似乎是不正确的;您需要为每个TargetCompID
创建一个单独的会话。
最简单的方法是在配置文件中定义会话(请参见上面的链接);或者,您可以动态创建它们-请参见http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/2016q1/000277.html