0

私は最近、新しいトレーダー向けの基本的な取引プラットフォームを作成する仕事を与えられました。銀行の FIX 4.4 実装に接続しています。

銀行は 2 つのセッションを指定しています。1 つはクオート データ用、もう 1 つは取引執行用です。

私はQuickfixNを使用しており、C#でコーディングしています

両方のセッションが含まれるように、イニシエーター セッション構成をセットアップしました。ポートが異なり、ターゲット comp ID と送信側 comp ID が異なります。両方とも問題なく接続できます。私が苦労しているのは、注文リクエストを一方のセッションで送信し、他方のセッションでは送信しない方法を考え出すことです。

どちらのセッションにも FIX 4.4 が必要です。デフォルトでは、最初のセッションのみを使用します。

4

2 に答える 2

4

イニシエータを作成するときに、セッション オブジェクトを変数に保存します。(おそらくここでOnCreate行われたように、コールバックを介して。)

メッセージ送信クラスがこれらの変数にアクセスできるようにします。

次に、メッセージを送信するには、次のいずれかを呼び出します。

quoteSession.send(msg)
tradeSession.send(msg)
于 2016-05-09T14:15:51.510 に答える
0

メッセージを送信するセッションの SessionId を多重化し、メッセージ ヘッダーを設定する必要があります。このようなもの(Javaで):

public void mySend (Message m) throws FieldNotFound 
{       
    String beginString = "FIX.4.4";
    String sender = "SENDER";
    String target = "TARGET";

    // Set the message headers
    m.getHeader().setField(new SenderCompID(sender));
    m.getHeader().setField(new TargetCompID(target));

    // Set the correct session for the initiator to send out to
    SessionID s = new SessionID(beginString, sender, target);

    // Lookup the relevant QF session
    _session = Session.lookupSession(s);

    // Send the FIX message
    try
    {
            if (_session != null)
            {
                _session.send(m);
            }
            else
            {
                log("Can't send message: FIX session not created.");
                log(" " + m.toString());
            }
    }
    catch (Exception e)
    {
            errorHandler(e);
    }
}
于 2016-05-09T08:56:10.520 に答える