09
--
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
--
>>
<<
--
LATEST ENTRY
CATEGORY
ARCHIVE
PROFILE
SEARCH
RECENT COMMENT
  • エクセルファイルのパスワードを忘れたら・・・
    里奈 (09/09)
  • 【QUICKFIX】 FX自動売買への道 27 【接続時の仕様】
    mrsg (07/29)
  • 【QUICKFIX】 FX自動売買への道 11 【デモ環境への接続】
    大工の源さん (05/01)
  • 【QUICKFIX】 FX自動売買への道 19 【レート情報の取得(MarketDataRequest)】
    まこ (04/11)
  • 【QUICKFIX】 FX自動売買への道 19 【レート情報の取得(MarketDataRequest)】
    ぼん (04/11)
  • Excel の パスワード解除 (VBS版)
    おさる (01/05)
  • Excel の パスワード解除 (VBS版)
    おさる (01/05)
  • エクセルファイルのパスワードを忘れたら・・・
    ヤナト (07/07)
  • ffmpeg+libx264+libfaac の static ビルド
    ひげお (03/17)
  • TSの2重音声問題解決
    K (10/14)
MOBILE
qrcode
OTHERS
<< 【QUICKFIX】 FX自動売買への道 23 【レート情報取得拒否試験】 | top | 【QUICKFIX】 FX自動売買への道 25 【情報系の試験(準正常系)】 >>
【QUICKFIX】 FX自動売買への道 24 【情報系の試験(正常系)】
レート情報も取得できるようになったので、情報系の試験もやっときます。

情報系としてはレート情報のほかにも口座情報や注文情報なんかもありますが。。
証券会社からもらってる試験にはレート情報しか載ってないので、このタイミングでいいかな

 

試験概要(正常系)
 1 レート情報 FULL + NonAggregate:板未加工情報
 2 レート情報 FULL + Aggregate:板加工情報
 3 レート情報 TOP :最適値情報

試験概要(準正常系)
 4 重複要求:同一通貨で再度要求を行う
 5 通貨ペア不正1:スラッシュが抜けている
 6 通貨ペア不正2:対象外通貨ペアを要求
 7 構造不正1:要求情報数と要求情報(BIDとかOFFERとか)がおかしい
 8 構造不正2:通貨数と通貨情報がおかしい


うーん。。板情報取得は作ってないけど。。
メッセージ受け取れれば、OKだよね。


