Python APIでQuickFixを実行し、FIX4.2を使用してTTFIXアダプターに接続しています
ログオンして、2つの商品の市場データリクエストを送信しています。これは正常に機能し、機器からのデータは期待どおりに受信されます。メッセージからいろいろな情報を得ることができます。
ただし、Symbol(フラグ55)フィールドを取得するのに問題があります。
import quickfix as fix
def fromApp(self, message, sessionID):
ID = fix.Symbol()
message.getField(ID)
print ID
これは、私に届く最初のメッセージ[最初のマーケットデータスナップショット(フラグ35 = W)]に対して機能します。インクリメンタルリフレッシュ(フラグ35 = X)を取得し始めると、Symbolフィールドを取得できなくなります。到着するすべてのメッセージは、FieldNotFoundエラーになります。
メッセージタイプがWかXかに関係なく、ログには常にSymbolフィールドが存在するため、これは混乱を招きます。
シンボルが更新メッセージのヘッダーにあると考えて、get.Field(ID)
35=Wおよびget.Header().getField(ID)
35=Xの場合に試しましたが、これは機能しませんでした。
誰かが私がここで何が起こっているのか理解するのを手伝ってもらえますか?コンピューターがどの機器を見ているのかを明示的に伝えられるようにしたいと思います。
ありがとう