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.

A complete specification is ready for research; it does not establish an edge.

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

Synthetic research record; EUR/USD, USD account, no real trade
StageSupplied valueRole
Fixed signal threshold1.2510Comparison level on the stated bid feed
Previous completed close1.2508At or below the threshold
Current completed close at 10:151.2512Strictly above the threshold
Assumed later buy fill1.2514Ask-side execution after signal availability
Initial reference stop execution1.2499Supplied 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.

1. When is the defined completed-close crossing established?

Threshold 1.2510; previous close 1.2508; current close 1.2512 becomes available at 10:15.

Show the answer and explanation

D. Signal availability is a time constraint. It does not backdate the later assumed buy fill.

  • A. The required current close is not yet available.
  • B. A touch by an unfinished candle is a different signal definition.
  • C. Future profit is not an input to this signal.
  • D. Correct: the rule requires the completed close and the stated comparison with the previous completed close.
2. What combined reference-model loss does the candidate have?

40,000 euros; price difference 0.0015 USD per euro; separate round-trip commission USD 4; no financing.

Show the answer and explanation

B. Count the supplied charge once. Actual gap execution or other charges can exceed the reference-model amount.

  • A. That omits the explicitly separate commission.
  • B. Correct: 40,000×0.0015=60 USD; the separate commission makes 64 USD.
  • C. That counts the same commission twice.
  • D. That omits the price-based loss.
3. Does matching the USD 64 planning allowance establish a profitable strategy?

The entire price sequence and fee are invented, and no market sample has been tested.

Show the answer and explanation

C. Keep the case labelled synthetic and complete the missing specification before conducting an appropriately designed test.

  • A. Arithmetic verifies the model relationship, not an empirical advantage.
  • B. A signal definition supplies no outcome distribution.
  • C. Correct: internal consistency is necessary for research, but is not market evidence.
  • D. The assumed reference execution is not a guarantee of a real fill.

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:

  1. Hypothesis: one sentence stating the proposed regularity and possible mechanism.
  2. Testable edge claim: a numerical criterion capable of rejecting the claim.
  3. Entry rules: mandatory context, trigger, and confirmation.
  4. Exit rules: SL, target, time exit, and what happens to the stop after a partial exit.
  5. Sizing: the position-size formula and governing plan limits.
  6. Regime filter: the market conditions in which the setup can be considered.
  7. Portfolio-risk filter: correlations, aggregate exposure, and exclusion windows.
  8. 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.

Hypothesis into eight layers. Eight complete layers make the strategy testable. They do not yet establish a positive net edge.
Eight complete layers make the strategy testable. They do not yet establish a positive net edge.
Prerequisite: operational readiness before any live use. A strategy intended for live trading needs an appropriate continuity arrangement: backup power where required, alternative connectivity and account access, synchronized records, and the intended server-side stop protection accepted by the broker. Article 15.1 covers equipment and recovery testing. Here they are prerequisites to relying on an implementation, not evidence that the strategy has an edge. Local or server-side safeguards still do not guarantee execution prices.
Illustrative example—synthetic figures, not an account record: trading a hypothesis instead of a strategy. A trader notices that US CPI releases sometimes produce an initial move followed by a correction. Without a stop, a sizing model, or filters, the trader fades the first move with 0.3 standard lots of EUR/USD in a PLN 8,000 account. Three favorable releases reinforce the belief in an edge. On the fourth, a large surprise produces a 60-pip move without the hoped-for correction, and the position remains open. Keep the currency assumption explicit: USD/PLN = 4.00 is a synthetic conversion rate, so 0.3 lots at USD 3 per pip equals PLN 12 per pip. The 60-pip adverse movement is PLN 720, or 9% of the starting account, before other costs. No instruction in the example limits the next movement. The issue is not whether the broker is about to liquidate the account; it is that the trader has not defined where or how the exposure ends. The partial truth that markets sometimes reverse does not supply the missing risk and exit rules.

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.

