Help Center Blog Open An Account

When "Bail Me Out!" Doesn't Work


A war story from today’s trenches that might be educational to other traders and could apply across different platforms. SierraChart has a “Flatten and Cancel” feature as do all software programs. It’s the “bail me out!” option that exits your trade at the market and cancels your stop-loss and profit target orders (which, like many traders, I set as OCO i.e. one cancels the other). SierraChart has a settings option which you can toggle on/off called “Hold Market Order Until Pending Cancel Orders Are Confirmed”. I have always had it toggled off. I figured I don’t want any delay on the market order when I push the “bail me out” button. Why a trader might want to toggle it on is explained at this link. But keep reading because I’ll give you another less obvious but bigger reason to toggle it on, that isn’t explained here:

MaxClipSize. How many topics do we read about this? Not many. It’s the number of contracts your FCM and technology provider set as the maximum you can have at any given moment in time. It is set per symbol. If your MaxClipSize is 5 contracts in the E-Mini S&P (ES) and you try placing an order for 6 contracts your order will be rejected. I was trading at MaxClipSize in a contract today and I had an OCO profit and stop-loss. I use CQG as the order routing technology which in broker and software vendor speak means I was using ‘server-side OCO’ (a truly horrible expression that doesn’t explain things the way I understand them). I decided to bail on the trade. So I clicked Flatten and Cancel. The stop-loss and profit target were duly canceled but I was still in the trade! It didn’t exit the trade. When the “Bail Me Out!” button doesn’t work, the first reaction is the most logical and rational one. Use the F word a lot. Then scramble around cursing again because you never bothered putting the Buy Mkt and Sell Mkt options on the main screen. When finally flat, the next reaction is to curse the software vendor. The Flatten button doesn’t work! Only it does work and here’s what I learned. When MaxClipSize meets exchange-held-Orders meets flatten-before-you-cancel, you’d better only be trading <=50% of MaxClipSize or else you gotta problem. Confused? I was. Until I figured it out.

The starting point to ending the confusion is to talk the Queen’s English not the bizarre-speak of brokers and software vendors (my sense of humor is an acquired taste btw). There is no such thing as “orders held server side” (server side OCOs). It’s nonsense. If you place a profit target limit order at the CME and a stop-loss (actually a stop with limit) order at the CME, those two orders are two independent orders that reside at Globex, physically at Globex. They don’t “reside” anywhere else. And Globex has no clue whatsoever that when one gets filled you want the other canceled. It’s just two independent orders. For all Globex knows or cares, both of them could get filled. It’s CQG (& other technology providers) that holds the brains that knows to cancel one when the other is filled. “Server side OCO orders” would be better explained as CQG (and other technology providers) saying “in case your computer blows up, don’t sweat it. Globex only sees two independent orders but we’ll make sure one is canceled when the other is filled, while you focus on your fried computer.” I guess such speak is not as sexy at saying “server-side OCOs”. Anyway, to the story …

Here’s why the “Bail Me Out!” button failed. I was trading at MaxClipSize. Let’s say 5 contracts for the sake of illustration. I was short 5 contracts with a stop-loss for 5 contracts and a profit target of 5 contracts, both at Globex with CQG having the brains to know to cancel one when the other filled. Because I had toggled “Hold Market Order Until Pending Cancel Orders Are Confirmed” to be off, the software first tried to place a buy market order to bail me out of the 5 contracts before canceling the profit and stop-loss. That buy market order failed. I got a message from CQG saying that it was rejected because I would have been left with two orders that combined were double my MaxClipSize. I thought “huh?” But think about it. If I was allowed out of the trade, then it would have meant I was simultaneously left trying to buy 10 contracts (five for the stop-loss and five for the profit target). CQG knows it was OCO but it still looked at the 5+5 as Globex looked at them i.e. as two independent orders which combined was double my MaxClipSize. So I was “not allowed” to exit the trade because of CQG/FCM’s conservative risk management algorithms. I needed to first cancel the OCO and then exit the trade. Now, I have “Hold Market Order Until Pending Cancel Orders Are Confirmed” toggled on. I guess it means I suffer some latency before exiting but the only way to have that feature toggled off is to trade at <=50% of MaxClipSize.

To test this out, to prove I understood it correctly, I just tried an entry OCO that was 50%+1 contract of my MaxClipSize. Sure enough, the order was rejected. I understand why my FCM/CQG has done this. It’s a conservative approach to risk management. If there is a big news story such that there’s no time for one order to get canceled after the other is filled, you could end up with both orders being filled. That is how they are looking at MaxClipSize i.e. they don’t account for the OCO component. If you have no position in the market you will not be allowed to place an OCO order (using exchange-held orders) that is >50% of MaxClipSize. In my trade example I was “not allowed” to exit my position because it would have messed up how my FCM/CGQ looks at MaxClipSize. Their conservatism means the “Bail Me Out” feature simply won’t work if you are using native orders at the exchange & trading at MaxClipSize and you try to exit the trade without first canceling the OCO.

Moral of the story? If you are trading at >50% of MaxClipSize with native orders than you need to have your software program cancel the OCO before it tries to send the exit order. Otherwise you’ll be using the F word and it won’t actually be the software vendor’s fault. In fact, it won’t be anyone’s fault. You just need to know how these things work.