Free resource · no email required
The strategy spec template
A backtest is only as meaningful as the specification behind it. Ten sections below — answer them and your idea is testable. Leave one ambiguous and the result silently depends on whatever the person coding it assumed.
This is the same document we'd build with you in step 2 of an engagement. Fill it in first and you get a faster, tighter scope back. Or ignore us entirely and use it as a checklist against your own rules — that's a perfectly good outcome too.
-
01 What do you want answered?
The single most skipped question, and the one that decides what the report is even for. "Backtest my strategy" is not a question; it has no failing answer.
- What would make you trade this live?
- What would make you abandon it?
- Is there a specific doubt you're trying to settle — costs, curve-fit, a regime, a size limit?
Example "I want to know whether this survives realistic slippage at 5 lots, and whether the 2022 performance is the whole edge."
-
02 Instrument, timeframe and history
Determines whether the test is even possible. Clean history for some instruments doesn't exist at any price, and it's better to know that on day one.
- Exact instrument(s) — symbol, exchange, contract or expiry convention
- Bar interval, or tick / quote level
- Period you want covered, and why that period
- If options: which legs, strikes selected how, expiry selected how
Example "NIFTY weekly options, 5-minute bars, 2019–2025. Strikes: nearest OTM by delta at entry. Expiry: current week only."
-
03 Entry rules
The part everyone writes down, usually with one hidden ambiguity: when the condition is evaluated versus when the order is placed.
- The precise condition, in terms of values available at that moment
- Evaluated on bar close, or intrabar?
- Order type — market on next open, limit at a level, stop entry?
- What happens if the condition is still true on the following bar?
Example "When the 15-min close exceeds the prior 20-bar high, enter market on the next bar's open. Re-entry not allowed while a position is open."
-
04 Exit rules
Where most strategies actually make or lose their money, and where specifications are usually thinnest. Every exit path needs a rule, including "none of the above happened".
- Stop loss — fixed, ATR-based, structural? Moved how, and when?
- Target — fixed R, level-based, trailing?
- Time-based exit — end of day, end of session, after N bars?
- If stop and target are hit within the same bar, which wins?
Example "Stop: 1.5× ATR(14) below entry, never moved. Target: 3R. Time exit: 15:15 IST. Same-bar ambiguity: assume the stop fills first."
-
05 Position sizing and risk
Sizing changes the equity curve more than almost any entry tweak. A strategy tested at fixed-one-lot and traded at percent-of-equity is a different strategy.
- Fixed quantity, fixed risk per trade, percent of equity, or volatility-scaled?
- Compounding, or sized off the starting balance?
- Starting capital to assume
- Maximum concurrent positions, and maximum exposure
Example "0.75% of running equity risked per trade, compounding, starting from $100,000. Maximum two concurrent positions."
-
06 Filters and conditions
Filters are where curve-fitting hides. Each one added after seeing results costs you a degree of freedom — we'll test them, and we'll report how much of the edge depends on each.
- Trend, volatility, volume or regime filters
- Days, events or announcements to avoid
- Correlation or portfolio-level constraints
- For each: did you decide it before or after looking at results?
Example "Only take entries when ADX(14) > 20. Skip the two sessions around scheduled policy announcements. The ADX filter was decided up front."
-
07 Session and timing rules
Intraday results move enormously on session handling — and the first and last few minutes of a session behave nothing like the middle.
- Trading window — earliest entry, latest entry, forced flat time
- Timezone, explicitly
- Overnight positions allowed?
- Behaviour on half-days, holidays and gaps
Example "Entries 09:30–14:30 IST only. Flat by 15:15. No overnight. Half-days: normal rules, forced flat 30 minutes before close."
-
08 Costs and execution assumptions
We'll model these by default, but your broker's numbers beat our defaults. For thin-edge strategies this section alone can flip the sign of the result.
- Commission / brokerage structure
- Taxes, exchange and regulatory charges where they apply
- Expected slippage, or let us estimate it from spread and size
- Typical order size relative to available liquidity
Example "₹20 per order per side, plus STT and exchange charges. Assume 1 tick of slippage each way. Typical size: 10 lots."
-
09 Edge cases you haven't decided yet
Be honest here — this section is the most useful one you can write. Anything you leave blank becomes an assumption somebody else makes on your behalf.
- Signal fires while already in a position — add, ignore, or reverse?
- Gap straight through the stop — fill at the gap, or at the stop price?
- Missing bars, halted trading, limit-up/down
- Contract roll or expiry while a position is open
Example "Not decided — please test both 'ignore' and 'reverse' and show me the difference."
-
10 Metrics you care about
The standard report covers the usual set. If there's a number your decision actually turns on, name it now so it's measured rather than reconstructed.
- Any custom KPI, exposure breakdown or risk measure
- Breakdowns you want — by regime, session, day of week, instrument
- A benchmark to compare against, if there is one
Example "Add per-expiry-day breakdown, and worst 20-day rolling return. Benchmark against buy-and-hold on the underlying."
Filled it in?
Send it over and you'll get back what we'd need, what we'd do, and how long it takes — within 24 hours. If you'd rather not share the rules yet, send section 01 and 02 alone; that's enough for us to tell you whether the data exists and what testing it would involve.
We'll sign an NDA before you send anything, if you want one on file. Your idea is never traded, resold, or reused for another client.