question

Upvotes
Accepted
5 1 1 6

How to process HKEX Broker Feed in EMA style ?

We access the HKEX Broker Queue Page in EMA style.

The RefreshMsg format in EMA looks like:

RefreshMsg
    streamId="5"
    domain="MarketPrice Domain"
    solicited
    RefreshComplete
    state="Open / Ok / None / 'All is well'"
    itemGroup="00 03"
    permissionData="03 01 a9 49 48 c0"
    name="0700bk.HKd"
    nameType="1"
    serviceId="425"
    serviceName="hEDD"
    Payload dataType="FieldList"
        FieldList FieldListNum="82" DictionaryId="1"
            FieldEntry fid="1" name="PROD_PERM" dataType="UInt" value="4948"
            FieldEntry fid="2" name="RDNDISPLAY" dataType="UInt" value="151"
            FieldEntry fid="3" name="DSPLY_NAME" dataType="Rmtes" value="TENCENT"
            FieldEntry fid="15" name="CURRENCY" dataType="Enum" value="(blank data)"
            FieldEntry fid="259" name="RECORDTYPE" dataType="UInt" value="121"
            FieldEntry fid="315" name="ROW80_1" dataType="Rmtes" value="TENCENT          <0700.HK> <HKBK01>                                   0700bk.HKd"            
            FieldEntry fid="316" name="ROW80_2" dataType="Rmtes" value="        BID                    ASK                                              "
            FieldEntry fid="317" name="ROW80_3" dataType="Rmtes" value=" 6898  8306  8306  6699 |  3286  6387  1450   +3s                               "
            FieldEntry fid="318" name="ROW80_4" dataType="Rmtes" value=" 5359  8303  5998  4821 |  1836  8037  3439  6997                               "
            FieldEntry fid="319" name="ROW80_5" dataType="Rmtes" value=" 5998  8467  1298  8308 |  8020  3439  5465  5998                               "
            FieldEntry fid="320" name="ROW80_6" dataType="Rmtes" value=" 8564  5998  5998  8303 |  3289  1836  6699  0747                               "
            FieldEntry fid="321" name="ROW80_7" dataType="Rmtes" value=" 5999  8304  5999  8307 |  5339  5337   +2s  0747                               "
            FieldEntry fid="322" name="ROW80_8" dataType="Rmtes" value="  -1s  6999  5999  6728 |  3439  0346  8734  1929                               "
            FieldEntry fid="323" name="ROW80_9" dataType="Rmtes" value=" 1048  8965  6997  8301 |  1048  3439  0746  4978                               "
            FieldEntry fid="324" name="ROW80_10" dataType="Rmtes" value=" 8468  6825  6997  6996 |  8698   +1s  1049  7769                               "
            FieldEntry fid="325" name="ROW80_11" dataType="Rmtes" value=" 6999  8185  6999  6997 |  7355  3439  3347  8197                               "
            FieldEntry fid="326" name="ROW80_12" dataType="Rmtes" value=" 5999  5882  2246  6699 |  7389  0746  4973   +4s                               "
            FieldEntry fid="327" name="ROW80_13" dataType="Rmtes" value="                                                                                "
            FieldEntry fid="1080" name="PREF_DISP" dataType="UInt" value="(blank data)"
            FieldEntry fid="1671" name="GN_TX20_7" dataType="Rmtes" value="********************"
            FieldEntry fid="1672" name="GN_TX20_8" dataType="Rmtes" value="********************"
            FieldEntry fid="1673" name="GN_TX20_9" dataType="Rmtes" value="********************"
            FieldEntry fid="1709" name="RDN_EXCHD2" dataType="Enum" value="(blank data)"
            FieldEntry fid="3422" name="PROV_SYMB" dataType="Rmtes" value="(blank data)"
            FieldEntry fid="3694" name="MNEMONIC" dataType="Rmtes" value="700"
            FieldEntry fid="5357" name="CONTEXT_ID" dataType="Real" value="2416.0"
            FieldEntry fid="6401" name="DDS_DSO_ID" dataType="UInt" value="4097"
            FieldEntry fid="6480" name="SPS_SP_RIC" dataType="Ascii" value=".[SPSHKPL1"
        FieldListEnd
    PayloadEnd
RefreshMsgEnd

The UpdateMsg format in EMA looks like:

UpdateMsg
    streamId="5"
    domain="MarketPrice Domain"
    updateTypeNum="1"
    name="0700bk.HKd"
    serviceId="425"
    serviceName="hEDD"
    Payload dataType="FieldList"
        FieldList
            FieldEntry fid="317" name="ROW80_3" dataType="Rmtes" value="8468  7389  0759  11908037   +1s  3279  7126"
            FieldEntry fid="318" name="ROW80_4" dataType="Rmtes" value="7365  9069  7389  66997389  1048  1836  1838"
            FieldEntry fid="319" name="ROW80_5" dataType="Rmtes" value="9068  1195  5333  59395344  7358  8022  4973"
            FieldEntry fid="320" name="ROW80_6" dataType="Rmtes" value="7365  7389  6123  28461836   +1s  5465  1836"
            FieldEntry fid="321" name="ROW80_7" dataType="Rmtes" value="7389  9028  8565  73899069  8024  3439  002"
            FieldEntry fid="322" name="ROW80_8" dataType="Rmtes" value="4499  1190  7389  59997389   +1s  0027  8397"
            FieldEntry fid="323" name="ROW80_9" dataType="Rmtes" value="8468  4098  3279  69977389  0747  6389  3289"
            FieldEntry fid="324" name="ROW80_10" dataType="Rmtes" value="7369  6387  4495  738s5467  1048   +2s  6387"
            FieldEntry fid="325" name="ROW80_11" dataType="Rmtes" value="5359  4978  5998  73898027  4973  1049  8044"
            FieldEntry fid="326" name="ROW80_12" dataType="Rmtes" value="6898  8117  7389  44893278  5999  1450  5465"
        FieldListEnd
    PayloadEnd
UpdateMsgEnd
UpdateMsg
    streamId="5"
    domain="MarketPrice Domain"
    updateTypeNum="1"
    name="0700bk.HKd"
    serviceId="425"
    serviceName="hEDD"
    Payload dataType="FieldList"
        FieldList
            FieldEntry fid="317" name="ROW80_3" dataType="Rmtes" value="7389  8117  7389  638"
            FieldEntry fid="318" name="ROW80_4" dataType="Rmtes" value="5359  4978  5998  7"
            FieldEntry fid="319" name="ROW80_5" dataType="Rmtes" value="8468  7389  0759  1190"
            FieldEntry fid="320" name="ROW80_6" dataType="Rmtes" value="7365  9069  7389  6699"
            FieldEntry fid="321" name="ROW80_7" dataType="Rmtes" value="9068  1195  5333  59"
            FieldEntry fid="322" name="ROW80_8" dataType="Rmtes" value="7365  7389  6123  2846"
            FieldEntry fid="323" name="ROW80_9" dataType="Rmtes" value="7389  9028  8565  7389"
            FieldEntry fid="324" name="ROW80_10" dataType="Rmtes" value="4499  1190  7389"
            FieldEntry fid="325" name="ROW80_11" dataType="Rmtes" value="8468  4098  3279  6997"
            FieldEntry fid="326" name="ROW80_12" dataType="Rmtes" value="7369  6387  449"
        FieldListEnd
    PayloadEnd
UpdateMsgEnd


We need to transfer the broker id in Broker Queue Page into separated one.

But the RFA processing method seems not work for EMA:

https://community.developers.refinitiv.com/questions/13002/how-to-interpret-hk-broker-feed.html


And we could not found tutorial or document about it.

Please help me on this case.

Thank you.

elektronrefinitiv-realtimeelektron-sdkrrtema-api
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
Accepted
25k 87 11 23
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Thanks for your reply.

According to this article, we have to maintain some RmtesBuffer objs for each page.

So it seems we have to rebuild the whole page into string to get brokers which means potential heavy GC load.

It is there any way to make this process more efficiency ?

Hi,I looked at the article and found that strings are extracted from FID, not brokerId

UpdateMsg

streamId="6"

domain="MarketPrice Domain"

updateTypeNum="1"

name="8429bk.HKd"

serviceId="257"

serviceName="ELEKTRON_DD"

Payload dataType="FieldList"

FieldList

FieldEntry fid="317" name="ROW80_3" dataType="Rmtes" value="-9s "

FieldEntry fid="318" name="ROW80_4" dataType="Rmtes" value=" -14s"

FieldEntry fid="319" name="ROW80_5" dataType="Rmtes" value="-10s "

FieldEntry fid="320" name="ROW80_6" dataType="Rmtes" value=" -15s"

FieldEntry fid="321" name="ROW80_7" dataType="Rmtes" value="-11s"

FieldEntry fid="322" name="ROW80_8" dataType="Rmtes" value="6259"

FieldEntry fid="323" name="ROW80_9" dataType="Rmtes" value="-7s 1836 1836"

FieldEntry fid="324" name="ROW80_10" dataType="Rmtes" value=" -12s 2299"

FieldEntry fid="325" name="ROW80_11" dataType="Rmtes" value="-8s 1836 -16s"

FieldEntry fid="326" name="ROW80_12" dataType="Rmtes" value=" -13s 8463"

FieldListEnd

PayloadEnd

UpdateMsgEnd

This is the information I received on how to extract it. I also noticed that the rules of the messages I received were different


Upvotes
3 0 0 1

another msg 微信图片_20220725175417.jpgThis causes the offset method to be ungeneric



icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.