VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
ACADEMY / Markets and trading sessions

TAIEX futures day session: hours and day-only backtests

The TAIEX futures day session runs 08:45–13:45 Taiwan time. A correct day-only backtest uses bars inside those limits, treats each day as its own session, closes every trade before the last bar ends, and is compared with an all-session run under the same rules and costs.

By · Published · updated · Editorial policy

Contents
  1. What are the TAIEX futures day-session hours?
  2. What happens at the open and the close of the day session?
  3. How do you set the session boundaries in a day-only backtest?
  4. How do you make a strategy flat before 13:45?
  5. Day-only bars or combined bars: which should you test on?
  6. How do you compare day-only results with all-session results?
  7. Frequently asked questions
  8. References

The TAIEX futures (台指期) day session runs from 08:45 to 13:45 Taiwan time on trading days. On final settlement day, the expiring contract stops trading at 13:30. To backtest day-only, use bars that start at 08:45 and end at 13:45, treat each day as a separate session, and close every position on or before the last bar.

What are the TAIEX futures day-session hours?

The day session (日盤) is the regular trading session of TAIEX futures, from 08:45 to 13:45 Taiwan time (UTC+8). That is five hours, or 300 minutes. The same contracts also trade in an after-hours session (夜盤) from 15:00 until 05:00 the next morning. Between 13:45 and 15:00 there is no trading.

The day session sits around the Taiwan stock market. Cash stocks on the Taiwan Stock Exchange trade from 09:00 to 13:30. So futures open 15 minutes before the stocks and close 15 minutes after them. Most day-session behaviour you see in your bars comes from those two offsets.

Time (Taiwan)What happens
08:30–08:45Futures orders are accepted for the opening auction; no trades yet
08:45Futures day session opens with a call auction
09:00Taiwan cash stock market opens
13:25–13:30Cash market closing call auction
13:30Cash market closes; on final settlement day the expiring futures contract also stops
13:45Futures day session closes for all other contract months
15:00After-hours (night) session opens

Exchanges can change trading hours and contract rules. Check the TAIFEX contract specification page before you build a session template, or use the futures market hours tool to see the current sessions in your own time zone.

Timeline of one Taiwan trading day: futures orders are accepted from 08:30, the futures day session runs 08:45 to 13:45, cash stocks trade 09:00 to 13:30 with a closing auction from 13:25, and the night session starts at 15:00 Futures add 15 min each end One trading day, Taiwan time 08:45 13:45 15:00 Futures Stocks Night 09:00 13:30 Orders only Auction Futures only Futures trade 08:45–13:45. So: don't use stock-market hours.
The futures day session starts 15 minutes before the cash market and ends 15 minutes after it.

What happens at the open and the close of the day session?

The first and last parts of the day session behave differently from the middle, so a backtest must handle them on purpose. A call auction is a matching method where orders are collected for a short time and then filled together at one price. TAIEX futures open with a call auction at 08:45. All orders from 08:30 to 08:45 meet at one opening price.

That opening price carries everything that happened since 13:45 the day before. This includes the night session, the US market and any overnight news. In a day-only series, the result is a gap between yesterday's last bar and today's first bar. Three things follow for your backtest:

  • Stops can be jumped. If a stop sits 30 points below yesterday's close and the market opens 80 points lower, a real stop fills near the open, not at the stop price. Your backtest should fill at the opening price when the open is already past the stop.
  • The first bars are wide. Range and volume are often large at 08:45 and again at 09:00, when stocks open. A breakout rule that triggers in the first 15 minutes reacts to a different market than one that triggers at 11:00.
  • Slippage is higher. Use a larger slippage value for entries in the first minutes than for the middle of the day.

At the other end, the TAIEX index itself stops moving when the cash market closes at 13:30. From 13:30 to 13:45, futures still trade, but the underlying index is fixed. Check the last 15 minutes separately in your own data. Look at range, volume and how your exits filled there.

How do you set the session boundaries in a day-only backtest?

Set the session to exactly 08:45–13:45, check how your data stamps its bars, and make sure no night bars leak in. A session boundary is the time where the backtest considers one trading day to end and the next to begin. If it is wrong, daily indicators, daily exits and daily results are all computed on the wrong bars.

  1. Pick the right data series. Use a day-session-only series, not an all-session series filtered by hand, unless you are sure the filter works. Data vendors name these series differently; 台指全 and all-session TAIEX futures data explains the common names.
  2. Check the bar timestamp. Most platforms stamp a bar with its end time. With 5-minute bars, the first bar (08:45–08:50) is stamped 08:50 and the last bar is stamped 13:45. Some data stamps the start time instead. Your time rules must match.
  3. Count the bars. Divide 300 minutes by the bar length. Five-minute bars give 60 bars per normal day. Fewer bars may mean missing data; more bars may mean night bars are mixed in.
  4. Do not use the stock-market template. A 09:00–13:30 template drops the first and last 15 minutes of futures trading.
  5. Handle short days. On final settlement day, the expiring month ends at 13:30. Check whether your continuous series still holds that month on that day. The TAIEX futures settlement dates tool lists the days.
  6. Mark holidays and the days around them. Market closures create longer gaps and can change behaviour on the reopening day.
SettingCorrect for day-onlyWhat goes wrong if it is off
Session start08:4509:00 removes the opening auction bars
Session end13:4513:30 removes the last 15 minutes and moves your exits
Bars per day (5-minute)60Extra bars mean night data is mixed in
Timestamp conventionSame as your time rulesTime exits fire one bar early or late

How do you make a strategy flat before 13:45?

A flat-by-close rule only works if the exit order is sent while a bar is still left to fill it. A flat-by-close rule is a rule that closes every open position before the session ends, so no trade is held through the gap to the next session.