■呼び出し部分作成(Application.cpp)
tradeclient]# vi Application.cpp
−−−−抜粋ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
        void Application::run()
        {
          while ( true )
          {
            try
            {
              std::string action;
              std::cout << std::endl
                << "x) Security List Request"                   << std::endl
                <<                                                 std::endl
             << "V1) MDRequest TEST 1 USD/JPY FULL NoAggr"   << std::endl
                << "V2) MDRequest TEST 2 EUR/USD FULL Aggr"     << std::endl
                << "V3) MDRequest TEST 3 USD/JPY TOP  Aggr"     << std::endl

                <<                                                 std::endl
             << "V4) MDRequest TEST 4 EUR/CHF Duplicate"     << std::endl
                << "V5) MDRequest TEST 5 USDJPY  SymbErr 1"     << std::endl
                << "V6) MDRequest TEST 6 USD/IDR SymbErr 2"     << std::endl
                << "V7) MDRequest TEST 7 EUR/GBP StruErr 1"     << std::endl
                << "V8) MDRequest TEST 8 GBP/USD StruErr 2"     << std::endl

                <<                                                 std::endl
                << "Vjq) MarketDataRequest USD/JPY STOP"        << std::endl
                << "Veq) MarketDataRequest EUR/USD STOP"        << std::endl
                <<                                                 std::endl
                << "test1) TestRequest Trade"                   << std::endl
                << "test2) TestRequest Ratefeed"                << std::endl
                <<                                                 std::endl
                << "q) Quit"                                    << std::endl
                << "Action: ";
              std::cin >> action;

              if      ( action == "x" ) SecurityListRequest();

           else if ( action == "V1" )  MarketDataRequest("USD/JPY", 0, false, FIX::SubscriptionRequestType_SNAPSHOT_PLUS_UPDATES );
              else if ( action == "V2" )  MarketDataRequest("EUR/USD", 0, true,  FIX::SubscriptionRequestType_SNAPSHOT_PLUS_UPDATES );
              else if ( action == "V3" )  MarketDataRequest("USD/JPY", 1, true,  FIX::SubscriptionRequestType_SNAPSHOT_PLUS_UPDATES );


           else if ( action == "V4" ){ MarketDataRequest("EUR/CHF", 1, true,  FIX::SubscriptionRequestType_SNAPSHOT_PLUS_UPDATES );
                                          MarketDataRequest("EUR/CHF", 1, true,  FIX::SubscriptionRequestType_SNAPSHOT_PLUS_UPDATES ); }
              else if ( action == "V5" )  MarketDataRequest("USDJPY",  1, true,  FIX::SubscriptionRequestType_SNAPSHOT_PLUS_UPDATES );
              else if ( action == "V6" )  MarketDataRequest("USD/IDR", 1, true,  FIX::SubscriptionRequestType_SNAPSHOT_PLUS_UPDATES );
              else if ( action == "V7" )  MarketDataRequest("EUR/GBP", 1, true,  FIX::SubscriptionRequestType_SNAPSHOT_PLUS_UPDATES );
              else if ( action == "V8" )  MarketDataRequest("GBP/USD", 1, true,  FIX::SubscriptionRequestType_SNAPSHOT_PLUS_UPDATES );


              else if ( action == "Vjq" ) MarketDataRequest("USD/JPY", 1, true,  FIX::SubscriptionRequestType_DISABLE_PREVIOUS_SNAPSHOT_PLUS_UPDATE_REQUEST );
              else if ( action == "Veq" ) MarketDataRequest("EUR/USD", 1, true,  FIX::SubscriptionRequestType_DISABLE_PREVIOUS_SNAPSHOT_PLUS_UPDATE_REQUEST );

              else if ( action == "test1" ) TestRequest( m_sendercomp_tradeID );
              else if ( action == "test2" ) TestRequest( m_sendercomp_ratefeedID );
              else if ( action == "q" )
                break;
            }
            catch ( std::exception & e )
            {
              std::cout << "Message Not Sent: " << e.what();
            }
          }
        }

−−−−ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
正常系の試験
準正常系の試験
  テストケース7と8以外はここの呼び出し部分だけで行けますね


■レート情報要求を一時的に変更(MarketDataRequest.cpp)
tradeclient]# vi MarketDataRequest.cpp
−−−−抜粋ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
        #include "config.h"
        #include "Application.h"
        #include "quickfix/Session.h"
        #include <iostream>

        /* < V > */
        void Application::MarketDataRequest(
            /* 55  */ const std::string& target
          , /* 264 */ const int depth
          , /* 266 */ const bool& aggregate
          , /* 263 */ const FIX::SubscriptionRequestType& a_subType
        )
        {
          FIX44::MarketDataRequest message;

          /* 262  */ message.set(FIX::MDReqID( target ));
          /* 263  */ message.set(FIX::SubscriptionRequestType( a_subType ));
          /* 264  */ message.set(FIX::MarketDepth( depth ));  /* 1 = Top Book, 0 = Full Book */
          /* 265  */ message.set(FIX::MDUpdateType( FIX::MDUpdateType_INCREMENTAL_REFRESH )); /* 1 Only */
          /* 266  */ message.set(FIX::AggregatedBook( aggregate )); /* true = Aggregate, false = NoAggregate */

          std::vector<char>c;

        /* not test 7 */
          if (target != "EUR/GBP") {
          c.push_back(FIX::MDEntryType_BID);                            /* 0 */
          c.push_back(FIX::MDEntryType_OFFER);                          /* 1 */
          }
        /* test 7 */
          else {
          c.push_back(FIX::MDEntryType_BID);                            /* 0 */
          c.push_back(FIX::MDEntryType_BID);                            /* 0 */
          }


          while( !c.empty() ) {
            /* 267  */ FIX44::MarketDataRequest::NoMDEntryTypes entryType;
            /* 269  */ entryType.set(FIX::MDEntryType( c.back() ));
            c.pop_back();
            message.addGroup( entryType );
          }

        /* not test 8 */
          if (target != "GBP/USD") {
          /* 146  */ FIX44::MarketDataRequest::NoRelatedSym symbolGroup;
          /* 55   */ symbolGroup.set( FIX::Symbol(target) );
          message.addGroup( symbolGroup );
          }

        /* test 8 */
          else {
            /* 146  */ message.setField(146,"1");
            /* 55   */ message.setField(55,target);
          }


          /* Attributed Pricing */
          if (( depth == 0 ) && (  aggregate == false ))
            /* 7560 */ message.setField(7560, "Y");

          InsertMarketDataRequest( message );

          FIX::Session::sendToTarget( message, m_sendercomp_ratefeedID, m_targetcompID );
        }

