使用 Python Quickfix OrderMassStatusRequest
Using Python Quickfix OrderMassStatusRequest
我正在使用 Python
和 Quickfix
创建一个 OrderMassStatusRequest
。在构建消息时,使用 MassStatusReqType(3)
.
时似乎需要 Instrument class
来自此处的文档 http://fixwiki.org/fixwiki/OrderMassStatusRequest/FIX.4.4-5.0SP1
看来我应该能够简单地创建一个 Instrument 组,如下面的代码所示。
遗憾的是,这不起作用。我注释掉的选项也没有。
非常感谢任何使此方法起作用的帮助!
提前致谢
def mass_status_request(self, product):
#
# product is a class containing attributes code, instrument_type and exchange
#
mass_status_request = quickfix44.OrderMassStatusRequest()
mass_status_request.setField(quickfix.MassStatusReqID("123"))
mass_status_request.setField(quickfix.TargetSubID(product.instrument_type))
mass_status_request.setField(quickfix.MassStatusReqType(3))
# Create instrument group
#mass_status_instruments = quickfix44.OrderMassStatusRequest().FieldMap()
mass_status_instruments = quickfix44.Instrument()
#mass_status_instruments = quickfix44.component().Instrument()
#mass_status_instruments = quickfix44.Component().Instrument()
#mass_status_instruments = quickfix44.OrderMassStatusRequest.Instrument()
#mass_status_instruments = quickfix44.OrderMassStatusRequest().Instrument()
#mass_status_instruments = quickfix44.Instrmt()
#mass_status_instruments = quickfix44.Fieldmap().Group()
# Done creating instrument group
mass_status_instruments.setField(quickfix.Symbol(product.code))
mass_status_instruments.setField(quickfix.SecurityExchange(product.exchange))
mass_status_request.addGroup(mass_status_instruments)
print "Sending Mass Status Quote Request for {} for Session Id {}".format(str(product), str(self.session_identifier))
quickfix.Session.sendToTarget(mass_status_request, self.session_identifier)
在这种情况下,Instrument 不是一个组,而是一个"component"。
组件并不是真正的……东西。它们就像 FIX DataDictionary 中的宏。许多消息需要相同的字段集,因此 DD 没有在每条消息中指定相同的字段,而是定义了一个其他消息可以包含的 Instrument 组件。
QuickFIX 的编程接口忽略了组件这个概念。消息不包含组件,它们包含组件中定义的字段。因此,您可以直接在消息中设置这些字段。
删除代码中的所有乐器内容,直接在消息中设置乐器字段:
mass_status_request.setField(quickfix.Symbol(product.code))
mass_status_request.setField(quickfix.SecurityExchange(product.exchange))
我正在使用 Python
和 Quickfix
创建一个 OrderMassStatusRequest
。在构建消息时,使用 MassStatusReqType(3)
.
来自此处的文档 http://fixwiki.org/fixwiki/OrderMassStatusRequest/FIX.4.4-5.0SP1 看来我应该能够简单地创建一个 Instrument 组,如下面的代码所示。
遗憾的是,这不起作用。我注释掉的选项也没有。
非常感谢任何使此方法起作用的帮助!
提前致谢
def mass_status_request(self, product):
#
# product is a class containing attributes code, instrument_type and exchange
#
mass_status_request = quickfix44.OrderMassStatusRequest()
mass_status_request.setField(quickfix.MassStatusReqID("123"))
mass_status_request.setField(quickfix.TargetSubID(product.instrument_type))
mass_status_request.setField(quickfix.MassStatusReqType(3))
# Create instrument group
#mass_status_instruments = quickfix44.OrderMassStatusRequest().FieldMap()
mass_status_instruments = quickfix44.Instrument()
#mass_status_instruments = quickfix44.component().Instrument()
#mass_status_instruments = quickfix44.Component().Instrument()
#mass_status_instruments = quickfix44.OrderMassStatusRequest.Instrument()
#mass_status_instruments = quickfix44.OrderMassStatusRequest().Instrument()
#mass_status_instruments = quickfix44.Instrmt()
#mass_status_instruments = quickfix44.Fieldmap().Group()
# Done creating instrument group
mass_status_instruments.setField(quickfix.Symbol(product.code))
mass_status_instruments.setField(quickfix.SecurityExchange(product.exchange))
mass_status_request.addGroup(mass_status_instruments)
print "Sending Mass Status Quote Request for {} for Session Id {}".format(str(product), str(self.session_identifier))
quickfix.Session.sendToTarget(mass_status_request, self.session_identifier)
在这种情况下,Instrument 不是一个组,而是一个"component"。
组件并不是真正的……东西。它们就像 FIX DataDictionary 中的宏。许多消息需要相同的字段集,因此 DD 没有在每条消息中指定相同的字段,而是定义了一个其他消息可以包含的 Instrument 组件。
QuickFIX 的编程接口忽略了组件这个概念。消息不包含组件,它们包含组件中定义的字段。因此,您可以直接在消息中设置这些字段。
删除代码中的所有乐器内容,直接在消息中设置乐器字段:
mass_status_request.setField(quickfix.Symbol(product.code))
mass_status_request.setField(quickfix.SecurityExchange(product.exchange))