VALYNOX
VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
ACADEMY / Markets and trading sessions

Soybean futures: CBOT specs, hours in Taiwan time and backtest setup

One CBOT soybean futures contract covers 5,000 bushels, ticks in quarter cents worth $12.50, and trades in seven delivery months. For soybeans the calendar (sessions in Taiwan time, USDA report days, limit moves and crop-year rolls) changes a backtest more than the entry rule does, so fix those settings before the first run.

By · Published · updated · Editorial policy

Contents
  1. What are CBOT soybean futures: contract size, tick value and contract months?
  2. How much is one point of soybean futures worth?
  3. What time do soybean futures open in Taiwan time?
  4. Which seasonal periods, USDA report days and limit moves should a soybean backtest account for?
  5. How do you roll soybean contracts and check the data before testing?
  6. What should you set before backtesting soybean futures, and what does a report look like?
  7. Frequently asked questions
  8. References

What are CBOT soybean futures: contract size, tick value and contract months?

CBOT soybean futures (symbol ZS) cover 5,000 bushels per contract, move in quarter-cent ticks worth $12.50, and trade in seven delivery months: January, March, May, July, August, September and November. Fix these three facts before you write any rule: they set the position size, the cost model and the roll calendar of every soybean backtest.

A tick is the smallest price step the exchange allows, and for soybeans it is one quarter of a cent per bushel. Multiply 5,000 bushels by 0.25 cents and you get $12.50 per tick. The seven delivery months are written with the standard futures month codes: F (January), H (March), K (May), N (July), Q (August), U (September) and X (November). Exchanges can change contract values, so confirm them on the exchange's contract page; the free futures contract calculator shows the tick size, tick value and point value side by side.

FactCBOT soybean futures (ZS)
Contract size5,000 bushels
Price quoteCents per bushel
Minimum tick0.25 cent = $12.50
One point (one cent)$50
Delivery monthsJan, Mar, May, Jul, Aug, Sep, Nov
SettlementPhysical delivery; speculative positions are closed before first notice day

The month list matters more than it does for an index future, because soybeans are a crop. The US crop is planted in April to June and harvested in September to November. November is the first delivery month that trades the new crop, so the contracts from January to September belong to one crop year and November starts the next. The price difference between an old-crop and a new-crop month can be far larger than the difference between two quarterly index contracts, which is why rolling gets its own section below. The same logic of reading the contract page first applies when you set up a gold futures backtest with its specs and sessions, but gold has no crop year.

Twelve-month strip with the seven soybean delivery months: January F, March H, May K, July N, August Q and September U belong to the old crop, and November X is the first new-crop month; US planting runs April to June and harvest September to November Where the new crop begins Seven delivery months, US crop year Old crop New crop J F M A M J J A S O N D F H K N Q U X Planting Harvest Jan–Sep is one crop; Nov the next. So: treat the Nov roll with care.
The seven soybean delivery months on the US crop year. November is the first month that prices the new crop.

How much is one point of soybean futures worth?

One point of soybean futures is one cent per bushel and is worth $50 per contract, because 5,000 bushels × 1 cent = 5,000 cents = $50. Write every stop, target and slippage figure in cents, not in dollars or index points, so the backtest converts them with the same point value the exchange uses.

The conversion is the only formula in this article: dollar change per contract = 5,000 bushels × price change in cents ÷ 100. The 5,000 is the contract size, the price change is measured in cents per bushel, and dividing by 100 turns cents into dollars. A full dollar per bushel (100 cents) is therefore $5,000 per contract. Some data feeds display soybean prices in eighths, so a quote of 950'2 means 950 and 2/8 = 950.25 cents. Check that your data is in decimal cents before you set the tick size, or every stop distance will be off.

Price ladder for one soybean contract using dollars equal 5,000 bushels times cents divided by 100: 0.25 cent is 12.50 dollars, one tick; 1 cent is 50 dollars, one point; 10 cents is 500 dollars; 100 cents is 5,000 dollars, one dollar per bushel What one cent is worth Dollars = 5,000 × cents ÷ 100 0.25¢ 1¢ 10¢ 100¢ $12.50 $50 $500 $5,000 one tick one point ten points $1 a bushel One cent is $50 per contract. So: write stops in cents.
From a quoted soybean price move to dollars per contract: one tick, one point, ten points, one dollar per bushel.

Hypothetical example

A soybean rule uses a 15-cent stop and a 30-cent target. The stop risks 15 × $50 = $750 per contract; the target is worth $1,500. Slippage of one tick on entry and one tick on exit costs 2 × $12.50 = $25 per round trip, and commission is assumed at $4 per round trip. A winning trade nets $1,500 − $29 = $1,471; a losing trade costs $750 + $29 = $779. With a 40 percent win rate the average trade is 0.4 × $1,471 − 0.6 × $779 ≈ $121, about ten ticks, so a second tick of slippage per side would remove roughly a fifth of it.

