BTS Methodology
🔊 Listen to audio
Backtested Strategies publishes backtests under a standardized methodology. The goal is to make historical strategy research consistent, reproducible, and transparent, with rules stated clearly and trading frictions treated seriously.
Strategy entries state strategy-specific settings, such as traded instruments, signal rules, universe membership, rebalance cadence, benchmark model, and next-open or trade-on-close execution.
Core mechanics are standardized unless this methodology states otherwise. These include cost modeling, dividend accounting, benchmark dividend treatment, portfolio accounting, short-collateral handling, data alignment, and reporting conventions.
Data, calendars, universes, and eligibility
Standard backtests use Norgate Data with end-of-day bars: Open, High, Low, Close, and Volume (OHLCV). They also use ordinary cash dividend records and vendor-provided security, sector, and point-in-time constituent metadata where required.
If a strategy requires fundamentals, estimates, macroeconomic series, index weights, alternative inputs, outside sources, or a proxy for unavailable point-in-time information, the strategy entry states the source, timing convention, and any reporting lag or proxy method.
Reports use the data available from the stated vendor as of the report production date. Later vendor corrections, database revisions, ticker-history changes, or constituent-history updates may cause a rerun to differ from the originally published result.
Price data and alignment
- Database-level date padding is disabled.
- For portfolio and multi-symbol workflows, including ranking, composite, and rotational logic, series are aligned to a common market calendar using $SPX as the reference calendar anchor. Padded alignment rows are used only for array alignment. They are not true instrument trading sessions and are not valid bars for execution, liquidity, eligibility, spread estimation, or dividend entitlement.
- Adjusted OHLCV uses adjusted price and volume basis for capital reconstructions and special distributions. Ordinary cash dividends are not embedded in OHLC returns; they are posted separately under the dividend rules below.
Calendar conventions
- A trading day is any session with an end-of-day bar for the instrument.
- A trade day is a trading day on which the strategy executes one or more orders.
- A decision bar is a trading day on which the strategy evaluates signals and makes portfolio decisions.
- A rebalance date is a decision bar on which the strategy updates holdings under its stated cadence.
- When used in formulas, t denotes the current bar, t+1 denotes the next bar, and t−1 denotes the prior bar.
- For weekly, monthly, quarterly, and annual cadences, the period end is the last trading day of the stated calendar week, month, quarter, or year.
Indicators, eligibility, and start dates
- Indicators are computed from the adjusted OHLCV series described above.
- Signals are not generated until all required inputs are defined.
- Cross-sectional ranks and filters require all strategy fields to be available on the rebalance date, including price, volume, sector, or index membership.
- Fixed-instrument portfolio strategies begin on the first decision bar where all required traded instruments have valid data and all required indicators are defined for the full portfolio. Dynamic-universe strategies follow the universe and eligibility rules above.
Universe scope
Each strategy states the instruments it trades. A strategy may define its own universe or explicitly use BTS 1000, our standardized universe of U.S. liquid common stocks. There is no silent fallback universe when a strategy doesn’t specify one.
BTS 1000
- BTS 1000 begins with point-in-time Russell 3000 constituents as of each rebalance date, sourced from point-in-time constituent history including current and past constituents.
- Russell 3000 point-in-time membership is the security whitelist. A constituent with the required data remains eligible for the stated BTS filters unless a concrete data, mapping, or symbol-identity problem prevents deterministic processing.
- Eligibility is determined point-in-time at each rebalance date and then held constant until the next rebalance.
- ADV$63 is the 63-trading-day average of Close × Volume. The calculation includes the rebalance date, uses true bars on the same adjusted price and volume basis as the simulation, and excludes ordinary cash dividends.
- Symbols with missing required inputs on the rebalance date, including no true bar, undefined Close(t), or undefined ADV$63, are ineligible for that rebalance.
- Tradability filters first exclude the lowest-priced decile using closing price at the rebalance date.
- Among the remaining names, the top 1,000 are selected by ADV$63.
- Decile exclusions are count-based. After sorting by the relevant field, BTS excludes the number of names equal to one-tenth of the list, rounded down to the nearest whole number, with ticker-alphabetical tie-breaking.
- For the top-1,000 ADV$63 selection, cutoff ties are resolved alphabetically by ticker.
Rule-defined universes and index membership
- If a universe is rule-defined rather than based on a constituent list, it is determined point-in-time at each rebalance date and held constant until the next rebalance.
- If a universe is defined by membership in a named index or list, point-in-time historical constituents are used to avoid survivorship bias. When the strategy’s published rules define the official point-in-time constituent set as the universe, that set is used directly. Local price, liquidity, or ranking filters are not added unless the strategy entry states them.
- Entries and increases require membership or eligibility as of the rebalance date.
- Positions are not forced to exit between rebalances solely because membership changes, or subsequent price or liquidity changes, would have altered eligibility.
- For standard named-index or list universes that do not explicitly define the official point-in-time constituent set as the complete tradable universe, tradability filters are applied at the rebalance date. Within index members, BTS first excludes the lowest-priced decile using closing price, then excludes the least-liquid decile using ADV$63.
- Decile exclusions are count-based. After sorting by the relevant field, BTS excludes one-tenth of the list, rounded down to the nearest whole number, with ticker-alphabetical tie-breaking. Names sharing the cutoff value are not additionally excluded solely because of the shared value.
- If index weights are required, point-in-time weights are used when available. Otherwise, any substitute weighting method or proxy is clearly labeled in the strategy entry.
Proxies
- When a strategy references an index or asset class, it is implemented using a liquid, tradable instrument, typically an ETF proxy.
- If the proxy has limited history, the backtest begins at the first available end-of-day bar for that proxy.
Signal timing, execution, and trade lifecycle
Signal timing and rebalance cadence
- The decision snapshot is the set of strategy inputs available on the decision bar.
- Signals are evaluated using the strategy’s decision snapshot on the decision bar. By default, trades execute at Open(t+1). Some strategies explicitly use trade-on-close execution at Close(t).
- Trade-on-close strategies are modeled as filling at the final official Close(t), consistent with the strategy’s published closing-price rule. If the signal also uses that same Close(t), such as a month-end moving-average rule, BTS treats the signal and fill as one deterministic historical convention. This models the published rule at the closing price. It is not a claim that a live market-on-close order could be submitted after the official close was known.
- For weekly, monthly, quarterly, or annual strategies, the decision bar is the last trading day of the stated period. Unless the strategy explicitly uses trade-on-close execution, fills occur at the next trading day open.
Missing bars and price fallback
- If the planned execution bar is missing, the order is deferred to the next session with a valid true bar while preserving the original decision snapshot.
- Deferred orders remain subject to portfolio cash, position-count, exposure, and collateral constraints. At the next scheduled strategy decision, still-pending deferred orders from prior decision snapshots are canceled before the new decision snapshot is evaluated. Deferred orders are also dropped if they remain pending at the end of the backtest range. This is not a market-capacity, participation-rate, or partial-fill model.
- If the execution bar exists but the strategy’s reference execution price is undefined or non-positive, the prior valid Close on the same adjusted price basis is used as the execution price. This fallback is a simulation convention, not a live-fill claim.
- If no later true bar exists for the instrument because of delisting or data termination, the position is liquidated at the last available Close. The standard methodology does not add any separate delisting return, halt-resolution price, over-the-counter liquidation price, bankruptcy recovery, or post-delisting price adjustment. This convention can materially affect strategies exposed to distressed, illiquid, halted, or delisting-prone securities.
- Synthetic future bars are not inserted to force fills or liquidations beyond the available data.
End of analysis range
- No new positions are opened on the last in-range trading day.
- At the end of the analysis range, any remaining positions are liquidated at each instrument’s last available true Close on or before the analysis end date, regardless of the strategy’s usual execution convention. Positions are not held past the analysis range and padded alignment rows are not used for terminal liquidation.
- Because no new positions are opened on the last in-range trading day, deferred or pending entries that would first become executable on that day are dropped.
Costs, slippage, execution pricing, and capacity
Trading costs
- The cost model includes commission and spread-aware slippage. It is a standardized small-order assumption, not a calibration to actual fills or an estimate of strategy capacity.
- Commission is 1 basis point per side and is computed from the modeled fill price and executed share count.
- On trade days, slippage is applied as 0.5 × the standard two-day high-low Corwin–Schultz bid-ask spread estimate per side. Slippage is applied adversely: buy and cover orders increase the modeled fill price, while sell and short orders decrease it.
- The Corwin–Schultz spread estimate is expressed as a fraction of price. It is smoothed with a 21-observation rolling median over true instrument-bar estimates, then lagged by one trading day. Negative values are floored at 0 after smoothing, and the spread used for pricing is capped at 20% of price. These conventions are standardized and are not optimized per strategy.
- The spread estimate is aligned to the bar that supplies the execution price.
- For both next-open and trade-on-close trades, the aligned spread comes from bar t−1, where t is the execution bar.
- If the strategy’s reference execution price is missing, the prior Close supplies the execution price. In that case, the spread aligns to that prior Close and uses t−2.
- If the aligned spread estimate is missing, the most recent prior valid aligned spread is used. A spread of 0 is used only before the first valid aligned spread exists.
Execution pricing
- Orders are modeled as marketable fills at the reference execution price, which is the day’s Open or Close as specified by the strategy.
- Spread-aware slippage is applied against the trade at the reference price. The modeled fill price is then rounded against the trade to a valid U.S. tick. Commissions are applied separately as cash debits.
- For prices of $1.00 or more, the U.S. tick size is $0.01. For prices below $1.00, the tick size is $0.0001.
- Buy and cover orders round up to the next valid tick. Sell and short orders round down to the prior valid tick.
- Modeled execution prices are not clamped to the day’s High-Low range. This avoids artificially reducing modeled trading costs and keeps the cost model consistent.
Capacity and market impact
- BTS does not model market impact, order-book depth, queue position, partial fills, or participation-rate limits.
- Backtests are small-order simulations, not assets-under-management capacity estimates. Results do not imply executable fills or stated performance at any specific asset size.
- No maximum assets under management, participation-rate limit, or market-impact cost is implied unless a strategy entry separately reports it.
Portfolio accounting, sizing, cash, dividends, and shorts
Sizing, candidate selection, and cash
- Positions are sized in whole shares, and any residual cash remains in cash.
- Cash earns 0% by default. If a strategy explicitly allocates to a cash or Treasury instrument, results begin when that instrument’s data begins.
- Target notional values use portfolio equity measured immediately before modeled fills on the execution bar.
- For next-open execution, equity is measured after day-start cash flows and before fills. For trade-on-close execution, equity is measured at Close(t) before applying Close(t) fills. If a trade-on-close signal or target size depends on the final official Close(t), the target size is part of the same closing-price convention. It should not be read as a claim that exact order quantities were known before the closing-auction submission deadline.
- For target-notional sizing, the target is converted to whole shares by rounding down so the modeled notional does not exceed the target. The long or short direction is applied after rounding.
- For percent-of-equity sizing, the percentage target is primary and any maximum-position rule acts as a position cap. Positions are not scaled upward solely to force full investment.
- Unless a strategy states otherwise, long-only strategies target full gross and net long exposure. Strategies with both long and short positions target full gross exposure and zero net exposure before applying collateral and portfolio-capacity constraints.
- Strategies may include position limits, such as a maximum number of holdings. Existing holdings are not forced out solely to make room for new signals.
- When qualified candidates exceed the available slots on a trade day, the strategy’s stated selection rule is applied.
- If no selection rule is stated, candidates are chosen deterministically using the stated ranking metric or selection score when available, with ties broken alphabetically by ticker. If no ranking metric or selection score is available, candidates are chosen alphabetically by ticker.
- Candidate selection is deterministic and does not rely on incidental symbol order.
- Overflow candidates may be deferred under the strategy’s stated rules, but they remain subject to available portfolio capacity and later scheduled strategy evaluations.
- Taxes, regulatory or clearing fees, and margin interest are not modeled.
Dividends
- Ordinary cash dividends are posted to portfolio cash on the ex-dividend date before any modeled fills.
- Dividend eligibility is based on shares held at the prior close. Positions sold at the open on the ex-dividend date still receive or owe the dividend. Positions bought at the open on the ex-dividend date do not.
- Long positions receive dividends. Short positions pay dividends based on the absolute share count held at the prior close.
- For strategy portfolios, dividend cash remains in cash until the next strategy action, such as an entry, exit, rebalance, or resize. At that point, the cash becomes deployable portfolio-wide. For equity-linear targets, cash flows update equity and therefore scale target notionals. Fixed-dollar target strategies do not scale targets solely because dividend cash was received.
Portfolio constraints and short selling
- Portfolio equity is marked to market at each day’s close as cash plus open positions. Long positions contribute positive market value, and short positions contribute negative market value.
- Short-selling portfolio backtests apply a simplified U.S. Regulation T-style collateral rule. Short-sale proceeds are held as collateral and are not spendable cash. On trade days, desired post-trade exposure must satisfy this constraint: long market value + 0.5 × absolute short market value ≤ available equity.
- If post-trade targets would exceed this constraint on a trade day, long and short targets are scaled proportionally using a single common factor.
- The constraint is enforced on trade days only. Positions are not reduced between trade days solely because later price movement changes the collateral ratio.
- When a strategy with both long and short positions has candidates only on the long side or only on the short side, those entries may proceed under the strategy’s gross and net exposure budgets. Trades are not suppressed solely to maintain zero net exposure.
- A borrow fee of 1.0% per annum accrues on the remaining absolute market value of short positions from Close(t) to Close(t+1), using calendar-day gaps on a 365-day basis.
- Variable borrow rates, locate failures, recalls, buy-ins, hard-to-borrow constraints, and short-sale restrictions are not modeled. Borrow is assumed available under this simplified treatment. When these frictions are significant, short-side results may be materially overstated.
Benchmarks, reporting windows, and performance metrics
Reporting window and performance calculations
- Reported strategy and benchmark performance metrics use the same joint-valid window. The window runs from the first full calendar year through the last full calendar year for which both the strategy and primary benchmark have valid daily equity observations. Partial first and last years are excluded.
- Strategy and benchmark metrics use the same formulas, the same annualization conventions, and the same metric window.
- Time in market is the percentage of daily observations in the reported metric window with gross market exposure greater than zero. Cash does not count as market exposure; long and short positions do.
- Trades per year is the total number of modeled trade executions divided by the number of calendar years in the reported metric window. For portfolio rebalances, each security-level buy or sell is counted as a trade.
- Trade-level win rate is measured per first-in, first-out (FIFO) matched closed lot or partial-lot observation, not per sell event or calendar period.
- Closed observations are reconstructed using FIFO lot matching. Partial exits can split lots, and a single exit can close multiple lots and produce multiple closed observations.
- Win rate uses total-return profit and loss. This includes price gains and losses, ordinary dividends received or paid, borrow fees where applicable, commissions, slippage through modeled fill prices, and forced closes.
- A closed observation is counted as a win only when its unrounded total-return profit and loss is greater than zero. Break-even outcomes are not wins.
- Forced closes from end-of-range liquidation or data termination are included in win-rate calculations.
- Dividend reinvestment events in synthetic total-return benchmarks do not create additional win-rate observations.
- Volatility is the annualized sample standard deviation of daily simple returns using a 252-trading-day annualization factor.
- Maximum drawdown is the largest daily peak-to-trough decline in the marked-to-market equity curve over the reported metric window.
- Sharpe ratio is computed from daily simple excess returns, annualized by √252, using a 0% risk-free rate unless a strategy-specific model states otherwise.
- Calmar ratio is compound annual growth rate (CAGR) divided by the absolute value of maximum drawdown, using unrounded CAGR and unrounded maximum drawdown.
- CAGR is geometrically annualized from beginning and ending equity over the reported metric window.
- Ending capital is the final marked-to-market equity value in the reported metric window, rounded to the nearest dollar.
Benchmark conventions
- Unless a strategy states a different primary benchmark, the default benchmark is the SPDR S&P 500 ETF Trust (SPY) on a buy-and-hold basis.
- The default benchmark buys at the open of the first in-range trading day and sells at the close of the last in-range trading day.
- Primary benchmark results are reported as synthetic total return with ordinary dividends reinvested.
- This dividend convention is required for primary benchmarks. A strategy may use a different primary benchmark model, instrument set, weighting method, rebalance schedule, or maintenance rule. However, primary benchmark dividend handling remains total-return benchmark accounting and is not replaced by strategy-style dividend cash accounting.
- Dividend reinvestment is an accounting convention. It converts dividend cash into additional fractional-equivalent benchmark units at the ex-date open. If that open is unavailable, the prior valid close is used.
- Primary benchmark units may be fractional-equivalent for entry, dividend reinvestment, and liquidation. Dividend reinvestment does not add separate trading costs.
- The initial benchmark purchase, final benchmark liquidation, and any scheduled benchmark rebalances use the same default costs and execution conventions.
Portfolio and mechanics-matched benchmarks
- Some strategies use a portfolio benchmark, such as an equal-weight ETF basket with a stated rebalance schedule.
- Scheduled portfolio-benchmark rebalances use the same benchmark cost and execution conventions.
- A portfolio benchmark begins on the first date on which all required benchmark instruments have valid data and the benchmark can be constructed under its stated rules.
- A mechanics-matched benchmark uses whole-share sizing, retains dividends as cash, and follows the stated benchmark construction and rebalance schedule.
- A mechanics-matched benchmark is optional and secondary. It may be reported in parallel as a diagnostic comparison, but it does not replace or redefine the primary benchmark.
Research-selection limitations
- This methodology standardizes how a declared rule set is simulated. It does not, by itself, prove that a rule was discovered without data mining, parameter search, or publication selection.
- Strategy entries describe the rules implemented for the strategy, include credit or source context when applicable, and report the resulting backtest metrics under this methodology.
- The published rules reflect the implementation of the strategy as understood from available sources and research review. Strategy entries are implementation summaries; they do not attempt to catalog every source, interpretation, or possible variant.
Version
Current methodology version: BTS-3377.
Published backtests are tagged to the methodology version in effect at publication. Material methodology changes will be logged in this section when they affect interpretation, comparability, or implementation of published results.
