Understanding the Flat & Cancel Processes

With markets experiencing extremely high volatility, we feel it necessary to explain the process of Flattening a position or Cancelling all Orders. Or both!

First, let's consider a simple scenario. Imagine you press the buy market button. You would rightly expect an almost immediate long position to be created. But what if it doesn't? Do you keep clicking buy until one appears?

What goes on beneath the hood when you click buy is that the order goes through risk management & then to the exchange. If risk or the exchange doesn't like it, then you'll see a rejection error message. These do not come from Jigsaw but from the API (Rithmic, CQG, Tradovate etc.). We do pass them on though, which is why you see them. The norm is a margin issue. But If there's no message coming back, then in this wild market it often means a lag somewhere.

Jigsaw was designed to never show an order or a position until the exchange acknowledges it. Some platforms just show the order because you clicked a button. That's not in line with our philosophy. You shouldn't see something that isn't actually there.

With the Flat and Cancel buttons, the same thing happens. You click the button and messages go to risk/market. Most markets don't support Flat. So when you click Flat, we cancel any orders outstanding and then send a market order to close the position. It's just automating the cancel and exit. 

If the Flat messages we send to the market are not accepted, you'll see an error message on the platform immediately. If you click Flat and nothing happens immediately, then you have 2 possibilities. 

  1. There is a lag somewhere. Risk, Exchange, Internet - any could overload. We have of late seen 6-15 second lags in orders being acknowledged.
  2. Something went wrong (like a limit down) and your order can't be processed.

If there's no error messages, then continually creating new buy/sell orders via the Flat button or by manually trying to exit with new orders, you can stack up orders at Risk/Exchange side. Then when the bottleneck has been cleared, you find yourself in a position on the "other side" based on how many times you tried to get out. 

We've seen it a couple of times and have decided to mitigate it. To mitigate it, we will put a lock on the Flat button if you have clicked it once. It will only be unlocked when you are actually flat.

One thing we cannot do is disable the buy/sell buttons, so if traders decide to manually exit on a lag, then they could end up in a larger position on the other side. 

Our advice if you click Flat and see nothing is to be patient or call your broker. Patience would be no longer than 30 seconds, so you might want to just do both.

There is a lot of technology between the platform and the markets - platform, API, risk management, data feeds, the exchange. Any of them can glitch out or slow down. 

There's a "shared risk" philosophy at play in trading. You need to know how the markets work (like "FLAT" is not a supported order type but something synthetic) and the platforms need to keep you informed as long as the information is available.

This mitigation is proposed but not set in stone. We think it's a good move but will wait for feedback before we implement it. Either way, we'll keep you posted as we go, feel free to leave feedback here. 


We're giving away the 3 most powerful modules for free.

Leave a Reply