Tool lesson

Backtest: Run The Test And Read Risk Before Return

A practical Backtest lesson for treating the run button as an evidence gate and reading risk, sample size, and distribution before return.

13 minBeginner5 chapters

Educational only

The examples teach workflow and risk framing. They do not provide trade recommendations, personalized advice, leverage guidance, or guaranteed outcomes.

Chapter 01

Run the locked rulebook

Trader question

What exactly did this result test?

The run button should mark the boundary between assumptions and evidence. Context, entry rules, exits, stop, target, and date window must be named before the result is interpreted.

Desk checklist

  • Confirm the rulebook was complete before the run.
  • Do not edit assumptions inside the same result story.
  • Label any changed assumption as a new case.

Interactive proof

Run Backtest button, loading state, and result tab

Use the Risk-First Result Reader to choose whether a result was read from locked assumptions or from a tempting return number.

1DrawdownRead account stress before celebrating return.Max drawdown tells the learner how deep the simulated equity fell from a high-water mark. Survival comes before applause.
2Trade countAsk whether the sample is thick enough to trust.A high win rate across a few trades can be fragile. More trades do not guarantee truth, but too few trades should slow the conclusion.
3DistributionCompare wins, losses, payoff, profit factor, and Sharpe.Win rate is only one lens. A strategy can win often and still lose if the average loss overwhelms the average win.
4Return and gradeUse return and the grade after the risk read is complete.The grade badge is a quick evidence-quality clue, not approval to use the rule live.

Read the result as evidence quality: drawdown first, sample size second, distribution third, then return and grade. The grade can help triage review, but it cannot approve live use.

Interactive desk lab

Backtest Risk-First Result Reader

A practical Backtest result lab for sorting drawdown, trade count, win rate, payoff, return, and grade into a risk-first reading order.

Native scroll

A practical Backtest result lab for sorting drawdown, trade count, win rate, payoff, return, and grade into a risk-first reading order.

42s Remotion sceneRunLocksCaseVideo

The run button locks the case

A completed rulebook is stamped before the result surface opens, making the run button a boundary between assumptions and evidence.

Storyboard beats4 cues
1

Context, entry rules, exits, and risk controls line up.

2

The run button stamps the case.

3

Result metrics appear only after the case is locked.

4

A reminder appears: changed assumptions are a new run.

Remotion code

RunLocksCaseVideo

The snippet is stored with the lesson so a future Remotion project can render the chapter video.

Show component snippet
import {AbsoluteFill, Easing, Sequence, interpolate, useCurrentFrame} from "remotion";

export const RunLocksCaseVideo = () => {
  const frame = useCurrentFrame();
  const lock = interpolate(frame, [36, 68], [0, 1], {
    extrapolateLeft: "clamp",
    extrapolateRight: "clamp",
    easing: Easing.bezier(0.16, 1, 0.3, 1),
  });

  const steps = ["Context", "Entry", "Exit", "Risk"];

  return (
    <AbsoluteFill style={{background: "#fff8e8", color: "#071126", padding: 72}}>
      <h1 style={{fontSize: 54, margin: 0}}>Run after the rulebook is complete.</h1>
      <div style={{display: "grid", gridTemplateColumns: "repeat(4, 1fr)", gap: 18, marginTop: 70}}>
        {steps.map((step, index) => (
          <div key={step} style={{border: "1px solid #b69a5b", background: "#fffdf7", padding: 24, opacity: interpolate(frame, [index * 8, index * 8 + 18], [0.25, 1], {extrapolateLeft: "clamp", extrapolateRight: "clamp"})}}>
            <strong style={{fontSize: 26}}>{step}</strong>
            <p style={{fontSize: 18, color: "#5f6b7c"}}>locked before result</p>
          </div>
        ))}
      </div>
      <Sequence from={38} layout="none">
        <div style={{marginTop: 54, display: "flex", alignItems: "center", gap: 20}}>
          <div style={{borderRadius: 999, background: "#071126", color: "#f9d78b", padding: "18px 34px", fontWeight: 800, transform: "scale(" + (0.92 + lock * 0.08) + ")"}}>Run Backtest</div>
          <div style={{height: 4, width: 260, background: "#d9971f", transform: "scaleX(" + lock + ")", transformOrigin: "left"}} />
          <div style={{border: "1px solid #047857", background: "#dff3e8", color: "#047857", padding: 18, opacity: lock}}>Evidence opens</div>
        </div>
      </Sequence>
      <Sequence from={84} layout="none">
        <p style={{fontSize: 25, marginTop: 42}}>If assumptions change, label it as a new case.</p>
      </Sequence>
    </AbsoluteFill>
  );
};

Sources used for this tutorial

Next step

Open the tool with the checklist beside you.

Move from the lesson into the matching Bullion Brains tool, keep the checklist visible, and treat the output as evidence until the caveats are clear.

Open Strategy Backtester