The Lab

Follow these steps to connect to our sandbox environment and use the samples to subscribe to market data in as little as 15 minutes.

As always, if you have questions about using the Quick Start Guide, please email [email protected] 


Step 1: Download the Sample Client package, unzip and load into your Java development environment

Select the latest version from here.  This includes sample code for:

  • Market Maker RFQ
  • MarketData Subscriber
  • MarketQuote Subscriber
  • Quote Trader RFS 

Step 2: Configure your client to use one of the following 


Use either of the Pricing/Orders session pairs listed below with your The Lab username and password.


instanceportVenueNameSessionTypeComments
sim12.marketfactory.com 11774uat-citicolo-tieredPricingMass Quote only
sim12.marketfactory.com 11774uat-citicolo-tieredOrdersAuto fill of all orders



Step 3: Run the Application! 

Once you have the application up and running, you can then modify the code to suit your own prototyping purposes.


Example Mass Quote Output


11:07:06.676 [main] INFO  c.m.m.e.s.MassQuotePricingSample - Using params [host=sim11.marketfactory.com, port=11774, username=**************,  password=********, venue=uat-citicolo-tiered]

11:07:06.846 [main] INFO  c.m.m.e.a.c.NonblockingSocketChannelConnection - TCPBufferBytes [send: 64512, receive: 65536]

11:07:06.851 [main] INFO  c.m.m.e.a.c.SingleServiceCoreSession - Connecting [host: sim11.marketfactory.com, port: 11774]

11:07:06.864 [main] INFO  c.m.m.e.a.p.s.ConnectingState - Connected

11:07:06.865 [main] INFO  c.m.m.e.a.p.s.LoggingOnState - Entered LoggingOn State

11:07:06.872 [main] INFO  c.m.m.e.a.p.ProtocolEncoderProvider - >>> (messageStart=1179469389|messageLength=354|blockLength=167|templateId=1|schemaId=5|version=18394|msgSeqNum=1|sendingTime=1592993226871000000) [Logon](sbeTemplateId=1|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=167):heartBtInt=60|nextExpectedMsgSeqNum=1|username=**************|password=********|venuename=uat-citicolo-tiered|sessionType=Pricing|text='{"details":{"jvmVersion":"Oracle Corporation 14", "version":"2.1.0", "scmRevision":"9c8c6f4c0bc4d93bed3f0e1c0e6cd5bb93ae6fe7", "build":"b61"}, "userText":""}'

11:07:07.414 [main] INFO  c.m.m.e.a.p.ProtocolDecoderProvider - <<< (messageStart=1179469389|messageLength=32|blockLength=4|templateId=2|schemaId=5|version=18394|msgSeqNum=1|sendingTime=1592993227031909964) [LogonResponse](sbeTemplateId=2|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=4):nextExpectedMsgSeqNum=2

11:07:07.415 [main] INFO  c.m.m.e.a.p.s.LoggingOnState - SyncSummary [clientNextMsgSeqNum: 2, clientNextExpectedMsgSeqNum: 1, serverMsgSeqNum: 1, serverNextExpectedMsgSeqNum: 2]

11:07:07.419 [main] INFO  c.m.m.e.a.p.s.ServerToClientSynchronizationState - Server to client synchronization complete. [clientNextExpectedMsgSeqNum: 2, serverNextMsgSeqNum: 2]

11:07:07.425 [main] INFO  c.m.m.e.a.p.s.ClientToServerSynchronizationState - ClientToServerSynchronization complete

11:07:07.430 [main] INFO  c.m.m.e.a.p.ProtocolEncoderProvider - >>> (messageStart=1179469389|messageLength=45|blockLength=0|templateId=7|schemaId=5|version=18394|msgSeqNum=2|sendingTime=1592993227430000000) [TestRequest](sbeTemplateId=7|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=0):testReqID='tr1592993227429'

11:07:07.453 [main] INFO  c.m.m.e.a.p.ProtocolDecoderProvider - <<< (messageStart=1179469389|messageLength=174|blockLength=129|templateId=6|schemaId=5|version=18394|msgSeqNum=2|sendingTime=1592993227072586897) [Heartbeat](sbeTemplateId=6|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=129):username=**************|venuename=uat-citicolo-tiered|sessionType=Pricing|testReqID='tr1592993227429'

