Login Page - Create Account

Support Board


Date/Time: Wed, 24 Apr 2024 15:39:08 +0000



I'm considering switching to your data from DTN iqfeed ...

View Count: 899

[2020-12-02 15:38:12]
Agent Orange - Posts: 36
First, let me say that I've been using Sierra Chart for many years (since 2008) and am very happy with it. (I am particularly pleased that Sierra Chart works well on linux with WINE since Windows 7 is the last version of Windows I ever intend to use.) I've been feeding Sierra Chart data from IB (for futures data) and from DTN iqfeed (for stocks and some indicators). However, DTN has gotten more and more expensive, so I think it's time for me to look into your data offerings, so I have a couple of questions:

1) Though I use Sierra Chart for charting, I have written my own software for some other analyses, and for this I pull the data from DTN Iqfeed via socket interface through their API. (I have to pay a yearly fee to have access to DTN's API for this, and this is one of the expenses I would love to shed if possible.) So my first question is: Is there an API through which I can connect my software to your data feed? (Preferably a socket connection from the programming language of my choice, but I can probably adapt to any API.) In particular, I need access to realtime tick by tick time and sales data on individual stocks and ETFs (and possibly futures if I also switch to your service for futures data.

************UPDATE: I HAVE FOUND THE ANSWER TO QUESTION #2 BY LOOKING AT YOUR DOCUMENTATION. I had not been able to access these indicators (e.g., TICK-NYSE) with Sierra Chart connected to DTN iqfeed, but by starting another instance of SC and connecting to SC Data I was able to access them, so this is, as I said, answered. So now I await an answer to question #1 above.

2) I used to rely on the TICK indicator coming from the NYSE, but for several years now I have found it grossly incorrect most of the time (at least as supplied by IB). DTN has several net tick indicators (for various exchanges) which they calculate on their own servers and update every second, and those I have found to be extremely reliable. So I'm wondering if your data feed has any such indicators already available or if you're considering implementing them. (I realize I could calculate these myself on a subset of the data, but the ones I have been using include all symbols, for example, on the NYSE or Nasdaq, so 500 symbols wouldn't be sufficient to calculate the full picture that I get from those indicators on DTN.)
********** UPDATE ************** Question #2 is no longer relevant as I found the answer.

If I can manage to switch to your data service, I will be any even happier customer, so I look forward to some guidance regarding these questions.

Thanks in advance,
A happy long time customer.
Date Time Of Last Edit: 2020-12-02 17:05:20
[2020-12-02 20:38:50]
Sierra Chart Engineering - Posts: 104368
1. Yes. Refer to:
Data and Trading Communications (DTC) Protocol Server

2. Have a look at this data feed:
Sierra Chart Market Statistics

Also be aware of all of the information here:
Sierra Chart Market Statistics: Market Statistics Calculations Compared to Other Data Services
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2020-12-08 17:26:19]
Agent Orange - Posts: 36
Thanks for pointing me in the right direction. Not only did it save me a lot of time, it looks like I should be able to make the switch from DTN iqfeed to your stock and market stats feed very soon since your protocol is so straightforward.

I did, however, in writing my initial test case, run into a time consuming issue which I think could be avoided by a small change in the DTC protocol documentation (or perhaps in the SC DTC server implementation):

I am, at the moment, using exclusively JSON, so I set the DTC server accordingly.
When I first sent my LOGON message to the DTC server, I saw in the SC message log that it had received my request, but I got nothing back until the server complained about not seeing a HEARTBEAT message within 20 seconds. I spent an embarrassingly long time trying to figure out why I was seeing no response, but thinking it might be a programming language incompatibility between C/C++ and Java, I eventually stumbled on an old but relevant support board post (Trying to run JAVA demo program | Post: 129218):
======================================
Sierra Chart Engineering [Direct Messages] - Posts: 91899 | Ending Date: 2021-04-05
Make sure you send a null terminator byte after that JSON message.

Otherwise, Sierra Chart is not going to process the received message and this is what we believe the problem is due to.
======================================

And, of course, once I sent that null terminator, I was back in business. It then also became clear that the SC DTC server sends a null terminator after each JSON message it sends.

It was trivial to append a null terminator to my messages and discard them from the sever messages once I knew about this requirement, but it seems to me it's a deviation from the DTC protocol as documented. I figured this whole thing might be related to zero terminated strings in C and C++, and I might have thought of that sooner except for the fact that my LOGON message was showing up in the SC log (meaning SC knew it had received a well formatted JSON string ending with a } but still wasn't responding).

So unless I missed something in the documentation (forgive me, if so), either the documentation should be changed to specify these null terminators as being required or the built in SC DTC server shouldn't look for them or send them out, and hopefully this will save others some time and make your excellent protocol even easier to use.

Thanks ...
[2021-02-01 20:23:05]
Agent Orange - Posts: 36
For the sake of anyone seeing this thread in the future, I want to point out that apparently I did miss something in the documentation of the DTC server specifications.

For both JSON encoding and JSON Compact Encoding, the DTC specification says, "Messages ... do not contain a size field like the binary encoding, and so each DTC JSON message object is separated with a null (8 bit numeric 0) terminator in the network data stream."

Perhaps this was added after I made the original post in this thread, but I kind of doubt it; I probably just didn't see it, and figured the end of a JSON message wouldn't have any termination other than the "} specified by the JSON spec itself. In either case, the DTC specification and the implementation in Sierra Chart are in agreement, so you'll want to make sure you deal with incoming null bytes and provide them when sending messages to the server.

To post a message in this thread, you need to log in with your Sierra Chart account:

Login

Login Page - Create Account