如何使用python quickfix软件包发送TestRequest消息?

问题描述:

我与供应商建立了FIX连接,我们每隔30秒发送一次心跳。但是,由于他们的系统设置,他们会以不同的时间间隔向我发送TestRequests (35=1)以及心跳。我从来没有处理过这些,quickfix软件包将它们解释为心跳。但是,这导致他们的系统将我注销。如何使用python quickfix软件包发送TestRequest消息?

消息的样品,当我第一次登录如下:

2017-09-05 11:50:47,769 - fix_connection.FIX_IO - INFO - toAdmin >>>>: 
8=FIX.4.2|9=78|35=A|34=1|49=***|52=20170905-15:50:47.763|56=XXX|98=0|108=30|141=Y|10=111| 

2017-09-05 11:50:48,361 - fix_connection.FIX_IO - INFO - fromAdmin >>>>: 
8=FIX.4.2|9=77|35=A|34=1|43=N|49=XXX|52=20170905-15:50:55.062|56=***|98=0|108=30|10=043| 

2017-09-05 11:50:48,421 - fix_connection.FIX_IO - INFO - fromAdmin >>>>: 
8=FIX.4.2|9=89|35=1|34=2|43=N|49=XXX|52=20170905-15:50:55.119|56=***|112=05/09/2017-11:50:55|10=163| 

2017-09-05 11:50:48,437 - fix_connection.FIX_IO - INFO - toAdmin >>>>: 
8=FIX.4.2|9=84|35=0|34=2|49=***|52=20170905-15:50:48.428|56=XXX|112=05/09/2017-11:50:55|10=175| 

2017-09-05 11:51:18,644 - fix_connection.FIX_IO - INFO - fromAdmin >>>>: 
8=FIX.4.2|9=65|35=0|34=3|43=N|49=XXX|52=20170905-15:51:25.341|56=***|10=254| 

2017-09-05 11:51:18,657 - fix_connection.FIX_IO - INFO - toAdmin >>>>: 
8=FIX.4.2|9=60|35=0|34=3|49=***|52=20170905-15:51:18.649|56=XXX|10=019| 

我已经寻找一种方式来专门发送TestRequest使用的quickfix包,但没有发现任何东西。有人能指出我正确的方向或提供一个例子吗?非常感激。

试试用c#编写的这段简单的代码。请检查您的供应商数据是否正确发送(在我的示例中为“测试”)。

sessionId是Session对象,其中包含您和交易对手之间的参数。

public void SendTestRequestMessage() { 
     QuickFix42.TestRequest req = new QuickFix42.TestRequest(); 
     req.set(new TestReqID("test")); 
     Session.sendToTarget(req, sessionId); 

    }