A decision gate after every stage. From 1 to 2: can the hypothesis be stated with measurable conditions? From 2 to 3: is there a plausible mechanism, and could the available frequency and history provide evidence precise enough for the intended decision? From 3 to 4: does the assumed outcome still exceed the proposed threshold under a conservative cost model, with costs, payoff, and frequency written down before results are inspected? At that point it is a scenario calculation, not measured expectancy. From 4 to 5: can the rules be implemented without unstated interpretation? From 5 to 6: do all twelve sanity-check questions have satisfactory answers? “Partly” sends the draft back for work; it does not silently pass it into testing.

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.

Historical regulatory context, not a probability forecast. On March 27, 2018, ESMA reported that national supervisors' analyses found 74–89% of retail CFD accounts losing money[4]. This is a dated European CFD statistic from before the intervention measures, not today's global FX loss rate. The temporary ESMA measure was not renewed after July 31, 2019 as national measures took over. In this article, the local example is KNF decision DAS.456.2.2019 and provider-specific standardized risk warnings, recalculated at least quarterly. Other jurisdictions and legal entities have their own requirements; consult the applicable regulator and provider rather than applying the Polish rule worldwide. A structured development process does not guarantee profitability or a particular reduction in losses. A promise of “guaranteed +30% annually” is not a substitute for evidence or for reading the account's risk disclosures.
Six stages from observation through concept checks and rules to testing
Any stage may end in rejection or a return to an earlier step.
Why early rejection is useful. Systematic development is intended to filter ideas at the least expensive stage. A paper specification is a cheaper place to reject an idea than a funded account. Chan discusses the progression from generating ideas to testing and rejecting them[1]. If all the effort goes into backtesting while conceptual and cost checks are formalities, substantial time can be spent on ideas whose assumptions already fail basic arithmetic. [SOURCE EVIDENCE GAP: no measured share of ideas rejected at each stage is supplied.]

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

LevelExampleCan 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:

ExpectancyR = (W% × avgWinR) − (L% × avgLossR) − costR

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_R to 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.

156 synthetic outcomes. Synthetic outcomes before commission, seed 20260906. DD in R is not an account percentage; under 1% sizing model DD is ≈−5.40%.
Synthetic outcomes before commission, seed 20260906. DD in R is not an account percentage; under 1% sizing model DD is ≈−5.40%.
The minimum strategy dashboard is more than expectancy. Win rate alone is not enough, and neither is one average R figure. Review net expectancy in R with its uncertainty interval, profit factor, maximum drawdown with the curve type and sampling frequency specified, median R alongside mean R, the longest losing run, and cost per trade in R. Article 15.9 develops the formulas, uncertainty calculations and example decision tables. Put the measured results in the strategy specification rather than redefining each metric. Every numerical decision boundary in this article is an illustrative threshold, not a market standard.

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.

Triple swap: the cost a spreadsheet can miss. This matters only for positions held across the provider's rollover. Many FX providers use a daily boundary associated with 17:00 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.
Separate income tax from trading expectancy. The Polish example concerns annual income-tax reporting after the applicable aggregation and offset of gains and losses; that is not a per-entry execution cost. In an international version, the treatment depends on your jurisdiction and status. Keep any income-tax calculation separate from the strategy's pre-income-tax expectancy and retain the records needed for local reporting. This distinction does not exclude a transaction tax or levy actually charged on an order: that belongs among the relevant trading costs. The original Polish reporting discussion is in chapter 14's PIT-38 article, in Polish; it is not a tax rule for readers in other countries.
156 outcomes: histogram and mean. Exact histogram of a synthetic sample before commission. Its mean is not a forecast; outlier recurrence requires assessment.
Exact histogram of a synthetic sample before commission. Its mean is not a forecast; outlier recurrence requires assessment.

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.

