[{"data":1,"prerenderedAt":1847},["ShallowReactive",2],{"kscript:strategies/first-strategy":3},{"slug":4,"filePath":5,"frontmatter":6,"rawMarkdown":9,"tree":10},"strategies/first-strategy","strategies/first-strategy.md",{"title":7,"description":8},"Build Your First Strategy","A complete walkthrough, from a trading idea to a backtested result you can read critically. Write it, run it, read the disclosures, tune it.","---\ntitle: \"Build Your First Strategy\"\ndescription: A complete walkthrough, from a trading idea to a backtested result you can read critically. Write it, run it, read the disclosures, tune it.\n---\n\n> **Since engine 3.0.61; verified against engine 3.0.61.** Every example on this page is an executed probe against that build.\n\nThis is the strategy sibling of the indicator primer: one idea taken from a sentence to a backtest you can evaluate honestly. You will write an RSI mean-reversion strategy, run it, read every part of the result, and then tune it like you mean it.\n\n## 1. The idea, in one sentence\n\n\"When RSI leaves oversold, buy the dip with a quarter of my equity; take the trade off when momentum recovers; protect it with a stop 4% below.\"\n\n## 2. Write it\n\nOpen a new editor tab and pick the **strategy** template, or paste this:\n\n```javascript title=\"scripts/probes/strategies/first-strategy.ks\"\n//@version=2\nstrategy(title=\"RSI Reversion\", initialCapital=10000, qtyType=\"percentOfEquity\", qtyValue=25, commissionPercent=0.05, slippageBps=2)\n\ntimeseries bars = ohlcv(symbol=currentSymbol, exchange=currentExchange)\ntimeseries r = rsi(source=bars.close, period=14)\ntimeseries oversold = 30\ntimeseries recovered = 55\nvar lastClose = bars.close\n\nif (crossover(r, oversold)) {\n  strategy.entry(\"Dip\", \"long\")\n}\nif (strategy.positionSize() > 0) {\n  strategy.exit(\"Protect\", fromEntry=\"Dip\", stop=lastClose * 0.96)\n}\nif (crossover(r, recovered)) {\n  strategy.closeAll()\n}\n\nplotLine(value=bars.close, width=1, colors=[\"#94a3b8\"], label=[\"Close\"], desc=[\"Close price\"])\n```\n\nReading it top to bottom:\n\n- `strategy(...)` replaces `define(...)`. The declaration IS your broker: starting equity, sizing (`25%` of equity per entry), commission, and slippage all live here, so a shared script carries its own assumptions. In the editor, the first-line keyword is clickable to toggle between indicator and strategy.\n- `strategy.entry(\"Dip\", \"long\")` queues a market order. Orders placed while a bar computes fill no earlier than the next bar's open; nothing in a backtest can act on information it did not have.\n- `strategy.exit(..., stop=...)` arms a protective bracket against the named entry.\n- `strategy.closeAll()` is the signal exit for the recovery case.\n\n## 3. Run a backtest\n\nHit **Backtest**. The run replays your rules over the granted history for your tier (see [the overview](overview.md#running-a-backtest)), then the Strategy Tester panel opens under the chart.\n\n## 4. Read the result critically\n\nFour places to look, in order:\n\n1. **The overview tiles**: net profit, win rate, profit factor, max drawdown. A strategy that \"wins 70% of the time\" with a payoff ratio of 0.3 loses money; the tiles together tell you which kind you have. Definitions and formulas for every number are in the [stats reference](stats-reference.md).\n2. **The trades tab**: individual entries and exits with per-trade PnL, fees, and exit reason (`signal`, `stop`, `limit`, `trail`, `closeAll`, `endOfData`). Spot-check a few against the chart markers; you should be able to explain every trade from your own rules.\n3. **The run details popover** (info icon in the panel header): this is the honesty report. It states the fill precision tier (whether contested intrabar fills were verified on finer data or settled by the fill model), the slippage disclosure for [bookEstimate runs](slippage-and-costs.md#reading-the-slippage-disclosure), and the compute time.\n4. **The equity curve**: shape matters more than the end point. A grind punctuated by one lucky spike is a different strategy than a steady slope with shallow drawdowns, at the same net profit.\n\n## 5. Tune it honestly\n\nThings worth changing and rerunning (results are deterministic, so every change you see is yours):\n\n- **Costs first.** Set `commissionPercent` and `slippageBps` to what you actually pay on your venue. Most retail strategies die here, and it is better to learn that in a backtest.\n- **Sizing.** Try `qtyType=\"fixed\"` with a small quantity versus `percentOfEquity`. Compounding changes drawdown character, not just the end number.\n- **Book-aware slippage.** Add `slippageModel=\"bookEstimate\"` and rerun: fills now pay impact based on recorded order-book depth for your size, where the pair has book history. Crank the size and watch average slippage grow; that is reality refusing to scale with you.\n- **The stop.** Tighten `0.96` to `0.99` and watch the exit-reason mix shift from `signal` to `stop`. If stops dominate on your chart interval, read [choosing an interval to trust](fill-simulation.md#choosing-an-interval-to-trust) before tightening further; a stop that is narrow relative to the bar range is asking intrabar questions the interval cannot answer.\n\n## 6. What you have, and what you do not\n\nYou now have a deterministic, lookahead-free replay of your rules with disclosed fill quality and costs. You do not have a promise about the future: no backtest survives contact with regime change, and a parameter tuned until the curve looks good is a fit to the past. Prefer fewer parameters, realistic costs, and results that stay acceptable when you nudge every setting.\n\nNext: the full [order API](writing-strategies.md), [how fills are simulated](fill-simulation.md), and [every stat defined](stats-reference.md).\n",{"type":11,"children":12,"data":1840,"position":1842},"root",[13,61,62,76,77,94,95,110,111,128,129,168,169,773,774,788,789,956,957,974,975,1037,1038,1054,1055,1070,1071,1371,1372,1388,1389,1403,1404,1728,1729,1745,1746,1760,1761],{"type":14,"tagName":15,"properties":16,"children":17,"position":57},"element","blockquote",{},[18,21,56],{"type":19,"value":20},"text","\n",{"type":14,"tagName":22,"properties":23,"children":24,"position":53},"p",{},[25,46],{"type":14,"tagName":26,"properties":27,"children":28,"position":39},"strong",{},[29],{"type":19,"value":30,"position":31},"Since engine 3.0.61; verified against engine 3.0.61.",{"start":32,"end":36},{"line":33,"column":34,"offset":35},1,5,4,{"line":33,"column":37,"offset":38},57,56,{"start":40,"end":43},{"line":33,"column":41,"offset":42},3,2,{"line":33,"column":44,"offset":45},59,58,{"type":19,"value":47,"position":48}," Every example on this page is an executed probe against that build.",{"start":49,"end":50},{"line":33,"column":44,"offset":45},{"line":33,"column":51,"offset":52},127,126,{"start":54,"end":55},{"line":33,"column":41,"offset":42},{"line":33,"column":51,"offset":52},{"type":19,"value":20},{"start":58,"end":60},{"line":33,"column":33,"offset":59},0,{"line":33,"column":51,"offset":52},{"type":19,"value":20},{"type":14,"tagName":22,"properties":63,"children":64,"position":73},{},[65],{"type":19,"value":66,"position":67},"This is the strategy sibling of the indicator primer: one idea taken from a sentence to a backtest you can evaluate honestly. You will write an RSI mean-reversion strategy, run it, read every part of the result, and then tune it like you mean it.",{"start":68,"end":70},{"line":41,"column":33,"offset":69},128,{"line":41,"column":71,"offset":72},247,374,{"start":74,"end":75},{"line":41,"column":33,"offset":69},{"line":41,"column":71,"offset":72},{"type":19,"value":20},{"type":14,"tagName":78,"properties":79,"children":81,"position":90},"h2",{"id":80},"1.-the-idea-in-one-sentence",[82],{"type":19,"value":83,"position":84},"1. The idea, in one sentence",{"start":85,"end":87},{"line":34,"column":35,"offset":86},379,{"line":34,"column":88,"offset":89},32,407,{"start":91,"end":93},{"line":34,"column":33,"offset":92},376,{"line":34,"column":88,"offset":89},{"type":19,"value":20},{"type":14,"tagName":22,"properties":96,"children":97,"position":107},{},[98],{"type":19,"value":99,"position":100},"\"When RSI leaves oversold, buy the dip with a quarter of my equity; take the trade off when momentum recovers; protect it with a stop 4% below.\"",{"start":101,"end":104},{"line":102,"column":33,"offset":103},7,409,{"line":102,"column":105,"offset":106},145,553,{"start":108,"end":109},{"line":102,"column":33,"offset":103},{"line":102,"column":105,"offset":106},{"type":19,"value":20},{"type":14,"tagName":78,"properties":112,"children":114,"position":124},{"id":113},"2.-write-it",[115],{"type":19,"value":116,"position":117},"2. Write it",{"start":118,"end":121},{"line":119,"column":35,"offset":120},9,558,{"line":119,"column":122,"offset":123},15,569,{"start":125,"end":127},{"line":119,"column":33,"offset":126},555,{"line":119,"column":122,"offset":123},{"type":19,"value":20},{"type":14,"tagName":22,"properties":130,"children":131,"position":165},{},[132,141,158],{"type":19,"value":133,"position":134},"Open a new editor tab and pick the ",{"start":135,"end":138},{"line":136,"column":33,"offset":137},11,571,{"line":136,"column":139,"offset":140},36,606,{"type":14,"tagName":26,"properties":142,"children":143,"position":153},{},[144],{"type":19,"value":145,"position":146},"strategy",{"start":147,"end":150},{"line":136,"column":148,"offset":149},38,608,{"line":136,"column":151,"offset":152},46,616,{"start":154,"end":155},{"line":136,"column":139,"offset":140},{"line":136,"column":156,"offset":157},48,618,{"type":19,"value":159,"position":160}," template, or paste this:",{"start":161,"end":162},{"line":136,"column":156,"offset":157},{"line":136,"column":163,"offset":164},73,643,{"start":166,"end":167},{"line":136,"column":33,"offset":137},{"line":136,"column":163,"offset":164},{"type":19,"value":20},{"type":11,"children":170},[171],{"type":14,"tagName":172,"properties":173,"children":178,"data":-1},"pre",{"class":174,"style":175,"tabindex":176,"title":177},"shiki shiki-themes github-dark github-light","--shiki-dark:#e1e4e8;--shiki-light:#24292e;--shiki-dark-bg:#24292e;--shiki-light-bg:#fff","0","scripts/probes/strategies/first-strategy.ks",[179],{"type":14,"tagName":180,"properties":181,"children":182},"code",{},[183,194,195,297,298,301,302,342,343,387,388,405,406,423,424,446,447,450,451,474,475,512,513,521,522,559,560,622,623,630,631,651,652,669,670,677,678,681,682],{"type":14,"tagName":184,"properties":185,"children":187},"span",{"class":186},"line",[188],{"type":14,"tagName":184,"properties":189,"children":191},{"style":190},"--shiki-dark:#6A737D;--shiki-light:#6A737D",[192],{"type":19,"value":193},"//@version=2",{"type":19,"value":20},{"type":14,"tagName":184,"properties":196,"children":197},{"class":186},[198,203,209,215,221,226,230,236,241,245,250,255,259,264,269,273,278,283,287,292],{"type":14,"tagName":184,"properties":199,"children":201},{"style":200},"--shiki-dark:#B392F0;--shiki-light:#6F42C1",[202],{"type":19,"value":145},{"type":14,"tagName":184,"properties":204,"children":206},{"style":205},"--shiki-dark:#E1E4E8;--shiki-light:#24292E",[207],{"type":19,"value":208},"(title",{"type":14,"tagName":184,"properties":210,"children":212},{"style":211},"--shiki-dark:#F97583;--shiki-light:#D73A49",[213],{"type":19,"value":214},"=",{"type":14,"tagName":184,"properties":216,"children":218},{"style":217},"--shiki-dark:#9ECBFF;--shiki-light:#032F62",[219],{"type":19,"value":220},"\"RSI Reversion\"",{"type":14,"tagName":184,"properties":222,"children":223},{"style":205},[224],{"type":19,"value":225},", initialCapital",{"type":14,"tagName":184,"properties":227,"children":228},{"style":211},[229],{"type":19,"value":214},{"type":14,"tagName":184,"properties":231,"children":233},{"style":232},"--shiki-dark:#79B8FF;--shiki-light:#005CC5",[234],{"type":19,"value":235},"10000",{"type":14,"tagName":184,"properties":237,"children":238},{"style":205},[239],{"type":19,"value":240},", qtyType",{"type":14,"tagName":184,"properties":242,"children":243},{"style":211},[244],{"type":19,"value":214},{"type":14,"tagName":184,"properties":246,"children":247},{"style":217},[248],{"type":19,"value":249},"\"percentOfEquity\"",{"type":14,"tagName":184,"properties":251,"children":252},{"style":205},[253],{"type":19,"value":254},", qtyValue",{"type":14,"tagName":184,"properties":256,"children":257},{"style":211},[258],{"type":19,"value":214},{"type":14,"tagName":184,"properties":260,"children":261},{"style":232},[262],{"type":19,"value":263},"25",{"type":14,"tagName":184,"properties":265,"children":266},{"style":205},[267],{"type":19,"value":268},", commissionPercent",{"type":14,"tagName":184,"properties":270,"children":271},{"style":211},[272],{"type":19,"value":214},{"type":14,"tagName":184,"properties":274,"children":275},{"style":232},[276],{"type":19,"value":277},"0.05",{"type":14,"tagName":184,"properties":279,"children":280},{"style":205},[281],{"type":19,"value":282},", slippageBps",{"type":14,"tagName":184,"properties":284,"children":285},{"style":211},[286],{"type":19,"value":214},{"type":14,"tagName":184,"properties":288,"children":289},{"style":232},[290],{"type":19,"value":291},"2",{"type":14,"tagName":184,"properties":293,"children":294},{"style":205},[295],{"type":19,"value":296},")",{"type":19,"value":20},{"type":14,"tagName":184,"properties":299,"children":300},{"class":186},[],{"type":19,"value":20},{"type":14,"tagName":184,"properties":303,"children":304},{"class":186},[305,310,314,319,324,328,333,337],{"type":14,"tagName":184,"properties":306,"children":307},{"style":205},[308],{"type":19,"value":309},"timeseries bars ",{"type":14,"tagName":184,"properties":311,"children":312},{"style":211},[313],{"type":19,"value":214},{"type":14,"tagName":184,"properties":315,"children":316},{"style":200},[317],{"type":19,"value":318}," ohlcv",{"type":14,"tagName":184,"properties":320,"children":321},{"style":205},[322],{"type":19,"value":323},"(symbol",{"type":14,"tagName":184,"properties":325,"children":326},{"style":211},[327],{"type":19,"value":214},{"type":14,"tagName":184,"properties":329,"children":330},{"style":205},[331],{"type":19,"value":332},"currentSymbol, exchange",{"type":14,"tagName":184,"properties":334,"children":335},{"style":211},[336],{"type":19,"value":214},{"type":14,"tagName":184,"properties":338,"children":339},{"style":205},[340],{"type":19,"value":341},"currentExchange)",{"type":19,"value":20},{"type":14,"tagName":184,"properties":344,"children":345},{"class":186},[346,351,355,360,365,369,374,378,383],{"type":14,"tagName":184,"properties":347,"children":348},{"style":205},[349],{"type":19,"value":350},"timeseries r ",{"type":14,"tagName":184,"properties":352,"children":353},{"style":211},[354],{"type":19,"value":214},{"type":14,"tagName":184,"properties":356,"children":357},{"style":200},[358],{"type":19,"value":359}," rsi",{"type":14,"tagName":184,"properties":361,"children":362},{"style":205},[363],{"type":19,"value":364},"(source",{"type":14,"tagName":184,"properties":366,"children":367},{"style":211},[368],{"type":19,"value":214},{"type":14,"tagName":184,"properties":370,"children":371},{"style":205},[372],{"type":19,"value":373},"bars.close, period",{"type":14,"tagName":184,"properties":375,"children":376},{"style":211},[377],{"type":19,"value":214},{"type":14,"tagName":184,"properties":379,"children":380},{"style":232},[381],{"type":19,"value":382},"14",{"type":14,"tagName":184,"properties":384,"children":385},{"style":205},[386],{"type":19,"value":296},{"type":19,"value":20},{"type":14,"tagName":184,"properties":389,"children":390},{"class":186},[391,396,400],{"type":14,"tagName":184,"properties":392,"children":393},{"style":205},[394],{"type":19,"value":395},"timeseries oversold ",{"type":14,"tagName":184,"properties":397,"children":398},{"style":211},[399],{"type":19,"value":214},{"type":14,"tagName":184,"properties":401,"children":402},{"style":232},[403],{"type":19,"value":404}," 30",{"type":19,"value":20},{"type":14,"tagName":184,"properties":407,"children":408},{"class":186},[409,414,418],{"type":14,"tagName":184,"properties":410,"children":411},{"style":205},[412],{"type":19,"value":413},"timeseries recovered ",{"type":14,"tagName":184,"properties":415,"children":416},{"style":211},[417],{"type":19,"value":214},{"type":14,"tagName":184,"properties":419,"children":420},{"style":232},[421],{"type":19,"value":422}," 55",{"type":19,"value":20},{"type":14,"tagName":184,"properties":425,"children":426},{"class":186},[427,432,437,441],{"type":14,"tagName":184,"properties":428,"children":429},{"style":211},[430],{"type":19,"value":431},"var",{"type":14,"tagName":184,"properties":433,"children":434},{"style":205},[435],{"type":19,"value":436}," lastClose ",{"type":14,"tagName":184,"properties":438,"children":439},{"style":211},[440],{"type":19,"value":214},{"type":14,"tagName":184,"properties":442,"children":443},{"style":205},[444],{"type":19,"value":445}," bars.close",{"type":19,"value":20},{"type":14,"tagName":184,"properties":448,"children":449},{"class":186},[],{"type":19,"value":20},{"type":14,"tagName":184,"properties":452,"children":453},{"class":186},[454,459,464,469],{"type":14,"tagName":184,"properties":455,"children":456},{"style":211},[457],{"type":19,"value":458},"if",{"type":14,"tagName":184,"properties":460,"children":461},{"style":205},[462],{"type":19,"value":463}," (",{"type":14,"tagName":184,"properties":465,"children":466},{"style":200},[467],{"type":19,"value":468},"crossover",{"type":14,"tagName":184,"properties":470,"children":471},{"style":205},[472],{"type":19,"value":473},"(r, oversold)) {",{"type":19,"value":20},{"type":14,"tagName":184,"properties":476,"children":477},{"class":186},[478,483,488,493,498,503,508],{"type":14,"tagName":184,"properties":479,"children":480},{"style":205},[481],{"type":19,"value":482},"  strategy.",{"type":14,"tagName":184,"properties":484,"children":485},{"style":200},[486],{"type":19,"value":487},"entry",{"type":14,"tagName":184,"properties":489,"children":490},{"style":205},[491],{"type":19,"value":492},"(",{"type":14,"tagName":184,"properties":494,"children":495},{"style":217},[496],{"type":19,"value":497},"\"Dip\"",{"type":14,"tagName":184,"properties":499,"children":500},{"style":205},[501],{"type":19,"value":502},", ",{"type":14,"tagName":184,"properties":504,"children":505},{"style":217},[506],{"type":19,"value":507},"\"long\"",{"type":14,"tagName":184,"properties":509,"children":510},{"style":205},[511],{"type":19,"value":296},{"type":19,"value":20},{"type":14,"tagName":184,"properties":514,"children":515},{"class":186},[516],{"type":14,"tagName":184,"properties":517,"children":518},{"style":205},[519],{"type":19,"value":520},"}",{"type":19,"value":20},{"type":14,"tagName":184,"properties":523,"children":524},{"class":186},[525,529,534,539,544,549,554],{"type":14,"tagName":184,"properties":526,"children":527},{"style":211},[528],{"type":19,"value":458},{"type":14,"tagName":184,"properties":530,"children":531},{"style":205},[532],{"type":19,"value":533}," (strategy.",{"type":14,"tagName":184,"properties":535,"children":536},{"style":200},[537],{"type":19,"value":538},"positionSize",{"type":14,"tagName":184,"properties":540,"children":541},{"style":205},[542],{"type":19,"value":543},"() ",{"type":14,"tagName":184,"properties":545,"children":546},{"style":211},[547],{"type":19,"value":548},">",{"type":14,"tagName":184,"properties":550,"children":551},{"style":232},[552],{"type":19,"value":553}," 0",{"type":14,"tagName":184,"properties":555,"children":556},{"style":205},[557],{"type":19,"value":558},") {",{"type":19,"value":20},{"type":14,"tagName":184,"properties":561,"children":562},{"class":186},[563,567,572,576,581,586,590,594,599,603,608,613,618],{"type":14,"tagName":184,"properties":564,"children":565},{"style":205},[566],{"type":19,"value":482},{"type":14,"tagName":184,"properties":568,"children":569},{"style":200},[570],{"type":19,"value":571},"exit",{"type":14,"tagName":184,"properties":573,"children":574},{"style":205},[575],{"type":19,"value":492},{"type":14,"tagName":184,"properties":577,"children":578},{"style":217},[579],{"type":19,"value":580},"\"Protect\"",{"type":14,"tagName":184,"properties":582,"children":583},{"style":205},[584],{"type":19,"value":585},", fromEntry",{"type":14,"tagName":184,"properties":587,"children":588},{"style":211},[589],{"type":19,"value":214},{"type":14,"tagName":184,"properties":591,"children":592},{"style":217},[593],{"type":19,"value":497},{"type":14,"tagName":184,"properties":595,"children":596},{"style":205},[597],{"type":19,"value":598},", stop",{"type":14,"tagName":184,"properties":600,"children":601},{"style":211},[602],{"type":19,"value":214},{"type":14,"tagName":184,"properties":604,"children":605},{"style":205},[606],{"type":19,"value":607},"lastClose ",{"type":14,"tagName":184,"properties":609,"children":610},{"style":211},[611],{"type":19,"value":612},"*",{"type":14,"tagName":184,"properties":614,"children":615},{"style":232},[616],{"type":19,"value":617}," 0.96",{"type":14,"tagName":184,"properties":619,"children":620},{"style":205},[621],{"type":19,"value":296},{"type":19,"value":20},{"type":14,"tagName":184,"properties":624,"children":625},{"class":186},[626],{"type":14,"tagName":184,"properties":627,"children":628},{"style":205},[629],{"type":19,"value":520},{"type":19,"value":20},{"type":14,"tagName":184,"properties":632,"children":633},{"class":186},[634,638,642,646],{"type":14,"tagName":184,"properties":635,"children":636},{"style":211},[637],{"type":19,"value":458},{"type":14,"tagName":184,"properties":639,"children":640},{"style":205},[641],{"type":19,"value":463},{"type":14,"tagName":184,"properties":643,"children":644},{"style":200},[645],{"type":19,"value":468},{"type":14,"tagName":184,"properties":647,"children":648},{"style":205},[649],{"type":19,"value":650},"(r, recovered)) {",{"type":19,"value":20},{"type":14,"tagName":184,"properties":653,"children":654},{"class":186},[655,659,664],{"type":14,"tagName":184,"properties":656,"children":657},{"style":205},[658],{"type":19,"value":482},{"type":14,"tagName":184,"properties":660,"children":661},{"style":200},[662],{"type":19,"value":663},"closeAll",{"type":14,"tagName":184,"properties":665,"children":666},{"style":205},[667],{"type":19,"value":668},"()",{"type":19,"value":20},{"type":14,"tagName":184,"properties":671,"children":672},{"class":186},[673],{"type":14,"tagName":184,"properties":674,"children":675},{"style":205},[676],{"type":19,"value":520},{"type":19,"value":20},{"type":14,"tagName":184,"properties":679,"children":680},{"class":186},[],{"type":19,"value":20},{"type":14,"tagName":184,"properties":683,"children":684},{"class":186},[685,690,695,699,704,708,713,718,722,727,732,737,741,745,750,755,759,763,768],{"type":14,"tagName":184,"properties":686,"children":687},{"style":200},[688],{"type":19,"value":689},"plotLine",{"type":14,"tagName":184,"properties":691,"children":692},{"style":205},[693],{"type":19,"value":694},"(value",{"type":14,"tagName":184,"properties":696,"children":697},{"style":211},[698],{"type":19,"value":214},{"type":14,"tagName":184,"properties":700,"children":701},{"style":205},[702],{"type":19,"value":703},"bars.close, width",{"type":14,"tagName":184,"properties":705,"children":706},{"style":211},[707],{"type":19,"value":214},{"type":14,"tagName":184,"properties":709,"children":710},{"style":232},[711],{"type":19,"value":712},"1",{"type":14,"tagName":184,"properties":714,"children":715},{"style":205},[716],{"type":19,"value":717},", colors",{"type":14,"tagName":184,"properties":719,"children":720},{"style":211},[721],{"type":19,"value":214},{"type":14,"tagName":184,"properties":723,"children":724},{"style":205},[725],{"type":19,"value":726},"[",{"type":14,"tagName":184,"properties":728,"children":729},{"style":217},[730],{"type":19,"value":731},"\"#94a3b8\"",{"type":14,"tagName":184,"properties":733,"children":734},{"style":205},[735],{"type":19,"value":736},"], label",{"type":14,"tagName":184,"properties":738,"children":739},{"style":211},[740],{"type":19,"value":214},{"type":14,"tagName":184,"properties":742,"children":743},{"style":205},[744],{"type":19,"value":726},{"type":14,"tagName":184,"properties":746,"children":747},{"style":217},[748],{"type":19,"value":749},"\"Close\"",{"type":14,"tagName":184,"properties":751,"children":752},{"style":205},[753],{"type":19,"value":754},"], desc",{"type":14,"tagName":184,"properties":756,"children":757},{"style":211},[758],{"type":19,"value":214},{"type":14,"tagName":184,"properties":760,"children":761},{"style":205},[762],{"type":19,"value":726},{"type":14,"tagName":184,"properties":764,"children":765},{"style":217},[766],{"type":19,"value":767},"\"Close price\"",{"type":14,"tagName":184,"properties":769,"children":770},{"style":205},[771],{"type":19,"value":772},"])",{"type":19,"value":20},{"type":14,"tagName":22,"properties":775,"children":776,"position":785},{},[777],{"type":19,"value":778,"position":779},"Reading it top to bottom:",{"start":780,"end":782},{"line":139,"column":33,"offset":781},1382,{"line":139,"column":783,"offset":784},26,1407,{"start":786,"end":787},{"line":139,"column":33,"offset":781},{"line":139,"column":783,"offset":784},{"type":19,"value":20},{"type":14,"tagName":790,"properties":791,"children":792,"position":953},"ul",{},[793,794,863,864,893,894,923,924,952],{"type":19,"value":20},{"type":14,"tagName":795,"properties":796,"children":797,"position":859},"li",{},[798,812,819,832,839,852],{"type":14,"tagName":180,"properties":799,"children":800,"position":809},{},[801],{"type":19,"value":802,"position":803},"strategy(...)",{"start":804,"end":806},{"line":148,"column":41,"offset":805},1411,{"line":148,"column":807,"offset":808},18,1426,{"start":810,"end":811},{"line":148,"column":41,"offset":805},{"line":148,"column":807,"offset":808},{"type":19,"value":813,"position":814}," replaces ",{"start":815,"end":816},{"line":148,"column":807,"offset":808},{"line":148,"column":817,"offset":818},28,1436,{"type":14,"tagName":180,"properties":820,"children":821,"position":829},{},[822],{"type":19,"value":823,"position":824},"define(...)",{"start":825,"end":826},{"line":148,"column":817,"offset":818},{"line":148,"column":827,"offset":828},41,1449,{"start":830,"end":831},{"line":148,"column":817,"offset":818},{"line":148,"column":827,"offset":828},{"type":19,"value":833,"position":834},". The declaration IS your broker: starting equity, sizing (",{"start":835,"end":836},{"line":148,"column":827,"offset":828},{"line":148,"column":837,"offset":838},100,1508,{"type":14,"tagName":180,"properties":840,"children":841,"position":849},{},[842],{"type":19,"value":843,"position":844},"25%",{"start":845,"end":846},{"line":148,"column":837,"offset":838},{"line":148,"column":847,"offset":848},105,1513,{"start":850,"end":851},{"line":148,"column":837,"offset":838},{"line":148,"column":847,"offset":848},{"type":19,"value":853,"position":854}," of equity per entry), commission, and slippage all live here, so a shared script carries its own assumptions. In the editor, the first-line keyword is clickable to toggle between indicator and strategy.",{"start":855,"end":856},{"line":148,"column":847,"offset":848},{"line":148,"column":857,"offset":858},308,1716,{"start":860,"end":862},{"line":148,"column":33,"offset":861},1409,{"line":148,"column":857,"offset":858},{"type":19,"value":20},{"type":14,"tagName":795,"properties":865,"children":866,"position":889},{},[867,882],{"type":14,"tagName":180,"properties":868,"children":869,"position":879},{},[870],{"type":19,"value":871,"position":872},"strategy.entry(\"Dip\", \"long\")",{"start":873,"end":876},{"line":874,"column":41,"offset":875},39,1719,{"line":874,"column":877,"offset":878},34,1750,{"start":880,"end":881},{"line":874,"column":41,"offset":875},{"line":874,"column":877,"offset":878},{"type":19,"value":883,"position":884}," queues a market order. Orders placed while a bar computes fill no earlier than the next bar's open; nothing in a backtest can act on information it did not have.",{"start":885,"end":886},{"line":874,"column":877,"offset":878},{"line":874,"column":887,"offset":888},196,1912,{"start":890,"end":892},{"line":874,"column":33,"offset":891},1717,{"line":874,"column":887,"offset":888},{"type":19,"value":20},{"type":14,"tagName":795,"properties":895,"children":896,"position":919},{},[897,912],{"type":14,"tagName":180,"properties":898,"children":899,"position":909},{},[900],{"type":19,"value":901,"position":902},"strategy.exit(..., stop=...)",{"start":903,"end":906},{"line":904,"column":41,"offset":905},40,1915,{"line":904,"column":907,"offset":908},33,1945,{"start":910,"end":911},{"line":904,"column":41,"offset":905},{"line":904,"column":907,"offset":908},{"type":19,"value":913,"position":914}," arms a protective bracket against the named entry.",{"start":915,"end":916},{"line":904,"column":907,"offset":908},{"line":904,"column":917,"offset":918},84,1996,{"start":920,"end":922},{"line":904,"column":33,"offset":921},1913,{"line":904,"column":917,"offset":918},{"type":19,"value":20},{"type":14,"tagName":795,"properties":925,"children":926,"position":948},{},[927,941],{"type":14,"tagName":180,"properties":928,"children":929,"position":938},{},[930],{"type":19,"value":931,"position":932},"strategy.closeAll()",{"start":933,"end":935},{"line":827,"column":41,"offset":934},1999,{"line":827,"column":936,"offset":937},24,2020,{"start":939,"end":940},{"line":827,"column":41,"offset":934},{"line":827,"column":936,"offset":937},{"type":19,"value":942,"position":943}," is the signal exit for the recovery case.",{"start":944,"end":945},{"line":827,"column":936,"offset":937},{"line":827,"column":946,"offset":947},66,2062,{"start":949,"end":951},{"line":827,"column":33,"offset":950},1997,{"line":827,"column":946,"offset":947},{"type":19,"value":20},{"start":954,"end":955},{"line":148,"column":33,"offset":861},{"line":827,"column":946,"offset":947},{"type":19,"value":20},{"type":14,"tagName":78,"properties":958,"children":960,"position":970},{"id":959},"3.-run-a-backtest",[961],{"type":19,"value":962,"position":963},"3. Run a backtest",{"start":964,"end":967},{"line":965,"column":35,"offset":966},43,2067,{"line":965,"column":968,"offset":969},21,2084,{"start":971,"end":973},{"line":965,"column":33,"offset":972},2064,{"line":965,"column":968,"offset":969},{"type":19,"value":20},{"type":14,"tagName":22,"properties":976,"children":977,"position":1034},{},[978,986,1001,1008,1027],{"type":19,"value":979,"position":980},"Hit ",{"start":981,"end":984},{"line":982,"column":33,"offset":983},45,2086,{"line":982,"column":34,"offset":985},2090,{"type":14,"tagName":26,"properties":987,"children":988,"position":996},{},[989],{"type":19,"value":990,"position":991},"Backtest",{"start":992,"end":994},{"line":982,"column":102,"offset":993},2092,{"line":982,"column":122,"offset":995},2100,{"start":997,"end":998},{"line":982,"column":34,"offset":985},{"line":982,"column":999,"offset":1000},17,2102,{"type":19,"value":1002,"position":1003},". The run replays your rules over the granted history for your tier (see ",{"start":1004,"end":1005},{"line":982,"column":999,"offset":1000},{"line":982,"column":1006,"offset":1007},90,2175,{"type":14,"tagName":1009,"properties":1010,"children":1012,"position":1022},"a",{"href":1011},"overview.md#running-a-backtest",[1013],{"type":19,"value":1014,"position":1015},"the overview",{"start":1016,"end":1019},{"line":982,"column":1017,"offset":1018},91,2176,{"line":982,"column":1020,"offset":1021},103,2188,{"start":1023,"end":1024},{"line":982,"column":1006,"offset":1007},{"line":982,"column":1025,"offset":1026},136,2221,{"type":19,"value":1028,"position":1029},"), then the Strategy Tester panel opens under the chart.",{"start":1030,"end":1031},{"line":982,"column":1025,"offset":1026},{"line":982,"column":1032,"offset":1033},192,2277,{"start":1035,"end":1036},{"line":982,"column":33,"offset":983},{"line":982,"column":1032,"offset":1033},{"type":19,"value":20},{"type":14,"tagName":78,"properties":1039,"children":1041,"position":1050},{"id":1040},"4.-read-the-result-critically",[1042],{"type":19,"value":1043,"position":1044},"4. Read the result critically",{"start":1045,"end":1048},{"line":1046,"column":35,"offset":1047},47,2282,{"line":1046,"column":907,"offset":1049},2311,{"start":1051,"end":1053},{"line":1046,"column":33,"offset":1052},2279,{"line":1046,"column":907,"offset":1049},{"type":19,"value":20},{"type":14,"tagName":22,"properties":1056,"children":1057,"position":1067},{},[1058],{"type":19,"value":1059,"position":1060},"Four places to look, in order:",{"start":1061,"end":1064},{"line":1062,"column":33,"offset":1063},49,2313,{"line":1062,"column":1065,"offset":1066},31,2343,{"start":1068,"end":1069},{"line":1062,"column":33,"offset":1063},{"line":1062,"column":1065,"offset":1066},{"type":19,"value":20},{"type":14,"tagName":1072,"properties":1073,"children":1074,"position":1368},"ol",{},[1075,1076,1132,1133,1279,1280,1336,1337,1367],{"type":19,"value":20},{"type":14,"tagName":795,"properties":1077,"children":1078,"position":1128},{},[1079,1096,1103,1121],{"type":14,"tagName":26,"properties":1080,"children":1081,"position":1091},{},[1082],{"type":19,"value":1083,"position":1084},"The overview tiles",{"start":1085,"end":1089},{"line":1086,"column":1087,"offset":1088},51,6,2350,{"line":1086,"column":936,"offset":1090},2368,{"start":1092,"end":1094},{"line":1086,"column":35,"offset":1093},2348,{"line":1086,"column":783,"offset":1095},2370,{"type":19,"value":1097,"position":1098},": net profit, win rate, profit factor, max drawdown. A strategy that \"wins 70% of the time\" with a payoff ratio of 0.3 loses money; the tiles together tell you which kind you have. Definitions and formulas for every number are in the ",{"start":1099,"end":1100},{"line":1086,"column":783,"offset":1095},{"line":1086,"column":1101,"offset":1102},260,2604,{"type":14,"tagName":1009,"properties":1104,"children":1106,"position":1116},{"href":1105},"stats-reference.md",[1107],{"type":19,"value":1108,"position":1109},"stats reference",{"start":1110,"end":1113},{"line":1086,"column":1111,"offset":1112},261,2605,{"line":1086,"column":1114,"offset":1115},276,2620,{"start":1117,"end":1118},{"line":1086,"column":1101,"offset":1102},{"line":1086,"column":1119,"offset":1120},297,2641,{"type":19,"value":1122,"position":1123},".",{"start":1124,"end":1125},{"line":1086,"column":1119,"offset":1120},{"line":1086,"column":1126,"offset":1127},298,2642,{"start":1129,"end":1131},{"line":1086,"column":33,"offset":1130},2345,{"line":1086,"column":1126,"offset":1127},{"type":19,"value":20},{"type":14,"tagName":795,"properties":1134,"children":1135,"position":1275},{},[1136,1154,1161,1174,1180,1193,1199,1212,1218,1231,1237,1249,1255,1268],{"type":14,"tagName":26,"properties":1137,"children":1138,"position":1148},{},[1139],{"type":19,"value":1140,"position":1141},"The trades tab",{"start":1142,"end":1145},{"line":1143,"column":1087,"offset":1144},52,2648,{"line":1143,"column":1146,"offset":1147},20,2662,{"start":1149,"end":1151},{"line":1143,"column":35,"offset":1150},2646,{"line":1143,"column":1152,"offset":1153},22,2664,{"type":19,"value":1155,"position":1156},": individual entries and exits with per-trade PnL, fees, and exit reason (",{"start":1157,"end":1158},{"line":1143,"column":1152,"offset":1153},{"line":1143,"column":1159,"offset":1160},96,2738,{"type":14,"tagName":180,"properties":1162,"children":1163,"position":1171},{},[1164],{"type":19,"value":1165,"position":1166},"signal",{"start":1167,"end":1168},{"line":1143,"column":1159,"offset":1160},{"line":1143,"column":1169,"offset":1170},104,2746,{"start":1172,"end":1173},{"line":1143,"column":1159,"offset":1160},{"line":1143,"column":1169,"offset":1170},{"type":19,"value":502,"position":1175},{"start":1176,"end":1177},{"line":1143,"column":1169,"offset":1170},{"line":1143,"column":1178,"offset":1179},106,2748,{"type":14,"tagName":180,"properties":1181,"children":1182,"position":1190},{},[1183],{"type":19,"value":1184,"position":1185},"stop",{"start":1186,"end":1187},{"line":1143,"column":1178,"offset":1179},{"line":1143,"column":1188,"offset":1189},112,2754,{"start":1191,"end":1192},{"line":1143,"column":1178,"offset":1179},{"line":1143,"column":1188,"offset":1189},{"type":19,"value":502,"position":1194},{"start":1195,"end":1196},{"line":1143,"column":1188,"offset":1189},{"line":1143,"column":1197,"offset":1198},114,2756,{"type":14,"tagName":180,"properties":1200,"children":1201,"position":1209},{},[1202],{"type":19,"value":1203,"position":1204},"limit",{"start":1205,"end":1206},{"line":1143,"column":1197,"offset":1198},{"line":1143,"column":1207,"offset":1208},121,2763,{"start":1210,"end":1211},{"line":1143,"column":1197,"offset":1198},{"line":1143,"column":1207,"offset":1208},{"type":19,"value":502,"position":1213},{"start":1214,"end":1215},{"line":1143,"column":1207,"offset":1208},{"line":1143,"column":1216,"offset":1217},123,2765,{"type":14,"tagName":180,"properties":1219,"children":1220,"position":1228},{},[1221],{"type":19,"value":1222,"position":1223},"trail",{"start":1224,"end":1225},{"line":1143,"column":1216,"offset":1217},{"line":1143,"column":1226,"offset":1227},130,2772,{"start":1229,"end":1230},{"line":1143,"column":1216,"offset":1217},{"line":1143,"column":1226,"offset":1227},{"type":19,"value":502,"position":1232},{"start":1233,"end":1234},{"line":1143,"column":1226,"offset":1227},{"line":1143,"column":1235,"offset":1236},132,2774,{"type":14,"tagName":180,"properties":1238,"children":1239,"position":1246},{},[1240],{"type":19,"value":663,"position":1241},{"start":1242,"end":1243},{"line":1143,"column":1235,"offset":1236},{"line":1143,"column":1244,"offset":1245},142,2784,{"start":1247,"end":1248},{"line":1143,"column":1235,"offset":1236},{"line":1143,"column":1244,"offset":1245},{"type":19,"value":502,"position":1250},{"start":1251,"end":1252},{"line":1143,"column":1244,"offset":1245},{"line":1143,"column":1253,"offset":1254},144,2786,{"type":14,"tagName":180,"properties":1256,"children":1257,"position":1265},{},[1258],{"type":19,"value":1259,"position":1260},"endOfData",{"start":1261,"end":1262},{"line":1143,"column":1253,"offset":1254},{"line":1143,"column":1263,"offset":1264},155,2797,{"start":1266,"end":1267},{"line":1143,"column":1253,"offset":1254},{"line":1143,"column":1263,"offset":1264},{"type":19,"value":1269,"position":1270},"). Spot-check a few against the chart markers; you should be able to explain every trade from your own rules.",{"start":1271,"end":1272},{"line":1143,"column":1263,"offset":1264},{"line":1143,"column":1273,"offset":1274},264,2906,{"start":1276,"end":1278},{"line":1143,"column":33,"offset":1277},2643,{"line":1143,"column":1273,"offset":1274},{"type":19,"value":20},{"type":14,"tagName":795,"properties":1281,"children":1282,"position":1332},{},[1283,1300,1307,1325],{"type":14,"tagName":26,"properties":1284,"children":1285,"position":1295},{},[1286],{"type":19,"value":1287,"position":1288},"The run details popover",{"start":1289,"end":1292},{"line":1290,"column":1087,"offset":1291},53,2912,{"line":1290,"column":1293,"offset":1294},29,2935,{"start":1296,"end":1298},{"line":1290,"column":35,"offset":1297},2910,{"line":1290,"column":1065,"offset":1299},2937,{"type":19,"value":1301,"position":1302}," (info icon in the panel header): this is the honesty report. It states the fill precision tier (whether contested intrabar fills were verified on finer data or settled by the fill model), the slippage disclosure for ",{"start":1303,"end":1304},{"line":1290,"column":1065,"offset":1299},{"line":1290,"column":1305,"offset":1306},248,3154,{"type":14,"tagName":1009,"properties":1308,"children":1310,"position":1320},{"href":1309},"slippage-and-costs.md#reading-the-slippage-disclosure",[1311],{"type":19,"value":1312,"position":1313},"bookEstimate runs",{"start":1314,"end":1317},{"line":1290,"column":1315,"offset":1316},249,3155,{"line":1290,"column":1318,"offset":1319},266,3172,{"start":1321,"end":1322},{"line":1290,"column":1305,"offset":1306},{"line":1290,"column":1323,"offset":1324},322,3228,{"type":19,"value":1326,"position":1327},", and the compute time.",{"start":1328,"end":1329},{"line":1290,"column":1323,"offset":1324},{"line":1290,"column":1330,"offset":1331},345,3251,{"start":1333,"end":1335},{"line":1290,"column":33,"offset":1334},2907,{"line":1290,"column":1330,"offset":1331},{"type":19,"value":20},{"type":14,"tagName":795,"properties":1338,"children":1339,"position":1363},{},[1340,1356],{"type":14,"tagName":26,"properties":1341,"children":1342,"position":1351},{},[1343],{"type":19,"value":1344,"position":1345},"The equity curve",{"start":1346,"end":1349},{"line":1347,"column":1087,"offset":1348},54,3257,{"line":1347,"column":1152,"offset":1350},3273,{"start":1352,"end":1354},{"line":1347,"column":35,"offset":1353},3255,{"line":1347,"column":936,"offset":1355},3275,{"type":19,"value":1357,"position":1358},": shape matters more than the end point. A grind punctuated by one lucky spike is a different strategy than a steady slope with shallow drawdowns, at the same net profit.",{"start":1359,"end":1360},{"line":1347,"column":936,"offset":1355},{"line":1347,"column":1361,"offset":1362},194,3445,{"start":1364,"end":1366},{"line":1347,"column":33,"offset":1365},3252,{"line":1347,"column":1361,"offset":1362},{"type":19,"value":20},{"start":1369,"end":1370},{"line":1086,"column":33,"offset":1130},{"line":1347,"column":1361,"offset":1362},{"type":19,"value":20},{"type":14,"tagName":78,"properties":1373,"children":1375,"position":1384},{"id":1374},"5.-tune-it-honestly",[1376],{"type":19,"value":1377,"position":1378},"5. Tune it honestly",{"start":1379,"end":1381},{"line":38,"column":35,"offset":1380},3450,{"line":38,"column":1382,"offset":1383},23,3469,{"start":1385,"end":1387},{"line":38,"column":33,"offset":1386},3447,{"line":38,"column":1382,"offset":1383},{"type":19,"value":20},{"type":14,"tagName":22,"properties":1390,"children":1391,"position":1400},{},[1392],{"type":19,"value":1393,"position":1394},"Things worth changing and rerunning (results are deterministic, so every change you see is yours):",{"start":1395,"end":1397},{"line":45,"column":33,"offset":1396},3471,{"line":45,"column":1398,"offset":1399},99,3569,{"start":1401,"end":1402},{"line":45,"column":33,"offset":1396},{"line":45,"column":1398,"offset":1399},{"type":19,"value":20},{"type":14,"tagName":790,"properties":1405,"children":1406,"position":1725},{},[1407,1408,1476,1477,1545,1546,1596,1597,1724],{"type":19,"value":20},{"type":14,"tagName":795,"properties":1409,"children":1410,"position":1472},{},[1411,1428,1434,1446,1452,1465],{"type":14,"tagName":26,"properties":1412,"children":1413,"position":1422},{},[1414],{"type":19,"value":1415,"position":1416},"Costs first.",{"start":1417,"end":1420},{"line":1418,"column":34,"offset":1419},60,3575,{"line":1418,"column":999,"offset":1421},3587,{"start":1423,"end":1425},{"line":1418,"column":41,"offset":1424},3573,{"line":1418,"column":1426,"offset":1427},19,3589,{"type":19,"value":1429,"position":1430}," Set ",{"start":1431,"end":1432},{"line":1418,"column":1426,"offset":1427},{"line":1418,"column":936,"offset":1433},3594,{"type":14,"tagName":180,"properties":1435,"children":1436,"position":1443},{},[1437],{"type":19,"value":1438,"position":1439},"commissionPercent",{"start":1440,"end":1441},{"line":1418,"column":936,"offset":1433},{"line":1418,"column":965,"offset":1442},3613,{"start":1444,"end":1445},{"line":1418,"column":936,"offset":1433},{"line":1418,"column":965,"offset":1442},{"type":19,"value":1447,"position":1448}," and ",{"start":1449,"end":1450},{"line":1418,"column":965,"offset":1442},{"line":1418,"column":156,"offset":1451},3618,{"type":14,"tagName":180,"properties":1453,"children":1454,"position":1462},{},[1455],{"type":19,"value":1456,"position":1457},"slippageBps",{"start":1458,"end":1459},{"line":1418,"column":156,"offset":1451},{"line":1418,"column":1460,"offset":1461},61,3631,{"start":1463,"end":1464},{"line":1418,"column":156,"offset":1451},{"line":1418,"column":1460,"offset":1461},{"type":19,"value":1466,"position":1467}," to what you actually pay on your venue. Most retail strategies die here, and it is better to learn that in a backtest.",{"start":1468,"end":1469},{"line":1418,"column":1460,"offset":1461},{"line":1418,"column":1470,"offset":1471},180,3750,{"start":1473,"end":1475},{"line":1418,"column":33,"offset":1474},3571,{"line":1418,"column":1470,"offset":1471},{"type":19,"value":20},{"type":14,"tagName":795,"properties":1478,"children":1479,"position":1541},{},[1480,1497,1503,1515,1521,1534],{"type":14,"tagName":26,"properties":1481,"children":1482,"position":1491},{},[1483],{"type":19,"value":1484,"position":1485},"Sizing.",{"start":1486,"end":1488},{"line":1460,"column":34,"offset":1487},3755,{"line":1460,"column":1489,"offset":1490},12,3762,{"start":1492,"end":1494},{"line":1460,"column":41,"offset":1493},3753,{"line":1460,"column":1495,"offset":1496},14,3764,{"type":19,"value":1498,"position":1499}," Try ",{"start":1500,"end":1501},{"line":1460,"column":1495,"offset":1496},{"line":1460,"column":1426,"offset":1502},3769,{"type":14,"tagName":180,"properties":1504,"children":1505,"position":1512},{},[1506],{"type":19,"value":1507,"position":1508},"qtyType=\"fixed\"",{"start":1509,"end":1510},{"line":1460,"column":1426,"offset":1502},{"line":1460,"column":139,"offset":1511},3786,{"start":1513,"end":1514},{"line":1460,"column":1426,"offset":1502},{"line":1460,"column":139,"offset":1511},{"type":19,"value":1516,"position":1517}," with a small quantity versus ",{"start":1518,"end":1519},{"line":1460,"column":139,"offset":1511},{"line":1460,"column":946,"offset":1520},3816,{"type":14,"tagName":180,"properties":1522,"children":1523,"position":1531},{},[1524],{"type":19,"value":1525,"position":1526},"percentOfEquity",{"start":1527,"end":1528},{"line":1460,"column":946,"offset":1520},{"line":1460,"column":1529,"offset":1530},83,3833,{"start":1532,"end":1533},{"line":1460,"column":946,"offset":1520},{"line":1460,"column":1529,"offset":1530},{"type":19,"value":1535,"position":1536},". Compounding changes drawdown character, not just the end number.",{"start":1537,"end":1538},{"line":1460,"column":1529,"offset":1530},{"line":1460,"column":1539,"offset":1540},149,3899,{"start":1542,"end":1544},{"line":1460,"column":33,"offset":1543},3751,{"line":1460,"column":1539,"offset":1540},{"type":19,"value":20},{"type":14,"tagName":795,"properties":1547,"children":1548,"position":1592},{},[1549,1567,1573,1585],{"type":14,"tagName":26,"properties":1550,"children":1551,"position":1561},{},[1552],{"type":19,"value":1553,"position":1554},"Book-aware slippage.",{"start":1555,"end":1558},{"line":1556,"column":34,"offset":1557},62,3904,{"line":1556,"column":1559,"offset":1560},25,3924,{"start":1562,"end":1564},{"line":1556,"column":41,"offset":1563},3902,{"line":1556,"column":1565,"offset":1566},27,3926,{"type":19,"value":1568,"position":1569}," Add ",{"start":1570,"end":1571},{"line":1556,"column":1565,"offset":1566},{"line":1556,"column":88,"offset":1572},3931,{"type":14,"tagName":180,"properties":1574,"children":1575,"position":1582},{},[1576],{"type":19,"value":1577,"position":1578},"slippageModel=\"bookEstimate\"",{"start":1579,"end":1580},{"line":1556,"column":88,"offset":1572},{"line":1556,"column":1556,"offset":1581},3961,{"start":1583,"end":1584},{"line":1556,"column":88,"offset":1572},{"line":1556,"column":1556,"offset":1581},{"type":19,"value":1586,"position":1587}," and rerun: fills now pay impact based on recorded order-book depth for your size, where the pair has book history. Crank the size and watch average slippage grow; that is reality refusing to scale with you.",{"start":1588,"end":1589},{"line":1556,"column":1556,"offset":1581},{"line":1556,"column":1590,"offset":1591},269,4168,{"start":1593,"end":1595},{"line":1556,"column":33,"offset":1594},3900,{"line":1556,"column":1590,"offset":1591},{"type":19,"value":20},{"type":14,"tagName":795,"properties":1598,"children":1599,"position":1720},{},[1600,1617,1623,1635,1642,1654,1660,1671,1677,1689,1696,1713],{"type":14,"tagName":26,"properties":1601,"children":1602,"position":1611},{},[1603],{"type":19,"value":1604,"position":1605},"The stop.",{"start":1606,"end":1609},{"line":1607,"column":34,"offset":1608},63,4173,{"line":1607,"column":1495,"offset":1610},4182,{"start":1612,"end":1614},{"line":1607,"column":41,"offset":1613},4171,{"line":1607,"column":1615,"offset":1616},16,4184,{"type":19,"value":1618,"position":1619}," Tighten ",{"start":1620,"end":1621},{"line":1607,"column":1615,"offset":1616},{"line":1607,"column":1559,"offset":1622},4193,{"type":14,"tagName":180,"properties":1624,"children":1625,"position":1632},{},[1626],{"type":19,"value":1627,"position":1628},"0.96",{"start":1629,"end":1630},{"line":1607,"column":1559,"offset":1622},{"line":1607,"column":1065,"offset":1631},4199,{"start":1633,"end":1634},{"line":1607,"column":1559,"offset":1622},{"line":1607,"column":1065,"offset":1631},{"type":19,"value":1636,"position":1637}," to ",{"start":1638,"end":1639},{"line":1607,"column":1065,"offset":1631},{"line":1607,"column":1640,"offset":1641},35,4203,{"type":14,"tagName":180,"properties":1643,"children":1644,"position":1651},{},[1645],{"type":19,"value":1646,"position":1647},"0.99",{"start":1648,"end":1649},{"line":1607,"column":1640,"offset":1641},{"line":1607,"column":827,"offset":1650},4209,{"start":1652,"end":1653},{"line":1607,"column":1640,"offset":1641},{"line":1607,"column":827,"offset":1650},{"type":19,"value":1655,"position":1656}," and watch the exit-reason mix shift from ",{"start":1657,"end":1658},{"line":1607,"column":827,"offset":1650},{"line":1607,"column":1529,"offset":1659},4251,{"type":14,"tagName":180,"properties":1661,"children":1662,"position":1668},{},[1663],{"type":19,"value":1165,"position":1664},{"start":1665,"end":1666},{"line":1607,"column":1529,"offset":1659},{"line":1607,"column":1017,"offset":1667},4259,{"start":1669,"end":1670},{"line":1607,"column":1529,"offset":1659},{"line":1607,"column":1017,"offset":1667},{"type":19,"value":1636,"position":1672},{"start":1673,"end":1674},{"line":1607,"column":1017,"offset":1667},{"line":1607,"column":1675,"offset":1676},95,4263,{"type":14,"tagName":180,"properties":1678,"children":1679,"position":1686},{},[1680],{"type":19,"value":1184,"position":1681},{"start":1682,"end":1683},{"line":1607,"column":1675,"offset":1676},{"line":1607,"column":1684,"offset":1685},101,4269,{"start":1687,"end":1688},{"line":1607,"column":1675,"offset":1676},{"line":1607,"column":1684,"offset":1685},{"type":19,"value":1690,"position":1691},". If stops dominate on your chart interval, read ",{"start":1692,"end":1693},{"line":1607,"column":1684,"offset":1685},{"line":1607,"column":1694,"offset":1695},150,4318,{"type":14,"tagName":1009,"properties":1697,"children":1699,"position":1708},{"href":1698},"fill-simulation.md#choosing-an-interval-to-trust",[1700],{"type":19,"value":1701,"position":1702},"choosing an interval to trust",{"start":1703,"end":1706},{"line":1607,"column":1704,"offset":1705},151,4319,{"line":1607,"column":1470,"offset":1707},4348,{"start":1709,"end":1710},{"line":1607,"column":1694,"offset":1695},{"line":1607,"column":1711,"offset":1712},231,4399,{"type":19,"value":1714,"position":1715}," before tightening further; a stop that is narrow relative to the bar range is asking intrabar questions the interval cannot answer.",{"start":1716,"end":1717},{"line":1607,"column":1711,"offset":1712},{"line":1607,"column":1718,"offset":1719},363,4531,{"start":1721,"end":1723},{"line":1607,"column":33,"offset":1722},4169,{"line":1607,"column":1718,"offset":1719},{"type":19,"value":20},{"start":1726,"end":1727},{"line":1418,"column":33,"offset":1474},{"line":1607,"column":1718,"offset":1719},{"type":19,"value":20},{"type":14,"tagName":78,"properties":1730,"children":1732,"position":1741},{"id":1731},"6.-what-you-have-and-what-you-do-not",[1733],{"type":19,"value":1734,"position":1735},"6. What you have, and what you do not",{"start":1736,"end":1739},{"line":1737,"column":35,"offset":1738},65,4536,{"line":1737,"column":827,"offset":1740},4573,{"start":1742,"end":1744},{"line":1737,"column":33,"offset":1743},4533,{"line":1737,"column":827,"offset":1740},{"type":19,"value":20},{"type":14,"tagName":22,"properties":1747,"children":1748,"position":1757},{},[1749],{"type":19,"value":1750,"position":1751},"You now have a deterministic, lookahead-free replay of your rules with disclosed fill quality and costs. You do not have a promise about the future: no backtest survives contact with regime change, and a parameter tuned until the curve looks good is a fit to the past. Prefer fewer parameters, realistic costs, and results that stay acceptable when you nudge every setting.",{"start":1752,"end":1755},{"line":1753,"column":33,"offset":1754},67,4575,{"line":1753,"column":72,"offset":1756},4948,{"start":1758,"end":1759},{"line":1753,"column":33,"offset":1754},{"line":1753,"column":72,"offset":1756},{"type":19,"value":20},{"type":14,"tagName":22,"properties":1762,"children":1763,"position":1837},{},[1764,1772,1788,1793,1810,1816,1832],{"type":19,"value":1765,"position":1766},"Next: the full ",{"start":1767,"end":1770},{"line":1768,"column":33,"offset":1769},69,4950,{"line":1768,"column":1615,"offset":1771},4965,{"type":14,"tagName":1009,"properties":1773,"children":1775,"position":1783},{"href":1774},"writing-strategies.md",[1776],{"type":19,"value":1777,"position":1778},"order API",{"start":1779,"end":1781},{"line":1768,"column":999,"offset":1780},4966,{"line":1768,"column":783,"offset":1782},4975,{"start":1784,"end":1785},{"line":1768,"column":1615,"offset":1771},{"line":1768,"column":1786,"offset":1787},50,4999,{"type":19,"value":502,"position":1789},{"start":1790,"end":1791},{"line":1768,"column":1786,"offset":1787},{"line":1768,"column":1143,"offset":1792},5001,{"type":14,"tagName":1009,"properties":1794,"children":1796,"position":1805},{"href":1795},"fill-simulation.md",[1797],{"type":19,"value":1798,"position":1799},"how fills are simulated",{"start":1800,"end":1802},{"line":1768,"column":1290,"offset":1801},5002,{"line":1768,"column":1803,"offset":1804},76,5025,{"start":1806,"end":1807},{"line":1768,"column":1143,"offset":1792},{"line":1768,"column":1808,"offset":1809},97,5046,{"type":19,"value":1811,"position":1812},", and ",{"start":1813,"end":1814},{"line":1768,"column":1808,"offset":1809},{"line":1768,"column":1020,"offset":1815},5052,{"type":14,"tagName":1009,"properties":1817,"children":1818,"position":1827},{"href":1105},[1819],{"type":19,"value":1820,"position":1821},"every stat defined",{"start":1822,"end":1824},{"line":1768,"column":1169,"offset":1823},5053,{"line":1768,"column":1825,"offset":1826},122,5071,{"start":1828,"end":1829},{"line":1768,"column":1020,"offset":1815},{"line":1768,"column":1830,"offset":1831},143,5092,{"type":19,"value":1122,"position":1833},{"start":1834,"end":1835},{"line":1768,"column":1830,"offset":1831},{"line":1768,"column":1253,"offset":1836},5093,{"start":1838,"end":1839},{"line":1768,"column":33,"offset":1769},{"line":1768,"column":1253,"offset":1836},{"quirksMode":1841},false,{"start":1843,"end":1844},{"line":33,"column":33,"offset":59},{"line":1845,"column":33,"offset":1846},70,5094,1783408979707]