Skip to content
All library documents

Execution Choices for Mid-Frequency Futures Strategies

Article Quant Q&A · Author: Neo

Summary

The document considers execution for a liquid-futures strategy that generates hourly signals and initially rests a limit order before switching to a market order. The trader reports substantial slippage and asks how to improve waiting times, limit prices, and other settings using historical tick data rather than costly live experimentation.

The answer frames execution around order size, latency, and price movement. Small orders relative to typical trade size may be sent immediately; larger orders should account for market impact in backtests. With meaningful latency, price levels can be adjusted to account for expected movement, and aggressive limit orders are offered as a way to seek execution while bounding price. A key concern is that waiting can produce adverse selection: fills may arrive when the market moves against the order, while a favorable move can force a later, worse execution. These are general heuristics, not a tailored solution; the discussion does not quantify latency, impact, or the system’s signal quality.

Key ideas

  • Execution choices should account for order size relative to typical trade size.
  • Large orders may create market impact that should be represented in backtests.
  • Latency can make the displayed best bid or ask stale before an order arrives.
  • Waiting limits can create adverse selection when fills occur during moves against the trade.

Tags

Full text
# Improve Trade Execution For Mid-Frequency Futures Systems


# Improve Trade Execution For Mid-Frequency Futures Systems












I know this is kind of a very open ended question but I am struggling with the following problem:

I have a futures trading system (operating on very liquid markets) that generates a prediction every hour. My current execution strategy starts with placing a limit order on the best bid or ask (depending on direction) and waiting for n minutes (currently 5) before the order switches to a market order. If within those 5min the price is moving too many ticks away, the algo immediately switches to a market order.

Let's assume for now that the best bid/ask size can usually absorb my order size.

I am constantly getting quite severe slippage of 2-4 times the spread. So I am wondering about some general approaches for improving an execution strategy.

First there would be the question on how to improve the parameters for the current execution algorithm (i.e. how long to wait, where to place the initial limit, etc.). Here, I already analyzed tick data and checked the statistics how often certain levels are hit, etc. From that I inferred the parameters for the live system. Since the live systems seems to execute worse than expected, I assume that my participating in the market is recognized and exploited.

Are there some general guidelines, books, papers that give hands-on advice on how to improve execution? Especially if some heuristics can already be learned from past tick data because testing every variation with real money is a bit expensive.

Thanks a lot!

## Answer by quantinho (score 0, accepted)

https://quant.stackexchange.com/a/77296

Sometimes there's nothing you can do about it. In order to know if this is one of those situations, you should take into account your latency and order size.

- If your order size is negligible compared to the average trade size, then send a market order instantly.

- If your order size is large compared to the average trade size, then you should expect some market impact and take this into account in your backtest.

- If your latency is large, then you should consider placing your orders at different prices. That would be the signal price +- how much the market moves during your latency. For safety, you can add one or two ticks to the best bid/ask and if you are still profitable then it's just your transaction cost.

The issue I see with your approach is that if the market is moving in your favor you are getting filled in very unfavorable prices (due to market order and that 5 min wait), and if it is moving against you, you are getting filled. So, if you have high win ratio, a simple market order is a solution here.

I personally prefer sending aggressive limit order over market order almost all the time.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.