−−−−ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
テストケース7と8はちょっとソースを変更して対応


■コンパイル(エラーもワーニングも出ないこと)
tradeclient]# make


■設定ファイル変更
デバッグキーを有効にしてみる
tradeclient]# cd ..
examples]# vi tradeclient.cfg
−−−−抜粋ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
        # -- Debug ------
        ## Debug_h_TradingSessionStatus=true
        ## Debug_y_SecurityList=true
        Debug_j_BusinessMessageReject=true
        Debug_X_MarketDataIncrementalRefresh=true
        Debug_Y_MarketDataRequestReject=true

−−−−ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー


■実行
全文を乗せると大変なのでダイジェストで
(見やすいように一部修正してますよ)

【正常系】
テスト1 レート情報 FULL + NonAggregate:板未加工情報

−−−−ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
★    V1
TEST1

        OUT: 8=FIX.4.49=14635=V34=249=CAXDemo_Account_Str52=20160417-22:45:45.14056=CNX146=155=USD/JPY262=USD/JPY263=1264=0265=1266=N267=2269=1269=07560=Y10=230

        <message>
          <header>
            <field number="8"><![CDATA[FIX.4.4]]></field>
            <field number="9"><![CDATA[684]]></field>
            <field number="35"><![CDATA[X]]></field>
            <field number="34"><![CDATA[3]]></field>
            <field number="49"><![CDATA[CNX]]></field>
            <field number="52"><![CDATA[20160417-22:45:45.235]]></field>
            <field number="56"><![CDATA[CAXDemo_Account_Str]]></field>
          </header>
          <body>
            <field number="262"><![CDATA[USD/JPY]]></field>
            <field number="268"><![CDATA[10]]></field>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[0]]></field>
              <field number="278"><![CDATA[2]]></field>
              <field number="55"><![CDATA[USD/JPY]]></field>
           <field number="270"><![CDATA[108.324]]></field>
              <field number="271"><![CDATA[500000]]></field>
              <field number="282"><![CDATA[NA]]></field>
            </group>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[0]]></field>
              <field number="278"><![CDATA[3]]></field>
              <field number="55"><![CDATA[USD/JPY]]></field>
           <field number="270"><![CDATA[108.323]]></field>
              <field number="271"><![CDATA[1300000]]></field>
              <field number="282"><![CDATA[NA]]></field>
            </group>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[0]]></field>
              <field number="278"><![CDATA[1]]></field>
              <field number="55"><![CDATA[USD/JPY]]></field>
           <field number="270"><![CDATA[108.327]]></field>
              <field number="271"><![CDATA[500000]]></field>
              <field number="282"><![CDATA[NA]]></field>
            </group>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[0]]></field>
              <field number="278"><![CDATA[4]]></field>
              <field number="55"><![CDATA[USD/JPY]]></field>
           <field number="270"><![CDATA[108.322]]></field>
              <field number="271"><![CDATA[2000000]]></field>
              <field number="282"><![CDATA[NA]]></field>
            </group>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[0]]></field>
              <field number="278"><![CDATA[5]]></field>
              <field number="55"><![CDATA[USD/JPY]]></field>
           <field number="270"><![CDATA[108.321]]></field>
              <field number="271"><![CDATA[2000000]]></field>
              <field number="282"><![CDATA[NA]]></field>
            </group>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[1]]></field>
              <field number="278"><![CDATA[6]]></field>
              <field number="55"><![CDATA[USD/JPY]]></field>
           <field number="270"><![CDATA[108.334]]></field>
              <field number="271"><![CDATA[1000000]]></field>
              <field number="282"><![CDATA[NA]]></field>
            </group>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[1]]></field>
              <field number="278"><![CDATA[7]]></field>
              <field number="55"><![CDATA[USD/JPY]]></field>
           <field number="270"><![CDATA[108.336]]></field>
              <field number="271"><![CDATA[1500000]]></field>
              <field number="282"><![CDATA[NA]]></field>
            </group>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[1]]></field>
              <field number="278"><![CDATA[10]]></field>
              <field number="55"><![CDATA[USD/JPY]]></field>
           <field number="270"><![CDATA[108.34]]></field>
              <field number="271"><![CDATA[1000000]]></field>
              <field number="282"><![CDATA[NA]]></field>
            </group>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[1]]></field>
              <field number="278"><![CDATA[8]]></field>
              <field number="55"><![CDATA[USD/JPY]]></field>
           <field number="270"><![CDATA[108.337]]></field>
              <field number="271"><![CDATA[2000000]]></field>
              <field number="282"><![CDATA[NA]]></field>
            </group>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[1]]></field>
              <field number="278"><![CDATA[9]]></field>
              <field number="55"><![CDATA[USD/JPY]]></field>
           <field number="270"><![CDATA[108.338]]></field>
              <field number="271"><![CDATA[500000]]></field>
              <field number="282"><![CDATA[NA]]></field>
            </group>
          </body>
          <trailer>
            <field number="10"><![CDATA[023]]></field>
          </trailer>
        </message>
        IN: 8=FIX.4.49=68435=X34=349=CNX52=20160417-22:45:45.23556=CAXDemo_Account_Str262=USD/JPY268=10279=0269=0278=255=USD/JPY270=108.324271=500000282=NA279=0269=0278=355=USD/JPY270=108.323271=1300000282=NA279=0269=0278=155=USD/JPY270=108.327271=500000282=NA279=0269=0278=455=USD/JPY270=108.322271=2000000282=NA279=0269=0278=555=USD/JPY270=108.321271=2000000282=NA279=0269=1278=655=USD/JPY270=108.334271=1000000282=NA279=0269=1278=755=USD/JPY270=108.336271=1500000282=NA279=0269=1278=1055=USD/JPY270=108.34271=1000000282=NA279=0269=1278=855=USD/JPY270=108.337271=2000000282=NA279=0269=1278=955=USD/JPY270=108.338271=500000282=NA10=023
        
