Replicating IBKR Adaptive market orders

Discussion in 'Order Execution' started by nooby_mcnoob, Mar 25, 2022.

  1. mskl

    mskl


    This is Excellent! You can set out the floor and ceiling prices, increment and time delay.

    This would be helpful at IBKR. Yes, you could do this yourself but all cancel replace orders would be then counted. If done by the broker dealer (ie their ALGO) - only the parent order (1) is counted towards your daily count.
     
    #11     Mar 26, 2022
  2. I don't think it's that complicated. I had something like this in mind:

    Code:
    async def adaptiveMarketOrderBuy(order, ticker, isUrgent):
       order.limit = ticker.bid
       placeOrder(order)
       while not order.filled:
           await asyncio.sleep(0.1 if isUrgent else 1)
           if order.filled:
             break
           order.limit = order.limit + ticker.minTick
           updateOrder(order)    
    
     
    Last edited: Mar 26, 2022
    #12     Mar 26, 2022
  3. qlai

    qlai

    I’m curious if you could provide a use-case for such order from trader’s perspective? Adjustments only happen in one direction irrespective of underlying movement, so you just chase the bid/offer until you get hit? And if you don’t get hit, you don’t have a position. Are you trying to capture mis-pricing with this kind of order?
     
    #13     Mar 26, 2022
  4. This already exists at IBKR, see my link in the original post.
     
    #14     Mar 26, 2022
  5. mskl

    mskl


    In the options market - in the vast majority of cases, the posted prices are crap. This is precisely what the wholesalers want (wide spreads) - just waiting for investors to make mistakes. However, given the competition from this group (wholesalers) they are also waiting in the weeds with hidden markets. For example. lets say an option has the following NBBO:

    $5 bid $7 ask (typical spread is about $2 across the 1.3 million equity options)

    I guarantee you that there are better "hidden" markets within that posted NBBO

    Let's say you are a buyer and would be willing to pay $6.80 (for whatever reason). The way to generally get the best price (ie to find the best hidden offer) would be to bid $5.10 and increase the price by the minimum increment (likely .10). You may get filled at $5.20 (don't laugh) - but you also may get filled at $6.90. The bottom line is that this is really the only way to get the best price. This is why 75% + of the option trades in the market happen instantly as investors are generally overpaying on their purchases.

    Yes - clearly the underlying can get away from you as well and you have to take that into account.

    Am I trying to capture mis-pricing? I could be. In this case there might be another order on a different option that may drive this option higher and the reality is that I could actually arb this out by paying $6.20 so an algo to bid $5.10 with a ceiling of $6.20 with a .10 cent increase every second would be useful in a relatively stable underlying. It doesn't mean that you are going to get filled but this is how many of the arb books operate (I call it "pinging" the market to find the hidden liquidity)

    Or maybe I'm stuck in something and just want to get out without having to waste so many orders (cxl/replace)
     
    Last edited: Mar 26, 2022
    #15     Mar 26, 2022
    qlai and nooby_mcnoob like this.
  6. mskl

    mskl


    The Adaptive ALGO is not the same
     
    #16     Mar 26, 2022
  7. Oh you mean in terms of the parameters allowed. I think there are certain algorithms that let you set that, maybe look up the arrival price algo or the VWAP algos. Don't know if they work for options.
     
    #17     Mar 26, 2022