¥ì¡¼¥È¾ðÊó¤â¼èÆÀ¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Î¤Ç¡¢¾ðÊó·Ï¤Î»î¸³¤â¤ä¤Ã¤È¤¤Þ¤¹¡£
¾ðÊó·Ï¤È¤·¤Æ¤Ï¥ì¡¼¥È¾ðÊó¤Î¤Û¤«¤Ë¤â¸ýºÂ¾ðÊó¤äÃíʸ¾ðÊó¤Ê¤ó¤«¤â¤¢¤ê¤Þ¤¹¤¬¡£¡£
¾Ú·ô²ñ¼Ò¤«¤é¤â¤é¤Ã¤Æ¤ë»î¸³¤Ë¤Ï¥ì¡¼¥È¾ðÊó¤·¤«ºÜ¤Ã¤Æ¤Ê¤¤¤Î¤Ç¡¢¤³¤Î¥¿¥¤¥ß¥ó¥°¤Ç¤¤¤¤¤«¤Ê
»î¸³³µÍסÊÀµ¾ï·Ï¡Ë
¡¡£±¡¡¥ì¡¼¥È¾ðÊó FULL + NonAggregate¡§ÈÄ̤²Ã¹©¾ðÊó
¡¡£²¡¡¥ì¡¼¥È¾ðÊó FULL + Aggregate¡§ÈIJù©¾ðÊó
¡¡£³¡¡¥ì¡¼¥È¾ðÊó TOP ¡§ºÇŬÃ;ðÊó
»î¸³³µÍסʽàÀµ¾ï·Ï¡Ë
¡¡£´¡¡½ÅÊ£Í׵ᡧƱ°ìÄ̲ߤǺÆÅÙÍ×µá¤ò¹Ô¤¦
¡¡£µ¡¡Ä̲ߥڥ¢ÉÔÀµ£±¡§¥¹¥é¥Ã¥·¥å¤¬È´¤±¤Æ¤¤¤ë
¡¡£¶¡¡Ä̲ߥڥ¢ÉÔÀµ£²¡§Âоݳ°Ä̲ߥڥ¢¤òÍ×µá
¡¡£·¡¡¹½Â¤ÉÔÀµ£±¡§Í×µá¾ðÊó¿ô¤ÈÍ×µá¾ðÊó(BID¤È¤«OFFER¤È¤«¡Ë¤¬¤ª¤«¤·¤¤
¡¡£¸¡¡¹½Â¤ÉÔÀµ£²¡§Ä̲߿ô¤ÈÄ̲߾ðÊ󤬤ª¤«¤·¤¤
¤¦¡¼¤ó¡£¡£ÈľðÊó¼èÆÀ¤Ïºî¤Ã¤Æ¤Ê¤¤¤±¤É¡£¡£
¥á¥Ã¥»¡¼¥¸¼õ¤±¼è¤ì¤ì¤Ð¡¢£Ï£Ë¤À¤è¤Í¡£
¢£¸Æ¤Ó½Ð¤·ÉôʬºîÀ®¡Ê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();
}
}
}
¡Ý¡Ý¡Ý¡Ý¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼
¡ Àµ¾ï·Ï¤Î»î¸³
¢ ½àÀµ¾ï·Ï¤Î»î¸³
¡¡¡¡¥Æ¥¹¥È¥±¡¼¥¹£·¤È£¸°Ê³°¤Ï¤³¤³¤Î¸Æ¤Ó½Ð¤·Éôʬ¤À¤±¤Ç¹Ô¤±¤Þ¤¹¤Í
¢£¥ì¡¼¥È¾ðÊóÍ×µá¤ò°ì»þŪ¤ËÊѹ¹¡Ê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 );
}
¡Ý¡Ý¡Ý¡Ý¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼
¥Æ¥¹¥È¥±¡¼¥¹£·¤È£¸¤Ï¤Á¤ç¤Ã¤È¥½¡¼¥¹¤òÊѹ¹¤·¤ÆÂбþ
¢£¥³¥ó¥Ñ¥¤¥ë(¥¨¥é¡¼¤â¥ï¡¼¥Ë¥ó¥°¤â½Ð¤Ê¤¤¤³¤È)
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
¡Ý¡Ý¡Ý¡Ý¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼
¢£¼Â¹Ô
Á´Ê¸¤ò¾è¤»¤ë¤ÈÂçÊѤʤΤǥÀ¥¤¥¸¥§¥¹¥È¤Ç
¡Ê¸«¤ä¤¹¤¤¤è¤¦¤Ë°ìÉô½¤Àµ¤·¤Æ¤Þ¤¹¤è¡Ë
¡ÚÀµ¾ï·Ï¡Û
¥Æ¥¹¥È£±¡¡¥ì¡¼¥È¾ðÊó 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"> ¤Ã¤Æ¤Ê¤ó¤À¡©
¥Æ¥¹¥È£²¡¡¥ì¡¼¥È¾ðÊó FULL + Aggregate¡§ÈIJù©¾ðÊó
¡Ý¡Ý¡Ý¡Ý¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼¡¼
¡ú 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 ¤Î°ã¤¤¤«¡©
¥Æ¥¹¥È£³¡¡¥ì¡¼¥È¾ðÊó 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
¡¼¡¼¡¼
°Ê¾å
¤È¤Ë¤«¤¯Àµ¾ï·Ï¤Î¥á¥Ã¥»¡¼¥¸¤òÅꤲ¤Æ¡¢
¤½¤ì¤¾¤ì¤Î¥ì¡¼¥È¾ðÊó¤ò¼èÆÀ¤¹¤ë¤³¤È¤Ë¤ÏÀ®¸ù¤·¤Æ¤Þ¤¹¡£
¡ÖÈġ׾ðÊó¤ò¤Á¤ã¤ó¤È£Ä£Â¤ËÆþ¤ì¤¿¤êÁȤßΩ¤Æ¤¿¤ê¤Ï¡£¡£
¤½¤Î¤¦¤ÁÂбþ¤Ç¡£¡£
¡ÖÈġ׸«¤ì¤¿Êý¤¬ÇäÇãȽÃÇ¥í¥¸¥Ã¥¯¤âÀµÅúΨ¡©¾å¤¬¤ê¤½¤¦¤À¤·¤Í