How should blank values be handled?

This is a general question with a specific case as example.

Should blank values in fields that normally should not be blank, be considered an error? Should we just ignore the field? Should it be 0 (or equivalent for the data type)?

In my particular case, I have an unspecified event that would normally represent a trade, except for the presence of a quote price & qty field that are blank. The easy solution would be to ignore fields with blank values in this case, but how general is this solution? Should it be a solution only for unspecified events? Any event? Any field? Any data type?

Stream RBU7-X7 --- RSSL_MC_UPDATE/RDM_UPD_EVENT_TYPE_UNSPECIFIED field values
TIMACT (5) 18:18:00:000:000:000
TRDTIM_1 (18) 18:18:00:000:000:000
ACT_TP_1 (270) Þ (2)
SC_ACT_TP1 (280) + (1)
TRDPRC_1 (6) 0.1323
PRIMACT_1 (393) 0.1323
NETCHNG_1 (11) 0.0062
SEC_ACT_1 (275) 0.0062
PRCTCK_1 (14) Þ (1)
ACVOL_1 (32) 1935
PCTCHNG (56) 4.92
NUM_MOVES (77) 1234
ASK (25) <<blank>>
ASKSIZE (31) <<blank>>
TRDVOL_1 (178) 38
SALTIM (379) 18:18:32:000:000:000
SEQNUM (1021) 63235757

Best Answer

  • Ypar
    Answer ✓

    So what I figured is that blank values can sometimes mean something. I still have not figured out what they would mean in my example above, but in other cases, they tell you indirect information about the data. E.g. For futures, a blank "number of orders" indicates an implied order.

    So my conclusion is that blank values should be ignored (as if the tag was not part of the data set) unless otherwise stated and the information they provide is needed.

Answers

  • Hi @Ypar

    You should never treat a blank field as zero.

    Blank field means you should clear the field, no value, just blank.

    The actual reason behind the clearing differs case by case. But in your particular case, you have to look at the bigger picture.

    RBU7-X7	Market Price	2017-07-18T18:18:30.098416602Z	UPDATE	UNSPECIFIED
    FID 25 ASK 0.1322
    FID 31 ASKSIZE 4
    FID 3264 PRC_QL3 339
    ...
    ...
    BU7-X7 Market Price 2017-07-18T18:18:32.717695993Z UPDATE UNSPECIFIED
    FID 5 TIMACT 18:18:00
    FID 18 TRDTIM_1 18:18:00
    FID 270 ACT_TP_1 2
    FID 280 SC_ACT_TP1 1
    FID 6 TRDPRC_1 0.1322
    FID 393 PRIMACT_1 0.1322
    FID 11 NETCHNG_1 0.0061
    FID 275 SEC_ACT_1 0.0061
    FID 14 PRCTCK_1 1
    FID 32 ACVOL_1 1897
    FID 56 PCTCHNG 4.84
    FID 77 NUM_MOVES 1233
    FID 178 TRDVOL_1 4
    FID 379 SALTIM 18:18:32
    FID 1021 SEQNUM 63235757
    RBU7-X7 Market Price 2017-07-18T18:18:32.718579330Z UPDATE UNSPECIFIED
    FID 5 TIMACT 18:18:00
    FID 18 TRDTIM_1 18:18:00
    FID 270 ACT_TP_1 2
    FID 280 SC_ACT_TP1 1
    FID 6 TRDPRC_1 0.1323
    FID 393 PRIMACT_1 0.1323
    FID 11 NETCHNG_1 0.0062
    FID 275 SEC_ACT_1 0.0062
    FID 14 PRCTCK_1 1
    FID 32 ACVOL_1 1935
    FID 56 PCTCHNG 4.92
    FID 77 NUM_MOVES 1234
    FID 25 ASK
    FID 31 ASKSIZE
    FID 178 TRDVOL_1 38
    FID 379 SALTIM 18:18:32
    FID 1021 SEQNUM 63235757
    RBU7-X7 Market Price 2017-07-18T18:18:32.718579330Z UPDATE UNSPECIFIED
    FID 25 ASK 0.1323
    FID 31 ASKSIZE 38
    FID 3264 PRC_QL3 339
    RBU7-X7 Market Price 2017-07-18T18:18:32.718579330Z UPDATE UNSPECIFIED
    FID 25 ASK 0.1324
    FID 31 ASKSIZE 13
    FID 3264 PRC_QL3 339

    The trade is filling two prices. You could see that the SEQNUM are the same.

    The blank was sent because this trade fills multiple prices.

  • Because it "fills multiple prices" makes no sense to me as a reason to add quote fields to a trade event, independently of their values. I see no sane justification there.

    Aside from that, what I am understanding from your response is that we should just ignore blank values as if the fields were not even present.