I am currently trading futures products on some contracts that have low volumes. More accurately, the volumes of working orders in the book are fairly light. I am trying to execute a relatively large order that could move the market. I would like to break the order up to prevent this but I am unsure of the best algorithm to do it. I know there are iceberg orders but is there any other way to do this?
You are correct that large orders should be algorithmically broken-up. Perhaps the most straightforward algo is the VWAP (volume-weighted average price), which most brokers offer. Since a VWAP is easy to compute, the trading details are often transparent to the user.
In general, refrain from submitting a standard market order for a large number of contracts and you should be alright.
For reference, note that execution strategies for some types of futures contracts can be very different from equities. An example are Interest Rate Futures, e.g. here.
The main reason lies in microstructure differences. For some more details see the white paper "US Treasury Futures Roll Microstructure Basics" by Quantitative Brokers (I have no affiliation with QB). Very briefly:
- Traders that don't want to take delivery roll over their positions,
- The matching algo for Treasury spread contracts is “Split FIFO/Pro-Rata.” Fills are allocated so that a percentage of every order is filled either FIFO or pro-rata.
Few consequences of the “Split FIFO/Pro-Rata” matching are:
- The optimal strategy is to oversize limit orders;
- Marketable limit orders are attractive (new top order is filled with FIFO);
- Empirically there are rapid variations in order size.