Illustrative example: an “edge” discovered by selecting the sample. These are synthetic numbers, not an account record. A trader searches a three-year journal and discovers that Monday-opening entries produced 11 wins in 18 trades: approximately 61% winners and +0.7R expectancy. The “Monday strategy” enters the playbook. Six months later, its live figures are 51% winners and +0.1R expectancy. Retrospective selection is one possible explanation: the trader searched many subsets and promoted a favourable one. A 95% Wilson interval for 11 successes in 18 independent observations is approximately 38.6–79.7%. That independence assumption is important; clusters and shared events can make the nominal interval misleading. With an average loser of 1R, a 61% win rate requires an average winner of about 1.78R to produce +0.7R. Holding that payoff fixed, the lower end of the win-rate interval gives approximately +0.07R and the upper end more than +1.2R. At a 1:1 payoff, the same lower win-rate bound gives approximately −0.23R. The observed +0.7R is a point estimate, not a precise statement of the underlying edge. This calculation is still incomplete: a Wilson interval concerns win rate, not expectancy, and does not include uncertainty in the payoff or the effect of searching for a favourable subset. Estimate uncertainty in expectancy from the R outcomes themselves using a suitable method. The trade count alone does not decide whether the evidence is useful; the uncertainty relative to your decision threshold does. Small or dependent sample: limit the conclusion.

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:

ConditionNumerical ruleYES / NO
Required regimeD1 ATR(14) is 60–120 pips.☐ ☐
Range within boundsThe pre-London range is 12–35 pips.☐ ☐
M5 candle is closedConfirmed 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 thresholdTick volume is strictly greater than 1.2 times the mean of the preceding 20 completed candles.☐ ☐
No high-impact eventNo event in the specified calendar's rank 3 category within ±2 h☐ ☐
Correlation exposure acceptableNo conflicting open exposure beyond the defined 0.7 correlation threshold; the calculation window and position directions must also be specified.☐ ☐
Order type fixedMarket, 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.

Signal, request, fill. A market order does not guarantee a fill. A click is not a position; reconcile the state confirmed by the firm.
A market order does not guarantee a fill. A click is not a position; reconcile the state confirmed by the firm.

Entry execution: market, limit or stop?

Order typeTypical use caseLimitation
MarketA 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.
LimitMean 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.
StopA 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.

Illustrative example: a repainting indicator and signals that never existed. These are synthetic figures, not an account record. An H4 backtest covers 18 months and identifies 200 setups, a high win rate and expectancy well above +1R. Every signal appears neatly at a local high or low. In the first six weeks of a demo forward test, only a dozen or so setups appear and expectancy is negative. The shorter period alone does not establish a defect; the crucial discovery comes from comparing time-stamped signals. The indicator rewrites historical values after later candles close. Its attractive historical signal was not available at the displayed time: live, it appeared a full candle later, which on H4 means four hours. To test for this, record an indicator's value on a completed bar N in real time, then compare the same bar after 10 additional candles. A changed value indicates that the historical display is not a faithful record of what was available at the original decision point. Normal fluctuation on an unfinished bar is different and does not itself disqualify an indicator. The implementation fails when the strategy assumes that a later-revised value was already known. What looked like a system was a retrospectively retouched chart.

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.

Excursions and new hypotheses. 7 synthetic observations. MAE is positive adverse magnitude; MFE is favourable excursion. The same initial R₀; costs treated separately.
7 synthetic observations. MAE is positive adverse magnitude; MFE is favourable excursion. The same initial R₀; costs treated separately.

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”.

Illustrative example: a tight stop during rollover. These are synthetic figures, not an account record. A trader leaves a short AUD/JPY position open overnight with a 15-pip stop to “let the market work”. Around the provider's daily rollover, available liquidity thins and the ask quote briefly rises by several pips relative to the bid. The short closes on its stop even though the daily bid chart shows no comparable upward move. The next morning the journal contains roughly −1R, or potentially worse after slippage and costs, without the directional move the trader expected to see. A short exits at the ask, not at the bid displayed on many charts. The operational lesson is to define a no-hold rollover window for tight-stop intraday positions. In the original Polish example that window is 22:55–23:10 local time in the usual US–European offset; internationally, express it as five minutes before to ten minutes after the provider's actual rollover, commonly 16:55–17:10 America/New_York. Close according to the prewritten rule. A strategy intentionally holding through rollover needs a separately validated stop-distance, sizing and cost model; do not widen an existing stop impulsively to avoid a loss.

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