11:07:07.454 [main] INFO  c.m.m.e.a.p.s.EndOfSyncHandshakeState - Received heartbeat [[Heartbeat](sbeTemplateId=6|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=129):username=**************|venuename=uat-citicolo-tiered|sessionType=Pricing|testReqID='tr1592993227429']

11:07:07.458 [main] INFO  c.m.m.e.a.p.ProtocolDecoderProvider - <<< (messageStart=1179469389|messageLength=63|blockLength=0|templateId=7|schemaId=5|version=18394|msgSeqNum=3|sendingTime=1592993227078160003) [TestRequest](sbeTemplateId=7|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=0):testReqID='Session synchronisation complete.'

11:07:07.458 [main] INFO  c.m.m.e.a.p.s.EndOfSyncHandshakeState - Server synchronization TestRequest received.

11:07:07.460 [main] INFO  c.m.m.e.a.p.ProtocolEncoderProvider - >>> (messageStart=1179469389|messageLength=192|blockLength=129|templateId=6|schemaId=5|version=18394|msgSeqNum=3|sendingTime=1592993227459000000) [Heartbeat](sbeTemplateId=6|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=129):username=**************|venuename=uat-citicolo-tiered|sessionType=Pricing|testReqID='Session synchronisation complete.'

11:07:07.462 [main] INFO  c.m.m.e.s.MassQuotePricingSample - Logged On - now logging onto venue

11:07:07.467 [main] INFO  c.m.m.e.a.p.ProtocolEncoderProvider - >>> (messageStart=1179469389|messageLength=31|blockLength=1|templateId=105|schemaId=5|version=18394|msgSeqNum=4|sendingTime=1592993227465000000) [UserRequest](sbeTemplateId=105|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=1):userRequestType=LogOnUser|text=''

11:07:07.558 [main] INFO  c.m.m.e.a.p.ProtocolDecoderProvider - <<< (messageStart=1179469389|messageLength=51|blockLength=1|templateId=106|schemaId=5|version=18394|msgSeqNum=4|sendingTime=1592993227176495367) [UserNotification](sbeTemplateId=106|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=1):userStatus=LoggedOn|text='Venue Logon complete'

11:07:07.559 [main] INFO  c.m.m.e.s.MassQuotePricingSample - Successful venue logon.

