Deleting a given field

Imported from previous forum

Hi,

suppose I want to encode a particular field as “deleted”, what would be the standard(generic) FAST way to achieve it?

Thanks,
Dimitry

Not sure what you mean by deleted. Do you mean that the field was there in one version of the template but not in anotherone? Or do you mean that the value of the field is not there anymore in a particular stream? Or do you mean something else?

If it is the value that is not there anymore, you should mark the field as having optional presence in the template and then you encode NULL when you don’t have a value.

If the field is not in the template anymore, then there is no formal way of expressing it (other than leaving it out obviously) and you have to convey this fact by other means.

/David

Hi,

suppose I want to encode a particular field as “deleted”, what would be
the standard(generic) FAST way to achieve it?

Thanks, Dimitry

Thanks, David.

Let me clarify what I meant with a specific example. In case of Market Data Level2 a price for a given level may be deleted - so the price no longer exists. This is different from FAST NULL value where NULL means an absence of a field in a stream instead of the field itself being deleted.

For Market Data Level2, FIX allows to use “Delete” action. However, I was looking for a general way to specify a deleted field (which is somewhat equivalent to the field being NULL in a database world).

Dimitry

Not sure what you mean by deleted. Do you mean that the field was there
in one version of the template but not in anotherone? Or do you mean
that the value of the field is not there anymore in a particular stream?
Or do you mean something else?

If it is the value that is not there anymore, you should mark the field
as having optional presence in the template and then you encode NULL
when you don’t have a value.

If the field is not in the template anymore, then there is no formal way
of expressing it (other than leaving it out obviously) and you have to
convey this fact by other means.

/David

Hi,

suppose I want to encode a particular field as “deleted”, what would
be the standard(generic) FAST way to achieve it?

Thanks, Dimitry

Hi Dimitry,

I am a little concerned that functional and technical aspects are mixed in the example you give. If you use FAST outside of FIX it is not an issue. However, within FIX, the incremental message is the one informing about deletions of price levels by using tag 279 (MDUpdateAction) with a value of “2” representing “delete”. You explicitly describe the delete action. Are you suggesting instead to use the snapshot message and implicitly conveying that one of the price levels is no longer present by sending an “empty” row? I do not understand how you want to model this with the FIX messages.

Regards,
Hanno.

Thanks, David.

Let me clarify what I meant with a specific example. In case of
Market Data Level2 a price for a given level may be deleted - so the
price no longer exists. This is different from FAST NULL value where
NULL means an absence of a field in a stream instead of the field
itself being deleted.

For Market Data Level2, FIX allows to use “Delete” action. However, I
was looking for a general way to specify a deleted field (which is
somewhat equivalent to the field being NULL in a database world).

Dimitry

Not sure what you mean by deleted. Do you mean that the field was
there in one version of the template but not in anotherone? Or do you
mean that the value of the field is not there anymore in a particular
stream? Or do you mean something else?

If it is the value that is not there anymore, you should mark the
field as having optional presence in the template and then you encode
NULL when you don’t have a value.

If the field is not in the template anymore, then there is no formal
way of expressing it (other than leaving it out obviously) and you
have to convey this fact by other means.

/David

Hi,

suppose I want to encode a particular field as “deleted”, what would
be the standard(generic) FAST way to achieve it?

Thanks, Dimitry

Hi, Hanno,

I mean that I can use standard incremental refresh message and specify action=“Delete” and corresponding Level2 fields (price, size, level,etc). After this message is decoded, these fields will be deleted from my internal data structure which is the eventual format used in my application with FIX being a transient format.

While I can do this for Level2 fields, I am wondering what approach to use for Level1 data.

thanks,
Dimitry

Hi Dimitry,

I am a little concerned that functional and technical aspects are mixed
in the example you give. If you use FAST outside of FIX it is not an
issue. However, within FIX, the incremental message is the one informing
about deletions of price levels by using tag 279 (MDUpdateAction) with a
value of “2” representing “delete”. You explicitly describe the delete
action. Are you suggesting instead to use the snapshot message and
implicitly conveying that one of the price levels is no longer present
by sending an “empty” row? I do not understand how you want to model
this with the FIX messages.

Regards, Hanno.

Thanks, David.

Let me clarify what I meant with a specific example. In case of Market
Data Level2 a price for a given level may be deleted - so the price no
longer exists. This is different from FAST NULL value where NULL means
an absence of a field in a stream instead of the field itself being
deleted.

For Market Data Level2, FIX allows to use “Delete” action. However, I
was looking for a general way to specify a deleted field (which is
somewhat equivalent to the field being NULL in a database world).

Dimitry

Not sure what you mean by deleted. Do you mean that the field was
there in one version of the template but not in anotherone? Or do
you mean that the value of the field is not there anymore in a
particular stream? Or do you mean something else?

If it is the value that is not there anymore, you should mark the
field as having optional presence in the template and then you
encode NULL when you don’t have a value.

If the field is not in the template anymore, then there is no formal
way of expressing it (other than leaving it out obviously) and you
have to convey this fact by other means.

/David

Hi,

suppose I want to encode a particular field as “deleted”, what
would be the standard(generic) FAST way to achieve it?

Thanks, Dimitry