Screener real-time stock market data, using ib api and python.

Discussion in 'App Development' started by Ben3211, Nov 2, 2021.

  1. Ben3211

    Ben3211

    Hi everyone !

    I'm new in the game, struggling, stuck, and not ready to give up
    I tried promising things, but I failed, I need your advices.
    I'm using the native IB API and python.

    Target :
    Make a screener real-time data and handle those data.
    For example, I would like to be able to sort column (ascending, descending), and display or not rows if the stock answer to my criteria (uncluttered the table).

    Libraries:
    With Pandastable, I was able to display a screener, sort the column, but only with static data.
    Then I tried tkinter treeview, such a good tools as well, the screener was updating real-time data for each symbol. But I was not able to apply sort functions or remove the actions that did not answer to the criteria.

    Questioning:
    I need your experience and your advices to solve those issues.

    Is it possible to reach my target with the precedent libraries ?
    As well, I'm wondering if it's possible, but maybe harder, to go through a database ? SQLite ?
    Fetched real-time data, send them to the database, then read, treat and display data from the database to the screener ?

    Thanks !
    Have a nice day
    Ben
     
    Fx-Game likes this.
  2. thecoder

    thecoder

    This is not a trivial task. It takes time and resources.
    IMO such projects succeed only if in advance a good financing of everything that's necessary for the project is assured (ie. manpower, server(s), fast Internet connection(s), funds aka money, etc.).

    Have you already made the calculations for necessary storage space and bandwidth? These are the very basics to start with, IMO.
     
    Last edited: Nov 2, 2021
  3. d08

    d08

    IB isn't the right choice for this. You need a dedicated data provider.

    No need for most of that. It's doable as a one-man operation with some dedication and time. Money will be spent on the data itself and a cloud instance. You don't need physical servers or internet connectivity, it's not the 1990s.
     
    Ben3211 and TooEffingOld like this.
  4. Leob

    Leob

    If trading using screener is your stayle, you can buy one.
    You can use tradestation platform to customize screener and many other on the shelf solutions. If there is nothing unusual in your screener, save your time, focus on trading stuff.
    But if it's something special.. good luck and enjoy!
     
    Ben3211 likes this.
  5. terr

    terr

    It is a hassle to write all the infrastructure (like connecting to a data source, parsing the results and doing an efficient result processing architecture that won't bog down on a big data pipe).

    For example, if you do "fetch real-time data, send them to the [SQLite] database, then read, treat and display data from the database to the screener" that would introduce huge delays in processing the data. Just having SQLite as a middleman would make it very slow.

    There are wheels already invented and ready to use :)

    For example: Medved Trader will allow you to do real time screening on as many tickers as the data feed can handle, using logic as complex as you would like (and utilizing any of the pre-programmed indicators). For simple logic it is point and click, for more complex it is C#.
     
    Last edited: Nov 2, 2021
    Ben3211 and d08 like this.
  6. There is a good screener built into Thinkorswim (called Scan in the UI). Very configurable and operates on real-time data.
     
  7. 2rosy

    2rosy

    if you know what you're doing this is a trivial task. You can get you're data from ib and relay it to: influxdb, pipelinedb, timescale.com, apache pulsar or flink. Or write your own online algorithm for screening.
    Getting realtime data and loading into a relational db to then use SQL is :banghead:
     
    KGTrader and d08 like this.
  8. thecoder

    thecoder

    @d08, the project reminded me of an idea of mine I many years ago had in mind whereby I wanted to program a similar thing, but allow also own users to use/query the data, even going up to the level of offering brokerage-like services. Ie. then much more bandwidth and computing power is needed.
    Of course something more important came in-between and the idea had to be shelved... :)
    You are right, his requirements are not that much high and indeed can be done by just one dedicated programmer over a couple of weeks.
    Yes, an SQL DB is overkill and would slow things significantly; I would use in-memory DB, ie. computer should have much RAM, of course also depending on the # of tickers and barsize (or # ticks) etc.. etc.
    And regarding servers, yes I too was meaning Internet server(s) in the cloud, not at home.
     
    Last edited: Nov 2, 2021
  9. Leob

    Leob

    Like!!!, From a develop POV. So many changes in frameworks, tools, concepts..
    Happy to leave this behind me soon..
    :cool:
     
  10. What kind of data are you talking about? What kind of selection criteria do you want to use to rank the tickers?
    And with "real time" do you mean tick-by-tick price data? Or e.g. price every minute, hour, ...?
     
    #10     Nov 3, 2021
    thecoder and Ben3211 like this.