Wheat futures backtesting: specs, rolls, reports and costs
Chicago wheat futures move in quarter-cent ticks worth $12.50 on a 5,000-bushel contract. A useful backtest rolls before first notice, uses the right session, handles limit days and USDA report gaps, and charges realistic costs on every trade.
By Soren Huang · Published · updated · Editorial policy
Contents
- What are the contract specs of Chicago wheat futures?
- What are the wheat futures trading hours, in Chicago and Taiwan time?
- How do daily price limits affect a wheat backtest?
- Why do USDA reports cause gaps in wheat prices?
- Does wheat seasonality hold up in a backtest?
- When should a wheat backtest roll to the next contract?
- What costs and slippage should you assume for wheat?
- What should you set up before running a wheat backtest?
- Frequently asked questions
- References
Chicago wheat futures (ZW, 芝加哥小麥) trade on CBOT in contracts of 5,000 bushels. Prices are quoted in cents per bushel, and the minimum move is a quarter cent, worth $12.50. Contracts expire in March, May, July, September and December. A realistic backtest rolls before first notice and models the split session, daily price limits, USDA report gaps and round-trip costs.
What are the contract specs of Chicago wheat futures?
One standard contract is 5,000 bushels of wheat, and one tick of a quarter cent is worth $12.50. A bushel is the US volume unit that grain is traded in. The benchmark contract is Chicago Soft Red Winter (SRW) wheat, symbol ZW. CBOT also lists KC Hard Red Winter wheat (KE), which uses the same 5,000-bushel size but is a different crop with its own price.
Tick value is the money gained or lost when the price moves by the smallest allowed step. For wheat:
Tick value = tick size × contract size = $0.0025 × 5,000 bushels = $12.50
Here the tick size is a quarter of one cent per bushel, written in dollars, and the contract size is the number of bushels in one contract. One full cent is four ticks, so it is worth $50. A move of $1.00 per bushel is worth 5,000 dollars per contract. You can check these values and the profit or loss of a trade with the futures contract calculator.
| Item | Chicago SRW wheat (ZW) |
|---|---|
| Exchange | CBOT (CME Group) |
| Contract size | 5,000 bushels |
| Price quote | Cents per bushel |
| Minimum tick | 1/4 cent per bushel = $12.50 |
| One cent move | $50 per contract |
| Contract months | March (H), May (K), July (N), September (U), December (Z) |
| Last trading day | The business day before the 15th calendar day of the contract month |
| Settlement | Physical delivery |
Exchanges can change contract specifications, hours and limits. Before you set up a backtest, confirm the current values on the CME Group contract page for Chicago SRW wheat.
The first thing to set in your backtest is the point value. If the software expects dollars per full price unit and your data is quoted in cents, enter $50 per cent. If the data is in dollars per bushel, enter 5,000. A wrong point value makes every profit, loss and cost figure wrong by the same factor.
What are the wheat futures trading hours, in Chicago and Taiwan time?
Wheat trades in two separate electronic sessions with a break between them, so the session you choose changes your bars. On CME Globex, the evening session runs Sunday to Friday from 7:00 p.m. to 7:45 a.m. Central Time (CT). The day session runs Monday to Friday from 8:30 a.m. to 1:20 p.m. CT. Between 1:20 p.m. and 7:00 p.m. the market is closed.
| Session | Chicago (CT) | Taiwan, US summer time (CDT) | Taiwan, US winter time (CST) |
|---|---|---|---|
| Evening / overnight | 19:00 – 07:45 | 08:00 – 20:45 | 09:00 – 21:45 |
| Day session | 08:30 – 13:20 | 21:30 – 02:20 | 22:30 – 03:20 |
The futures market hours tool shows these sessions in your own time zone and handles the US daylight-saving switch for you.
Most of the day's volume trades in the short day session. The overnight session is thinner, so spreads are wider and a market order there tends to fill further from the last price. Decide before the first run whether your strategy trades day-session bars only or all sessions. Day-only bars also change indicator values, because a 14-bar average then covers a different stretch of time.
How do daily price limits affect a wheat backtest?
Daily price limits can stop trading at a price your backtest assumes you could trade. A limit move is a price change that reaches the maximum distance from the previous settlement that the exchange allows for one day. CME resets the wheat limit twice a year from recent prices. It can also widen the limit the next day after a contract settles at the limit. The current value is on the CME contract page.
When wheat is "locked limit", trades can only happen at the limit price, and often almost none happen. A backtest sees a price on the chart and fills your stop there. In real trading, that stop may not fill until the next day, at a worse price. To model this:
- Find the days in your data where the settlement was at the limit. These bars are often very narrow, with open, high, low and close at the same price.
- Check which of your trades entered or exited on those days.
- Rerun those trades with the fill moved to the next bar that traded away from the limit, and compare the result.
If a handful of limit days decide whether the strategy is positive, its edge depends on fills that may not have been available.
Why do USDA reports cause gaps in wheat prices?
Government crop reports change the supply picture in one moment, so wheat often jumps instead of moving tick by tick. The main ones are the monthly World Agricultural Supply and Demand Estimates (WASDE), the weekly Crop Progress report during the growing season, the quarterly Grain Stocks report and the June Acreage report. The USDA publishes the release calendar in advance.
Timing decides how the jump appears in your data:
- WASDE is released at 12:00 p.m. Eastern Time, which is 11:00 a.m. CT, inside the day session. You see one very wide bar, and orders placed just before the release fill at whatever price the market reaches.
- Crop Progress is released on Mondays at 4:00 p.m. Eastern Time, while wheat is closed. The reaction shows up as a gap at the 7:00 p.m. CT reopen.
A gap is a jump between one bar's close and the next bar's open with no trades in between. A stop order set inside that gap fills at the open of the next bar, not at the stop price. Check that your backtest fills gapped stops at the next available price. Then tag report days and look at the strategy's results with and without them. A strategy that earns most of its result on report days is really a bet on report surprises. Judge it as one.
Does wheat seasonality hold up in a backtest?
Wheat has a real crop calendar, but a seasonal rule has only one test per year, so it needs strict validation. In the US, winter wheat is planted in the autumn and harvested in early summer. July is commonly treated as the first new-crop month for winter wheat. Traders often talk about harvest pressure in early summer and weather risk in spring.
The trouble is sample size. Twelve years of data gives you only about twelve harvests. If you test a rule for every month of the year and keep the best one, one month will usually look good by chance. This is data snooping: finding a pattern because you searched many candidates on the same data (Sullivan, Timmermann and White, 1999). Periodic performance in the performance report of AlphaPrime (Valynox) splits a wheat test by period, so those twelve harvest years can be read one by one instead of as a single total.
Hypothetical example
You test "short wheat in month X" for each of the 12 months over 12 years. The best month was down in 9 of 12 years. That sounds strong, but you picked it from 12 tries, and each try had only 12 years. Even if wheat had no seasonal pattern at all, the best of 12 random months could easily show 9 out of 12. Before you trust it, the pattern needs to hold on years it was not chosen from.
Three checks help. Count how many separate years produced the result, not how many trades. Look at results year by year, not only the total. And use strategy validation with walk-forward analysis, so each year is tested with rules chosen only from earlier years.
When should a wheat backtest roll to the next contract?
Roll before first notice day, because a long position held past it can receive a delivery notice. First notice day is the first day sellers can notify the exchange that they will deliver. For wheat, it is the last business day of the month before the contract month. For example, the July contract's first notice day falls at the end of June. Most speculators roll a few days before that, when volume has already moved to the next month.
A continuous contract is a price series that joins individual contract months into one long history for testing. Wheat has only five months a year, so each roll spans about two to three months of carry. The gap between two contracts at the roll can be large, especially from old crop (May) to new crop (July). How you join them matters:
| Method | What it does | Use it when |
|---|---|---|
| Back-adjusted | Shifts older prices so there is no jump at each roll | Your strategy reacts to price changes, such as trend or breakout rules |
| Unadjusted | Keeps real traded prices with a jump at each roll | You need real price levels, but you must stop trades from reacting to roll jumps |
| Ratio-adjusted | Scales older prices by a percentage at each roll | You compare percentage moves over long periods |
Also check that the roll date in your data matches the roll date you would trade. A series that rolls on the last trading day holds positions through the delivery period, which a speculator would not do. The roll gaps themselves come from contango and backwardation, explained in backwardation vs contango in continuous backtests.
What costs and slippage should you assume for wheat?
Charge commission, fees and at least one tick of slippage per side on every trade, and more on report days and overnight. At $12.50 per tick, one tick each side adds $25 to every round trip before commission. A round trip is the entry plus the exit of one trade.
Hypothetical example
A wheat strategy averages $60 gross per trade per contract. Commission and exchange fees are $5 per round trip, and slippage is one tick each side ($25). The net average trade is $60 − $5 − $25 = $30. If half the trades happen overnight or around reports, where slippage is two ticks each side ($50), those trades net $60 − $5 − $50 = $5. The overall average falls to $17.50.
Two habits make cost estimates more honest. Rerun the backtest with double the slippage and see whether the strategy is still positive. Then split the results into day-session trades and overnight trades, because the two can have different fill quality. The full method is in trading costs in backtests.
What should you set up before running a wheat backtest?
Set these values once, in this order, before you run any search:
- Point value: $50 per cent, or 5,000 per dollar, matching how your data is quoted.
- Session: day session only, or all sessions, and the matching bar data.
- Continuous contract: adjustment method and a roll date before first notice day.
- Costs: commission and fees per round trip, plus at least one tick of slippage per side.
- Execution: decisions at the bar close, fills on the next bar, gaps filled at the next open.
- Special days: limit days and USDA report days tagged, so you can check results without them.
- Validation: out-of-sample years or walk-forward windows, with the number of years counted.
What this means if you use AlphaPrime: load your own wheat bar data and set the session, costs and next-bar execution in backtesting before the search. Every candidate is then ranked on what it would have cost to trade, and strategy validation can test the survivors on years they were not chosen from.
Frequently asked questions
What is the tick value of Chicago wheat futures?
The Chicago SRW wheat contract (ZW) has a minimum tick of a quarter cent per bushel on 5,000 bushels, which is $12.50 per contract. One full cent is four ticks, or $50. Confirm the current specification on the CME Group contract page.
Which months do wheat futures trade?
Chicago wheat lists five contract months: March (H), May (K), July (N), September (U) and December (Z). July is commonly treated as the first new-crop month for US winter wheat. A continuous backtest series rolls through these five months each year.
What time do wheat futures trade in Taiwan?
The main day session runs 8:30 a.m. to 1:20 p.m. Chicago time. That is 21:30 to 02:20 in Taiwan during US daylight-saving time, and 22:30 to 03:20 in US winter time. The thinner evening session runs from 7:00 p.m. to 7:45 a.m. Chicago time.
When should I roll a wheat futures position?
Roll before first notice day, which for wheat is the last business day of the month before the contract month. Holding a long position past that day can lead to a delivery notice. Most speculators and most backtest roll schedules move to the next month a few days earlier.
Do wheat futures have daily price limits?
Yes. CBOT sets a daily price limit for wheat, resets it twice a year from recent prices, and can widen it after a contract settles at the limit. On a locked-limit day, orders may not fill, so a backtest that fills stops on those days is too optimistic.
References
- Sullivan, R., Timmermann, A., & White, H. (1999). Data-Snooping, Technical Trading Rule Performance, and the Bootstrap. The Journal of Finance, 54(5), 1647–1691.