★        Vjq
STOP

        OUT: 8=FIX.4.49=14635=V34=349=CAXDemo_Account_Str52=20160417-22:45:46.75456=CNX146=155=USD/JPY262=USD/JPY263=2264=0265=1266=N267=2269=1269=07560=Y10=244

(メッセージ構造省略)        
        IN: 8=FIX.4.49=44935=X34=649=CNX52=20160417-22:45:46.84956=CAXDemo_Account_Str262=USD/JPY268=10279=2269=0278=255=USD/JPY282=NA279=2269=0278=355=USD/JPY282=NA279=2269=0278=155=USD/JPY282=NA279=2269=0278=1155=USD/JPY282=NA279=2269=0278=555=USD/JPY282=NA279=2269=1278=655=USD/JPY282=NA279=2269=1278=755=USD/JPY282=NA279=2269=1278=1055=USD/JPY282=NA279=2269=1278=855=USD/JPY282=NA279=2269=1278=955=USD/JPY282=NA10=072

−−−−ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ちゃんと「板」情報が取れました。
メッセージを組み立てるとこんな感じ?

                108.340  1,000,000
                108.338    500,000
                108.337  2,000,000
                108.336  1,500,000
                108.334  1,000,000

       500,000  108.327
       500,000  108.324
     1,300,000  108.323
     2,000,000  108.322
     2,000,000  108.321


それにしても <field number="282"> ってなんだ?



