I have an idea. How can I implement it?

Discussion in 'Automated Trading' started by ndisgiiet, Apr 2, 2021.

  1. terr

    terr

    I am pretty sure that a couple of our customers got notifications from TDA about the 390 rule, and they were trading stocks. The easiest way is to ask the brokerage directly.
    Again, someone may correct me, but AFAIU liquidity is provided by market orders, not by limit orders.

    Think about it. Each trade represents a limit buy or sell offer matched by a market sell or buy offer. And the limit offer will sit there forever unless a market offer comes along. Thus it is the market order that greases the skids of the market and moves it along.

    (For the purposes of the above, a limit buy above the current best ask is effectively a market buy).
     
    Last edited: Apr 3, 2021
    #41     Apr 3, 2021
  2. terr

    terr

    On the 390 average rule - I looked around and I only see it for options although I did see this

    https://www.cboe.com/us/equities/trading/offerings/retail_priority/

    Priority benefits will be offered exclusively to Retail Orders, as defined in Rule 11.21(a)(2), that are entered on behalf of retail investors that does not place more than 390 equity orders a day on average during a calendar month for its own account(s).
     
    #42     Apr 3, 2021
  3. dholliday

    dholliday

    ndisgiiet,
    The open price that you see in your data is not necessarily the same as the first price traded after 9:30. It can be the price that people got when they placed a special order to buy at the open. This type of order is placed well before the market opens and the buy and sell orders are aggregated and matched to one price. I forget what this is called. Someone needs to explain this. I think you can only execute this order type on NYSE stocks, but they are some of the most liquid. The price you see in your data can on occasion be way off from the price you see in real-time.
    Liquidity disappears fast as you go down your list of 3000 stocks. I filter on stocks with a volume of over 750,000 shares/day and a price of over $10. Maybe 1000 stocks left. Even with this some of these stocks will not trade even a single share on some days.
    Lots of stocks will not trade for many minutes after the open.
    Anyway, IB has a good paper trading account. The fills are realistic and average out.
    Trading only 1 or 2 shares is a good idea. Don't lose your money. You can set up your account in such a way as to have fees less than the $1 minimum. I often have fees of around $0.50 on odd lots. (It costs more if you are trading large volumes).
    All just my opinion.
     
    #43     Apr 3, 2021
  4. terr:
    Thanks for the continued info on the 390 rule. I will dig deeper on that for sure and I will also dig deeper on the AFAIU liquidity topic. Thank you for all your thoughts.

    dholliday:
    "Liquidity disappears fast as you go down your list of 3000 stocks. I filter on stocks with a volume of over 750,000 shares/day and a price of over $10. Maybe 1000 stocks left. Even with this some of these stocks will not trade even a single share on some days."

    This worries me a bit. Now of course I do realize that I am going to want higher volume to make sure that orders will be filled, but I did not expect to hear that with a stock trading at an average volume of 750k could perhaps not fill a single share on some days. Very surprising indeed. I suppose that missing out on a few stocks due to this issue might not hurt me too bad in the grand scheme of things, but I don't know for sure.

    What are some of the things that you can do to get the fees under $1 at IB if you don't mind me asking?

    By the way, "Trading only 1 or 2 shares is a good idea." is the first positive comment so far about my strategy/idea, so thank you for that! Even if it turns out to be a bad one in the end, the positivity is nice to hear :)
     
    #44     Apr 3, 2021
  5. OK, so doing a bit more general reading, it looks like if I were to try and implement this strategy, technically one of the issues might be the amount of API calls that I can make per minute. I don't fully grasp this yet, so please bear with me. Lets assume I use someone that has a API limit of 200/minute. Does that mean that I could only execute 200 orders per minute? Is there a way to combine an order of multiple stocks in to one API call? Does scanning for the stocks I want to pick use the API calls as well? For example, does scanning all stocks to find my picks use 5000 (or how ever many stocks there are that day) calls? Or lastly, do API calls have nothing to do with what I am trying to accomplish lol?
     
    #45     Apr 4, 2021
  6. terr

    terr

    It depends on the API. Some APIs (usually the REST ones) impose various per-minute throttles on some API calls. Some (usually the Websocket ones) do not.
     
    #46     Apr 4, 2021
  7. OK thank you. So I need to look for Websockets.
     
    #47     Apr 4, 2021
  8. dholliday

    dholliday

    I have systems that I do the setup calculations the night before. For example:
    1) You are only interested in stocks that are in an uptrend (or any other TA measures)
    2) You want the price to gap up greater than x%. This will trigger your trade.
    Do the calculations the night before and write the results to a file.
    IBM,140.5
    TSLA,700
    etc.
    This file includes only symbols that pass your TA filters, along with the value(s) needed to trigger a trade (you know the close the night before).
    The next morning you load the file and only watch the symbols in the file. The logic for each system is only looking for the price opening above the pre-calculated value in the file.

    Next, you start your system well before the market opens and subscribe to only the symbols you need to watch. You can start your subscriptions at a rate your data service allows and be running when the market opens.
    I don't remember what IBs order rate is but it's something like no more than 60/second. It's actually a little different but it's not important here. So put a tiny pause between sending each order.

    I don't know what IBs data request rate is because I use DTN IQFeed. At some point, you may want to look into them and/or polygon.io.

    Selling at the close is somewhat the same. You may need to space your close orders.

    You may find that you do not get filled if you place your order too close to 4:00. I close a few minutes before.

    I have no idea what your system(s) are but there is nothing wrong with watching lots of symbols for very specific triggers.
     
    #48     Apr 4, 2021
  9. dholliday:
    Excellent ideas and info. Thank you for taking the time to share. I have so much to learn still and much research left to do, but I'll get there.
     
    #49     Apr 4, 2021
  10. dholliday

    dholliday

    I got some of that wrong. DTN data request rate is approx. 60/sec. I don't know what/if IB has an order submission rate.
     
    #50     Apr 4, 2021