What time do soybean futures open in Taiwan time?

Soybean futures open for the overnight Globex session at 08:00 Taiwan time during US summer time and at 09:00 during US winter time, and the day session, where most of the volume usually trades, opens at 21:30 or 22:30 Taiwan time and runs into the early morning. Which bars a backtest sees depends entirely on which of these two sessions you include.

CME Globex trades soybeans Sunday to Friday from 19:00 to 07:45 Central Time (CT) and Monday to Friday from 08:30 to 13:20 CT, with a 45-minute break between them. Taiwan is UTC+8 all year. US Central Time is UTC−5 in summer (second Sunday of March to first Sunday of November) and UTC−6 in winter, so the Taiwan clock shifts by one hour twice a year while the CT times stay fixed. The free futures market hours tool shows both sessions in your time zone on any date.

SessionCentral TimeTaiwan time, US summerTaiwan time, US winter
Overnight Globex19:00 (Sun–Thu) to 07:4508:00 to 20:4509:00 to 21:45
Break07:45 to 08:3020:45 to 21:3021:45 to 22:30
Day session08:30 to 13:20 (Mon–Fri)21:30 to 02:20 next day22:30 to 03:20 next day
Two timelines in Taiwan time: in US summer the overnight session runs 08:00 to 20:45 and the busier day session 21:30 to 02:20; in US winter the overnight session runs 09:00 to 21:45 and the day session 22:30 to 03:20 Main session: late night Taiwan time, US summer vs US winter Summer 08:00–20:45 21:30–02:20 Overnight Day Winter 09:00–21:45 22:30–03:20 Overnight Day Busy day session starts 21:30/22:30. So: set sessions in CT, not Taiwan.
The two CBOT soybean sessions on a Taiwan clock, in US summer and US winter time.

Three consequences follow for a backtest. First, a "daily" bar from a full-session feed can start at 19:00 CT the evening before, while a day-only feed starts at 08:30 CT; the two closes and ranges differ, so decide which one your rule means. Second, the Sunday 19:00 CT open is Monday morning in Taiwan, so the weekend gap appears on Monday's first bar. Third, an intraday rule tested on full-session bars spends most of its bars in the thin overnight session, where slippage of one tick is optimistic; test the same rule on day-session bars and compare the trade count. Traders who already handle the split day and night sessions of a FTSE China A50 futures backtest on SGX will recognize the same problem in reverse: the active session falls at night in Taiwan.

Which seasonal periods, USDA report days and limit moves should a soybean backtest account for?

A soybean backtest should mark the crop stages, the scheduled USDA report days and any day the contract traded at its price limit, then check whether the result changes when those days are removed. A result that lives on a handful of report days is a bet on reports, not on the rule.

The crop calendar gives soybeans a seasonal rhythm that index futures do not have. US planting runs April to June, the growing season and its weather risk July to August, and harvest September to November. The South American harvest, mainly Brazil, arrives roughly February to April and supplies the market during the US off-season. These periods change volatility and the shape of the price curve between contract months. A rule that tests well only in the US growing season is still a result, but it is a seasonal result, and the trader should know that before trading it in March.

Scheduled reports from the US Department of Agriculture (USDA) are the second calendar. The monthly WASDE report (World Agricultural Supply and Demand Estimates) updates supply and demand; Prospective Plantings in late March and Acreage in late June set the planted area; and the quarterly Grain Stocks report, released in January, late March, late June and late September, counts what is still in storage. These reports are released at midday US Eastern time, inside the CBOT day session, which is around midnight in Taiwan. The method for testing whether such days help or hurt a rule is the same as for stock index futures and is laid out in the article on backtesting around economic calendar events: run the strategy with report days included and excluded, and compare the two results.

Year calendar for soybeans: US planting April to June, growing July to August, harvest September to November, Brazil harvest February to April; WASDE reports every month and Grain Stocks in January, late March, late June and late September, with Prospective Plantings in March and Acreage in June Mark the soybean calendar Crop stages and USDA report days J F M A M J J A S O N D Plant Grow Harvest Brazil WASDE Stocks, acreage Report days can carry the result. So: test with and without them.
The calendar a soybean backtest should mark: crop stages across the year and the scheduled USDA reports.

A limit move is a day on which the price reaches the maximum daily change the exchange allows, after which no trade can happen beyond that price until the next session. The exchange recalculates the soybean limit at set times each year and publishes the current value and its expansion rules on the contract page, so do not hard-code a dollar figure. For a backtest the danger is simple: a stop order that sits beyond the limit cannot fill. A daily bar ends flat at the limit price, and a naive backtest fills the stop at that price anyway, while the real exit would come in the next session, often much further away. Think of a lift whose doors close while you are still inside: you leave at the next floor it opens on, not the one you pressed.