テスト2 レート情報 FULL + Aggregate:板加工情報
−−−−ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
★        V2
TEST2

        OUT: 8=FIX.4.49=13935=V34=449=CAXDemo_Account_Str52=20160417-22:46:01.16456=CNX146=155=EUR/USD262=EUR/USD263=1264=0265=1266=Y267=2269=1269=010=125

        <message>
          <header>
            <field number="8"><![CDATA[FIX.4.4]]></field>
            <field number="9"><![CDATA[695]]></field>
            <field number="35"><![CDATA[X]]></field>
            <field number="34"><![CDATA[7]]></field>
            <field number="49"><![CDATA[CNX]]></field>
            <field number="52"><![CDATA[20160417-22:46:01.262]]></field>
            <field number="56"><![CDATA[CAXDemo_Account_Str]]></field>
          </header>
          <body>
            <field number="262"><![CDATA[EUR/USD]]></field>
            <field number="268"><![CDATA[10]]></field>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[0]]></field>
              <field number="278"><![CDATA[215]]></field>
              <field number="55"><![CDATA[EUR/USD]]></field>
           <field number="270"><![CDATA[1.1294]]></field>
              <field number="271"><![CDATA[1500000]]></field>
              <field number="346"><![CDATA[1]]></field>
            </group>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[0]]></field>
              <field number="278"><![CDATA[229]]></field>
              <field number="55"><![CDATA[EUR/USD]]></field>
           <field number="270"><![CDATA[1.12939]]></field>
              <field number="271"><![CDATA[3500000]]></field>
              <field number="346"><![CDATA[1]]></field>
            </group>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[0]]></field>
              <field number="278"><![CDATA[251]]></field>
              <field number="55"><![CDATA[EUR/USD]]></field>
           <field number="270"><![CDATA[1.12938]]></field>
              <field number="271"><![CDATA[2500000]]></field>
              <field number="346"><![CDATA[1]]></field>
            </group>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[0]]></field>
              <field number="278"><![CDATA[241]]></field>
              <field number="55"><![CDATA[EUR/USD]]></field>
           <field number="270"><![CDATA[1.12937]]></field>
              <field number="271"><![CDATA[5500000]]></field>
              <field number="346"><![CDATA[1]]></field>
            </group>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[0]]></field>
              <field number="278"><![CDATA[221]]></field>
              <field number="55"><![CDATA[EUR/USD]]></field>
           <field number="270"><![CDATA[1.12936]]></field>
              <field number="271"><![CDATA[2000000]]></field>
              <field number="346"><![CDATA[1]]></field>
            </group>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[1]]></field>
              <field number="278"><![CDATA[192]]></field>
              <field number="55"><![CDATA[EUR/USD]]></field>
           <field number="270"><![CDATA[1.12954]]></field>
              <field number="271"><![CDATA[500000]]></field>
              <field number="346"><![CDATA[1]]></field>
            </group>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[1]]></field>
              <field number="278"><![CDATA[204]]></field>
              <field number="55"><![CDATA[EUR/USD]]></field>
           <field number="270"><![CDATA[1.12955]]></field>
              <field number="271"><![CDATA[1500000]]></field>
              <field number="346"><![CDATA[1]]></field>
            </group>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[1]]></field>
              <field number="278"><![CDATA[196]]></field>
              <field number="55"><![CDATA[EUR/USD]]></field>
           <field number="270"><![CDATA[1.12956]]></field>
              <field number="271"><![CDATA[1000000]]></field>
              <field number="346"><![CDATA[1]]></field>
            </group>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[1]]></field>
              <field number="278"><![CDATA[202]]></field>
              <field number="55"><![CDATA[EUR/USD]]></field>
           <field number="270"><![CDATA[1.12957]]></field>
              <field number="271"><![CDATA[3000000]]></field>
              <field number="346"><![CDATA[1]]></field>
            </group>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[1]]></field>
              <field number="278"><![CDATA[198]]></field>
              <field number="55"><![CDATA[EUR/USD]]></field>
           <field number="270"><![CDATA[1.12958]]></field>
              <field number="271"><![CDATA[3500000]]></field>
              <field number="346"><![CDATA[1]]></field>
            </group>
          </body>
          <trailer>
            <field number="10"><![CDATA[140]]></field>
          </trailer>
        </message>
        IN: 8=FIX.4.49=69535=X34=749=CNX52=20160417-22:46:01.26256=CAXDemo_Account_Str262=EUR/USD268=10279=0269=0278=21555=EUR/USD270=1.1294271=1500000346=1279=0269=0278=22955=EUR/USD270=1.12939271=3500000346=1279=0269=0278=25155=EUR/USD270=1.12938271=2500000346=1279=0269=0278=24155=EUR/USD270=1.12937271=5500000346=1279=0269=0278=22155=EUR/USD270=1.12936271=2000000346=1279=0269=1278=19255=EUR/USD270=1.12954271=500000346=1279=0269=1278=20455=EUR/USD270=1.12955271=1500000346=1279=0269=1278=19655=EUR/USD270=1.12956271=1000000346=1279=0269=1278=20255=EUR/USD270=1.12957271=3000000346=1279=0269=1278=19855=EUR/USD270=1.12958271=3500000346=110=140

★        Veq
STOP

        OUT: 8=FIX.4.49=14635=V34=549=CAXDemo_Account_Str52=20160417-22:46:02.67656=CNX146=155=EUR/USD262=EUR/USD263=2264=0265=1266=N267=2269=1269=07560=Y10=228

