从quickfix消息

时间:2015-10-12 20:48:19

标签: python quickfix fix-protocol

我正在使用python的quickfix。查看文档页面here告诉我们如何获取字段。假设来自交易对手的message = fix.message(带quickfix as fix)。我可以通过调用

来获取35(MsgType)字段

message.getHeader().getField(fix.MsgType())

返回,例如35=X

我的问题是:是否有任何方法只返回X?或者我是否必须切片所有(例如35=X[3:],它返回X)并知道所有字符串的长度?

3 个答案:

答案 0 :(得分:2)

答案是先拨打message.getHeader().getField(fix.MsgType())来获取字段 然后通过调用fix.MsgType().getValue()获取值。

答案 1 :(得分:0)

如果您使用强类型方法,则为是,即:

m.getHeader().getField(new MsgType());

答案 2 :(得分:0)

我使用了一点功能

def get_field_value(self, fobj, msg):
    if msg.isSetField(fobj.getField()):
        msg.getField(fobj)
        return fobj.getValue()
    else:
        return None
我称之为

clordid = get_field_value(fix.ClOrdID(), message)
标题字段的

看起来像这样

def get_header_field_value(self, fobj, msg):
    if msg.getHeader().isSetField(fobj.getField()):
        msg.getHeader().getField(fobj)
        return fobj.getValue()
    else:
        return None