Rollover: account and time zone. Rollover is not a universal central market close. A triple adjustment does not always fall on Wednesday.
Rollover is not a universal central market close. A triple adjustment does not always fall on Wednesday.

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.
FilterExample numerical conditionData sourcePotential error
Trend regimeD1 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 regimeD1 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 calendarNo relevant rank 3 event within ±2 hSpecified 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 correlationFor 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 dayConventional 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.
Your availability is a feasibility condition. An intraday entry window in the middle of work duties you cannot interrupt may make a strategy impossible for you to execute. Identify that conflict during specification, not after missing trades and trying to compensate with alerts. Record both the market window and whether you can actually supervise the required decisions during it. If you cannot, research a timeframe or implementation that fits your constraints. Article 15.5 develops employed-trader workflows and daily and weekly routines.

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/Tokyo window. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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

  1. Is position sizing defined by a specific formula? “As appropriate” is not a sizing rule.
  2. 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.
  3. Is the portfolio-correlation and aggregate-exposure check part of the entry process? One attractive setup does not override account-level limits.
  4. 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.

Confirmation bias after a long rule-writing session. After investing hours in an idea, it is easy to search for reasons it should work rather than reasons it should fail. Treat the sanity check as a hard list of necessary conditions, not a moment of general reflection. One practical protocol is to close the document, leave at least eight hours and review it on another day. This is a workflow choice, not a scientifically established eight-hour threshold. There are no verified data here quantifying how a four-hour drafting session changes validation error rates. Separating drafting from review is intended to create distance from the idea, not to guarantee objectivity. The point is to catch a cheap-to-correct specification error before spending weeks optimising noise on an M5 chart.
When a rule may change. A losing run alone is not sufficient evidence that a specification is broken. With independent outcomes and a 50% loss probability, a run of at least eight losses occurs somewhere within 100 trades with a probability of roughly 17%; a run of at least six is more likely than not. The probability of eight losses in one particular, prespecified block is only 0.58 ≈ 0.4%. Those are different questions: the full sample offers many overlapping opportunities for a run. Confusing them can turn an ordinary tail event into an apparent emergency. Independence and a constant loss probability are assumptions, not guarantees about live trades. Article 15.10 develops run calculations, intervention criteria and the distinction between a system problem and an execution problem. For the specification, the essential rule is unchanged: a rule amendment means a new version and a new test, not an undocumented live adjustment.

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.

Illustrative example: one setup across twelve pairs. These are synthetic observations, not an account record. A trader applies a breakout strategy to twelve currency pairs, mixing majors, crosses and eight less liquid or exotic instruments, and uses one ADX filter throughout. After several months, EUR/USD resembles the hypothesis, a Turkish-lira pair performs worse and GBP/AUD performs worst. The same written signal has produced different results. Candidate explanations include instrument-specific intervention or policy risk, liquidity and spread behaviour, Asian-session exposure and commodity sensitivity. Those explanations themselves require evidence; D1 ADX does not measure all of them. The lesson is not that any named pair must behave that way, but that each additional market extends the validation burden. Twelve instruments are not twelve independently validated strategies merely because their trades appear in one spreadsheet. With equal trade counts, the per-pair sample is one twelfth of the aggregate; in practice it is uneven because signal frequency differs. Shared currency events can also make trades dependent. Small or dependent sample: limit the conclusion.

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.

