I am a developper at Walnut Algorithm I have some questions about Elektron via Websocket.
Today we use a delayed stream to test the service. For instance I can subscribe to /TOTF.PA but cannot subscribe to TOTF.PA. The problem is the stream appears to be JITConflated and I cannot see if the events will be effectively split as they are when we request extraction on TRTH.
1/ As the Elektron mechanism is to send only updates which occured in fields I wonder if we can receive all Quote and Trade events occuring in the same micro seconds (we can see this happens on TRTH datascope extraction) ?
2/ What is the best practice dynamically subscribe & unsubscribe to data with the websocket ? Get one websocket by instrument and keep the same when we have to subscribe to new instrument or use a new one for each subscription ?
3/ Also I would like to know how it works behind. I mean, does the websocket toggle in conflated mode if we don't call ReceiveAsync at a sufficent pace ? Or It is independent and messages are queued on server side ?
Hi @Laarni Evelyn Acierto.Santiago Its better to ask a single focused question so that we help you get an exact answer.
Your delayed service might not be carrying the real time instrument TOTF.PA. The websockets API is provided for the ease of use - in any environment and language of choice. It is unable to support the real time streaming updates for equity instruments, and hence the data is conflated. If you have a need to get real time tick-by-tick updates, please use the Elektron C++ or Java SDK.
A user can either keep the instrument stream open or close it if its no longer required. Any new instrument subscription has to be on a new request ID. An application should use a single websocket connection to connect to infrastructure and use it for all subscription needs.
Please see the follow up from client.
You said websocket is unable to support real time streaming updates for equities but is it able to manage real time for equity index future by any chance ?
Thank you in advance.
At this point in time all realtime data on Elektron Realtime in Cloud is conflated - Full Tick is not supported - regardless of which API is used to consume the data. Essentially the current conflation rate is all trade type events + 3 quotes a second if no trades take place.
If you want full tick data then you will need to connect to a deployed or hosted TREP with your API - Websocket or EMA - connecting to the ADS server configured for a full tick service.