05
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
--
>>
<<
--
LATEST ENTRY
CATEGORY
ARCHIVE
PROFILE
SEARCH
RECENT COMMENT
MOBILE
qrcode
OTHERS
<< 【QUICKFIX】 FX自動売買への道 22 【レート情報取得が拒否られた時(MarketDataRequestReject)】 | top | 【QUICKFIX】 FX自動売買への道 24 【情報系の試験(正常系)】 >>
スポンサーサイト

一定期間更新がないため広告を表示しています

スポンサードリンク | - | | - | - |
【QUICKFIX】 FX自動売買への道 23 【レート情報取得拒否試験】
レート情報の取得が拒否された時の確認試験

パターン1〜3までは、前のエントリーで書いてます。
パターン4〜8を実施しますよ。

 

証券会社からもらった仕様書によると、【拒否られる理由】はこんな感じ
 0 Unknown Symbol - 通貨ペアが不明
 1 Duplicate MarketDataRequestID - 要求IDが重複しとる
 2 Insufficient bandwidth - 帯域が足りない?
 3 Insufficient permission - 権限が足りない?
 4 Unsupported SubscriptionRequestType - 要求タイプがサポート外
 5 Unsupported MarketDepth - 要求範囲がサポート外(FULLかTOP以外ってこと?)
 6 Unsupported MarketDataUpdateType - 更新タイプがサポート外
 7 Unsupported Aggregated book - 要求パターン?がサポート外( Yes か No以外?)
 8 Unsupported MarketDataEntryType - 要求情報がサポート外(Bid とか Offerとか)


なので、以下の試験をやってみます。
 失敗要求1:「0」の確認:通貨ペア不正 - 通貨ペア文字の間のスラッシュがなかった場合
 失敗要求2:「0」の確認:対象外通貨ペア - SecurityListRequest で返されなかった通貨ペアの場合
 失敗要求3:「1」の確認:連続で要求を投げる - USD/JPY の要求の後でまた USD/JPY の要求を投げる
 
 ※ 拒否られる理由2と3は・・どうやって起こせばいいのか。。NICの帯域絞るとか?? 諦めます
 
 失敗要求4:「4」の確認:要求タイプ不正 -  START と STOP 以外の値にする
 失敗要求5:「5」の確認:要求範囲不正 -  FULL と TOP 以外の値にする
 失敗要求6:「6」の確認:更新タイプ不正 - 固定値 1 以外の値にする
 失敗要求7:「7」の確認:要求パターン不正 -  Y か N 以外の値にする
 失敗要求8:「8」の確認:要求情報不正 -  Bid と Offer はセットで要求しなきゃダメなのに片方だけの場合


で、1〜3は、前のエントリーを参照



失敗要求4:「4」の確認:要求タイプ不正 -  START と STOP 以外の値にする
−−−−−−−−−−−−−−−−−−−−−−−−
        V4

     OUT: 8=FIX.4.49=13935=V34=949=CAXDemo_Account_Str52=20160415-15:52:51.58056=CNX146=155=CAD/JPY262=CAD/JPY263=9264=1265=1266=Y267=2269=1269=010=085

        <message>
          <header>
            <field number="8"><![CDATA[FIX.4.4]]></field>
            <field number="9"><![CDATA[87]]></field>
            <field number="35"><![CDATA[Y]]></field>
            <field number="34"><![CDATA[12]]></field>
            <field number="49"><![CDATA[CNX]]></field>
            <field number="52"><![CDATA[20160415-15:52:51.646]]></field>
            <field number="56"><![CDATA[CAXDemo_Account_Str]]></field>
          </header>
          <body>
            <field number="262"><![CDATA[CAD/JPY]]></field>
         <field number="281"><![CDATA[4]]></field>
          </body>
          <trailer>
            <field number="10"><![CDATA[060]]></field>
          </trailer>
        </message>
     IN: 8=FIX.4.49=8735=Y34=1249=CNX52=20160415-15:52:51.64656=CAXDemo_Account_Str262=CAD/JPY281=410=060

−−−−−−−−−−−−−−−−−−−−−−−−
失敗要求4 要求タイプ不正 -  START と STOP 以外の値にする
拒否メッセージを受信: 281=4、 58=  あれ?58 ないよ??

281 = 4 は 「Unsupported SubscriptionRequestType - 要求タイプがサポート外」が
返ってくるはずだったんだけどなぁ・・
やっぱし仕様書違う。。
古いの渡されたのかな