Parameters and sample. Grid values are illustrative, not market results. No universal n or sample/parameter ratio eliminates overfitting.
Grid values are illustrative, not market results. No universal n or sample/parameter ratio eliminates overfitting.

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.

Hypothesis — not a confirmed edge. This strategy has not undergone a historical test, forward test or comparison with other currency pairs. Every performance figure below comes from the synthetic journal in step 6. The figures demonstrate a reporting format and the relationships between metrics; they are not evidence that the strategy works.

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

Data provenance: synthetic, not demo or live. Start with 58 trades at −1.00R, 6 at −1.25R, 27 at +0.50R, 37 at +1.10R and 28 at +1.75R: 156 in total. The −1.25R outcomes represent a gap or interruption in quoting, not the ordinary 0.5-pip entry-slippage assumption. A 25% overrun corresponds to approximately 6.25–12 pips when D is 25–48 pips. The order used for the drawdown and losing-run figures is created by listing those groups in exactly that order and applying 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

MetricValueCalculation or convention
Trade count15692 positive and 64 negative outcomes. Partial exits remain one trade, not separate wins.
Win rate59.0%92 / 156; approximate 95% Wilson interval 51.1–66.4%, under the independent-observation convention.
Average winner / loser+1.12R / −1.02RCalculated from realised synthetic outcomes, not the planned target-to-stop ratio.
Expectancy before commission+0.24R0.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.23R0.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 commission1.58103.2R of gains / 65.5R of losses.
Sample standard deviation1.12RCalculated from all 156 outcomes using the sample convention.
Capped SQN-style score2.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.5ROn 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 run4 tradesSpecific 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:

  1. 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.
  2. Tick-volume history from that same feed. The 1.2× threshold is a provider-data rule, not a threshold on consolidated global FX volume.
  3. 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.
  4. 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.
  5. Results for the baseline without volume and ATR filters, evaluated over the same data period with consistent accounting.
  6. 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.

