IQFeed vs Polygon.io

Discussion in 'Data Sets and Feeds' started by bergstyle, May 2, 2018.

  1. Thank you very very much. I also got in touch with their support and received prompt responses. I will try it out and keep you posted.

    Question 1 - Do they have Price Data (which is a derivative of Trades that contains Total Volume, trade count etc that happened on an Exchange)?

    I am okay with 1 second latency in market data. Is it worse than that?
    Are able to receive Level 1, Level 2 and trades or just Level 1 and trades?

    I am using C# to connect. They asked me to look at Subscribe in https://github.com/nats-io/csharp-nats

    I m learning NATS and pub sub as we go. Are you developing in C# or Java?

    This is what i developed so far after merging API docs with SUBscriber example from NATS:

    Question 2: Are you doing something similar to subscribe and listen to events. I am more used to IQfeed or other MD providers that provide an event to listen. Their codebase for me requires some understanding of how Pub-Sub messaging works (similar to ZMQ or NetMQ) that I am familiar with, please feel free to correct me if i am wrong

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using NATS;
    using NATS.Client;
    using System.Diagnostics;
    using System.Threading;

    namespace PolyIO
    {
    public class PolyIO
    {
    string[] servers = new string[3];

    int count = 1000000;
    string url = Defaults.Url;
    string subject = "foo";
    bool sync = false;
    int received = 0;
    bool verbose = false;

    public PolyIO()
    {
    servers[0] = "nats://nats1.polygon.io:30401";
    servers[1] = "nats://nats2.polygon.io:30402";
    servers[2] = "nats://nats3.polygon.io:30403";

    Options opts = ConnectionFactory.GetDefaultOptions();
    opts.Token = "DO NOT SHARE by Polygon";

    opts.Servers = servers;

    using (IConnection c = new ConnectionFactory().CreateConnection(opts))
    {
    TimeSpan elapsed = receiveAsyncSubscriber(c);

    }
    }

    private TimeSpan receiveAsyncSubscriber(IConnection c)
    {
    Stopwatch sw = new Stopwatch();
    Object testLock = new Object();

    EventHandler<MsgHandlerEventArgs> msgHandler = (sender, args) =>
    {
    if (received == 0)
    sw.Start();

    received++;

    if (verbose)
    Console.WriteLine("Received: " + args.Message);

    if (received >= count)
    {
    sw.Stop();
    lock (testLock)
    {
    Monitor.Pulse(testLock);
    }
    }
    };

    using (IAsyncSubscription s = c.SubscribeAsync(subject, msgHandler))
    {
    // just wait until we are done.
    lock (testLock)
    {
    Monitor.Wait(testLock);
    }
    }

    return sw.Elapsed;
    }


    }
    }
     
    #11     Jun 18, 2018
  2. There is aggregate (bar) data for 1s and 1min intervals, but it's not broken down by exchange. Level 1 and trades only. This is all answered in the documentation btw.

    Yes, it can be worse than that (I've seen over 30 seconds) when one of those glitches that I mentioned is occurring. Should be fixed at some point, but don't drop IQFeed yet.

    I will take a look at your code when I get home later.
     
    #12     Jun 18, 2018
  3. re: the code:

    I use the C lib so mine is a bit different, but you're on the right track by following the subscribe example. You'll need to modify it to be able to subscribe to multiple subjects at the same time ("T*" for trades, "Q*" for quotes, etc. - see the docs)
     
    #13     Jun 19, 2018
  4. Thank you very much cruisecontrol, I will try out polygon.io in the next couple of weeks and share my feedback.
    just wondering why you are switching from iqfeed to polygon. I had tried iqfeed against spryware a few years ago and it was missing data packets to a large extent. Also can they support Level 1 and Trades for the entire market?
     
    #14     Jun 19, 2018
  5. My primary is ActiveTick, I have never used IQFeed though I mostly hear good things about it. Compared to ActiveTick, data quality is what motivates me to switch to Polygon since the pricing is similar. The quality on the polygon realtime feed isn't all there yet, but at least it's being worked on. ActiveTick development has been dead stopped for years.

    About IQfeed, it's not an entire market feed. IIRC they charge $50/mo for 500 additional symbol lines. If you want the whole market through IQfeed it will cost a lot of $$.
     
    #15     Jun 19, 2018
  6. You can try out quotemedia - it is about $150 / month for 500 symbols.

    Issue 1: They have some server issues where if you dont consume the data fast enough the server kicks you out. the other problem i experienced is out of sync trades you mentioned in your other thread.
    Issue 2: They dont like you consuming large amounts of data

    ActiveTick never responded to any of my emails whatsoever.
     
    #16     Jun 19, 2018
  7. qlai

    qlai

    This is a standard feature ... if client is not able to read quick enough, data is buffered up on the server side wasting shared resources.
     
    #17     Jun 19, 2018
  8. Thank you very much - Makes sense.

    I was just hoping that they provided a disconnect event or an ability to see buffer size at regular intervals. Any how I was able to jump off the Market Data Thread, use multiple threads and resolve the issue.
     
    #18     Jun 20, 2018
  9. qlai

    qlai

    It will be useless ... once they close the connection, you will most likely loose all the buffered data, including the "logout" message. Basically, it's your responsibility to keep up and monitor :)
     
    #19     Jun 20, 2018
  10. arbitech

    arbitech

    Hi guys!

    put on production polygon this week from my server in new york....after years with iqfeed.

    here is what i saw:
    - polygon is clearly clearly faster than iqfeed, you can even see it visually....BUT, iqfeed data is cleaner.

    - polygon is faster until the market becomes crazy, then you can see on some symbols like GOOG, that its clearly delayed...its stop update a second or moore then re update. its happen when all instruments ticks together toward the close for example.

    So the advantage that polygon is fast, well located (at equinix NY4) is lost because they distribute all the feed, 8000 tickers. i talked to them (very good support), and their technology is not ready to have a per subscription ticker set, you must subscribe all...c'est dommage!

    - one another point is that i dont understand the choice of their techno. they use NATS, and from what i tested on my unix/java server located at 1.2 ms from equinix NY4, this nats suuuuuuucks...i dont understand why they dont give tcp/ip....also they provide, json, which also slower than parsing a simple string.

    recently i contacted BATS(cebo) to get direct feed from them for speed...they want 4k per month...few years ago, bats, was costing nothing....


    a question for AKTrader, about quotemedia, i see its a limited number of symbols. they claim to add one milliseconds for rebuilding the consolidated feed...what the speed really?
    from where location they send their feed?
     
    #20     Jul 13, 2018