それに < Y > を受信したのに、STOP 要求投げてないよ?
DBを見てみると・・

        select `Symbol`
             , `ReqType`
             , `Depth`
             , `Aggregate`
             , `RejectReason`
             , `RejectText`
             , `StartTime`
             , `StopTime`
          from `market_data_request_hist`
         where `Symbol` = 'CAD/JPY'
        ;
        +---------+---------+-------+-----------+--------------+------------+---------------------+----------+
        | Symbol  | ReqType | Depth | Aggregate | RejectReason | RejectText | StartTime           | StopTime |
        +---------+---------+-------+-----------+--------------+------------+---------------------+----------+
        | CAD/JPY |       9 |     1 | Y         |         NULL | NULL       | 2016-04-16 00:52:51 | NULL     |
        | CAD/JPY |       9 |     1 | Y         |            4 |            | 2016-04-16 00:52:51 | NULL     |
        +---------+---------+-------+-----------+--------------+------------+---------------------+----------+
        2 rows in set (0.00 sec)


RequestType を START でも STOP でもない にしちゃったから、
「START 状態の場合」は STOP要求を投げる仕様で作っちゃったので、まぁ仕様通りね
いいのか?
仕様を 「STOP でなければ」に変えるか?




失敗要求5:「5」の確認:要求範囲不正 -  FULL(0) と TOP(1) 以外の値にする
−−−−−−−−−−−−−−−−−−−−−−−−
        V5

     OUT: 8=FIX.4.49=14035=V34=1049=CAXDemo_Account_Str52=20160415-15:52:56.75856=CNX146=155=CHF/JPY262=CHF/JPY263=1264=2265=1266=Y267=2269=1269=010=140

        <message>
          <header>
            <field number="8"><![CDATA[FIX.4.4]]></field>
            <field number="9"><![CDATA[92]]></field>
            <field number="35"><![CDATA[Y]]></field>
            <field number="34"><![CDATA[13]]></field>
            <field number="49"><![CDATA[CNX]]></field>
            <field number="52"><![CDATA[20160415-15:52:56.827]]></field>
            <field number="56"><![CDATA[CAXDemo_Account_Str]]></field>
          </header>
          <body>
            <field number="58"><![CDATA[2]]></field>
            <field number="262"><![CDATA[CHF/JPY]]></field>
         <field number="281"><![CDATA[5]]></field>
          </body>
          <trailer>
            <field number="10"><![CDATA[038]]></field>
          </trailer>
        </message>
     IN: 8=FIX.4.49=9235=Y34=1349=CNX52=20160415-15:52:56.82756=CAXDemo_Account_Str58=2262=CHF/JPY281=510=038

     OUT: 8=FIX.4.49=14035=V34=1149=CAXDemo_Account_Str52=20160415-15:52:56.96756=CNX146=155=CHF/JPY262=CHF/JPY263=2264=1265=1266=Y267=2269=1269=010=143

        <message>
          <header>
            <field number="8"><![CDATA[FIX.4.4]]></field>
            <field number="9"><![CDATA[113]]></field>
            <field number="35"><![CDATA[Y]]></field>
            <field number="34"><![CDATA[14]]></field>
            <field number="49"><![CDATA[CNX]]></field>
            <field number="52"><![CDATA[20160415-15:52:57.044]]></field>
            <field number="56"><![CDATA[CAXDemo_Account_Str]]></field>
          </header>
          <body>
         <field number="58"><![CDATA[No active subscription]]></field>
            <field number="262"><![CDATA[CHF/JPY]]></field>
            <field number="281"><![CDATA[2]]></field>
          </body>
          <trailer>
            <field number="10"><![CDATA[178]]></field>
          </trailer>
        </message>
     IN: 8=FIX.4.49=11335=Y34=1449=CNX52=20160415-15:52:57.04456=CAXDemo_Account_Str58=No active subscription262=CHF/JPY281=210=178

−−−−−−−−−−−−−−−−−−−−−−−−
失敗要求5 要求範囲不正 -  FULL と TOP 以外の値にする
拒否メッセージを受信: 281=5、 58=2  ん? 2 って何?
拒否メッセージを受信したので STOP 要求を投げる
STOP要求は No active subscription って、STARTしてないけど?って返ってきてるのでOK


281 = 5 は 「Unsupported MarketDepth - 要求範囲がサポート外」が
返ってくるはずだったんだけどなぁ・・ 2って何よ
もはや仕様書を信じられません




