Strategy building — from hypothesis to testable rules
A trading idea becomes testable when it has clearly defined market conditions, entry and exit rules, position sizing and cost assumptions. This lesson shows how to turn an observation into a specification that another person can reproduce. You will define a research question, identify the information available at each decision and document cases in which no trade should be placed. A worked London Breakout example, a component audit and an interactive checklist bring the process together. The result is a specification to investigate—not evidence that the strategy will make money.

Restored illustrative artwork. Embedded raster labels have not yet been localized; the full written rules and evidence qualifications below remain authoritative.
Write down when the proposed information becomes usable
“Buy when price breaks the level” leaves several unanswered questions. Which price stream defines the signal? Does a touch count, or must a candle finish? When can the order first be sent? What happens when the first available execution price differs from the chart level? Each answer can change the test without changing the strategy’s informal name.
Take a deliberately invented EUR/USD research case. The signal uses completed M5 candles from a specified bid-price feed. The fixed threshold is 1.2510. A qualifying upward crossing requires the previous completed close to be at or below that threshold and the current completed close to be strictly above it. No trade is inferred from a price seen while the candle is still forming. This is a definition chosen for the exercise, not an observation that such crossings are profitable.
The previous close is 1.2508. The current close is 1.2512 and becomes available at 10:15 on the exercise clock. Both comparisons are satisfied. These facts establish the signal at that time. They do not establish an entry at the threshold, at the preceding candle’s opening price or before the current close was known.
Give the execution model its own prices and sequence
| Stage | Supplied value | Role |
|---|---|---|
| Fixed signal threshold | 1.2510 | Comparison level on the stated bid feed |
| Previous completed close | 1.2508 | At or below the threshold |
| Current completed close at 10:15 | 1.2512 | Strictly above the threshold |
| Assumed later buy fill | 1.2514 | Ask-side execution after signal availability |
| Initial reference stop execution | 1.2499 | Supplied exit price for the risk calculation |
The model assumes a later full buy fill at the ask price 1.2514. It separately assumes that an ordinary stop exit executes at the reference price 1.2499. The second assumption is needed for the calculation; it is not a guarantee about a real stop order. The entry-to-exit difference is 0.0015 USD per euro, or 15 pips when a pip is 0.0001.
Ask entry and the stipulated exit price are already the price inputs. Do not then add an invented spread deduction to the same price-distance calculation. A different execution model might need explicit bid/ask series and additional slippage; it should state what those terms include. MetaQuotes’ basic trading principles distinguish buy-at-ask and sell-at-bid deals, and distinguish an order from its resulting deals. The research record needs those distinctions as well.
Account for the price risk and separate charge once
The candidate volume is 40,000 euros in the exercise’s linear contract. With a USD account, a movement of 0.0015 therefore gives 40,000×0.0015=USD 60 of price loss at the reference exit. The supplied round-trip commission is USD 4 for this candidate. There is no financing charge in this intraday example. The planned combined amount is 60+4=USD 64.
The research card’s stipulated monetary allowance is USD 64, so this particular candidate exactly meets that planning allowance under the supplied model. It does not possess spare room for an extra charge or a worse exit. No claim about actual broker fees, permitted quantity steps, margin requirements or market suitability is being made. Those checks would need their own instrument specification and account conditions.
If the same calculation starts with a price-based result of −USD 60 and a signed commission entry of −USD 4, the net model result is −USD 64. Adding the signed charge once and subtracting a positive charge once are alternative recording conventions for this same calculation. Doing both would produce −USD 68 and double-count the commission. State the convention before combining exported columns.
Make unresolved cases part of the specification
The small case fixes the decision time, comparison rule, price stream, assumed sequence and cost convention. It still leaves research choices open. What is the permitted delay after the close? What if no quote is available? What if the order is rejected or only partially filled? What exit applies if the time limit arrives before the stop? A specification is unfinished when the implementation has to invent those answers.
The official TradingView discussion of repainting explains why the high, low and close of a live candle can change before it closes. Waiting for a confirmed close avoids using an unfinished close in this particular rule, but it does not certify the entire strategy against every source of look-ahead or data revision. Higher-timeframe requests and dataset differences need their own examination.
Keep the first version and a record of later changes, including ideas rejected during development. A reproducible rule can still have negative results. Continue to the complete original strategy specification and its synthetic London example below for the wider component audit. The purpose of the new case is to let another reader reproduce what was known, what was assumed to fill, and what was counted once before asking whether the idea deserves further testing.
Three exercises with worked answers
The exercise data are hypothetical. Choose an answer, then check the calculation.
Continue to the complete strategy specification and audit
The original detailed sections retain their diagrams, checklist, synthetic London example and evidence qualifications. Use the timed price-and-cost case to recognise which assumptions each component must make explicit.
Record the hypothesis, rules, sample and results in Toolkit N: the strategy testing protocol. The form complements the method in this chapter with local saving, export and print.
1. Hypothesis versus strategy: the distinction that matters
You begin with an observation: “After the US employment report, price often returns to its pre-release level within four to six hours.” That is a hypothesis: a proposed regularity in market behavior. A hypothesis does not itself earn money. A strategy is the operating specification for testing whether that behavior can be used with positive expected outcomes after costs, slippage, and the relevant risks. A complete specification can still fail that test.
The two are often confused. Trading material may call “buy when RSI is below 30 and a hammer candle appears” a strategy and stop there. It is a hypothesis about a possible reversal, but it leaves essential decisions unanswered:
- In which regime is it supposed to work: trend, range, or high volatility?
- On which pairs? Is the claim the same for EUR/USD and USD/TRY?
- On which timeframe: M5, H1, or D1?
- What exactly is a hammer: wick-to-body ratio, maximum opposite wick, and permitted tolerances?
- Where are SL and TP, and what planned reward-to-risk relationship follows?
- Which filters apply: macro calendar, correlations, and existing exposure?
- Which position-sizing model applies: fixed fractional risk, fixed lots, or a volatility-based rule?
- What evidence would contradict the claim, and under what review rules would the setup leave the approved playbook?
Eight layers that must be written down
The article returns to these layers throughout. If one is missing, another person cannot reproduce the whole process, and the test must silently invent something the specification did not say:
- Hypothesis: one sentence stating the proposed regularity and possible mechanism.
- Testable edge claim: a numerical criterion capable of rejecting the claim.
- Entry rules: mandatory context, trigger, and confirmation.
- Exit rules: SL, target, time exit, and what happens to the stop after a partial exit.
- Sizing: the position-size formula and governing plan limits.
- Regime filter: the market conditions in which the setup can be considered.
- Portfolio-risk filter: correlations, aggregate exposure, and exclusion windows.
- Change control: a version number, a specification frozen before testing, and the change record described in section 9.
A hypothesis can be true while its trading implementation loses money
This is the section's central point. Suppose, purely as an illustration, the post-employment-release return occurs within four to six hours in 58% of cases. An immediate trade against the initial breakout could still have negative expectancy:
- In the other 42%, the move continues and reaches the stop.
- The spread during the first minute could be much greater than in normal conditions; this example illustrates 8–15 pips instead of 0.8, not a verified current quote range.
- Entry and exit slippage can add further cost in poor liquidity; the example's 5–20-pip illustration is not a measured distribution.
- The outcome can be asymmetric: a stop may execute when liquidity is poor, while a displayed target touch does not necessarily prove that the applicable executable price traded there. These figures are only scenario magnitudes. [SOURCE EVIDENCE GAP: measure actual announcement-window spreads and slippage from appropriate execution records.]
The behavioral observation may therefore survive while the tradable implementation fails. Noticing a regularity is only the beginning. You need complete rules and a cost model that can be tested against the relevant execution conditions.
2. Six steps from an idea to testing
A disciplined development process keeps the live account from becoming the first laboratory. Each stage has a decision gate: proceed, return to an earlier step, or reject the idea. Without those gates, “six steps” is an educational list rather than an operating process. The time estimates below indicate the scale of a first draft, not measured industry norms. [SOURCE EVIDENCE GAP: no verified time study for these development stages.]
Step 1: observation to hypothesis—approximately one to four hours
Notice a possible behavior: a return after NFP within four to six hours, greater movement in the first thirty minutes after London opens, or an apparent tendency for GBP/AUD to trend on Wednesdays. These are examples of observations to investigate, not asserted market facts. Write one sentence and the measurable circumstances that define it. The output is a research question, not an entry signal.
Step 2: conceptual validation—approximately one to two hours
Answer these questions before drafting detailed entry rules:
- Is there a plausible reason for the behavior: market microstructure, participant incentives, or seasonality?
- Has it been studied in credible academic or professional work?
- What mechanism could remove it—for example, competition after the method becomes widely used?
- Could it survive costs? If the expected winning and losing moves are each ten pips, win rate is 50%, and costs are two to three pips per trade, gross expectancy is zero and net expectancy is negative by the cost: −0.2R to −0.3R on the ten-pip risk unit, not “almost zero.”
The process should be capable of rejecting ideas here. A rejected spreadsheet after two hours is less expensive than using a funded account for two months to discover the same arithmetic. If almost everything passes without a cost objection, examine whether the assumptions are realistic; there is no established universal rejection percentage. Keep the conceptual assessment compact—roughly one working page—while retaining the evidence needed to support it.
Step 3: a testable edge claim—approximately two to four hours
State the claim in a measurable form:
- “Net expectancy is at least +0.2R, calculated from realized payoff rather than planned target ratios,” with an appropriate uncertainty interval.
- “The lower bound of the specified 95% out-of-sample expectancy interval is above zero,” with the method, selection process, and dependence assumptions stated.
- Not: “The setup exploits smart-money manipulation.” Without observable definitions and rejection criteria, that is a narrative rather than a testable claim.
Step 4: entry, exit, and sizing rules—approximately three to six hours
Write the actual specification, covered in sections 4–6. Each rule must be operationally explicit. Where human judgment is intentionally permitted, define and record its role; do not hide an interpretive decision inside a supposedly mechanical sentence.
Step 5: sanity check—approximately thirty to sixty minutes
Use the checklist in section 7 before committing time to a backtest. The review is intended to expose missing definitions, impossible assumptions, and unsupported cost arithmetic while they are still cheap to correct.
Step 6: backtesting and forward observation—approximately forty to eighty hours over two to six months
Article 15.4 provides the full method. This is normally the most time-consuming stage in the example. Clear earlier work makes the test more interpretable; it does not guarantee a favorable result or mean that every candidate should eventually reach live trading. Demo observation tests real-time rule execution without reproducing all live execution conditions.

