Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

Schwab driver seems to get stuck on reversal orders

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Schwab driver seems to get stuck on reversal orders

    A reversal order is where one exits out of a position with more shares than are in the position, to enter in the other direction. So, if I was long 1 share, and I sell 2 shares, now I am short 1 share, all in a single order. This can have real cost efficiency benefits, depending on the situation.

    This works in simulator and it used to work in TDA (once you called them and turned on a setting in your account).

    I cannot get it to work so far in the Schwab driver.

    The reversal order gets Accepted, and sometimes it goes into Working. But I've never seen it get filled. It seems like order just stalls out when the price hits it, and is no longer responsive, either from the broker side or from my API calls.

    After it goes into this state, attempts to change the order get an error: "Flatten or Reverse Orders can't be replaced."

    Is this a known issue?

    Cheers.

    P.S. I will test manually in the NT8 and ToS client UIs on Monday, when the market is open, to collect more info. I'm also sort of curious if there is anything that needs to be done on the Schwab account side to enable these kinds of trades.

    #2
    Hello carnitron​,

    Thank you for reaching out.

    The Schwab connection adapter is currently in Beta and our development team is working on implemeting more fixes soon.

    Please send in your log and trace files so that we may look more into what may be occurring in your case.

    This will allow us to troubleshoot, or report it to our development team.

    You can do this by going to the Control Center-> Help-> Email Support

    Make sure to categorize your request at the top.

    Ensure 'Log and Trace Files' is checked will include these files. This is checked by default.

    If you could also provide a screenshot of what you are seeing, that would be appreciated.

    Thanks in advance, we look forward to helping resolve this issue for you.​
    Erick P.NinjaTrader Customer Service

    Comment


      #3
      So the plot thickens. Additional info:

      1. It is definitely possible to do reversal orders in Think or Swim:

      Click image for larger version  Name:	image.png Views:	0 Size:	21.6 KB ID:	1333415

      2. It appears possible to do reversal orders in the NT8 client, too. But we get two separate orders under the covers. It appears that we have a single "normal" order for half of the reversal order, and then a 2nd order called "External" from the broker(?). This has me thinking that the implementation relies on some kind of chaining mechanism that implements reversal orders as two separate orders.



      So now I find myself wondering if I need to catch this External order separately somehow in my AddOn. (I have seen them before in the logs, but had not dug into it far enough, b/c I wasn't sure yet that it was related to reversal orders and not some other unexpected behavior. That said, I have also seen "hung" reversal orders w/out the presence of any External orders.)

      Can you confirm that this two-part reversal order mechanism is the intended implementation?
      Last edited by carnitron; 02-03-2025, 01:24 PM.

      Comment


        #4
        I hope it isn't. Splitting this out into two separate orders defeats the purpose of doing the reversal order in the first place, since we don't get the turnaround in the same tick. I.e. this implementation is no different than simply exiting the first trade and starting a new, separate trade in the opposite direction.

        Can you clarify? Is this a Schwab limitation or an NT8 implementation detail that could be improved?

        Does anyone else have guidance here on best practices with reversal orders from their experience trading other backends or platforms?

        Comment


          #5
          Ok, after fiddling around with this more, and attempting to more clearly characterize what I am seeing, I have logged a support request.

          We probably have to take this one step at a time, b/c I am seeing that even simple exit orders get stuck, not just reversal orders.

          I sent in a run that shows a situation where I cannot change a limit sell order from $109.78 to $109.80, even the the price is at $109.76. Why?

          Once an order becomes "stuck" like this, it seems as if it cannot be changed again, though it can be filled if the price manages to get to the limit that it is stuck at.

          Just to confirm, can I know that an order change is successful if I get an OrderState.Working returned in OnOrderUpdate() with no error accompanying it?

          Also, do you have any guidance on what specifically the error "Order instruction cannot be replaced" means or when it occurs?

          Thanks for any help you can provide.

          P. S. This is with an AddOn I have written. The code is pretty robust at this point and runs basically indefinitely without issue against the Simulated Data Feed.
          Last edited by carnitron; 02-08-2025, 04:14 PM.

          Comment


            #6
            Hello carnitron ​,

            Thank you for your message.

            We have received your log and trace files and will follow up after our investigation.

            Thank you for your patience and let us know if you have any other questions in the meantime.
            Erick P.NinjaTrader Customer Service

            Comment


              #7
              Ok, great thank you.

              "let us know if you have any other questions in the meantime."

              Well, I do have a number of unanswered questions in the thread above. If you could answer any of those it would be great. I've summarized them here:

              1. Can you confirm that this two-part reversal order mechanism is the intended implementation for Schwab?
              2. Can you clarify if this two-part mechanism is a Schwab limitation or an NT8 implementation detail that could be improved?
              3. Do you have guidance on best practices with reversal orders from other backends?
              4. Just to confirm, can I know that an order change is successful if I get an OrderState.Working returned in OnOrderUpdate() with no error accompanying it? (Getting an Accept is clearly not sufficient.)
              5. Do you have any guidance on what specifically the error "Order instruction cannot be replaced" means or when it occurs?

              Thank you for any help you can provide.
              Last edited by carnitron; 02-07-2025, 01:05 PM.

              Comment


                #8
                BTW, I have characterized this further now that I know what is happening and have my code adapted to survive and continue on past it when it happens. It's quite common and is probably a show-stopper. Basically, changing orders pretty frequently doesn't work, from what I see.

                Comment


                  #9
                  FWIW, I talked to an L2 trader at Schwab today and they confirmed they can execute limit reversal orders from the ToS client and that these are handled as a single order. So it seems like the Schwab backend can handle it.

                  Comment

                  Latest Posts

                  Collapse

                  Topics Statistics Last Post
                  Started by algospoke, 03-12-2025, 07:41 PM
                  4 responses
                  43 views
                  0 likes
                  Last Post algospoke  
                  Started by clarocque1, Today, 06:18 PM
                  0 responses
                  5 views
                  0 likes
                  Last Post clarocque1  
                  Started by clarocque1, Today, 06:17 PM
                  0 responses
                  4 views
                  0 likes
                  Last Post clarocque1  
                  Started by clarocque1, 03-23-2025, 08:17 AM
                  4 responses
                  27 views
                  0 likes
                  Last Post clarocque1  
                  Started by Artorias, Today, 05:22 PM
                  0 responses
                  9 views
                  0 likes
                  Last Post Artorias  
                  Working...
                  X