0

FIX プロトコルと QuickFix/J API を使用して、リモート サーバーと取引するためのクライアントを構築しています。

注文の送信、最新の価格の受信、注文のキャンセルなどを行うことができます...

「楽器の現在の位置をAPIに問い合わせる」ように求められました。

では、楽器を購入する注文を送信でき、実行されなかったとしましょう。サーバーから「数量 Y の楽器 X をロングしています」などの情報を受け取りたいとします。

QuickFix/J API を使用することは可能ですか?

私はこのような方法を書いています

static void positionReport() throws SessionNotFound{

    quickfix.fix50.PositionReport order = new quickfix.fix50.PositionReport();

    SessionID sessionId = (SessionID) initiator.getSessions().get(0);

    order.set(new Account("1005390"));
    order.set(new SecurityID("4663789"));
    order.set(new SecurityExchange("XETR"));
    order.set(new Symbol("SAP"));


    Session.sendToTarget(order, sessionId);


}

このようなFIXメッセージを送信します

8=FIX.4.29=9835=AP34=4949=HIQ6_ORDER52=20140324-
15:54:10.14256=HIQFIX1=100539048=466378955=SAP207=XETR10=199

次のようなメッセージを受け取ります。

8=FIX.4.29=9935=334=6949=HIQFIX52=20140324-15:54:10.89156=HIQ6_ORDER45=4958=無効な MsgType372=AP373=1110=242

ご覧のとおり、「無効なメッセージ」エラーが表示されます

4

2 に答える 2

1

相手方の文書を確認してください。

FIX はかなり「ばかげた」プロトコルです。通信インフラを提供するだけです。デフォルトのメッセージ定義は、使用できる推奨メッセージのリストと考えるのが最適です。1 つのメッセージ タイプが 2 つの取引先によってサポートされている場合でも、2 つの取引先のそれぞれがそれをまったく異なる方法で使用する可能性があります。

ほとんどの接続プロバイダーは、これらのメッセージのサブセットのみを使用します。彼らのドキュメントをチェックして、PositionRequest メッセージをサポートしているかどうか、およびフィールドをどのように設定してほしいかを確認する必要があります。

于 2014-03-24T18:46:31.017 に答える