Illustrative card — not historical performance. Expectancy, profit factor, the capped score, drawdown and the longest losing run all come from the synthetic journal in step 6. They are not results from market data. The A+/B risk examples do not change the evidence status or authorise live trading.
FieldLON Breakout EUR/USD specification
Setup nameLON_Breakout_EURUSD_M5. This canonical identifier is used by the plan, journal and audit together with the version, without informal spelling variants.
Versionv0.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 statusHypothesis. No historical or forward test has been performed.
Instrument and dataEUR/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.
ContextReference range 07:00–08:00 Europe/London; entry requests during 08:00–09:30, never after the cutoff.
Entry conditionsReference 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 availabilityOnly 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 typeMarket: 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 invalidationStop: 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 exitsTP1: 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 sizeIllustrative 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.
CostsExecution 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.
ExclusionsRelevant 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 hypothesisNet 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 journalApproximately +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: synthetic1.58 before additional commission.
Capped SQN-style score: synthetic2.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: synthetic4 trades in the specified shuffled sequence.
Times and zonesSession 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 registerv0.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.
Methodological disclaimer. LON Breakout EUR/USD is not an investment recommendation or a ready-to-use live system. It demonstrates the fields that your own tested rules, costs and journal would need. EUR/USD is a familiar liquid major used for illustration, not the winner of a comparison performed for this article: no comparison was conducted. Copying the card into a live account without validation would reproduce the mistake discussed in trap 5.
LON_Breakout_EURUSD_M5: complete entry gates, exits and synthetic R outcomes Untested educational specification. Four sequential gates check completed-day context, the 07:00–08:00 London range, an M5 closing breakout and provider tick volume. A failed or unknown condition leads to no entry. A market request follows confirmation before 09:30 London time. Stop, partial targets, trailing and a four-hour time exit govern the position. The outcome axis shows synthetic examples from minus 1.25R to plus 1.75R, not probabilities or guaranteed bounds. Time exits have no fixed minus 1R to plus 0.5R range. London Breakout: gates → entry → exits → outcomes LON_Breakout_EURUSD_M5 · v0.1 · untested hypothesis · synthetic outcomes All session times: Europe/London. The complete written card controls implementation details. Sequence within one London trading day Before entry closed D1 07:00–08:00 08:00–09:30 Signal bar After close By 13:30* 1. Required context Completed D1 ATR(14): 60–120 pips, absolute band. No high-impact EUR/USD event within ±2 hours. Check the entry window, data and account restrictions. 2. Pre-London reference range Bid high minus bid low, 07:00–08:00 Europe/London. Permitted width: 12–35 pips. 3. Trigger Completed M5 bid close ≥ 8 pips outside the range. Use the close, not the high or low; respect the cutoff. 4. Confirmation Trigger tick volume > 1.2 × preceding 20-M5-bar mean. Provider-specific feed; exactly 1.20 does not pass. Entry request, then verified fill and protection Market after confirmation: long at ask, short at bid. Grade and risk recorded first; no request after 09:30. Exits SL: opposite range boundary + 5-pip outward buffer. TP1: half at +1D; accepted remainder stop to entry. TP2: half at +2.5D; after TP1, SMA(20) M15 trailing. Favourable-only updates; time exit four hours after entry. D = initial price distance; R₀ = whole-position monetary risk. NO or UNKNOWN at any gate Or no eligible request before the cutoff; or price returns inside the range before submission → NO ENTRY. At most one entry per day; no re-entry. No trade is a valid outcome of the process. A signal does not guarantee a fill or a profit. *13:30 is the latest scheduled time exit. Actual execution can be delayed or fail. A+/B are illustrative opportunity grades. Evidence status remains: untested. Live stops and targets can fill intrabar. Only trailing updates wait for M15 closes. Unresolved bar-only collision: stop first. Illustrative whole-trade outcomes in R — not probabilities or guaranteed loss limits −1.5R −1.0R −0.5R 0R +0.5R +1.0R +1.5R +2.0R −1.25R Stop beyond a gap −1.00R Reference stop +0.50R TP1, remainder at entry +1.10R TP1 + trailing example +1.75R Full TP1 + TP2 Time exits can be positive or negative; no fixed −1R to +0.5R interval applies. The five-value synthetic journal omits time exits. It is not a realistic measured distribution. The +1.75R target outcome assumes exact reference fills before fees. Gaps can take losses beyond −1R. No backtest or forward test has been performed. See section 9 for assumptions, limitations and the audit.
The card arranged in execution order: four sequential gates, entry, exit rules and illustrative outcomes in R. The vertical sequence follows a London trading day from 07:00 to the latest scheduled exit at 13:30 Europe/London. The horizontal axis shows whole-trade outcomes relative to the initial monetary risk R₀; D is the initial entry-to-stop price distance. “No entry” is a valid branch, not a failure to trade. A submitted order does not imply a fill or a profitable outcome. The numerical outcomes are synthetic and the strategy remains an untested hypothesis.
Worked LON rules. Example rules, not a validated strategy. R₀ uses the actual fill; costs reduce payoff; both halves must satisfy volume minimum and step.
Example rules, not a validated strategy. R₀ uses the actual fill; costs reduce payoff; both halves must satisfy volume minimum and step.

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.

ComponentDefinitionData available at the decisionPotential ambiguityControl methodRejection or review condition
07:00–08:00 London rangeHighest 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 breakoutCompleted 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 pipsATR 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 hoursNo 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 pips5 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 gradeAll 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.

Concept: four checks

Rules: eight checks

Filters: four checks

Risk: four checks

