what is the right way of filtering LSEG events ?

Mustapha
Mustapha Newcomer
edited May 15 in RFA

I have this piece of code( see below ), I am not sure it provides the right way of filtering ask and bid price events. please advise:

MarketDataItemEvent.MarketDataMessageType msgType = event.getMarketDataMsgType();

 

    if (msgType == MarketDataItemEvent.IMAGE

|| msgType == MarketDataItemEvent.UNSOLICITED_IMAGE
        || msgType == MarketDataItemEvent.UPDATE

|| msgType == MarketDataItemEvent.CORRECTION
        || msgType == MarketDataItemEvent.CLOSING_RUN) {

                 PROCESS_THE_MESSAGE

             }  else if (msgType == MarketDataItemEvent.STATUS) {
       LOG_THE_MESSAGE
    } else {

                         DISCARD_SILENTLY

              }

Answers

  • Hello @Mustapha

    Your pseudo-logic seems correct. I would also log the discarded messages, even though there should be none.

    If you are specifically asking about filtering the BID/ASK messages in the real time feed, then please use the view feature build into the SDK. See this example here.

  • Mustapha
    Mustapha Newcomer

    Thanks @Gurpreet for the quick response .

    Unfortunately , the link doesn't show any results .

    Also can you please provide some documents about the filtering types and their definitions

    Thanks

  • I apologize, I had linked you to the recent EMA API.

    You seem to be using the legacy RFA API with the now deprecated SSL interface. Can you also confirm your exact API and version? The support for RFA with SSL interface has ended, and we would have to advise you to migrate to one of the newer SDKs.

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Mustapha

    According to the code, you are using the legacy MarketData interface.

    As far as I know, the legacy MarketData doesn't support the Update Types which can be used to identify trade or quote update messages.

    The update types are introduced in the OMM interface supported in Real-Time SDKs. If the data feed provides this information, you can check that if an update message is a quote or trade update type. For example:

    UpdateMsg
    streamId="5"
    domain="MarketPrice Domain"
    updateTypeNum="1"
    seqNum="47248"
    name="PTT.BK"
    serviceId="5001"
    serviceName="ELEKTRON_DD"
    Payload dataType="FieldList"
    FieldList
    FieldEntry fid="5" name="TIMACT" dataType="Time" value="03:23:31:000:000:000"
    FieldEntry fid="22" name="BID" dataType="Real" value="30.75"
    FieldEntry fid="30" name="BIDSIZE" dataType="Real" value="12256000"
    FieldEntry fid="436" name="BEST_BID1" dataType="Real" value="30.75"
    FieldEntry fid="730" name="BEST_BSIZ1" dataType="Real" value="12256000"
    FieldEntry fid="3855" name="QUOTIM_MS" dataType="UInt" value="12211473"
    FieldEntry fid="14265" name="QUOTIM_NS" dataType="Time" value="03:23:31:473:440:659"
    FieldEntry fid="14281" name="INGEST_NS" dataType="Time" value="03:23:31:488:477:350"
    FieldListEnd

    PayloadEnd
    UpdateMsgEnd UpdateMsg
    streamId="5"
    domain="MarketPrice Domain"
    updateTypeNum="1"
    seqNum="47984"
    name="PTT.BK"
    serviceId="5001"
    serviceName="ELEKTRON_DD"
    Payload dataType="FieldList"
    FieldList
    FieldEntry fid="5" name="TIMACT" dataType="Time" value="03:25:19:000:000:000"
    FieldEntry fid="25" name="ASK" dataType="Real" value="31.00"
    FieldEntry fid="31" name="ASKSIZE" dataType="Real" value="7159300"
    FieldEntry fid="441" name="BEST_ASK1" dataType="Real" value="31.00"
    FieldEntry fid="735" name="BEST_ASIZ1" dataType="Real" value="7159300"
    FieldEntry fid="3855" name="QUOTIM_MS" dataType="UInt" value="12319656"
    FieldEntry fid="14265" name="QUOTIM_NS" dataType="Time" value="03:25:19:656:352:930"
    FieldEntry fid="14281" name="INGEST_NS" dataType="Time" value="03:25:19:672:321:289"
    FieldListEnd

    PayloadEnd
    UpdateMsgEnd UpdateMsg
    streamId="5"
    domain="MarketPrice Domain"
    updateTypeNum="2"
    DoNotConflate
    seqNum="48222"
    name="PTT.BK"
    serviceId="5001"
    serviceName="ELEKTRON_DD"
    Payload dataType="FieldList"
    FieldList
    FieldEntry fid="5" name="TIMACT" dataType="Time" value="03:25:34:000:000:000"
    FieldEntry fid="6" name="TRDPRC_1" dataType="Real" value="30.75"
    FieldEntry fid="11" name="NETCHNG_1" dataType="Real" value="-0.50"
    FieldEntry fid="14" name="PRCTCK_1" dataType="Enum" value="2"
    FieldEntry fid="18" name="TRDTIM_1" dataType="Time" value="03:25:34:000:000:000"
    • The updateTypeNum="1" indicates that this message is a quote update type which contains BID or ASK.
    • The updateTypeNum="2" indicates that this message is a trade update type which contains TRDPRC_1.
  • Mustapha
    Mustapha Newcomer

    Thanks @Jirapongse for the response .

    FYI , we are upgrading to the least API ( 3.8.3.0 )

    My question is : are there other values of updateTypeNum that I need to know rather than 1 and 2.

    Thanks

  • Mustapha
    Mustapha Newcomer

    @Jianping

    We did some test , but we only see UpdateTypeNum set to "0" , I dont see values like 1 or 2 . Please advise

    Payload 1:

    UpdateMsgstreamId="33"domain="MarketPrice Domain"updateTypeNum="0"name="USFN15451=TWEB"serviceId="23"serviceName="IDN_SELECTFEED"Payload dataType="FieldList"FieldListFieldEntry fid="8636" name="NA_MSG_TYP" dataType="Rmtes" value="QUOTEUPD"FieldEntry fid="4148" name="TIMACT_MS" dataType="UInt" value="64391913"FieldEntry fid="1021" name="SEQNUM" dataType="Real" value="5514548.0"FieldEntry fid="17" name="ACTIV_DATE" dataType="Date" value="13 MAY 2025"FieldEntry fid="213" name="MKT_SOURCE" dataType="Enum" value="118"FieldEntry fid="3887" name="SEQNUM_QT" dataType="Real" value="154954.0"FieldEntry fid="7031" name="QTE_NUMMOV" dataType="Int" value="430"FieldEntry fid="7001" name="B_DLR_CNT" dataType="Int" value="3"FieldEntry fid="3131" name="IRGFID" dataType="Real" value="3.0"FieldListEndPayloadEndUpdateMsgEnd

    Payload 2:

    UpdateMsgstreamId="17"domain="MarketPrice Domain"updateTypeNum="0"name="USFN1515=TWEB"serviceId="23"serviceName="IDN_SELECTFEED"Payload dataType="FieldList"FieldListFieldEntry fid="22" name="BID" dataType="Real" value="86.9375"FieldEntry fid="393" name="PRIMACT_1" dataType="Real" value="86.9375"FieldEntry fid="25" name="ASK" dataType="Real" value="87.1875"FieldEntry fid="275" name="SEC_ACT_1" dataType="Real" value="87.1875"FieldEntry fid="875" name="VALUE_DT1" dataType="Date" value="13 MAY 2025"FieldEntry fid="1010" name="VALUE_TS1" dataType="Time" value="18:11:24:000:000:000"FieldEntry fid="3349" name="MID_1" dataType="Real" value="87.0625"FieldEntry fid="4148" name="TIMACT_MS" dataType="UInt" value="65484204"FieldEntry fid="3855" name="QUOTIM_MS" dataType="UInt" value="65484204"FieldEntry fid="3386" name="QUOTE_DATE" dataType="Date" value="13 MAY 2025"FieldEntry fid="8636" name="NA_MSG_TYP" dataType="Rmtes" value="QUOTEUPD"FieldEntry fid="975" name="ACT_FLAG1" dataType="Rmtes" value="A"FieldEntry fid="270" name="ACT_TP_1" dataType="Enum" value="27"FieldEntry fid="1021" name="SEQNUM" dataType="Real" value="5639820.0"FieldEntry fid="17" name="ACTIV_DATE" dataType="Date" value="13 MAY 2025"FieldEntry fid="7854" name="BIDPCTCHNG" dataType="Real" value="-0.1973100000"FieldEntry fid="11" name="NETCHNG_1" dataType="Real" value="-0.171875"FieldEntry fid="135" name="MID_NET_CH" dataType="Real" value="-0.1171875"FieldEntry fid="56" name="PCTCHNG" dataType="Real" value="-0.19731"FieldEntry fid="114" name="BID_NET_CH" dataType="Real" value="-0.171875"FieldEntry fid="280" name="SC_ACT_TP1" dataType="Enum" value="17"FieldEntry fid="3887" name="SEQNUM_QT" dataType="Real" value="159237.0"FieldEntry fid="14509" name="MIDLO1_NS" dataType="Time" value="18:11:24:204:000:000"FieldEntry fid="4351" name="MID_LOW" dataType="Real" value="87.0625"FieldEntry fid="14265" name="QUOTIM_NS" dataType="Time" value="18:11:24:204:000:000"FieldEntry fid="11644" name="SESS_FL1" dataType="Rmtes" value="PRI"FieldEntry fid="3750" name="RTR_OPN_PR" dataType="Real" value="-0.203125"FieldEntry fid="10531" name="AMERPC_BID" dataType="Real" value="-0.234375"FieldEntry fid="2286" name="ASK_NET_CH" dataType="Real" value="-0.0625"FieldEntry fid="10528" name="AMERNC_ASK" dataType="Real" value="-0.015625"FieldEntry fid="10532" name="AMERPC_ASK" dataType="Real" value="-0.01953125"FieldEntry fid="8241" name="ASKPCTCHNG" dataType="Real" value="-0.0716300000"FieldEntry fid="2169" name="MID_PCT_CH" dataType="Real" value="-0.1344200000"FieldEntry fid="14202" name="MIDLO1_MS" dataType="Time" value="18:11:24:204:000:000"FieldEntry fid="4990" name="MID_PRICE1" dataType="Real" value="87.0625"FieldEntry fid="12924" name="ASK_TICK1" dataType="Enum" value="3"FieldEntry fid="10527" name="AMERNC_BID" dataType="Real" value="-0.203125"FieldEntry fid="7031" name="QTE_NUMMOV" dataType="Int" value="431"FieldEntry fid="12921" name="BID_TICK1" dataType="Enum" value="2"FieldEntry fid="213" name="MKT_SOURCE" dataType="Enum" value="118"FieldListEndPayloadEnd

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    This means that the exchange or data feed doesn't provide the update types. Therefore, the API can't retrieve the update types.

  • Mustapha
    Mustapha Newcomer

    A quick update : Our tests show that we only receive messages with updateTypeNum  set to "0"

    I dont see 1 or 2 values . Please advise .

    Payload 1:

    UpdateMsgstreamId="33"domain="MarketPrice Domain"updateTypeNum="0"name="USFN15451=TWEB"serviceId="23"serviceName="IDN_SELECTFEED"Payload dataType="FieldList"FieldListFieldEntry fid="8636" name="NA_MSG_TYP" dataType="Rmtes" value="QUOTEUPD"FieldEntry fid="4148" name="TIMACT_MS" dataType="UInt" value="64391913"FieldEntry fid="1021" name="SEQNUM" dataType="Real" value="5514548.0"FieldEntry fid="17" name="ACTIV_DATE" dataType="Date" value="13 MAY 2025"FieldEntry fid="213" name="MKT_SOURCE" dataType="Enum" value="118"FieldEntry fid="3887" name="SEQNUM_QT" dataType="Real" value="154954.0"FieldEntry fid="7031" name="QTE_NUMMOV" dataType="Int" value="430"FieldEntry fid="7001" name="B_DLR_CNT" dataType="Int" value="3"FieldEntry fid="3131" name="IRGFID" dataType="Real" value="3.0"FieldListEndPayloadEndUpdateMsgEnd

    Payload 2:

    UpdateMsgstreamId="17"domain="MarketPrice Domain"updateTypeNum="0"name="USFN1515=TWEB"serviceId="23"serviceName="IDN_SELECTFEED"Payload dataType="FieldList"FieldListFieldEntry fid="22" name="BID" dataType="Real" value="86.9375"FieldEntry fid="393" name="PRIMACT_1" dataType="Real" value="86.9375"FieldEntry fid="25" name="ASK" dataType="Real" value="87.1875"FieldEntry fid="275" name="SEC_ACT_1" dataType="Real" value="87.1875"FieldEntry fid="875" name="VALUE_DT1" dataType="Date" value="13 MAY 2025"FieldEntry fid="1010" name="VALUE_TS1" dataType="Time" value="18:11:24:000:000:000"FieldEntry fid="3349" name="MID_1" dataType="Real" value="87.0625"FieldEntry fid="4148" name="TIMACT_MS" dataType="UInt" value="65484204"FieldEntry fid="3855" name="QUOTIM_MS" dataType="UInt" value="65484204"FieldEntry fid="3386" name="QUOTE_DATE" dataType="Date" value="13 MAY 2025"FieldEntry fid="8636" name="NA_MSG_TYP" dataType="Rmtes" value="QUOTEUPD"FieldEntry fid="975" name="ACT_FLAG1" dataType="Rmtes" value="A"FieldEntry fid="270" name="ACT_TP_1" dataType="Enum" value="27"FieldEntry fid="1021" name="SEQNUM" dataType="Real" value="5639820.0"FieldEntry fid="17" name="ACTIV_DATE" dataType="Date" value="13 MAY 2025"FieldEntry fid="7854" name="BIDPCTCHNG" dataType="Real" value="-0.1973100000"FieldEntry fid="11" name="NETCHNG_1" dataType="Real" value="-0.171875"FieldEntry fid="135" name="MID_NET_CH" dataType="Real" value="-0.1171875"FieldEntry fid="56" name="PCTCHNG" dataType="Real" value="-0.19731"FieldEntry fid="114" name="BID_NET_CH" dataType="Real" value="-0.171875"FieldEntry fid="280" name="SC_ACT_TP1" dataType="Enum" value="17"FieldEntry fid="3887" name="SEQNUM_QT" dataType="Real" value="159237.0"FieldEntry fid="14509" name="MIDLO1_NS" dataType="Time" value="18:11:24:204:000:000"FieldEntry fid="4351" name="MID_LOW" dataType="Real" value="87.0625"FieldEntry fid="14265" name="QUOTIM_NS" dataType="Time" value="18:11:24:204:000:000"FieldEntry fid="11644" name="SESS_FL1" dataType="Rmtes" value="PRI"FieldEntry fid="3750" name="RTR_OPN_PR" dataType="Real" value="-0.203125"FieldEntry fid="10531" name="AMERPC_BID" dataType="Real" value="-0.234375"FieldEntry fid="2286" name="ASK_NET_CH" dataType="Real" value="-0.0625"FieldEntry fid="10528" name="AMERNC_ASK" dataType="Real" value="-0.015625"FieldEntry fid="10532" name="AMERPC_ASK" dataType="Real" value="-0.01953125"FieldEntry fid="8241" name="ASKPCTCHNG" dataType="Real" value="-0.0716300000"FieldEntry fid="2169" name="MID_PCT_CH" dataType="Real" value="-0.1344200000"FieldEntry fid="14202" name="MIDLO1_MS" dataType="Time" value="18:11:24:204:000:000"FieldEntry fid="4990" name="MID_PRICE1" dataType="Real" value="87.0625"FieldEntry fid="12924" name="ASK_TICK1" dataType="Enum" value="3"FieldEntry fid="10527" name="AMERNC_BID" dataType="Real" value="-0.203125"FieldEntry fid="7031" name="QTE_NUMMOV" dataType="Int" value="431"FieldEntry fid="12921" name="BID_TICK1" dataType="Enum" value="2"FieldEntry fid="213" name="MKT_SOURCE" dataType="Enum" value="118"FieldListEndPayloadEnd