我是 FIX 新手。我有一条修复消息:
8=FIX.4.4|9=122|35=D|34=215|49=CLIENT12|52=20100225-19:41:57.316|56=B|1=Marcel|11=13346|21=1|40=2|44=5|54=1|59=0|60=20100225-19:39:52.020|10=072|
我正在使用quickfixJ。 这是我的类(class)代码:
public String getYear(Message aMessage, SessionID aSessionID){
try {
crack(aMessage, aSessionID);
} catch (Exception e) {
e.printStackTrace();
}
String year = String.valueOf(mUTCCal.get(Calendar.YEAR));
String begin = String.valueOf(BeginString);
return year + " " + begin;
}
当我调用这个方法时,我 2012 null 我尝试了针对不同字段的各种方法,但结果为空。我很困惑为什么我的日期没有为 null 以及如何让它正确解释其他字段?
quickfix.fix44.NewOrderSingle message;
message = new quickfix.fix44.NewOrderSingle();
SessionID session = new SessionID("beginString", "senderCompID", "targetCompID");
MyApp app = new MyApp("", "", "");
String result = app.myMessage(message, session);
System.out.println(result);
我不明白在哪里将我(顶部)的字符串输入到消息中
public void onMessage(Message message, SessionID sessionID) throws FieldNotFound {
Header header = message.getHeader();
String FIX = header.getString(8);
System.out.println(FIX);
}
public void onMessage(quickfix.fix44.NewOrderSingle message, SessionID sessionID) throws FieldNotFound, UnsupportedMessageType, IncorrectTagValue {
Header header = message.getHeader();
String FIX = header.getString(8);
String a = message.getString(1);
System.out.println(a);
System.out.println(FIX);}
最佳答案
为了通过 QuickFIX 正确获取和解析 FIX 消息,您必须:
- 创建您的应用程序:http://www.quickfixengine.org/quickfix/doc/html/application.html
- 实现FromApp(Message message, SessionID sessionID)方法
- 对您将从对方收到的所有消息类型实现破解方法
FromApp 方法可以非常简单:
public void fromApp(Message message, SessionID sessionID)
{
crack(message, sessionID);
}
现在,在您的示例中,您有一条类型为 35=D [NewOrderSingle] 的消息 FIX 4.4
因此,您必须实现如下方法:
public override void onMessage(QuickFix44.NewOrderSingle message, SessionID session)
{
base.onMessage(message, session);
}
现在进入您的方法,您可以轻松地使用您需要的所有字段:
public override void onMessage(QuickFix44.NewOrderSingle message, SessionID session)
{
base.onMessage(message, session);
ClOrdID ordid = new ClOrdID();
message.get(ordid);
}
另请查看此处:http://www.quickfixengine.org/quickfix/doc/html/receiving_messages.html
关于java - 为什么使用quickfix的FIX字段为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13364570/