Documented: 0/20 checks

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?
A hypothesis is a claim about behaviour or outcomes. A strategy adds data definitions, information timing, entry and exit rules, sizing, costs and operational responses. Writing those rules makes the idea testable; it does not prove the claim.
How many trades confirm an edge?
There is no universal number. Precision depends on dispersion, dependence, market coverage, costs and the number of variants explored. Report n together with a suitable uncertainty estimate and independent evaluation. A 100-trade rule cannot replace those checks.
Can MAE show that my stop should be tighter?
It can suggest a variant to investigate. Winners’ MAE alone does not tell you which of those winners a tighter stop would remove or how the entire sample would change. Freeze the alternative and test it with all eligible observations.
How do costs affect a short-stop strategy?
The same cost occupies more R when the initial risk distance is smaller. A 3-pip cost is 0.30R at a 10-pip reference distance and 0.20R at 15 pips. Whether the strategy remains viable depends on its full net outcome distribution, not a universal 10% cost cap.
Are precise indicator settings evidence of overfitting?
Not by themselves. Record how the setting was chosen, all alternatives tested and its sensitivity. Round numbers can also be overfit. A stable parameter neighbourhood is a diagnostic result, not independent proof of positive expectancy.
Must the strategy work in every session?
No. A session-specific hypothesis can be legitimate. Define its clock and test its own scope. If you claim it transfers to another session or pair, that is a further claim requiring evidence.
Are structural stops always better than fixed-distance stops?
No. Structural, fixed and volatility-based rules have different properties. Compare them as documented research variants with sizing and execution costs recalculated. A stop is a trade exit rule, not a guarantee or a proof that the overall hypothesis is false.
What is a time exit for?
It schedules an exit under a specified holding-time rule and aims to avoid an excluded event or financing period. Actual execution can be later because of missing quotes, latency or rejection. It may close a winner or loser. The deadline and execution method must be explicit; a four-hour exit is an example, not a universal requirement.
Can a manual trader use quantitative metrics?
Yes, if the journal records decisions and monetary risk units consistently. Metrics do not require automation. They do require complete observations, correct cost accounting and appropriate limits on inference from a discretionary or selected sample.
What comes after the specification?
The test card and historical research protocol in 15.4. Resolve missing data and implementation fields first. A completed document is not authority to place real orders.

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.

  1. Ernest P. Chan, Quantitative Trading: How to Build Your Own Algorithmic Trading Business, Wiley, 2009. Background on systematic strategy development, evaluation and implementation.
  2. 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.
  3. 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.
  4. 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.
  5. NIST/SEMATECH, Binomial confidence intervals; SciPy, One-sample t-test. Mean and proportion inference answer different questions.
  6. MetaQuotes, Symbol properties and Executing trades: contract constraints, volume, execution modes and trailing.
  7. TradingView, Strategies: broker-emulator timing and intrabar assumptions.
  8. TradingView, Repainting: confirmation timing and historical/realtime differences.
  9. Bailey, Borwein, López de Prado and Zhu, The Probability of Backtest Overfitting: selection across candidate strategies.
  10. BLS, Employment Situation schedule; Federal Reserve, FOMC calendars; ECB, Meeting calendar. Issuer schedules, not fixed global clock conventions.
  11. ESMA, 27 March 2018 product-intervention announcement: historical EU retail CFD account-loss range; not a current worldwide statistic.

Your learning progress

Finished this lesson? Mark it yourself. Opening or scrolling a page never marks it complete.

Progress requires JavaScript and browser storage.

Saved only in this browser. No account or cross-device sync. Clearing site data can erase your progress.

Jarosław Wasiński

Editor-in-chief, ForexMechanics.com • Macro & FX analyst

Independent analyst and practitioner with over 20 years of experience in financial markets. Actively involved in Forex since 2007, with a focus on fundamental analysis, OTC market structure, and disciplined capital risk management.

  • Creator and editor-in-chief of MyBank.pl, providing reliable financial education since 2004.
  • Author of hundreds of in-depth market commentaries, structural analyses, and educational materials for traders and investors.
  • Advocate for market transparency, promoting education grounded in hard data and institutional reports (BIS, ESMA, CFTC).

All content is educational and informational only – it does not constitute investment advice or a recommendation. Remember: leveraged trading (Forex/CFD) carries a high risk of rapid capital loss.