Imported from previous forum
we are implementing market data solution, in which we will providing market data to the clients. As per my understanding of FAST only privious values of message for a perticular template.
Now in case i am sending message like
IBM| 250| 155144| 989
MSFT| 200| 322| 890
IBM| 251| 155144 |989
now in above case first time i will send data for IBM in next MSFT which has different from first message now i need to send IBM again which is very simalar to my first message for IBM but while encoding message 3 i will get privious values as MSFT and which is very different from my privious message.
is that implies that FAST can give optimization if you have similar messages in sequence.
Please suggest.
If I understand you correctly you are asking about the level of optimization depending on the sequence of messages. There are multiple aspects to this and I am afraid there is no clear answer to this.
Firstly, it is important whether you send reliable (e.g. TCP/IP) or not, e.g. via multicast. In the latter case, optimization is only possible within each network packet and the first message in such a packet is always complete, i.e. w/o optimization.
Secondly, it is relevant whether you have more than one stream (IP-address) over which you send out data. If you do not, you can only increase optimization by ordering the messages. This might be undesirable depending on your latency requirements. Do you want to hold back MSFT data just to have the two IBM records come in sequence?
If you have multiple streams available and only VERY few instruments, you can choose to send data for each instrument down a separate stream.
You can also use a different template for each instrument and establish context for “previous” by means of the template. MSFT then comes with a different template ID and does not destroy the previous state for IBM. There is no restriction to only have a single template per FIX message type in FAST.
Another option is to send out reference data ahead of your market data with synthetic IDs for your instruments (e.g. IBM=1, MSFT=2). Your market data can then just contain “1” or “2” instead of “IBM” or “MSFT”.
All options have pros and cons, it heavily depends on your volume, latency and breadth of market data.
Regards,
Hanno.
we are implementing market data solution, in which we will providing
market data to the clients. As per my understanding of FAST only
privious values of message for a perticular template.Now in case i am sending message like
IBM| 250| 155144| 989
MSFT| 200| 322| 890
IBM| 251| 155144 |989
now in above case first time i will send data for IBM in next MSFT which
has different from first message now i need to send IBM again which is
very simalar to my first message for IBM but while encoding message 3 i
will get privious values as MSFT and which is very different from my
privious message.is that implies that FAST can give optimization if you have similar
messages in sequence. Please suggest.
Thanks for your post its helpful,
We were thinking on same lines to keep seperate templates for IBM and MSFT but is’t it a modification to the common implementation of FAST, as i have gone through saveral samples and examples nobody has the answer to this. Are there people who faced such problem.
Ayub Sayyad