您好我正在尝试将Quickfix与FIX 4.4一起使用Python Wrapper用于个人简历构建器。我已经谷歌搜索到了所有人的帮助,但没有找到任何解决这个问题。
所以在Quickfix的数据字典中:
field number='54' name='Side' type='CHAR'
它告诉我们这个标签必须是CHAR。
但是我们发送订单的方法如下:
def sendOrder(self, tradeSide):
print("Creating the following order: ")
cTime = datetime.utcnow()
qOrder = fix.Message()
print(qOrder)
qOrder.getHeader().setField( fix.BeginString("FIX.4.4") )
print(qOrder)
qOrder.getHeader().setField(35, "D" )
print(qOrder)
qOrder.getHeader().setField(49, "Place_To_Go")
print(qOrder)
qOrder.getHeader().setField(56, "Place_To_Trade")
print(qOrder)
qOrder.getHeader().setField(43,"Y")
print(qOrder)
qOrder.getHeader().setField(52, str(cTime))
print(qOrder)
qOrder.setField(40, chr(1) )
print(qOrder)
qOrder.setField(11, str(self.genOrderID()))
print(qOrder)
qOrder.setField(311, "EUR")
print(qOrder)
qOrder.setField(309, "EUR/USD.E.FX")
print(qOrder)
qOrder.setField(305, "111")
print(qOrder)
qOrder.setField(54, chr(1))
print(qOrder)
qOrder.setField(60, str(cTime))
print(qOrder)
qOrder.setField(38, "1" )
print(qOrder)
qOrder.setField(59, "1" )
print("Order:" + str(qOrder))
print("ayyy")
fix.Session_sendToTarget(qOrder)
你可以在这一行看到: qOrder.setField(54,chr(1))
我们试图强迫它成为一个char但是当我们将消息发送到服务器时我们仍然接受:
(Invalid message: Field tag is invalid: 54)
在线测试仪中,我们的FIX消息似乎在本网站上有效:
http://fixparser.targetcompid.com?sharedlink=-LF0tkvCToW5RzneNJg2
输入此键:
jaiPj3brnf7tlgy5X28BgqwCwxpIq7H%BH6b81joE!rUzWof9hQvvby3
有没有人有过为何仍然公然拒绝我们的信息的经验?
感谢您的阅读。
答案 0 :(得分:0)
如果CHAR(1)
实际上是ASCII代码1,则这是SOH
字符(标题开始)。这不是标记54的有效值。您需要字符1
,而不是SOH。