(メッセージ構造省略)
        IN: 8=FIX.4.49=39835=X34=1549=CNX52=20160417-22:46:02.77056=CAXDemo_Account_Str262=EUR/USD268=10279=2269=0278=21555=EUR/USD279=2269=0278=25155=EUR/USD279=2269=0278=24155=EUR/USD279=2269=0278=22955=EUR/USD279=2269=0278=22155=EUR/USD279=2269=1278=19055=EUR/USD279=2269=1278=17455=EUR/USD279=2269=1278=20455=EUR/USD279=2269=1278=19255=EUR/USD279=2269=1278=19655=EUR/USD10=155

−−−−ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
こちらもちゃんと「板」情報が取れました。
メッセージを組み立てるとこんな感じ?

                  1.12958  3,500,000
                  1.12957  3,000,000
                  1.12956  1,000,000
                  1.12955  1,500,000
                  1.12954    500,000

       1,500,000  1.12940
       3,500,000  1.12939 
       2,500,000  1.12938
       5,500,000  1.12937
       2,000,000  1.12936



<field number="282"> が無くなって、
<field number="346"> が現れた。。
これが Aggregate の違いか?



テスト3 レート情報 TOP :最適値情報
−−−−ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
★        V3
TEST3

        OUT: 8=FIX.4.49=13935=V34=649=CAXDemo_Account_Str52=20160417-22:46:16.01256=CNX146=155=USD/JPY262=USD/JPY263=1264=1265=1266=Y267=2269=1269=010=140

        <message>
          <header>
            <field number="8"><![CDATA[FIX.4.4]]></field>
            <field number="9"><![CDATA[206]]></field>
            <field number="35"><![CDATA[X]]></field>
            <field number="34"><![CDATA[16]]></field>
            <field number="49"><![CDATA[CNX]]></field>
            <field number="52"><![CDATA[20160417-22:46:16.123]]></field>
            <field number="56"><![CDATA[CAXDemo_Account_Str]]></field>
          </header>
          <body>
            <field number="262"><![CDATA[USD/JPY]]></field>
            <field number="268"><![CDATA[2]]></field>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[0]]></field>
              <field number="278"><![CDATA[12]]></field>
              <field number="55"><![CDATA[USD/JPY]]></field>
           <field number="270"><![CDATA[108.324]]></field>
              <field number="271"><![CDATA[500000]]></field>
              <field number="346"><![CDATA[1]]></field>
            </group>
            <group>
              <field number="279"><![CDATA[0]]></field>
              <field number="269"><![CDATA[1]]></field>
              <field number="278"><![CDATA[13]]></field>
              <field number="55"><![CDATA[USD/JPY]]></field>
           <field number="270"><![CDATA[108.336]]></field>
              <field number="271"><![CDATA[1000000]]></field>
              <field number="346"><![CDATA[1]]></field>
            </group>
          </body>
          <trailer>
            <field number="10"><![CDATA[104]]></field>
          </trailer>
        </message>
        IN: 8=FIX.4.49=20635=X34=1649=CNX52=20160417-22:46:16.12356=CAXDemo_Account_Str262=USD/JPY268=2279=0269=0278=1255=USD/JPY270=108.324271=500000346=1279=0269=1278=1355=USD/JPY270=108.336271=1000000346=110=104

★        Vjq
STOP

        OUT: 8=FIX.4.49=14635=V34=749=CAXDemo_Account_Str52=20160417-22:46:21.48856=CNX146=155=USD/JPY262=USD/JPY263=2264=0265=1266=N267=2269=1269=07560=Y10=246

(メッセージ構造省略)
        IN: 8=FIX.4.49=14735=X34=2149=CNX52=20160417-22:46:21.58656=CAXDemo_Account_Str262=USD/JPY268=2279=2269=0278=1255=USD/JPY279=2269=1278=1355=USD/JPY10=198

−−−−ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
これは 「板」無しなのでこんな感じ

               108.336  1,000,000
      500,000  108.324




ーーー
以上
とにかく正常系のメッセージを投げて、
それぞれのレート情報を取得することには成功してます。


「板」情報をちゃんとDBに入れたり組み立てたりは。。
そのうち対応で。。
「板」見れた方が売買判断ロジックも正答率?上がりそうだしね

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









Trackback
URL: