2

FIX初心者です。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を使用しています。ここに私のクラスコードがあります:

    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 が返されました。日付が 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);}
4

1 に答える 1

2

QuickFIX 経由で FIX メッセージを正しく取得して解析するには、次のことを行う必要があります。

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/recoming_messages.html

于 2012-11-13T17:07:27.097 に答える