The detail that matters is execution timing. Next-bar execution is a backtest rule where a decision made at the close of one bar is filled at the open of the following bar. This is realistic, because you cannot trade at a price that was already final when you made the decision. But it means the last possible exit decision must happen one bar before the session ends.

Hypothetical example

A strategy trades 5-minute bars stamped with their end time. The last bar of the day runs 13:40–13:45. With next-bar execution, the strategy must decide to exit at the close of the bar stamped 13:40, so the exit fills at the open of the final bar, near 13:40. If the rule says "exit at the close of the 13:45 bar", there is no next bar in the day session. The trade stays open until 08:45 the next morning and takes the whole overnight gap. A typical setup is: no new entries after the bar stamped 13:15, exit decision at the bar stamped 13:40. On a 13:30 settlement day, move both times 15 minutes earlier.

The last six 5-minute bars of the day session, stamped 13:20 to 13:45: an exit decided at the 13:40 bar fills on the 13:45 bar, while a decision at 13:45 can only fill at 08:45 the next day and is held overnight Decide the exit one bar early 5-minute bars, stamped by end time 13:20 13:25 13:30 13:35 13:40 13:45 08:45 Next day Exit fills Held overnight A 13:45 decision has no bar left. So: decide at the 13:40 bar.
With next-bar execution, the exit decision must come one bar before the session ends.

After the run, count how many trades were open at 13:45. With a working flat-by-close rule, that number is zero on every day.

Day-only bars or combined bars: which should you test on?

Test on the bars you will actually trade, because day-only and combined bars produce different indicator values and different signals. Combined bars (also called all-session bars) are a series that joins the day session and the night session into one continuous series.

On combined bars, look-back indicators mix night and day trading, so generate and test on day-only bars if you trade only the day; night sessions in futures backtests explains the difference.

A 20-bar look-back at 09:00 on 15-minute bars: on day-only bars it reads 19 bars of yesterday's day session from 09:00 to 13:45 plus today's first bar; on combined bars it reads 19 night-session bars from 00:15 to 05:00 plus today's first bar Same 20 bars, different hours 15-minute bars, look-back at 09:00 Day-only Yesterday 09:00–13:45 Combined Night 00:15–05:00 Last bar: today 08:45–09:00 Combined bars read the night. So: trade day-only, test day-only.
The same 20-bar indicator reads different hours of trading on day-only and combined bars.

How do you compare day-only results with all-session results?

Run the same rules with the same costs over the same dates on both series, then compare per-trade and risk measures, not only the total profit. The total can be larger on all-session data simply because there are more hours to trade.

Hypothetical example

One breakout rule on TAIEX futures 15-minute bars, same parameters, same round-trip cost per trade. Day-only with flat-by-close: 600 trades, net NT$900,000, average trade NT$1,500, largest drawdown NT$300,000. All-session: 1,100 trades, net NT$1,100,000, average trade NT$1,000, largest drawdown NT$450,000. The all-session run earns more in total but less per trade and with a deeper drawdown. A small rise in slippage would hurt it first.

MeasureWhy it differs between the two runsWhat to look for
Average trade after costsNight trades often have a different size of moveIs it several times the round-trip cost in both runs?
Number of tradesMore hours give more signalsEnough trades in each run to judge the result
Largest drawdownOvernight holding adds gap riskCan your account carry the deeper one?
Results by yearNight liquidity and behaviour change over timeDoes one run depend on a few years?
Long vs shortOvernight moves can favour one sideDoes one side carry the whole result?

Decide which session you will trade before you compare, if you can. If you test both versions and keep the one that looks better, that choice is one more trial. Each extra trial makes the best result look better than it really is (Bailey, Borwein, López de Prado and Zhu, 2014). Use the comparison to understand where the strategy's trades come from, not only to pick a winner. If you do test both versions, the strategy validation in AlphaPrime (Valynox) holds each one to the same thresholds and walk-forward checks, so the comparison stays on equal terms.

AlphaPrime applies trading sessions, next-bar execution, fees and slippage to every candidate in its backtesting. Put the day-only and all-session runs side by side in the Performance Report and compare drawdown, periodic performance and the long and short analysis.

What this means if you use AlphaPrime: load your own day-session TAIEX futures bars, set the session and costs before the search starts, and check that no trade is open at 13:45 before you review any result.

Frequently asked questions

What are the 台指期日盤 (TAIEX futures day-session) hours?

The TAIEX futures day session runs from 08:45 to 13:45 Taiwan time on trading days. Orders for the opening auction are accepted from 08:30. On final settlement day, the expiring contract month stops at 13:30, while other months trade until 13:45.

Are TAIEX futures day-session hours the same as Taiwan stock market hours?

No. Taiwan cash stocks trade from 09:00 to 13:30, while TAIEX futures trade from 08:45 to 13:45. The futures open 15 minutes earlier and close 15 minutes later. A backtest that uses the stock-market session for futures drops those 30 minutes.

Should I backtest a 日盤策略 (day-session strategy) on day-only or all-session data?

Use the data that matches how you will trade. If you only trade during the day, build and test the strategy on day-only bars. Indicators computed on all-session bars include night trading and give different signals from the same rules on day-only bars.

Why is the first bar of the day session so different from the others?

The day session opens with a call auction at 08:45, and that price reflects everything since the previous day's close, including the night session. The first bar often has a gap and a wide range. The cash market opening at 09:00 often adds a second burst of movement.

How do I make sure a day-only backtest closes all trades?

Send the exit decision one bar before the session ends, so next-bar execution can still fill it on the last bar. With 5-minute bars stamped by end time, decide at the 13:40 bar. After the run, check that no trade was open at 13:45 on any day.

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.