失敗要求6:「6」の確認:更新タイプ不正 - 固定値 1 以外の値にする
−−−−−−−−−−−−−−−−−−−−−−−−
        V6

     OUT: 8=FIX.4.49=14035=V34=1249=CAXDemo_Account_Str52=20160415-15:53:00.59956=CNX146=155=EUR/JPY262=EUR/JPY263=1264=1265=0266=Y267=2269=1269=010=187

        <message>
          <header>
            <field number="8"><![CDATA[FIX.4.4]]></field>
            <field number="9"><![CDATA[87]]></field>
            <field number="35"><![CDATA[Y]]></field>
            <field number="34"><![CDATA[15]]></field>
            <field number="49"><![CDATA[CNX]]></field>
            <field number="52"><![CDATA[20160415-15:53:00.665]]></field>
            <field number="56"><![CDATA[CAXDemo_Account_Str]]></field>
          </header>
          <body>
            <field number="262"><![CDATA[EUR/JPY]]></field>
         <field number="281"><![CDATA[6]]></field>
          </body>
          <trailer>
            <field number="10"><![CDATA[097]]></field>
          </trailer>
        </message>
     IN: 8=FIX.4.49=8735=Y34=1549=CNX52=20160415-15:53:00.66556=CAXDemo_Account_Str262=EUR/JPY281=610=097

     OUT: 8=FIX.4.49=14035=V34=1349=CAXDemo_Account_Str52=20160415-15:53:00.79956=CNX146=155=EUR/JPY262=EUR/JPY263=2264=1265=0266=Y267=2269=1269=010=191

        <message>
          <header>
            <field number="8"><![CDATA[FIX.4.4]]></field>
            <field number="9"><![CDATA[113]]></field>
            <field number="35"><![CDATA[Y]]></field>
            <field number="34"><![CDATA[16]]></field>
            <field number="49"><![CDATA[CNX]]></field>
            <field number="52"><![CDATA[20160415-15:53:00.871]]></field>
            <field number="56"><![CDATA[CAXDemo_Account_Str]]></field>
          </header>
          <body>
         <field number="58"><![CDATA[No active subscription]]></field>
            <field number="262"><![CDATA[EUR/JPY]]></field>
            <field number="281"><![CDATA[2]]></field>
          </body>
          <trailer>
            <field number="10"><![CDATA[204]]></field>
          </trailer>
        </message>
     IN: 8=FIX.4.49=11335=Y34=1649=CNX52=20160415-15:53:00.87156=CAXDemo_Account_Str58=No active subscription262=EUR/JPY281=210=204

−−−−−−−−−−−−−−−−−−−−−−−−
失敗要求6 更新タイプ不正 - 固定値 1 以外の値にする
拒否メッセージを受信: 281=6、 58=  またまた58 ないよ??
拒否メッセージを受信したので STOP 要求を投げる
STOP要求は No active subscription って、STARTしてないけど?って返ってきてるのでOK


281 = 5 は 「Unsupported MarketDataUpdateType - 更新タイプがサポート外」のはず
58 無しですか、そうですか。。




失敗要求7:「7」の確認:要求パターン不正 -  Y か N 以外の値にする
−−−−−−−−−−−−−−−−−−−−−−−−
        V7

     OUT: 8=FIX.4.49=14035=V34=1449=CAXDemo_Account_Str52=20160415-15:53:06.71156=CNX146=155=GBP/JPY262=GBP/JPY263=1264=1265=1266=Z267=2269=1269=010=145

        <message>
          <header>
            <field number="8"><![CDATA[FIX.4.4]]></field>
            <field number="9"><![CDATA[92]]></field>
            <field number="35"><![CDATA[Y]]></field>
            <field number="34"><![CDATA[17]]></field>
            <field number="49"><![CDATA[CNX]]></field>
            <field number="52"><![CDATA[20160415-15:53:06.786]]></field>
            <field number="56"><![CDATA[CAXDemo_Account_Str]]></field>
          </header>
          <body>
         <field number="58"><![CDATA[Z]]></field>
            <field number="262"><![CDATA[GBP/JPY]]></field>
            <field number="281"><![CDATA[7]]></field>
          </body>
          <trailer>
            <field number="10"><![CDATA[092]]></field>
          </trailer>
        </message>
     IN: 8=FIX.4.49=9235=Y34=1749=CNX52=20160415-15:53:06.78656=CAXDemo_Account_Str58=Z262=GBP/JPY281=710=092

     OUT: 8=FIX.4.49=14035=V34=1549=CAXDemo_Account_Str52=20160415-15:53:06.90656=CNX146=155=GBP/JPY262=GBP/JPY263=2264=1265=1266=Z267=2269=1269=010=153

        <message>
          <header>
            <field number="8"><![CDATA[FIX.4.4]]></field>
            <field number="9"><![CDATA[113]]></field>
            <field number="35"><![CDATA[Y]]></field>
            <field number="34"><![CDATA[18]]></field>
            <field number="49"><![CDATA[CNX]]></field>
            <field number="52"><![CDATA[20160415-15:53:06.986]]></field>
            <field number="56"><![CDATA[CAXDemo_Account_Str]]></field>
          </header>
          <body>
         <field number="58"><![CDATA[No active subscription]]></field>
            <field number="262"><![CDATA[GBP/JPY]]></field>
            <field number="281"><![CDATA[2]]></field>
          </body>
          <trailer>
            <field number="10"><![CDATA[200]]></field>
          </trailer>
        </message>
     IN: 8=FIX.4.49=11335=Y34=1849=CNX52=20160415-15:53:06.98656=CAXDemo_Account_Str58=No active subscription262=GBP/JPY281=210=200