11:07:07.623 [main] INFO  c.m.m.e.s.MassQuotePricingSample - Received MassQuote [(messageStart=1179469389|messageLength=818|blockLength=144|templateId=208|schemaId=5|version=18394|msgSeqNum=5|sendingTime=1592993227237039973), [MassQuote](sbeTemplateId=208|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=144):transactTime=0|quoteReqID=qr1|quoteID=i:1|regulatoryBodies={}|noPartyIDs=[]|noQuoteSets=[(quoteSetID=1|symbol=EUR/USD|securityType=SPT|securityGroup=|settlType=SPT|settlDate=18439|hasNDFFields=[]|noQuoteEntries=[(quoteEntryID=i:1:1000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=EUR|bidSize=(mantissa=1000000|exponent=0)|offerSize=(mantissa=1000000|exponent=0)|bidPx=(mantissa=109013|exponent=-5)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=109023|exponent=-5)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:1:3000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=EUR|bidSize=(mantissa=3000000|exponent=0)|offerSize=(mantissa=3000000|exponent=0)|bidPx=(mantissa=109003|exponent=-5)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=109033|exponent=-5)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:1:5000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=EUR|bidSize=(mantissa=5000000|exponent=0)|offerSize=(mantissa=5000000|exponent=0)|bidPx=(mantissa=108993|exponent=-5)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=109043|exponent=-5)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:1:10000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=EUR|bidSize=(mantissa=10000000|exponent=0)|offerSize=(mantissa=10000000|exponent=0)|bidPx=(mantissa=108983|exponent=-5)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=109053|exponent=-5)|hasExtendedPriceFields=[]|noEntryPassthruFields=[])])]|noBodyRegulatoryFields=[]|noBodyPassthruFields=[]|noHops=[(hopRefID=2|hopSendingTime=0|

…..

11:07:11.658 [main] INFO  c.m.m.e.s.MassQuotePricingSample - Received MassQuote [(messageStart=1179469389|messageLength=818|blockLength=144|templateId=208|schemaId=5|version=18394|msgSeqNum=14|sendingTime=1592993231275652622), [MassQuote](sbeTemplateId=208|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=144):transactTime=0|quoteReqID=qr2|quoteID=i:5|regulatoryBodies={}|noPartyIDs=[]|noQuoteSets=[(quoteSetID=1|symbol=USD/JPY|securityType=SPT|securityGroup=|settlType=SPT|settlDate=18439|hasNDFFields=[]|noQuoteEntries=[(quoteEntryID=i:5:1000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=USD|bidSize=(mantissa=1000000|exponent=0)|offerSize=(mantissa=1000000|exponent=0)|bidPx=(mantissa=107703|exponent=-3)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=107712|exponent=-3)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:5:3000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=USD|bidSize=(mantissa=3000000|exponent=0)|offerSize=(mantissa=3000000|exponent=0)|bidPx=(mantissa=107693|exponent=-3)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=107722|exponent=-3)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:5:5000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=USD|bidSize=(mantissa=5000000|exponent=0)|offerSize=(mantissa=5000000|exponent=0)|bidPx=(mantissa=107683|exponent=-3)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=107732|exponent=-3)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:5:10000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=USD|bidSize=(mantissa=10000000|exponent=0)|offerSize=(mantissa=10000000|exponent=0)|bidPx=(mantissa=107673|exponent=-3)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=107742|exponent=-3)|hasExtendedPriceFields=[]|noEntryPassthruFields=[])])]|noBodyRegulatoryFields=[]|noBodyPassthruFields=[]|noHops=[(hopRefID=12|hopSendingTime=0|hopNetworkTime=0|hopArrivalTime=1592993231275647176)]]


11:07:11.851 [main] INFO  c.m.m.e.s.MassQuotePricingSample - Logging off with graceful logout.

11:07:11.851 [main] INFO  c.m.m.e.s.MassQuotePricingSample - Cancelling all quote requests

11:07:11.854 [main] INFO  c.m.m.e.s.MassQuotePricingSample - Cancelling qr2 quote request

11:07:11.856 [main] INFO  c.m.m.e.s.MassQuotePricingSample - Cancelling qr1 quote request

11:07:11.858 [main] INFO  c.m.m.e.a.p.ProtocolEncoderProvider - >>> (messageStart=1179469389|messageLength=43|blockLength=1|templateId=105|schemaId=5|version=18394|msgSeqNum=9|sendingTime=1592993231857000000) [UserRequest](sbeTemplateId=105|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=1):userRequestType=LogOffUser|text='Done for now'

11:07:11.976 [main] INFO  c.m.m.e.a.p.ProtocolDecoderProvider - <<< (messageStart=1179469389|messageLength=53|blockLength=1|templateId=106|schemaId=5|version=18394|msgSeqNum=15|sendingTime=1592993231598362496) [UserNotification](sbeTemplateId=106|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=1):userStatus=LoggedOff|text='Server session closed.'

11:07:11.977 [main] INFO  c.m.m.e.a.p.ProtocolEncoderProvider - >>> (messageStart=1179469389|messageLength=42|blockLength=0|templateId=3|schemaId=5|version=18394|msgSeqNum=10|sendingTime=1592993231977000000) [Logout](sbeTemplateId=3|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=0):text='Done for now'

11:07:12.006 [main] INFO  c.m.m.e.a.p.ProtocolDecoderProvider - <<< (messageStart=1179469389|messageLength=28|blockLength=0|templateId=4|schemaId=5|version=18394|msgSeqNum=16|sendingTime=1592993231624351478) [LogoutResponse](sbeTemplateId=4|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=0):

11:07:12.007 [main] INFO  c.m.m.e.a.p.s.LoggingOffState - Received logout response to our logout request. Disconnecting.

11:07:12.007 [main] INFO  c.m.m.e.a.c.SingleServiceCoreSession - Disconnected [host: sim11.marketfactory.com, port: 11774]

11:07:12.008 [main] INFO  c.m.m.e.s.MassQuotePricingSample - Logged Off

massQuote = [MassQuote](sbeTemplateId=208|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=144):transactTime=0|quoteReqID=qr2|quoteID=i:5|regulatoryBodies={}|noPartyIDs=[]|noQuoteSets=[(quoteSetID=1|symbol=USD/JPY|securityType=SPT|securityGroup=|settlType=SPT|settlDate=18439|hasNDFFields=[]|noQuoteEntries=[(quoteEntryID=i:5:1000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=USD|bidSize=(mantissa=1000000|exponent=0)|offerSize=(mantissa=1000000|exponent=0)|bidPx=(mantissa=107703|exponent=-3)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=107712|exponent=-3)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:5:3000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=USD|bidSize=(mantissa=3000000|exponent=0)|offerSize=(mantissa=3000000|exponent=0)|bidPx=(mantissa=107693|exponent=-3)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=107722|exponent=-3)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:5:5000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=USD|bidSize=(mantissa=5000000|exponent=0)|offerSize=(mantissa=5000000|exponent=0)|bidPx=(mantissa=107683|exponent=-3)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=107732|exponent=-3)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:5:10000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=USD|bidSize=(mantissa=10000000|exponent=0)|offerSize=(mantissa=10000000|exponent=0)|bidPx=(mantissa=107673|exponent=-3)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=107742|exponent=-3)|hasExtendedPriceFields=[]|noEntryPassthruFields=[])])]|noBodyRegulatoryFields=[]|noBodyPassthruFields=[]|noHops=[(hopRefID=12|hopSendingTime=0|hopNetworkTime=0|hopArrivalTime=1592993231275647176)]


massQuote = [MassQuote](sbeTemplateId=208|sbeSchemaId=5|sbeSchemaVersion=18394|sbeBlockLength=144):transactTime=0|quoteReqID=qr1|quoteID=i:5|regulatoryBodies={}|noPartyIDs=[]|noQuoteSets=[(quoteSetID=1|symbol=EUR/USD|securityType=SPT|securityGroup=|settlType=SPT|settlDate=18439|hasNDFFields=[]|noQuoteEntries=[(quoteEntryID=i:5:1000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=EUR|bidSize=(mantissa=1000000|exponent=0)|offerSize=(mantissa=1000000|exponent=0)|bidPx=(mantissa=109012|exponent=-5)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=109021|exponent=-5)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:5:3000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=EUR|bidSize=(mantissa=3000000|exponent=0)|offerSize=(mantissa=3000000|exponent=0)|bidPx=(mantissa=109002|exponent=-5)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=109031|exponent=-5)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:5:5000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=EUR|bidSize=(mantissa=5000000|exponent=0)|offerSize=(mantissa=5000000|exponent=0)|bidPx=(mantissa=108992|exponent=-5)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=109041|exponent=-5)|hasExtendedPriceFields=[]|noEntryPassthruFields=[]),(quoteEntryID=i:5:10000000|validUntilTime=-1|quoteType={bidIsTradeable,offerIsTradeable}|currency=EUR|bidSize=(mantissa=10000000|exponent=0)|offerSize=(mantissa=10000000|exponent=0)|bidPx=(mantissa=108982|exponent=-5)|midPx=(mantissa=-9223372036854775808|exponent=0)|offerPx=(mantissa=109051|exponent=-5)|hasExtendedPriceFields=[]|noEntryPassthruFields=[])])]|noBodyRegulatoryFields=[]|noBodyPassthruFields=[]|noHops=[(hopRefID=11|hopSendingTime=0|hopNetworkTime=0|hopArrivalTime=1592993231243305496)]


11:07:12.009 [main] INFO  c.m.m.e.s.MassQuotePricingSample - Finished


 


Process finished with exit code 0


Venue Mock

Note: This is a "sandbox" environment and uses a Simulator in preference to connecting to a live Venue, so as to avoid up-time/availability problems.

Please contact our sales or support teams if you require a dedicated UAT system.