0

QuickFix/N を使用して MultiLeg 注文を IB に送信しています。メッセージがエラー 58=このタグ (タグ = 167) の値が正しくありません (範囲外) で拒否されました。ブローカーは、そのタグの適切な値は「MLEG」であると私に通知しました。これは私が設定した値です。メッセージ フローは次のとおりです。

<outgoing> 8=FIX.4.2_9=229_35=AB_34=2_49=direc513_52=20150904-13:46:32.201_56=IB_11=1234.76_15=USD_21=2_38=10000_40=1_54=1_55=ACC-PLD_60=20150904-21:46:32.161_167=MLEG_207=SMART_555=2_600=ACC_608=ES_623=1255_624=1_564=O_600=PLD_608=ES_623=1066_624=2_564=O_10=220_
<incoming> 8=FIX.4.2_9=000238_35=8_34=000002_43=N_52=20150904-13:46:33_49=IB_56=direc513_11=1234.76_17=17556.1441374393.0_150=8_20=0_103=0_39=8_55=USD_38=10000_44=0.00_32=0_31=0.00_14=0_151=0_6=0_54=1_37=0_167=MLEG_58=Unsupported type_60=20150904-13:46:33_40=1_15=USD_10=136_
A first chance exception of type 'QuickFix.IncorrectTagValue' occurred in QuickFix.dll
<event> Message 2 Rejected: Value is incorrect (out of range) for this tag (Field=167)
<outgoing> 8=FIX.4.2_9=128_35=3_34=3_49=direc513_52=20150904-13:46:32.998_56=IB_45=2_58=Value is incorrect (out of range) for this tag_371=167_372=8_373=5_10=204_

ブローカーは、拒否を確認しますが、2 番目の送信メッセージは、私が 167=MLEG を拒否していて、それを緩和する必要があることを示していると私に通知しました。

ここで何をすべきかわかりませんが、私は 4.2 を使用しており、MLEG は 4.3 でのみ定義されていることに気付きました。ブローカーは 4.2 を好むので、MLEG 定義を 4.3 データ ディクショナリに入れました。この時点で、同じエラーは発生しなくなりましたが、「サポートされていないタイプ」エラーが発生しています。

<outgoing> 8=FIX.4.2_9=229_35=AB_34=2_49=direc513_52=20150907-08:17:41.066_56=IB_11=1234.67_15=USD_21=2_38=10000_40=1_54=1_55=ACC-PLD_60=20150907-16:17:41.022_167=MLEG_207=SMART_555=2_600=ACC_608=ES_623=1255_624=1_564=O_600=PLD_608=ES_623=1066_624=2_564=O_10=235_
<incoming> 8=FIX.4.2_9=000238_35=8_34=000002_43=N_52=20150907-08:17:46_49=IB_56=direc513_11=1234.67_17=17556.1441613866.0_150=8_20=0_103=0_39=8_55=USD_38=10000_44=0.00_32=0_31=0.00_14=0_151=0_6=0_54=1_37=0_167=MLEG_58=Unsupported type_60=20150907-08:17:46_40=1_15=USD_10=155_

したがって、頭に浮かぶ即時の質問は次のとおりです。

  1. ブローカが MLEG は許容可能であると言ったのに拒否されるのはなぜですか、それとも単に私の 4.2 DD にその定義がなかったという事実が原因なのですか?
  2. 私の側の制限を緩和するために私がしなければならないことは他にありますか?
  3. 4.2 DD に定義を含めるという正しいことをしましたか?
  4. サポートされていない場合、サポートされていない型の意味と、メッセージにエラーのタグ参照が含まれていないのはなぜですか?
  5. 私は間違った質問をしていますか?誰かが正しい質問を知っていますか?
  6. 送信メッセージに明らかな問題がありますか?

問題が何であるかがわかれば、メッセージを作成するためにどのコードを使用すればよいかがわかると思うので、コードは含めませんでした。しかし、誰かがそれが役に立つと思うなら、私はそれをすることができます.

どんな助けでも大歓迎です。

4

1 に答える 1

1

MsgType AB (NewOrderMultileg) は FIX 4.3 でのみ追加されたため、これが「サポートされていないタイプ」メッセージの原因であると思われます。タグ 167 値が拒否された最初の例でもこのエラーが発生していることに気付くでしょう。

新しい値を辞書に追加することは、それを有効な値として追加する正しい方法です。

あなたのブローカーは、NewOrderMultileg の機能を複製するために、MLEG 値とその他のカスタム フィールドを含む NewOrderSingle メッセージ (35=D) を送信することを実際に期待しているのではないでしょうか。それができない場合は、FIX プロトコルの最新バージョン (おそらく 4.4 または 5.0) を使用する必要があります。

乾杯、キャンベル

于 2015-09-07T14:19:48.683 に答える