−−−−−−−−−−−−−−−−−−−−−−−−
失敗要求7 要求パターン不正 -  Y か N 以外の値にする
拒否メッセージを受信: 281=7、 58=Z  。。 Zって
拒否メッセージを受信したので STOP 要求を投げる
STOP要求は No active subscription って、STARTしてないけど?って返ってきてるのでOK


281 = 7 は 「Unsupported Aggregated book - 要求パターン?がサポート外」が
返ってくるはずだったんだけど、 Z ね
・・・仕様書・・・




失敗要求8:「8」の確認:要求情報不正 -  Bid と Offer はセットで要求しなきゃダメなのに片方だけの場合
−−−−−−−−−−−−−−−−−−−−−−−−
        V8

     OUT: 8=FIX.4.49=13435=V34=1649=CAXDemo_Account_Str52=20160415-15:53:10.59156=CNX146=155=ZAR/JPY262=ZAR/JPY263=1264=1265=1266=Y267=1269=010=173

        <message>
          <header>
            <field number="8"><![CDATA[FIX.4.4]]></field>
            <field number="9"><![CDATA[127]]></field>
            <field number="35"><![CDATA[Y]]></field>
            <field number="34"><![CDATA[19]]></field>
            <field number="49"><![CDATA[CNX]]></field>
            <field number="52"><![CDATA[20160415-15:53:10.660]]></field>
            <field number="56"><![CDATA[CAXDemo_Account_Str]]></field>
          </header>
          <body>
         <field number="58"><![CDATA[1 entry must be roll rate entry type]]></field>
            <field number="262"><![CDATA[ZAR/JPY]]></field>
            <field number="281"><![CDATA[2]]></field>
          </body>
          <trailer>
            <field number="10"><![CDATA[096]]></field>
          </trailer>
        </message>
     IN: 8=FIX.4.49=12735=Y34=1949=CNX52=20160415-15:53:10.66056=CAXDemo_Account_Str58=1 entry must be roll rate entry type262=ZAR/JPY281=210=096

     OUT: 8=FIX.4.49=13435=V34=1749=CAXDemo_Account_Str52=20160415-15:53:10.78856=CNX146=155=ZAR/JPY262=ZAR/JPY263=2264=1265=1266=Y267=1269=010=183

        <message>
          <header>
            <field number="8"><![CDATA[FIX.4.4]]></field>
            <field number="9"><![CDATA[127]]></field>
            <field number="35"><![CDATA[Y]]></field>
            <field number="34"><![CDATA[20]]></field>
            <field number="49"><![CDATA[CNX]]></field>
            <field number="52"><![CDATA[20160415-15:53:10.861]]></field>
            <field number="56"><![CDATA[CAXDemo_Account_Str]]></field>
          </header>
          <body>
         <field number="58"><![CDATA[1 entry must be roll rate entry type]]></field>
            <field number="262"><![CDATA[ZAR/JPY]]></field>
            <field number="281"><![CDATA[2]]></field>
          </body>
          <trailer>
            <field number="10"><![CDATA[091]]></field>
          </trailer>
        </message>
     IN: 8=FIX.4.49=12735=Y34=2049=CNX52=20160415-15:53:10.86156=CAXDemo_Account_Str58=1 entry must be roll rate entry type262=ZAR/JPY281=210=091

−−−−−−−−−−−−−−−−−−−−−−−−
失敗要求8 要求情報不正 -  Bid と Offer はセットで要求しなきゃダメなのに片方だけの場合
拒否メッセージを受信: 281=2、 58=[1 entry must be roll rate entry type] ん? 
拒否メッセージを受信したので STOP 要求を投げる
STOP要求も同じく 281=2 か。。


281 = 2 は 「Insufficient bandwidth - 帯域が足りない?」 ??
あれれ?想定では 281 = 8 [Unsupported MarketDataEntryType - 要求情報がサポート外(Bid とか Offerとか)]が
返ってくると思ってたら。。
帯域が足りないって??

んー
間違った仕様書を渡されてんだねぇ

失敗要求の仕方が悪かったのかなl。。
まぁ仕様書が信じられないってことは、「8」ってエラーがあるかも怪しいしな。。



ーーーーーーーー
以上
なんか、釈然としないけど
メッセージ拒否 < Y > を受け取った時の動きとしては OK かな

仕様書について、証券会社に一言言っておかないとな。。



 
まこ | FIX | 00:40 | comments(0) | trackbacks(0) |
スポンサーサイト
スポンサードリンク | - | 00:40 | - | - |
Comment









Trackback
URL: