Custom OMM models
MAPI has introduced some user defined models that are very specific and cannot be re-usable by any other product. In order to parse these models MAPI provides its own set of dictionaries. Adapter requests for these models in following cases once login is successful,
When IAF of base RFA is started for first time
When trading mode changes from disabled mode to active mode.
Adapter supports following custom models,
Reference Data List of instruments for a particular asset class. Along with the names it will also include various properties for each instrument like PIP size, decimal places, Minimum Quote Life (MQL) and much more. These properties are mainly used in order to submit an order via the FIX protocol. End user can listen for below event,
com.apama.rfa.mapi.REFERENCE_DATA("ReutersRFATransport","REFRESH_RESP",0,
"REFRESH_COMPLETE","MAPI","FX_FORWARD_SWAP","EUR/ISKDOM",
{"RGT_DP":"2","STD_QTY":"1.0","RGL_QTY":"10.0","DataState":"OK",
"PIPSIZE":"1","Market":"ReutersRFATransport","StreamState":"OPEN",
"LOTSIZE3":"1.0","LEFT_DP":"4","MINQUL":"499","StatusCode":"NONE",
"__type":"REFERENCE_DATA_RESP","SERVICE_NAME":"MAPI","MN_ORD_QT":"1.0"})
By default the following properties of an instrument are included in transport property 'IncludeFields' Symbol,LOTSIZE3,MN_ORD_QT,STD_QTY,RGL_QTY,PIPSIZE,MINQUL,LEFT_DP,RGT_DP
Only these properties will be pushed in com.apama.rfa.mapi.REFERENCE_DATA. If user is interested in more fields, he can add their FID names to this property. Our adapter needs PIP size, MQL which is received in Reference data event. Monitor stores these values for each instrument on receiving it.
Configuration Data This model gets information that is not specific to a particular instrument.It contains 1. Asset Classes (ASSCLS) 2. Market Data Groups (MKTGRPMAP) 3. Tenors (TNRMAP) 4. Tip delay range (ITDM)
This data will be logged as well pushed as an event as follows. By default group ITDM will be pushed in com.apama.rfa.mapi.CONFIGURATION_DATA. If user interested in more groups, they can add it to "IncludeFields'
com.apama.rfa.mapi.CONFIGURATION_DATA("ReutersRFATransport",
"REFRESH_RESP",0,"REFRESH_COMPLETE","MAPI","PV6","ITDM","",
{"2":"{\"MAXTIPD\":\"2000\",\"MINTIPD\":\"1000\"}","DataState":"OK",
"Market":"ReutersRFATransport","StreamState":"OPEN",
"StatusCode":"NONE","__type":"CONFIGURATION_DATA_RESP",
"SERVICE_NAME":"MAPI","1":"{\"MAXTIPD\":\"1000\",\"MINTIPD\":\"250\"}",
"{\"MAXTIPD\":\"3000\",\"MINTIPD\":\"2000\"}"})
In above event, payload will carry "key":{"FID_NAME":"FID_VALUE".....} In case an iceberg order submitted using tip delay range then user can choose any key of above ranges. Same data will be logged in iaf log as below ,
GROUP NAME : ITDM KEY :1
FIELD_ENTRY MAXTIPD : 1000
FIELD_ENTRY MINTIPD : 250 and so on...
Query Reference/configuration Data At any point of time after Login successful, if user is interested in Reference data or configuration data he can request using
event QueryModelData{
string TRANSPORT;
string modelName;
dictionary<string,string> __payload;
}
Field "modelName" can be ReferenceData or ConfigurationData or both or * (to get both models)
User can query reference data per symbol by adding "Symbol" field to payload.
Its value can be comma separated symbol names or *(to get all symbol information).
Sample Event:
com.apama.rfa.mapi.QueryModelData("ReutersRFATransport","*",{})
// To get all Reference/Configuration Data
com.apama.rfa.mapi.QueryModelData("ReutersRFATransport","ReferenceData",
{"Symbol":"EUR/ISK DOM"})
// To request reference data of particular symbol.
com.apama.rfa.mapi.QueryModelData("ReutersRFATransport",
"ReferenceData,ConfigurationData",{"Symbol":"*"})
// To request reference data of all symbols.