Illustration of a limit-locked day: price falls to the daily limit at 930 cents and stays there with no trades below, a naive backtest fills the stop at 930 cents, while the real exit comes at the next day's open at 890 cents Limit days block stops Stop at the limit, illustration Locked at 930¢ Next day Backtest fills here Real exit 890¢ The backtest exit is too kind. So: fill at the next open instead.
What a limit-locked day does to a backtest fill: the bar stops at the limit, but a naive backtest fills the stop there.

The practical check is to list the days on which the high or low of a bar equals the limit price of that day and rerun the backtest with the stop fills on those days pushed to the next session's open. If the net result barely moves, the rule is not depending on limit days.

How do you roll soybean contracts and check the data before testing?

Roll soybean contracts by a rule written in advance, several days before first notice day, and choose between an unadjusted and a back-adjusted continuous series knowing that the choice changes a soybean backtest more than it changes an index backtest. The reason is the crop year: the gap between the expiring July contract and the November contract is a real price difference between two different crops, not a small financing spread.

First notice day is the first day on which a holder of a long position can be told to take physical delivery, and for CBOT soybeans it is the last business day of the month before the delivery month. The last trading day is the business day before the 15th calendar day of the delivery month. A speculative backtest should be out of a month before first notice day, so a common roll rule is a fixed number of business days before it, or the day the next month's volume passes the expiring month's volume. Write the rule down and apply it to every roll; changing it after a bad roll is tuning. The general rules for futures backtesting with contract specs and rollover apply here, with one difference: on soybeans the roll gap is usually the largest single "move" in the series, so it must never be allowed to count as a trade.

A continuous series joins the successive contract months into one price history. An unadjusted series keeps every contract's real prices and shows the roll gap as a jump; a back-adjusted series shifts all earlier prices by the gap so the join is smooth. Back-adjusting is like renumbering the pages of a book so the chapters run on without a break: the page numbers change, the words do not. The price level in a back-adjusted series is therefore not a real price, and any percent-based rule, margin estimate or "price above 1000" filter built on it is wrong. Dollar results must come from the point value times the cents moved, never from the shifted price level.

PropertyUnadjusted seriesBack-adjusted series
Price levelReal prices of each contractShifted; may be far from any real price
Roll gapVisible jump; a rule can mistake it for a moveRemoved; no false trade at the roll
Percent rules and filtersCorrectDistorted by the shifted level
Dollar P&LFrom point value × cents movedFrom point value × cents moved (same)
Best useChecking levels, margin and limitsTesting rules that act on price changes
The same weeks across the July to November roll: the unadjusted series shows a roll gap that is not a real price move, the back-adjusted series removes the gap by shifting the earlier history, so dollars must come from 50 dollars times cents moved The roll gap is not a move Jul to Nov roll, same weeks Unadjusted Roll gap Back-adjusted Shifted Back-adjusted levels are not real. So: dollars = $50 × cents moved.
The same weeks in an unadjusted and a back-adjusted soybean series across the July-to-November crop-year roll.

Before the first run, check the data itself in this order:

  1. Roll gaps where expected and nowhere else. A jump that does not sit on a roll date is a bad tick.
  2. Missing day sessions. US exchange holidays remove the day session; a bar that exists on such a day is suspect.
  3. Limit days. Bars whose high or low sits on the limit, and bars with zero range after a report.
  4. Price format and time zone. Decimal cents, not eighths; timestamps in CT or exchange time, with the session boundaries falling where the table above says.
  5. Volume at the roll. If the series rolled while the expiring month still had most of the volume, the roll rule was applied too early.

What should you set before backtesting soybean futures, and what does a report look like?

Before the first soybean run, fix seven settings in order: the point value and tick, the session, the roll rule and series type, commission and slippage in ticks, next-bar execution, the flagged report and limit days, and the in-sample and out-of-sample split date. A report read afterwards is only as good as these seven inputs.

  1. Point value $50 per cent, tick $12.50. Confirm on the exchange page; set the tick size to 0.25 cent so stops round to tradable prices.
  2. Session in CT. Full session (19:00–13:20) or day only (08:30–13:20); decide which close your daily bar means.
  3. Roll rule and series type. A fixed number of days before first notice day, back-adjusted for the rule, unadjusted kept alongside for level checks.
  4. Commission and slippage per round trip, in ticks. At least one tick per side for the day session; test with two.
  5. Next-bar execution. A rule that decides on a bar's close fills on the next bar's open, not on the same close.
  6. Report days and limit days flagged. So the result can be recomputed with them removed.
  7. Split date written down. The in-sample period for tuning, the out-of-sample period for grading, chosen before the first run.