3. Edge — define an advantage you can actually test
An edge is a positive expected outcome after the costs of implementing a strategy. The idea sounds straightforward, but many retail strategies have no measurable edge because their supposed advantage has never been defined in a form that can be tested numerically. A persuasive explanation of why a market should move is not the same thing as evidence that your rules capture a profitable part of that move.
Three levels of edge definition
| Level | Example | Can you test it? |
|---|---|---|
| Weak: a narrative | “My setup detects the moments when smart money is accumulating positions.” | Not in this form. The identity and intentions of “smart money” are not observable variables in this retail rule set. |
| Intermediate: a qualitative description | “My setup enters after breakouts with high volume.” | Only after “high” has a numerical threshold and the volume feed has been identified. |
| Strong: a quantitative specification | “My setup enters after an M5 candle closes at least 8 pips beyond the pre-London range, with tick volume greater than 1.2 times the mean of the preceding 20 M5 candles.” | Yes. Every parameter is measurable and can be checked against specified data. |
The quantitative version can be backtested consistently. The intermediate version still requires a subjective judgment at every decision unless you define its missing terms. The narrative version cannot be tested as written. This does not prove that the quantitative rule has an edge; it makes it possible to discover whether it does. Use the same inequality in the research specification, the strategy card and the implementation.
Testing an edge: the expectancy formula
A basic measure of the edge is expected net return per trade, expressed in units of initial risk:
Here:
- W% is the historical win rate for all eligible instances of the setup, entered as a fraction rather than a whole-number percentage. L% is the corresponding fraction of losing trades; breakeven trades contribute zero but still belong in the sample.
- avgWinR and avgLossR are the positive magnitudes of the average winner and loser. One R is the monetary risk planned before entry, not a denominator adjusted afterwards to make the result look better.
- costR is the average commission, swap and applicable currency-conversion charge, converted into R from actual broker statements. Do not substitute the advertised minimum cost. If wins and losses already use actual execution prices, spread and slippage are already reflected in them and must not be deducted again. If the R values also include commission and swap, as in the calculation at the end of this section, those costs are already included too: set the additional
cost_Rto zero for costs already accounted for. Deduct each cost once.
This is a general example, not the London strategy card in section 9, whose full two-target outcome is capped at 1.75R before costs under its stated assumptions. Suppose the win rate is 55%, the average winner is +1.8R and the average loser is −1R, measured from execution prices before commission and swap. Additional costs average 0.1R.
Expectancy before those additional costs: (0.55 × 1.8) − (0.45 × 1.0) = 0.99 − 0.45 = +0.54R.
Net expectancy: 0.54 − 0.1 = +0.44R per trade.
That number starts the discussion; it does not settle it. An expectancy calculated after selecting only the best entries in a journal is a selection result, not reliable evidence of an edge. Nor does +0.44R tell you how uncertain the estimate is. You need the number of observations, their dispersion and an approach that accounts for dependence before you can assess an interval around it. A positive estimate can coexist with long losing runs and a drawdown larger than anything in the historical test. The equity curve of a positive-expectancy strategy is not a smooth upward line: it contains advances, setbacks and periods of stagnation.
SQN: another measure alongside expectancy
Van Tharp's System Quality Number, or SQN,[3] combines average return, variability and sample size. The variant discussed here is SQN = (mean R / standard deviation of R) × √N, with N = min(n, 100). Capping N at 100 prevents the number from increasing solely because a sample already above 100 trades becomes longer. Source limitation: the Polish article identifies this cap from secondary descriptions of the method, not from a directly checked edition of the original book. Treat it as a specified variant, not an independently verified universal definition. Article 15.9 handles metric definitions and interpretation; here SQN is simply one field on the strategy card.
SQN is not an allocation decision and does not replace a confidence interval. A high value calculated from one market regime indicates relatively favourable and consistent results within that sample; it does not establish that the advantage will survive a different regime. Use the same definition and the same N when making direct comparisons. Record the actual sample size separately even when the formula caps N.
America/New_York; the corresponding European clock time changes during the weeks when US and European daylight-saving transitions differ. For many T+2 currency pairs, a triple financing adjustment is commonly applied at the Wednesday rollover because settlement spans the weekend. The day, amount and exceptions depend on the instrument, holidays and provider: check your symbol specification. It is not a fixed property of the trading platform. Include actual financing in the overnight strategy's cost calculation once. Article 15.7 develops the cost accounting for an individual trade.How much edge is enough to be operationally useful?
In the illustrative framework used here, net expectancy below +0.15R is mathematically positive but leaves a thin operational margin. That is a scenario choice, not a universal rejection threshold:
- Sample-to-sample variation may be large relative to the estimate. For example, a movement of 0.1–0.2R would materially change the interpretation of +0.15R; do not assume that this illustrative range is the measured uncertainty of your own strategy.
- A deterioration in execution, such as a wider spread during stress or a worse fill, consumes the available buffer.
- A result close to zero can make the process harder to follow because losses are large relative to the estimated pace of gains. That practical concern does not substitute for statistical evidence.
Rules such as “+0.3R for A+ and +0.15R for B” are illustrative thresholds, not market standards. Their purpose is to make a decision rule explicit. Their limitation is that an uncertainty interval can straddle the threshold. When it does, defer the conclusion: continue observation, use only a previously authorised reduced-risk testing arrangement where appropriate, and schedule the next review. An unvalidated hypothesis does not acquire permission for live trading merely because its position size is small. Article 15.10 sets out how to retain, downgrade or retire a setup.
Where the numbers come from: an export warning
Calculate the research metrics from a reconciled journal, not just the platform's headline dashboard. There is a technical trap at the first step: an MT5 history report is not automatically a CSV file. The Polish procedure describes History → Report producing an HTML report using ReportHistory.htm, with Open XML also available in some implementations. Procedure to verify in your installed build; source review date: 6 September 2026. Do not assume that a menu or format is identical across every installation. Fields such as profit_pln, commission_R and swap_R are not guaranteed native export columns; they are journal fields you calculate.
In practice, take the trade or deal identifiers, timestamps, price-based profit or loss, commission and swap from the report, reconcile partial fills where necessary, and add your own pre-entry planned monetary risk. In the Polish example that field is risk_pln; for an international account, use risk_account_currency and record the currency explicitly. Then calculate R = (profit + signed commission + signed swap) / initial planned risk, adding other applicable charges consistently. In a signed statement, a charge is negative: do not subtract a negative charge and accidentally turn it into income. Spread and slippage are already reflected when profit uses actual execution prices. Do not charge them twice. Article 15.9 provides the journal schema, formulas and code.
4. Entry rules — from trigger to confirmation
An entry rule has three components: a necessary condition that defines the context, a trigger that identifies the signal, and confirmation that checks whether the trade is still permitted. Each must be unambiguous. A trigger alone is not permission to send an order, and sending an order is not the same as receiving a fill.
The necessary condition: context
This is the environment in which the strategy is intended to work. Without a context rule, the same signal can appear in a trend and a consolidation even though the proposed advantage applies to only one of them. The context filter is a hypothesis to test, not proof that one regime is automatically profitable.
For example, a trend-following strategy might define its required trending environment as:
- The D1 50-period simple moving average is above the D1 200-period SMA for a long bias, or below it for a short bias.
- D1 ADX(14) is at least 25.
- Price is above both moving averages for a long trade, or below both for a short trade.
A mean-reversion strategy might instead require:
- D1 ADX(14) below 20.
- Price oscillating within the channel defined by the high and low of the preceding 20 completed D1 candles.
- D1 ATR(14) between 0.7 and 1.3 times its 90-day average.
Specify which completed bars are used and what happens at the boundaries. If “oscillating” still requires visual judgment, add a measurable condition before treating that description as a finished backtest rule. The numerical examples illustrate how to write context rules; they are not universal market thresholds.
The trigger: an entry signal
The trigger identifies the event that makes the setup eligible for the remaining checks. It should be one precisely defined condition on the relevant M5, M15 or H1 data, without an improvised interpretation. Examples include:
- “An M15 candle closes above the preceding candle's high, and its body is greater than 0.5 times M15 ATR(20).”
- “Price reaches the H1 50-period SMA from below and forms a candle whose lower wick is greater than 60% of its body.” For this candidate, define the touch tolerance, the completed candle and the handling of a zero-length body.
- “M15 RSI(14) crosses above 30 from below.” Specify whether the previous value must be strictly below 30 and evaluate the cross on completed bars.
“The market looks ready” and “a good opportunity is appearing” are not triggers. They are assessments that different people can apply differently to the same chart. A testable rule tells both people which event occurred and when.
Confirmation: checks before sending the order
After the trigger, but before entry, evaluate the confirmation filters. Every answer must be YES or NO: not “probably”, “to some extent” or “unless I really like the chart”. A compact binary checklist can look like this:
| Condition | Numerical rule | YES / NO |
|---|---|---|
| Required regime | D1 ATR(14) is 60–120 pips. | ☐ ☐ |
| Range within bounds | The pre-London range is 12–35 pips. | ☐ ☐ |
| M5 candle is closed | Confirmed closed bar: an illustrative reading 5 seconds after the boundary (08:05:05, 08:10:05, … in Europe/London) does not replace verification of the timestamp and feed completeness. | ☐ ☐ |
| Volume threshold | Tick volume is strictly greater than 1.2 times the mean of the preceding 20 completed candles. | ☐ ☐ |
| No high-impact event | No event in the specified calendar's rank 3 category within ±2 h | ☐ ☐ |
| Correlation exposure acceptable | No conflicting open exposure beyond the defined 0.7 correlation threshold; the calculation window and position directions must also be specified. | ☐ ☐ |
| Order type fixed | Market, limit or stop was selected in the strategy specification before the session. | ☐ ☐ |
Seven YES answers allow the entry process to continue according to the playbook. Any NO means skip the setup. An undefined or unavailable value is not a YES. Wherever the checklist permits “maybe”, a discretionary preference can replace the rule you intended to test.
These are illustrative parameters of the London example in section 9, not market standards. Your thresholds require calibration on your own data; article 15.6 develops the filter catalogue and calibration process. Decentralised spot FX does not provide one consolidated exchange-volume series. Your platform's tick volume reflects activity in its particular feed, not total global currency turnover. A 1.2× threshold calibrated on one feed is not automatically transferable to another. Verify the provider, period and completeness of the data.
Entry execution: market, limit or stop?
| Order type | Typical use case | Limitation |
|---|---|---|
| Market | A breakout or other time-sensitive entry where the strategy prioritises prompt execution at available prices. | The price is not guaranteed, nor is execution in every market state. Slippage around releases such as US payrolls or CPI can be material; 1–5 pips is only an illustration, not a reliable limit. Reduced liquidity can produce worse fills. |
| Limit | Mean reversion, a retracement towards a moving average, or another rule that waits for a specified price or better. | The order may not fill and the opportunity may be missed. Partial fills are possible depending on the venue, order and available liquidity; they are not a feature specific to small accounts. |
| Stop | A level breakout where entry is activated only after the specified price condition is reached. | Once activated, a stop-market order is exposed to market-order execution risk, potentially severe in low liquidity. A stop-limit order has a different non-fill risk. |
Write the order type into the playbook before the session. Choosing between market, limit and stop while the candle is already moving changes the method during execution. Trend-following rules often use stop entries, mean-reversion rules often use limits, and some news strategies use market orders; these are common associations, not prescriptions or evidence that trading a release is suitable for the reader.
Broker execution: what happens after the click?
Demo and live execution can differ, and those differences feed directly into expectancy. State four assumptions before testing: the spread in the actual entry window rather than its daily average; market-order slippage supported by your own logs; the possibility of requotes or rejected orders; and partial fills, particularly when order size is large relative to available liquidity. Leaving these unspecified produces a test that cannot be compared properly with live implementation. Article 15.7 follows an individual trade from submission to execution.
A stop-market order becomes eligible for market execution after its trigger. It does not guarantee the execution price or unconditional execution: a suspension, gap, unavailable quote or provider restriction can prevent an immediate fill. Some providers offer a separately priced guaranteed-stop service under specific terms; do not assume an ordinary stop has that protection. A stop-limit order controls the acceptable price but introduces the possibility of no fill. During a gap, an exit stop-limit can remain unfilled while the open position continues losing value.
For the protective-stop examples in this article, the specified default is a stop-market order, not a stop-limit. A price-controlled entry is a different decision from an emergency exit. Use a stop-limit only when the strategy explicitly accepts and manages its non-execution risk; do not describe it as guaranteeing capital protection. Check the provider's actual order semantics rather than relying on the label alone.
Is execution delay part of the strategy?
If the entry rule says “submit a market order after the M5 close”, the interval between the signal and the fill is part of the strategy, not an incidental technical detail. State the assumed delay, the associated slippage model and the evidence behind both. The terminal's location, backup connection and system-clock synchronisation belong to the workstation design discussed in article 15.1.
The practical boundary here is infrastructure sensitivity. If a few hundred milliseconds eliminate the measured advantage, the project requires explicit latency and execution research; it cannot be treated as a robust discretionary retail setup simply because the historical chart looks attractive. Describe that dependency honestly in the specification rather than assuming that a faster internet connection will solve it.
5. Exit rules — stops, targets and partial closes
Exit rules are often less carefully specified than entries. That is one reason a strategy can appear convincing in theory yet fail operationally. An ill-defined stop, an arbitrary target and no instructions for the situations between them leave the method incomplete. The exit is part of the strategy's hypothesis, not a decision to improvise after the trade starts.
Stop loss: where it belongs and why
Place the stop where the trade's hypothesis is invalidated, not simply where you would prefer to lose a small amount or an arbitrary “2% below entry”. Three common approaches are structural, beyond a relevant extreme plus a buffer; volatility-based, using a defined multiple of ATR; and a combination of the two. The chosen method is a strategy parameter. Specify it once, because it determines stop distance, which in turn affects position size and cost expressed in R. Changing the method during a trade is a change of strategy, not a minor adjustment.
The buffer should reflect the instrument, its quotation convention and the observed volatility rather than habit. A fixed “5–10 pips for everything” can be unnecessarily wide for one quiet major pair and inadequate for another instrument or market state. Yen pairs and gold also require attention to what a pip or point means in the provider's specification. Set the structural or volatility rule first, then calculate the position size within the approved monetary risk; do not force every instrument into the same numerical buffer.
Take profit: fixed, structural, trailing or partial
There are four broad approaches. A fixed target uses a multiple of initial risk and is straightforward to test. A structural target uses a defined market level. A trailing exit follows favourable price movement and can capture a large move, but often gives back some of it before exiting. A partial exit closes part of the position at a nearer target and leaves the remainder for a later exit. The same entry rule can produce very different return distributions under these four approaches.
Choose the exit variant before testing and record it on the strategy card. Comparing two variants on the same data means evaluating two hypotheses; it does not leave you with one untouched test. Article 15.2 specifies the card fields.
Partial exits also create an important arithmetic constraint. Under “50% at +1R and 50% at +2.5R”, the full planned target outcome is 0.5 × 1 + 0.5 × 2.5 = +1.75R before costs, assuming exact target fills and no change in position size. You cannot simultaneously describe that fixed-exit model and assume an average winning trade above its 1.75R ceiling. A different execution model, favourable price improvement or an uncapped runner would need to be stated separately. Section 9 develops the calculation.
MAE and MFE in a strategy specification
Maximum adverse excursion, or MAE, records the largest unfavourable movement during a trade. Maximum favourable excursion, or MFE, records the largest favourable movement. They are diagnostics calculated from a completed sample, not information that was available in full at entry. Their role in strategy development is to help distinguish an entry problem from a stop-placement problem or a profit-taking problem.
Make that diagnosis before changing a rule. A changed rule creates a new version and requires a new test; it does not retroactively improve the evidence for the old version. Section 9 illustrates this sequence. Definitions, the scatter-plot method and the diagnostic table are developed in article 15.9.
Maximum holding time
A frequently omitted question is what to do with a position that reaches neither its stop nor its target for hours or days. Specify a maximum holding period or another explicit expiry condition, together with how the exit will be executed. Illustrative planning ranges are:
- Day trading: 4–6 hours, or no later than the designated session close.
- Swing trading: 5–10 days, if that matches the strategy's tested holding-period hypothesis.
- Position trading: 3–8 weeks in an example with that horizon.
These are not recommended durations for every strategy. The important point is that an unexpired exposure should still have a reason to exist under the written rules. If the setup was meant to work within four hours and after nine hours you are merely waiting, the position is occupying risk capacity outside its intended process. Additional news exposure and financing charges remain real even when the chart seems inactive. Extending the holding time requires its own tested rule, not the phrase “giving the market a chance”.
An open position combined with an unresponsive platform belongs to the crisis procedure in article 15.8. The strategy specification should still require protective server-side stop placement as part of the opening process, with acceptance verified immediately. Where the provider's order flow cannot attach it atomically, define the brief unprotected-state response explicitly; do not assume the stop exists merely because the entry filled or leave it to “a moment later”.
6. Filters — regime, calendar, correlation and time of day
Filters distinguish a setup, an individual entry pattern, from a strategy that applies selected setups under specified conditions. Without them, signals from a favourable regime can be mixed with signals from environments where the proposed mechanism does not operate. An aggregate result may then conceal the very dependency you need to understand. Filters themselves must also be tested: adding exclusions until the historical curve looks attractive is not validation.
The market-regime filter
A regime rule identifies when the strategy is eligible to operate. Example implementations include:
- Trend following: D1 ADX(14) at least 25, with D1 ATR(14) between 0.7 and 1.3 times its 90-day average, alongside the directional conditions in section 4. This relative ATR band belongs to the general example. The London case in section 9 instead uses an absolute 60–120-pip band; do not silently apply both or exchange one for the other.
- Mean reversion: D1 ADX(14) below 20 with stable ATR, where “stable” has the numerical definition recorded in the card rather than a visual interpretation.
- Volatility breakout: M15 ATR(14) expands after a compression period. The candidate compression condition is that ATR over the preceding five bars is below 0.7 times its 50-bar average. Define whether this means each of the five readings or their mean, and define the subsequent expansion trigger, before coding the test.
The economic-calendar filter
Do not hard-code release dates from memory. Holidays, daylight-saving changes, delayed publications and unexpected central-bank briefings can invalidate a familiar timetable. Check the calendar the day before and again on the trading morning. The playbook should contain a rule for identifying the event and exclusion window, not an assumption that a remembered weekday is always correct.
- Events commonly relevant to major currencies include US payrolls and CPI, FOMC decisions and projections, ECB decisions and press conferences, Bank of England, Bank of Japan and Reserve Bank of Australia decisions, German ZEW and Ifo releases, UK GDP, Australian and Canadian employment reports, and OPEC+ developments that may affect oil-sensitive currencies such as CAD and NOK. Their significance varies by regime and expectations; the list is not a guarantee of a specific reaction.
- Calendar aggregators include Forex Factory, Investing.com and Trading Economics. Compare two sources when necessary, because impact-category definitions differ, and use the issuing institution to resolve a disputed release time.
- The single rule used throughout the London example is no setup within ±2 hours of an event in the chosen calendar's highest-impact category affecting either the base or quote currency. This is an illustrative strategy parameter, not a market standard.
- Apply the filter by currency exposure, not just the label of one pair. A Bank of Japan event can affect EUR/JPY, GBP/JPY and AUD/JPY as well as USD/JPY.
The rollover filter: define the provider's actual boundary
Many FX providers apply daily rollover around 17:00 America/New_York. This corresponds to 22:00 UTC in New York's standard time and 21:00 UTC during its daylight-saving time. The original Polish example uses 23:00 local time, which is the usual conversion but not the conversion during every US–European transition week. Always verify the actual instrument and provider boundary.
Financing adjustments and reduced quoting activity can coincide with substantially wider spreads. Yen, Australian-dollar, New Zealand-dollar and less liquid pairs can be vulnerable, but the magnitude must be measured on the relevant feed. A 12-pip stop on AUD/JPY may be reached because the executable side of the quote moves even without a comparable move in the midpoint. A long closes at the bid; a short closes at the ask. A chart showing only one side cannot establish what the other side did.
- The illustrative intraday exclusion window is five minutes before to ten minutes after rollover: commonly 16:55–17:10 America/New_York, equivalent to 22:55–23:10 in Poland during the usual offset. Do not carry a tight-stop intraday position through it unless that exposure is explicitly covered by the tested strategy.
- A structurally wider swing stop may be less sensitive to an ordinary spread expansion than a tight M5 or M15 stop, but it is not immune to gaps, quote changes or execution risk. “Several dozen pips” is not a guarantee of safety.
- For many T+2 FX instruments, Wednesday rollover commonly includes a triple financing adjustment. Confirm the relevant day, rate and holiday exceptions in the provider's specification rather than multiplying every Wednesday charge by three yourself.
| Filter | Example numerical condition | Data source | Potential error |
|---|---|---|---|
| Trend regime | D1 ADX(14) ≥ 25. | Built-in MT4/MT5 ADX with the settings recorded. | ADX responds with a lag, so the first bars of a developing trend may be excluded. |
| Volatility regime | D1 ATR(14) between 0.7 and 1.3 times its 90-day average. | Platform data and a reproducible calculation. | A fixed 90-day reference may fit a changing macro regime poorly. |
| Economic calendar | No relevant rank 3 event within ±2 h | Specified calendar provider, with a second source or issuer confirmation when needed. | The definition of “rank 3” differs between calendar providers, and release schedules can change. |
| Portfolio correlation | For the conservative example, require |ρ| < 0.7 against existing exposures. | A broker calculator or your own calculation with the return frequency and lookback recorded. | Correlations change. During stress, dependencies can strengthen and diversification can weaken when it is most needed. |
| Time of day | Conventional London FX window 08:00–16:00 Europe/London; New York FX window 08:00–17:00 America/New_York. The NYSE cash opening is 09:30 New York time. | The session framework in article 15.5 and the relevant market's own schedule. | Daylight-saving transitions shift the clock by 1 h, normally 2 times a year in these reference zones; transition dates differ between countries. FX session boundaries remain conventions, not a single central exchange opening. |
The portfolio-correlation filter
The conservative rule used here is binary: do not add the second position unless |ρ| is below 0.7. Equality therefore fails too; using one boundary consistently avoids a gap between “below 0.7” in the table and “above 0.7” in prose. This is not the same rule as automatically halving the second position.
The arithmetic matters. Two positions each carrying 1% planned risk represent about 2% combined planned stop risk before slippage and costs, irrespective of their correlation. Correlation changes the tendency of their outcomes to occur together. Position direction matters as well as the raw pair-return coefficient: two same-direction positions with ρ near +0.8 and two opposite-direction positions with ρ near −0.8 can reinforce the same exposure. Reverse those direction combinations and they can partly offset instead.
The absolute-value filter is deliberately conservative: it excludes both high positive and high negative pair-return correlations rather than asking the trader to improvise an offset calculation. It does not claim that all excluded combinations have identical economic risk. Record the return frequency and measurement window with the threshold; a 20-day estimate and a 250-day estimate are different inputs. Missing or unreliable correlation data are not a pass. Overall exposure limits belong to the trading plan in article 15.2, not to a single strategy in isolation.
The time-of-day filter
Some strategy hypotheses concern a specific activity window rather than an all-day pattern. Examples are:
- London-opening breakout: 08:00–09:30
Europe/London, with the reference range built during the preceding hour. Section 9 uses this window. - New York cash-opening momentum: 09:30–11:00
America/New_York. This refers to the US cash-equity opening, not the start of the conventional New York FX session, which is earlier. - Tokyo-session range: a conventional 09:00–18:00
Asia/Tokyowindow. Japan does not change clocks seasonally; the converted European time does. - Excluded periods: the provider-specific rollover window and any explicitly excluded final hours of Friday trading. Define the Friday cutoff rather than leaving “late” to interpretation.
Always record the named time zone and apply its date-specific offset. The United States and Europe change clocks on different dates, so their usual difference is temporarily altered in spring and autumn. Store an unambiguous timestamp, preferably UTC plus the strategy's session zone, rather than attaching “GMT” or “CET” to every date. Article 15.5 holds the chapter's shared session framework. Time verification: zone, daylight-saving conversion and availability of information at the decision time.
7. A sanity check before backtesting
A 30–60-minute sanity check can save many hours spent testing a strategy that is incomplete or inconsistent from the outset. The following 12 questions are a working checklist. Resolve every missing answer before treating the specification as ready for a test.
Conceptual questions
- Can I explain why the strategy might work in two sentences without jargon? If the explanation requires five paragraphs or relies on undefined “smart money manipulation”, the mechanism is not yet clear enough.
- Does the idea follow from market microstructure, participant behaviour or seasonality, or was it fitted to historical data? The first group at least offers a candidate mechanism that can be named and challenged. That is not a promise of durable profitability: persistence must be measured using your data and implementation costs. A convincing category label does not validate the rule.
- Can I identify a mechanism that would invalidate it? Examples include wider adoption by competing algorithms, a change in market structure or a regulatory change. State what evidence would contradict the hypothesis.
- Is there enough room for costs? As an initial illustration, require the characteristic favourable move or average gross winning move used in the screening calculation to be at least three times the estimated cost. An 8-pip move against 3 pips of costs gives 2.67, below that illustrative screen. This is not a market standard or a substitute for expectancy across winners and losers; a strategy can pass this ratio and still lose money.
Methodological questions
- Is every rule unambiguous? Words such as “strong”, “clear” and “convincing” need operational definitions. Otherwise they leave room to judge the same historical event differently after seeing its outcome.
- Could a competent developer implement the strategy in Pine Script or MQL without asking me to make a visual judgment? Your own coding ability is not the test. The question is whether the instructions are complete enough to implement consistently.
- Have I defined all relevant states? Entry, profitable exit, losing exit, maximum holding time and the response to an order rejection must all have instructions. Include ambiguous or missing-data states rather than assuming they never occur.
- Does the strategy define its permitted market regime? Otherwise, signals from conditions where the mechanism is expected to work may be mixed with signals from conditions where it is not. If the hypothesis is genuinely regime-independent, that claim still needs explicit testing.
Risk questions
- Is position sizing defined by a specific formula? “As appropriate” is not a sizing rule.
- Are the maximum planned risk per trade and the daily risk limit defined? State how open risk, realised losses and costs contribute to the limit.
- Is the portfolio-correlation and aggregate-exposure check part of the entry process? One attractive setup does not override account-level limits.
- Is there an operational failure plan? At minimum: a verified server-side protective stop, a tested alternative route for managing the position such as an authorised mobile application or the broker's dealing desk, and a predefined emergency risk limit with the action it triggers. The limit is a decision threshold, not a guaranteed cap on losses during gaps or failed execution. Article 15.1 covers the infrastructure; article 15.8 covers the response after a failure. Without these answers, the strategy has a plan only for the state in which everything works.
If the strategy fails questions 1–4, changing a moving average from 50 to 48 or adjusting the stop is not the solution. Revisit the idea. Failure on questions 5–8 means the method needs a clearer specification. Failure on questions 9–12 means the risk and operational controls are incomplete. Fix the relevant layer instead of changing whichever parameter is easiest to edit.
The final step before a test: freeze the specification
Before running a test, freeze the specification: give it a version number, a date and a record of the dataset and period on which it will be evaluated. From then on, every rule change, including a supposedly small one, creates a new version and requires a new test. A test whose rules change while you inspect the results mainly measures your ability to fit the past. Section 9 shows the version register.
The full catalogue of testing hazards belongs to article 15.4: future information, repainting, calibration and validation splits, repeated testing, cost modelling and retrospective instrument selection. The deliverable here is the document that can be tested: explicit rules, an inventory of degrees of freedom and a stated rejection criterion.
8. Common traps in strategy development
These traps can occur across platforms, providers and trading styles. Their common feature is skipping a development step that seemed unnecessary when the rules were written. The remedy is not a more impressive chart: it is a specification and research record that reveal what was actually tested.
Trap 1: stacking indicators
A trader adds five indicators — RSI, MACD, Bollinger Bands, ATR and Stochastic — and requires all of them to confirm. The strategy then produces three trades a year, leaving very little evidence to distinguish an advantage from chance. Some of the indicators may also repeat similar information rather than supply independent confirmation. A simpler starting hypothesis might use one or two structural conditions and one confirmation filter. Simplicity does not guarantee an edge, but it makes the proposed mechanism and its failure easier to examine.
Trap 2: choosing parameters from the best backtest
A trader tests SMA-20, SMA-21, SMA-22 and SMA-23, finds that SMA-22 produced the best historical result and adopts it. Forward performance then disappoints. One possible explanation is that the winning parameter fitted noise rather than a durable effect. Start with a defensible reason for the parameter — for example, testing a commonly observed 50-period reference — and record the alternatives considered. Popularity is not proof of an edge either. Calibration requires robustness checks and untouched validation data; the single best in-sample value is not sufficient evidence.
Trap 3: leaving market conditions undefined
A strategy that is described as working “all the time” has no declared boundary. A condition such as ADX ≥ 25 makes a trend-strength hypothesis explicit and excludes observations below that threshold. It does not perfectly identify every trend or automatically rescue a losing strategy. The useful change is that regime dependence can now be measured rather than explained away after each loss.
Trap 4: keeping a journal that cannot diagnose anything
A journal containing only date, pair, long/short and profit in account currency cannot explain why certain hours perform worse, whether the stop is too tight or whether opportunities classified A+ actually outperform B. Without fields describing the decision conditions, six months of recording may provide an account summary but little diagnostic evidence.
The strategy-building requirement is narrow and firm: specify in advance what must be recorded to evaluate the rules later. Include setup ID and version, market conditions measured at the decision time, the opportunity class assigned before entry, the outcome in R and costs in R. Article 15.9 provides the full schema, column definitions and import tools.
Trap 5: copying a strategy from a video
A strategy labelled “SMC” or “ICT” may look convincing in an online presentation without establishing what the viewer can reproduce. Possible differences include the presenter's capital and risk tolerance, selective examples and experience-based discretionary decisions that are absent from the stated rules. None of those possibilities should be treated as a factual accusation against a particular author. The research problem is that you do not know how much of the apparent advantage comes from the rule, the interpretation of price action or the selection of material shown.
Before placing trades based on such a method, build your own observation journal: label eligible setups without entering them. Observations on your own instrument and feed reveal whether the rules identify the same situations consistently. An outside idea can be useful inspiration, but the executable specification, historical validation and forward test must be your own. Another person's attractive examples do not replace them.
Trap 6: omitting the cost model
A bid-only test with zero spread can look excellent. Add an illustrative 0.8-pip spread, 0.3-pip slippage and 0.5-pip round-trip commission equivalent, and the total is 1.6 pips. Expressing that as 0.15R requires an initial price-risk distance of approximately 10.67 pips; the R impact is not the same for every stop distance. With that assumption, +0.4R before those costs becomes +0.25R, while +0.2R becomes only +0.05R. Neither result alone establishes statistical reliability.
Use a realistic cost model supported by the relevant session and provider data, plus a more adverse stress case. Advertised minimum spreads are not an adequate default. If the test already uses executable bid/ask prices and realistic fills, do not deduct the same spread or slippage a second time. The cost ledger must explain exactly which components are embedded and which are added.
Trap 7: trying to build a universal strategy
A claim that one strategy works on every pair, timeframe and market regime is far broader than most samples can support. Instruments have different liquidity, session patterns, financing and execution characteristics. A more manageable research programme may contain several specialised strategies, perhaps four to six in an illustrative mature portfolio, each with a defined scenario. That is not a requirement to create extra strategies before one has been validated.
Trap 8: twelve optimised parameters and eighty trades
Optimising twelve parameters on eighty historical trades can produce a remarkably precise fit with little reason to expect it to survive out of sample. Failure need not occur within a particular number of hours; the problem is excessive flexibility relative to the evidence. Do not add parameters without identifying what each contributes to the proposed mechanism and how its selection affects the test.
This lesson uses a deliberately rough brake: no more than one optimised parameter for every 30 trades, equivalent to 120 trades for four parameters or 240 for eight. This is an author's illustrative heuristic, not a statistical theorem or market standard. It cannot certify a safe sample size, identify overfitting by itself or replace uncertainty estimation and out-of-sample validation. Its limited purpose is to force an inventory of degrees of freedom before another parameter is added. The number of tried variants, dependence between trades and the nature of the selection process matter too.
Trap 9: repainting indicators
This is a historical-information problem rather than merely excessive parameter optimisation. An indicator may revise values on already completed bars after later candles arrive. A retrospective chart then shows final values that were unavailable at the original decision time. By contrast, a value changing on the currently forming bar is normal; a rule that reads only completed bars may handle that behaviour correctly.
A specification is not executable as written if it assumes knowledge of a later-revised historical value at the earlier timestamp. Either record and test the real-time value or use the value only after it was actually available. Article 15.4 covers the anti-repainting check and other sources of test contamination.
Trap 10: an unmanageable number of setups
The illustrative portfolio in this chapter contains three to six setups covering different conditions, such as trend following, mean reversion and a volatility breakout. Fewer setups can leave the trader dependent on one mechanism and facing long inactive periods. Too many can exceed the attention available for monitoring, execution and journaling. Neither “fewer than three” nor “more than six” is inherently wrong: the appropriate number depends on validated opportunities, available time and operational capacity.
For example, four setups generating two to eight trades per month each produce 8–32 trades per month before accounting for overlaps and portfolio exclusions. Those counts are scenario assumptions, not expected market output. A strategy portfolio is manageable only if each setup can be recognised, executed and documented without diluting the controls.
Trap 11: keeping a deteriorating strategy out of attachment
It can be easier to add an exception than to consider whether a familiar rule has stopped working. Falling expectancy across review periods, a losing run longer than anything in the test, or a change in market or broker execution conditions may justify investigation. None proves that the edge has disappeared. First reconcile the data and your implementation: rule violations, costs, slippage and agreement with broker records. Only then evaluate a market-change hypothesis.
Article 15.10 defines the review gates, withdrawal criteria and retired status. For specification purposes, retirement is also a documented version-state change, with a date and reason. It should not erase the old evidence or make earlier trades appear to belong to a new method.
If execution is automated, add an explicit failure-state field: what happens when the automation stops? Record whether positions retain server-side stops, how a stopped process is detected and who receives the alert. Hosting, startup and monitoring belong to article 15.1; the response to an actual failure belongs to article 15.8.
9. A complete example — from an idea to a specification and audit
We will now apply the six-step cycle to one concrete idea. The objective is to show the complete development record, not to present an independently validated trading system.
Step 1: observation → hypothesis
Observation to investigate: “On EUR/USD, the hour before the conventional London opening, 07:00–08:00 Europe/London, sometimes forms a narrow range. After the opening, price breaks that range and may continue in the same direction for another one to three hours.” The words “sometimes” and “may” describe the research idea, not a measured frequency.
Falsifiable hypothesis: “Entering after that range breaks, during 08:00–09:30 Europe/London and under the conditions in step 3, produces net expectancy of at least +0.20R, calculated from realised trade outcomes. Reject the claim at the specified review if the upper bound of the 95% expectancy interval is below +0.20R.” One hypothesis, one decision metric and one threshold. Alternating between “win rate ≥ 55%” and “reward-to-risk ≥ 1:1.8” elsewhere in the document would create different claims; no backtest result could resolve that ambiguity for you.
Step 2: conceptual validation
- Possible mechanism: the hour before London opens can precede a change in participant activity as European order flow increases. That is a plausible candidate explanation, not a tested fact about the profitability of this exact rule.
- Literature lead: Lien discusses intraday currency strategies and session-related trading.[2] The exact window and parameter combination used here have not been checked against the cited edition. Treat the reference as a research lead, not as validation of this specification.
- Possible failure mechanism: widespread anticipation could move activity ahead of the trigger or increase failed breakouts. The fact that an idea has been discussed for years does not prove that its edge persists. Persistence must be measured using your data and costs.
- Initial cost screen: an illustrative 2.5-pip execution cost against a minimum stop-distance scale of 25–48 pips is approximately 0.05–0.10R. It consumes about 5–10% of the first target distance. A larger breakout can create a wider stop distance and reduce that fraction, although it does not automatically improve expectancy. Commission is accounted for separately if it is not already included in the R outcome. Spread and slippage embedded in fills are not deducted again. Passing this preliminary cost screen is necessary for further investigation in this example, not evidence of effectiveness.
Step 3: a testable definition of the edge
The candidate setup operates on EUR/USD during 08:00–09:30 Europe/London only when all of these conditions hold:
- The 07:00–08:00 reference range is 12–35 pips wide.
- ATR(14), calculated from completed D1 bars, is 60–120 pips. For this one-pair, one-window example, the absolute band replaces the general relative band of 0.7–1.3 times a 90-day ATR average. The choice makes the candidate rule readable from one indicator value without a drifting reference average; it does not prove that these boundaries are optimal. Only 60–120 pips applies in this case's card, sanity check and audit.
- No EUR- or USD-relevant event in the specified calendar's highest-impact category falls within ±2 hours of the proposed entry.
All three conditions must be observable before entry. “Testable” means that another person using the same data and definitions obtains the same YES or NO answers. It does not mean that the description merely sounds quantitative.
Step 4: entry, exit and sizing rules
Necessary context: completed-day ATR(14) is 60–120 pips, the calendar exclusion passes, the London entry window is open and required data are complete.
Trigger: a completed M5 candle closes at least 8 pips above or below the 07:00–08:00 reference range during the entry window. Measure the breakout from the close, not the candle's high or low. Use one stated quote convention; this English specification uses the provider's bid candles for both the range and trigger. That does not mean every exit also executes at the bid.
Confirmation: the trigger candle's tick volume is strictly greater than 1.2 times the mean of the preceding 20 completed M5 candles on the same provider's feed. Exclude the trigger candle from that reference mean.
Entry: submit a market order only after the completed signal is available. A long buys at the available ask; a short sells at the available bid. Record confirmation time, submission time and fill time. The historical test must not assume that an order submitted after a close was already present at that closing price. No new request may be sent after 09:30 Europe/London; a candle closing exactly at the cutoff therefore cannot justify a later request under this deadline.
Initial stop: place it 5 pips beyond the opposite range boundary: below the low for a long, above the high for a short. The minimum geometrical distance is range width 12–35 plus the required 8-pip breakout plus the 5-pip buffer, giving 25–48 pips at the minimum breakout. This is not a fixed permissible distance band. A close more than 8 pips beyond the range or a different fill price makes the actual distance larger or otherwise changes it. Calculate size from the observed executable entry-to-stop distance, not from the numbers in this explanatory range.
Risk notation: let D denote that initial price distance in pips and R₀ the planned monetary risk for the whole position. A target at +1D produces +1R before additional charges only under the stated exact-fill and full-position assumptions. Keep R₀ fixed in the journal after entry. Do not confuse a 35-pip distance with a monetary R amount.
TP1: close 50% of the original position at a favourable distance of 1D from entry.
TP2 and trailing: place a target for the remaining 50% at 2.5D. Only after TP1 fills, activate an SMA(20) M15 trailing rule. At each subsequently completed M15 candle, consider moving the remaining stop to that candle's SMA value. A long stop may only rise and must not go below entry; a short stop may only fall and must not go above entry. The stop must also be valid relative to the current executable quote and the provider's minimum-distance rules. If a modification is invalid or rejected, preserve the last accepted protective stop and follow the recorded exception procedure rather than pretending the new level exists.
The remainder exits at whichever occurs first: the 2.5D target, the active protective stop or the time exit. Live orders can execute intrabar; only the trailing update waits for a completed M15 candle. If a bar-only test shows both stop and target touched without revealing their order, use the pessimistic stop-first assumption and flag the ambiguity, or resolve it from sufficiently detailed data. Do not infer the live sequence from one bar's OHLC values.
Under the exact-reference, full-fill model, the full target outcome is 0.5 × 1R + 0.5 × 2.5R = +1.75R before fees. Trailing can reduce that outcome; it does not remove the fixed TP2 ceiling. At D = 25–48 pips, TP2 lies 62.5–120 pips away within a four-hour holding window. The frequency with which that target is reached would need to be measured; the synthetic distribution below is not evidence of its real-world likelihood.
Maximum holding time: four hours after entry. If the last eligible entry occurs by 09:30 Europe/London, the corresponding scheduled exit is no later than 13:30. A separate “by the end of the London session” condition would add nothing to this particular timetable. Actual execution of the time-exit request remains subject to market and provider availability.
Signal expiry: no eligible breakout and request before the cutoff means the day's setup expires. Do not extend the window. If price returns inside the reference range after the signal candle closes but before the request is sent, the signal is invalid. Recording these states distinguishes “no eligible setup”, “invalidated before submission” and “missed execution”; they must not be merged into a conveniently selected backtest sample.
Sizing: the illustrative trading plan allows 1% planned risk for class A+, 0.5% for B and no trade for C. A percentage is not yet an order size. Divide the monetary budget by the measured stop distance and pip value in the account currency, account for relevant charges and round down to the provider's volume increment, illustrated here as 0.01 lot. If minimum size or the required 50/50 split cannot fit the budget and permitted increments, skip rather than round up. Article 15.7 develops the conversion; article 15.2 owns the classification framework and aggregate limits.
The opportunity grade is determined before entry from the range, ATR, calendar and volume conditions: A+ means every condition passes with the defined margin; B means exactly one numerical condition is inside its permitted-side boundary band; C means any mandatory condition fails or at least two conditions are borderline. The calendar is a binary exclusion, not a discretionary borderline allowance. A+ and B describe hypothetical opportunity grades; the strategy's separate evidence status is still untested hypothesis, so these risk percentages do not authorise live deployment.
Six decisions needed to close the gaps in the rules
This is where many apparently finished strategies become silent. Each decision changes the numerical result, so record it before testing:
- The stop after TP1: move the remaining protective stop to entry, subject to acceptance. With exact fills, half closed at +1D and half at entry produces +0.5R before fees, not 0R or −0.5R. A stop at entry is not a guarantee of a net breakeven fill.
- Number of entries and re-entry: at most one entry per pair per day. After a stop-out, do not re-enter even if the opposite side of the range later breaks.
- Breakout reference price: the completed M5 bid close, not the high or low. Execution uses ask for a long entry and bid for a short. Any difference belongs in the explicit execution model and realised price result, not in an unexplained adjustment to performance.
- Trailing and the ceiling: an earlier trailing exit produces less than the full +1.75R planned outcome. The fixed 2.5D target remains active; trailing does not create an unlimited runner in this version.
- The B-grade boundary band: it lies approximately 5% inward from each threshold, on the permitted side only: range 12.0–12.6 or 33.3–35.0 pips; ATR 60–63 or 114–120 pips; volume ratio greater than 1.20 and no greater than 1.26. The rounded 33.3 boundary is the documented working convention. Exactly 1.20 fails the strict volume rule; it is not B. A range of 11.4, a volume ratio of 1.14 or ATR of 57 or 126 is outside the mandatory condition and therefore C. A symmetric ±5% allowance would silently broaden the setup and contradict the edge definition. Record the grade before opening the position, never after learning its outcome.
- Requote or confirmed rejection: abandon that day's setup rather than chase the price with another request. A timeout with unknown order state is different from a confirmed rejection: reconcile orders, deals and positions before doing anything that might create duplicate exposure.
Degrees of freedom: count them before adding another
The specification contains 15 numerical choices: the lower and upper range bounds (12 and 35), breakout threshold (8), stop buffer (5), lower and upper ATR bounds (60 and 120), ATR period (14), volume ratio (1.2), volume-reference length (20 M5 candles), TP1 distance (1D), TP2 distance (2.5D), the 50/50 split, trailing SMA length (20), maximum holding time (four hours), and the borderline-band width (5%). Add three time windows — reference range, entry period and calendar exclusion — and three timeframe choices: M5 for entry, M15 for trailing and D1 for regime. That is 21 explicit numerical, window and timeframe choices.
None was selected through data optimisation in this educational example, so the rough “trades per optimised parameter” heuristic does not directly certify or reject it. Each choice still needs a reason. There are also categorical and procedural choices, including quote side, order type, one-entry-per-day policy and handling of ambiguous bars. Record those too; the count of 21 is an inventory of the listed choices, not a claim that it captures every possible research degree of freedom. Every additional adjustment expands the search history and the burden on independent validation.
The baseline: a point of comparison
A baseline helps identify what the added rules contribute. The first comparator uses the same range-breakout entry without the volume and ATR filters, retaining the other explicitly shared assumptions. If the full version does not improve a prespecified performance or risk objective reliably, the filters may simply reduce the sample. A second, stricter comparator uses random entry timing within the same window, with a fully defined direction, stop, target and cost procedure. Freeze the randomisation protocol rather than selecting a favourable seed.
Evaluate the alternatives over the same historical period and common data universe, with consistent costs and eligibility accounting. They will not necessarily generate identical trades; the comparison must explain that difference. Comparing a filtered strategy in one period with its baseline in another confounds the rule change with the market change.
Step 5: the sanity check
Apply the 12 questions from section 7, one line for each:
- ✓ (1) Two-sentence mechanism: a pre-London range followed by increased European activity.
- ✓ (2) A mechanism is named rather than a historical optimum, but it remains unconfirmed.
- ✓ (3) A possible failure mechanism is identified: anticipation and competition around the breakout.
- ✓ (4) Preliminary cost screen: 2.5 pips against a first-target distance of 25–48 pips gives a target-to-cost ratio of 10–19.2, above the illustrative 3× screen. This uses a planned target, not the as-yet-unknown average realised winner.
- ✓ (5) Rules are explicit after the six decisions above, including trailing activation after TP1, completed-M15 updates, favourable-only movement and downward volume rounding.
- ✓ (6) Conditions can be implemented numerically in MQL or Pine once the named data and provider settings are supplied.
- ✓ (7) Entry, both target exits, time exit, stop after TP1, no re-entry and confirmed rejection are defined; unknown order states require reconciliation.
- ✓ (8) The regime filter is completed-day ATR(14) of 60–120 pips, not the relative ATR band used in the general examples.
- ✓ (9) Sizing follows the plan's monetary budget, measured distance and pip value, rounded down to the illustrated 0.01-lot increment, subject to actual symbol constraints.
- ✓ (10) Per-trade and daily limits are inherited from the trading plan and must be populated before implementation.
- ✓ (11) The conservative correlation gate requires |ρ| < 0.7 and a defined measurement window.
- ✓ (12) The operational plan requires accepted server-side protection, an alternative management route and a defined emergency-action threshold.
These checks describe specification readiness, not a profitable strategy. Several implementation inputs remain deliberately unfilled, notably the data provider and actual costs. Supply and verify them before a real test. Twelve conceptually addressed questions do not override the missing-evidence list below.
Step 6: testing — and a synthetic journal instead of results
Article 15.4 provides the test methodology. No test has been performed for this strategy. There are no calibration results, holdout results or cross-pair comparisons. If such results existed, the report would need the named data provider, period and completeness checks.
To demonstrate a completed reporting format and the relationships between metrics, the following journal contains 156 invented trades. Its five outcome values respect the exact-reference model's +1.75R target ceiling and include losses beyond −1R to illustrate gaps. An important simplification is that it contains no time exits. A real breakout sample could contain many small positive and negative time-exit outcomes, for example around −0.3R to +0.2R, but neither that interval nor its frequency has been measured here. Adding such observations would change the mean, winner distribution and dispersion. This is a calculation exercise, not a realistic empirical distribution.
random.Random(20260906).shuffle(values) in Python 3. A seed alone, without the starting order and procedure, would not reproduce the sequence. These are learning data, not a record of a market or trading account.Metrics calculated from the synthetic journal
| Metric | Value | Calculation or convention |
|---|---|---|
| Trade count | 156 | 92 positive and 64 negative outcomes. Partial exits remain one trade, not separate wins. |
| Win rate | 59.0% | 92 / 156; approximate 95% Wilson interval 51.1–66.4%, under the independent-observation convention. |
| Average winner / loser | +1.12R / −1.02R | Calculated from realised synthetic outcomes, not the planned target-to-stop ratio. |
| Expectancy before commission | +0.24R | 0.590 × 1.12 − 0.410 × 1.02 = approximately +0.24; execution prices already reflect spread and slippage, while this synthetic journal excludes commission and swap. |
| Net expectancy illustration | +0.22R to +0.23R | 0.24R − cost_R; at a round-trip commission equivalent to 0.6 pip and stop distance of 25–48 pips, cost_R is approximately 0.013–0.024R. Swap = 0 under this same-day exit assumption. These are illustrative scenario costs, not provider quotes. |
| Profit factor before commission | 1.58 | 103.2R of gains / 65.5R of losses. |
| Sample standard deviation | 1.12R | Calculated from all 156 outcomes using the sample convention. |
| Capped SQN-style score | 2.15 | (0.2417 / 1.1232) × √100 — using the explicitly chosen cap N = 100 [3]. This is a descriptive calculation convention, not a validated allocation grade. |
| Maximum drawdown before commission | −5.5R | On the cumulative-R curve sampled after each trade. A separate simulation risking 1% of current equity on every trade gives approximately −5.4% compounded equity drawdown. |
| Longest losing run | 4 trades | Specific to the stated shuffled order. Another ordering of the same outcomes can change this value. |
| Approximate 95% expectancy interval | +0.07R to +0.42R | ±1.96 × 1.12 / √156, assuming independent observations. This row is before additional commission. |
The final row is the decision-relevant one: the interval contains the hypothesis threshold of +0.20R. Subtracting the illustrated commission still leaves the threshold inside the interval, so it does not resolve the question. Even if the observations were genuine, this result would not establish expectancy of at least +0.20R or justify full-size activation. Continue research; any reduced-risk prospective pilot would require separate approval and operational readiness. With synthetic data, there is no market evidence to act on at all. The number 156 is not a pass mark: uncertainty relative to the decision threshold matters.
The missing-evidence list
Before this strategy can move beyond hypothesis status, the research record needs:
- EUR/USD M5 data from one named provider, with period, quote convention, gaps, holidays and interruptions documented. Identify the D1 aggregation and the more detailed data needed to resolve execution paths.
- Tick-volume history from that same feed. The 1.2× threshold is a provider-data rule, not a threshold on consolidated global FX volume.
- A historical, time-stamped event calendar with the selected impact classification, so the ±2-hour exclusion can be applied using information available then rather than memory.
- A cost and fill model supported by actual execution records: spreads in 08:00–09:30 Europe/London, not daily averages, and measured market-order slippage.
- Results for the baseline without volume and ATR filters, evaluated over the same data period with consistent accounting.
- An evaluation sample not used to choose any parameter or procedural alternative in the research inventory. Document all prior trials and keep subsequent changes traceable.
One correction that resolves an ambiguous rule
An earlier description referred to “the first hour of the London session”, while the operational rule used 08:00–09:00 Polish time. Those are different windows: under the normal UK–Poland offset, the latter is 07:00–08:00 in London, the hour before the conventional opening. The consistent specification is therefore reference range 07:00–08:00 Europe/London, entry window 08:00–09:30 Europe/London.
This clarification preserves the intended pre-opening hypothesis while removing wording that could produce two different signal sets. Record it in the change log anyway. If an implementation previously used the other window, its old results do not transfer unchanged; rerun the affected test. Ambiguous rule: identify the condition, available observation and resulting decision.
One change that creates a new research variant
Raising the volume threshold from 1.2× to 1.5× changes the eligible population and strengthens the claim about unusually high activity. It may be described as parameter calibration, but it is still a new tested variant and another degree of freedom. Fewer signals and a different outcome distribution require evaluation; the improvement cannot be assumed.
Assign a new specification version and record why the change was proposed. You may investigate it on development data, but those same observations cannot then be presented as untouched confirmation that the new version is better. Keep the decision criterion explicit and obtain independent validation rather than renaming an in-sample selection an “improvement”.
The strategy card: one document for one setup
Attach an implementation card to each strategy. One document represents one setup and one version in the playbook. Its purpose is to make the instructions reproducible without a conversation with the author. The card below remains a research template, with missing implementation inputs clearly identified.
| Field | LON Breakout EUR/USD specification |
|---|---|
| Setup name | LON_Breakout_EURUSD_M5. This canonical identifier is used by the plan, journal and audit together with the version, without informal spelling variants. |
| Version | v0.1 is the example's first frozen specification. This specification states quote side, strict boundaries, order timing and short-side trailing; label any implementation with its exact document revision as well. Existing research results cannot silently migrate between differing rules. Every subsequent rule change needs a version and test record. |
| Evidence status | Hypothesis. No historical or forward test has been performed. |
| Instrument and data | EUR/USD; M5 entry, M15 trailing, completed D1 regime data. Bid candles for range and trigger; executable bid/ask data for fills. Provider, volume feed, D1 boundary and data-quality criteria must be fixed before testing. |
| Context | Reference range 07:00–08:00 Europe/London; entry requests during 08:00–09:30, never after the cutoff. |
| Entry conditions | Reference range 07:00–08:00 Europe/London, 12–35 pips wide; completed-day ATR(14) 60–120 pips; no rank 3 EUR/USD event within ±2 h; completed M5 bid close at least 8 pips outside the range; trigger tick volume strictly greater than 1.2 times the preceding 20-M5-bar mean. |
| Signal availability | Only after the M5 candle is confirmed closed. The order follows confirmation using the next executable quote under an explicit delay model; no fill is assumed before the request exists. |
| Order type | Market: long entry at ask, short entry at bid. Confirmed rejection or requote ends that day's attempt. Unknown state requires reconciliation before any further action. |
| Stop and invalidation | Stop: 5 pips beyond the opposite range boundary, on the provider's accepted server-side protective order. Minimum-breakout geometry gives D of 25–48 pips, but actual entry-to-stop distance must be measured for sizing. Gaps or unavailable quotes can produce losses beyond −1R. After TP1, move the remaining stop to entry, subject to acceptance. Invalidation: no completed M5 close at least 8 pips outside the range with an eligible request before 09:30 Europe/London, or price back inside the range before submission. One entry per pair per day; no re-entry. |
| Targets and exits | TP1: 50% at +1R. TP2: 50% at +2.5R. After TP1, trail the remainder using SMA-20 M15: on each completed M15 candle, use that candle's SMA-20, in the favourable direction only and never past entry in the loss direction. Reject invalid modifications without removing the last accepted protection. The first executed target or active stop closes the remainder; unresolved bar-only stop/target collisions use the documented pessimistic stop-first assumption. The full-target ceiling is +1.75R before fees. The time exit is 4 hours after entry, no later than 13:30 Europe/London. |
| Position size | Illustrative plan: 1% planned risk for A+, 0.5% for B, none for C. Grade before entry; divide the monetary budget by measured risk per unit and round down to the valid increment. Both partial quantities must be valid. Aggregate limits come from article 15.2. These are hypothetical sizing rules for an untested example. |
| Costs | Execution assumptions embedded in fills: 2-pip spread during 08:00–09:30 Europe/London plus 0.5-pip ordinary entry slippage, totalling 2.5 pips or approximately 0.05–0.10R at D = 25–48. Do not deduct them twice. Additional cost_R: commission equivalent to 0.6 pip round trip, or approximately 0.013–0.024R over that distance range; swap = 0 because the position is scheduled to close by 13:30 Europe/London. These are illustrative assumptions, not market standards; replace them with relevant provider evidence before testing. Gap losses remain a separate tail scenario. |
| Exclusions | Relevant rank 3 event within ±2 h; provider rollover exclusion (the original Polish example uses 22:55–23:10 Europe/Warsaw under the usual transatlantic offset); existing exposure failing the conservative |ρ| < 0.7 gate; absent or failed volume confirmation; another entry on the same day; missing data, invalid size or unverified protection. Verify the date-specific provider boundary and define correlation sampling in the plan. |
| Falsifiable hypothesis | Net expectancy ≥ +0.20R. Reject that claim if the upper bound of its 95% interval is below +0.20R. An interval straddling the threshold leaves the result unresolved. |
| Expectancy: synthetic journal | Approximately +0.24R before commission and +0.22 to +0.23R after the illustrative additional cost. Approximate pre-commission 95% interval +0.07R to +0.42R at n = 156. The interval includes +0.20R before and after the illustrated cost adjustment. |
| Profit factor: synthetic | 1.58 before additional commission. |
| Capped SQN-style score: synthetic | 2.15, using n = 156, capped N = 100 and sample standard deviation about 1.12R. The definition and source limitation are stated above. |
| Maximum drawdown: synthetic | −5.5R on the cumulative-R curve sampled after each trade. Approximately −5.4% in a separate constant-1%-of-current-equity simulation before commission, not a reconstruction of unknown A+/B grades. |
| Longest losing run: synthetic | 4 trades in the specified shuffled sequence. |
| Times and zones | Session windows use Europe/London. Store UTC timestamps alongside that session interpretation. Check date-specific conversions for events in America/New_York; US and European clock changes occur on different dates. Do not hard-code the usual cross-zone offset in an EA. |
| Change register | v0.1: first specification. For each further revision record date, changed field, reason, whether it clarifies wording or changes the hypothesis, exact implementation revision and retest result. A clarification affecting old signals still requires the affected results to be regenerated. |
A component audit: six columns for each strategy element
For the final audit, take each component and fill all six columns. An empty field identifies an unresolved implementation or evidence requirement. The controls and thresholds below are illustrative diagnostic choices, not universal acceptance standards.
| Component | Definition | Data available at the decision | Potential ambiguity | Control method | Rejection or review condition |
|---|---|---|---|---|---|
| 07:00–08:00 London range | Highest bid high minus lowest bid low within that window. | Completed M5 bars covering the whole window. | Bid versus midpoint; missing quotes; bar inclusion at the boundary. | Compare the reconstructed range with a second feed over 20 days, retaining both feed definitions. | A difference greater than 1 pip triggers investigation under this example's rule; it does not by itself establish which feed is wrong. |
| 8-pip breakout | Completed M5 bid close at least 8 pips outside the range. | The confirmed close and its actual availability timestamp. | Close versus intrabar high; quote side; request after cutoff. | Replay 20 signals with the decision-time record and order deadline. | The apparent signal exists only retrospectively or was unavailable before submission. |
| Tick volume > 1.2× | Trigger-bar tick count divided by the preceding 20-bar mean. | Completed trigger-bar count and the reference bars. | Provider-specific activity, not consolidated market volume; inclusion of the trigger in its own mean. | Check the same protocol on another feed or account and record the resulting differences. | A threshold or ratio discrepancy greater than the illustrative 20% tolerance prompts a transferability review, not automatic evidence against the market mechanism. |
| D1 ATR(14), 60–120 pips | ATR using completed D1 bars and a specified daily boundary. | The value from the last completed daily bar. | Including the unfinished current D1 bar or using another provider's day boundary. | Enforce the previous-completed-bar input and save the indicator value. | A signal depends on an unavailable final daily value or a different undocumented aggregation. |
| Calendar ±2 hours | No relevant rank 3 EUR or USD event in the exclusion window. | The event schedule actually available that morning, including known updates. | Different definitions of “rank 3” between providers; retrospectively corrected publication times. | Cross-check two sources and resolve conflicts against the issuer where possible. | Unresolved disagreement about an event or time blocks the affected candidate. |
| Structural stop, minimum-breakout scale 25–48 pips | 5 pips beyond the opposite reference-range boundary; size from actual D. | Fixed range boundaries, executable entry quote and accepted stop level. | Bid/ask convention, changing entry quote and invalid minimum stop distance. | Reconstruct 20 entries from quotes, requests and accepted orders. | The valid minimum order cannot fit the risk budget, or the intended protection is not accepted. |
| A+ or B opportunity grade | All conditions pass with margin, or exactly one numerical condition is in its permitted-side boundary band. | Measurements recorded before entry. | An undefined band, equality at the strict volume threshold or retrospective grading. | Save the grade and component values before submitting an order. | Grade assigned after the outcome, a failed mandatory condition or two borderline conditions. |
The readiness test is simple: give the card and audit table to another person and ask what cannot be reproduced without asking you a question. Each such point is either a missing definition or hidden discretion. Resolve it before freezing the implementation, because an amendment afterwards changes the document against which the test must be checked.
10. Checklist — is the strategy ready for a backtest?
Use this interactive 20-point list alongside the specification. Tick each item only when you can point to the corresponding definition or evidence in the document. The counter updates in your browser. The page does not send these answers to a server or deliberately save them in local storage. Use the reset button to clear the review; a browser may restore form state when revisiting or reloading a page, so do not rely on a refresh as a guaranteed reset.
For work spread across several days, save a screenshot or printout, or copy the list into your own document or spreadsheet with Boolean fields. This page is a one-review aid, not a persistent research journal. Keep the dated specification and trial register separately.
20/20 means only that the documented strategy is ready for testing, once its required inputs are supplied. Historical testing examines the rules against data; forward observation and demo work examine timing, execution, costs and your ability to follow the process. At 17–19, complete the missing items before the backtest. Below 17, revisit the specification rather than treating the percentage score as partial permission to proceed. A completed checklist is not evidence of positive expectancy and does not authorise real orders.
Frequently asked questions
How does a hypothesis differ from a strategy?
How many trades confirm an edge?
Can MAE show that my stop should be tighter?
How do costs affect a short-stop strategy?
Are precise indicator settings evidence of overfitting?
Must the strategy work in every session?
Are structural stops always better than fixed-distance stops?
What is a time exit for?
Can a manual trader use quantitative metrics?
What comes after the specification?
Sources and bibliography
The books below provide background for the topics discussed. Their inclusion does not validate the illustrative London setup. Where an exact method or passage has not been checked in the primary edition, that limitation is stated explicitly.
- Ernest P. Chan, Quantitative Trading: How to Build Your Own Algorithmic Trading Business, Wiley, 2009. Background on systematic strategy development, evaluation and implementation.
- Kathy Lien, Day Trading the Currency Market, Wiley, 2005; the second edition appeared in 2008 as Day Trading and Swing Trading the Currency Market. Background on intraday and swing currency strategies. The exact pre-London window and parameter combination in this article have not been verified against that edition.
- Van K. Tharp, Trade Your Way to Financial Freedom, second edition, McGraw-Hill, 2006. Background on R-multiples and system evaluation. Primary-source limitation: the capped N = 100 SQN variant is taken from secondary descriptions rather than a directly inspected passage in this edition; the cap is an explicitly chosen calculation convention for this example. The article states its calculation explicitly and does not treat the score as an allocation rule.
- European Securities and Markets Authority, 27 March 2018 product-intervention announcement, and Decision (EU) 2018/796. The cited 74–89% loss-account range concerns historical national-supervisor analyses of European retail CFD accounts, not a current worldwide FX statistic. The temporary ESMA measure was not renewed after 31 July 2019; current rules must be checked for the relevant jurisdiction and provider.
- NIST/SEMATECH, Binomial confidence intervals; SciPy, One-sample t-test. Mean and proportion inference answer different questions.
- MetaQuotes, Symbol properties and Executing trades: contract constraints, volume, execution modes and trailing.
- TradingView, Strategies: broker-emulator timing and intrabar assumptions.
- TradingView, Repainting: confirmation timing and historical/realtime differences.
- Bailey, Borwein, López de Prado and Zhu, The Probability of Backtest Overfitting: selection across candidate strategies.
- BLS, Employment Situation schedule; Federal Reserve, FOMC calendars; ECB, Meeting calendar. Issuer schedules, not fixed global clock conventions.
- ESMA, 27 March 2018 product-intervention announcement: historical EU retail CFD account-loss range; not a current worldwide statistic.