2015-09-07 17 views
0

我正在使用QuickFix/N向IB發送MultiLeg訂單。我的郵件被拒絕,並顯示錯誤58 =此值(tag = 167)的值不正確(超出範圍)。經紀人告訴我,該標籤的正確價值是「MLEG」,這是我所設定的。消息流如下:在Interactive Brokers上設置爲MLEG的標記167上拒絕了QuickFix多標籤訂單

<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_ 

的經紀人告訴我,他將檢查的拒絕,但第二傳出消息表明,就在我身邊,我們被拒絕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. 傳出消息是否有其他明顯錯誤?

我沒有包含代碼,因爲我想知道什麼是問題,我知道用什麼代碼來創建消息。但是,如果有人認爲它會有用,我可以做到。

任何幫助非常感謝。

回答

1

MsgType AB(NewOrderMultileg)僅在FIX 4.3中添加,因此我懷疑這是「不支持的類型」消息的原因。您會注意到,您的第一個示例中也出現了此錯誤,您的代碼值被拒絕。

將新值添加到字典中是將其作爲有效值添加到字典中的正確方法。

我懷疑你的經紀人實際上希望你發送一個帶有MLEG值和任何其他自定義字段的NewOrderSingle消息(35 = D),以複製NewOrderMultileg的功能。如果做不到這一點,你需要使用更先進的最新版本的FIX協議(可能是4.4或5.0)

乾杯, 坎貝爾

+0

坎貝爾的,這是一個有趣的想法。所以,如果你是正確的,那麼我會創建一個NewOrderSingle,並明確添加標籤,如555(NoLegs),併爲每條腿重複一系列600系列標籤?我只會擔心,如果他們知道如何處理價差(從他們的文檔:IB將標籤44(Price)中傳遞的值解釋爲信用 (負值),借記(正值)或甚至(零))。你有這個想法嗎? – Algodevguy

+0

另一個評論坎貝爾,根據你的建議,我剛剛嘗試了4次。4,我仍然得到不支持的類型。我不知道它指的是什麼類型。你做? ; - > – Algodevguy

+0

這很有趣。我認爲你需要與你正在發送消息的派對通話 - 他們的技術團隊應該能夠給你更多關於錯誤信息的細節。 – Campbell