Seven settings to fix in order before the first soybean backtest: point value 50 dollars and tick 12.50 dollars, session in CT, roll rule and series type, costs per round trip in ticks, next-bar execution, report and limit days flagged, in-sample and out-of-sample split date written down Set seven things first In this order, before the first run 1 2 3 4 5 6 7 Point $50, tick $12.50 Session: full or day, in CT Roll rule and series type Costs per round trip, in ticks Next-bar execution Report and limit days flagged IS/OOS split date written down
The seven settings to fix, in order, before the first soybean backtest.

AlphaPrime (Valynox) applies the commission, slippage, session and next-bar execution you set to every candidate it evaluates, so the soybean settings in this checklist are entered once and the ranking you read from its backtesting already reflects them. Which rule families are worth entering is a separate question; the article on futures algo trading strategy types and how to backtest each covers breakout, trend and mean-reversion rules, all of which can be written in cents for soybeans.

To show what the report of such a run looks like, here is a real AlphaPrime run. It is a stand-in: it tested ES (E-mini S&P 500) daily bars from 2019-01-02 to 2025-06-30, not soybeans, using a HiLo Activator rule as its only entry and exit, with no stop, target or filter. It is the single candidate kept from the 1,024 the search tried, chosen on return against drawdown. Picking the kept candidate after the fact flatters it, as Bailey and co-authors (2014) show for any best-of-many selection, so the figures below describe this one run and nothing more.

Source: AlphaPrime product engine (CPU), run 2026-10-31. ES daily bars, 2019-01-02 to 2025-06-30, long and short, 1 contract, $20 commission and $25 slippage per trade.

NumberResult
Net profit (closed trades)$75,345
Max drawdown$65,790
Trades34
Win rate61.76%
Profit factor1.841
Average trade$2,216.03
Time in market94.61%

Read the table the way you will read your own soybean report. The max drawdown of $65,790 is almost as large as the net profit of $75,345, so the ratio between the two is the first number to judge. Thirty-four trades over six and a half years is a small sample; the average trade of $2,216.03 can move a long way if two or three trades change. Time in market of 94.61% means the rule was almost always exposed, which on soybeans would include every report day and every limit day. None of this says the rule earned that money in any sense a trader can expect; it says what one kept candidate did on one history after costs.

Look at three things: the slope of the equity curve, the depth and length of the deepest dip below its previous high, and whether the stretch marked out-of-sample keeps a shape similar to the part before it.
Look at three things: the slope of the equity curve, the depth and length of the deepest dip below its previous high, and whether the stretch marked out-of-sample keeps a shape similar to the part before it. ES · daily · 2019-01-02 to 2025-06-30 · CPU engine backtest

Pardo (2008) recommends judging a rule on the out-of-sample segment that the optimization never saw, and Harvey and Liu (2015) recommend discounting any result for the number of trials behind it; both apply with extra force to a soybean run, where the calendar gives many ways for a rule to look good by accident. The next step is concrete: load your soybean series, run the five data checks from the previous section, and count how many limit days and report days fall inside the out-of-sample period you wrote down. If that count is more than a tenth of the out-of-sample trading days, plan the with-and-without comparison before you look at a single equity curve.

Frequently asked questions

What is the symbol for CBOT soybean futures?

The CME Globex symbol is ZS, followed by a month code and year. The seven month codes are F (January), H (March), K (May), N (July), Q (August), U (September) and X (November). A mini-sized soybean contract of one thousand bushels also trades on CBOT; its tick value is on the exchange's contract page.

Do I have to take delivery of soybeans if I trade the futures?

Only if you hold a long position past first notice day, which for CBOT soybeans is the last business day of the month before the delivery month. Speculative traders and backtests close or roll the position several days before that date. The last trading day is the business day before the 15th calendar day of the delivery month, and the exchange publishes both dates for every month.

What does a soybean backtest need to watch for that an index backtest does not?

Three things. The roll between old-crop and new-crop months can be a large price gap that a rule may mistake for a move. Scheduled USDA reports are released inside the day session and can drive a result on their own. Daily price limits can stop trading at a price a backtest would otherwise fill through, so stop fills on limit days should be pushed to the next session.

Which soybean session should a Taiwan trader backtest?

Test both and compare the trade counts. The day session, 08:30 to 13:20 CT, is 21:30 to 02:20 Taiwan time in US summer and 22:30 to 03:20 in US winter, and it usually carries most of the volume. The overnight session opens at 08:00 or 09:00 Taiwan time and is thinner, so slippage of one tick per side is optimistic there.

References

  • Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.
  • Harvey, C. R., & Liu, Y. (2015). Backtesting. The Journal of Portfolio Management, 42(1), 13–28.
  • Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies (2nd ed.). John Wiley & Sons.