[{"data":1,"prerenderedAt":2286},["ShallowReactive",2],{"kscript:strategies/stats-reference":3},{"slug":4,"filePath":5,"frontmatter":6,"rawMarkdown":9,"tree":10},"strategies/stats-reference","strategies/stats-reference.md",{"title":7,"description":8},"Stats Reference","Every performance stat the Strategy Tester reports, its exact formula, and its edge cases. All formulas are locked by engine tests.","---\ntitle: Stats Reference\ndescription: Every performance stat the Strategy Tester reports, its exact formula, and its edge cases. All formulas are locked by engine tests.\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\nEvery number below is computed by the engine with a locked formula (pinned by tests, byte-identical across reruns) and delivered on the run result under `output.strategy.stats`. Percent-scaled fields end in `Pct` and are already multiplied by 100.\n\n## Returns\n\n| Stat | Definition |\n| --- | --- |\n| `netProfit` | Sum of realized trade PnL minus all fees paid. `netProfitPct` is relative to `initialCapital`. |\n| `grossProfit` / `grossLoss` | Sum of winning trades' PnL and (absolute) sum of losing trades' PnL, respectively. |\n| `profitFactor` | `grossProfit / grossLoss`. Reported as `null` when there are no losses (division by zero is not a number worth printing). |\n| `buyHoldReturnPct` | `(lastClose / firstTradableClose - 1) * 100`: what doing nothing would have returned over the same window. If your strategy does not beat this after costs, the market did the work, not the rules. |\n\n## Trades\n\n| Stat | Definition |\n| --- | --- |\n| `totalTrades`, `winTrades`, `lossTrades` | Closed trades, and the win/loss split. `winRatePct` is `winTrades / totalTrades * 100`. |\n| `avgTrade`, `avgWin`, `avgLoss` | Mean PnL per closed trade, per winner, per loser. |\n| `payoffRatio` | `avgWin / abs(avgLoss)`. `null` when there are no losers. Read it WITH the win rate: 40% winners at a 3.0 payoff is profitable, 70% winners at 0.3 is not. |\n| `largestWin`, `largestLoss` | The single best and worst closed trades. If `largestWin` dominates `netProfit`, one trade made the backtest. |\n| `avgBarsInTrade` | Mean holding time in bars. |\n| `rejectedOrders` | Orders the broker refused (pyramiding cap, invalid sizing, non-positive equity, NaN bars). Rejections are counted, never silently dropped. |\n\n## Risk\n\n| Stat | Definition |\n| --- | --- |\n| `maxDrawdown` | Largest peak-to-trough equity decline over the run, in money. `maxDrawdownPct` is relative to the equity peak it fell from. |\n| `maxRunup` | Mirror of drawdown: the largest trough-to-peak climb. |\n| `sharpe` | `mean(r) / sampleStd(r) * sqrt(barsPerYear)`, where `r` are per-bar equity returns over confirmed bars and `barsPerYear = 31,536,000,000 / intervalMs`. Zero when the return series has no variance. Annualized from YOUR chart interval, so compare Sharpe across runs at the same interval. |\n| `sortino` | Same as Sharpe with downside deviation (only returns below zero) in the denominator. Punishes losing volatility, forgives winning volatility. |\n| `exposurePct` | Bars with a nonzero position divided by all confirmed bars, times 100. A strategy in the market 4% of the time with the same net profit as one exposed 90% of the time is taking far less risk per unit of return. |\n\n## Costs\n\n| Stat | Definition |\n| --- | --- |\n| `feesPaid` | Total commission across all fills (`commissionPercent` of each fill's notional). Already subtracted from equity and `netProfit`. |\n\nSlippage is not a separate stat line because it is baked into every fill price; the [slippage disclosure](slippage-and-costs.md#reading-the-slippage-disclosure) in the run details reports how it was priced.\n\n## Long / short splits\n\n`stats.long` and `stats.short` carry `netProfit`, `totalTrades`, and `winRatePct` per direction. A \"market-neutral\" idea whose entire profit sits in `stats.long` during a bull-market window is a long-only idea with extra steps.\n\n## Simulation-quality stats\n\nThese describe how the result was produced, not how the strategy performed. They power the disclosures in the run-details popover:\n\n| Stat | Definition |\n| --- | --- |\n| `ambiguousFillCount` | Intrabar ordering decisions settled by the declared `fillModel` assumption rather than data. Details in [fill simulation](fill-simulation.md). |\n| `fineResolvedCount` | Ordering questions settled by walking finer-interval bars (no assumption involved). |\n| `fineFillCoveragePct` | Walked ordering questions over all ordering questions, times 100. `null` when the run posed none (zero of zero is not zero percent). |\n| `fillResolutionByLane` | Walked questions per finer-data lane, e.g. `{ \"1m\": 12, \"5m\": 3 }`. |\n| `bookSlippageFillCount` | Fills priced from recorded order-book depth (`slippageModel=\"bookEstimate\"` only). |\n| `bookSlippageUnavailableCount` | bookEstimate fills that fell back to the declared rate (no usable book for that bar or size). |\n| `bookSlippageAvgBps` | Mean applied book impact in basis points; `null` when nothing was book-priced. |\n\n## Equity accounting, precisely\n\nEquity on every bar `i` is cash plus the open position marked at `close[i]`, minus all fees paid so far, recorded on flat bars too. Per-bar returns for Sharpe and Sortino are `r_i = equity_i / equity_{i-1} - 1` over confirmed bars with positive prior equity. On the live edge, strategy scripts fully recompute on every tick; the forming bar can shift pending-order and stat values once between the initial render and the first tick, and settles when the bar confirms.\n",{"type":11,"children":12,"data":2280,"position":2282},"root",[13,61,62,117,118,135,137,489,490,505,507,1016,1017,1032,1034,1372,1373,1388,1390,1520,1521,1560,1561,1576,1577,1692,1693,1710,1711,1725,1727,2190,2191,2207,2208],{"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":114},{},[65,73,87,94,107],{"type":19,"value":66,"position":67},"Every number below is computed by the engine with a locked formula (pinned by tests, byte-identical across reruns) and delivered on the run result under ",{"start":68,"end":70},{"line":41,"column":33,"offset":69},128,{"line":41,"column":71,"offset":72},154,281,{"type":14,"tagName":74,"properties":75,"children":76,"position":84},"code",{},[77],{"type":19,"value":78,"position":79},"output.strategy.stats",{"start":80,"end":81},{"line":41,"column":71,"offset":72},{"line":41,"column":82,"offset":83},177,304,{"start":85,"end":86},{"line":41,"column":71,"offset":72},{"line":41,"column":82,"offset":83},{"type":19,"value":88,"position":89},". Percent-scaled fields end in ",{"start":90,"end":91},{"line":41,"column":82,"offset":83},{"line":41,"column":92,"offset":93},208,335,{"type":14,"tagName":74,"properties":95,"children":96,"position":104},{},[97],{"type":19,"value":98,"position":99},"Pct",{"start":100,"end":101},{"line":41,"column":92,"offset":93},{"line":41,"column":102,"offset":103},213,340,{"start":105,"end":106},{"line":41,"column":92,"offset":93},{"line":41,"column":102,"offset":103},{"type":19,"value":108,"position":109}," and are already multiplied by 100.",{"start":110,"end":111},{"line":41,"column":102,"offset":103},{"line":41,"column":112,"offset":113},248,375,{"start":115,"end":116},{"line":41,"column":33,"offset":69},{"line":41,"column":112,"offset":113},{"type":19,"value":20},{"type":14,"tagName":119,"properties":120,"children":122,"position":131},"h2",{"id":121},"returns",[123],{"type":19,"value":124,"position":125},"Returns",{"start":126,"end":128},{"line":34,"column":35,"offset":127},380,{"line":34,"column":129,"offset":130},11,387,{"start":132,"end":134},{"line":34,"column":33,"offset":133},377,{"line":34,"column":129,"offset":130},{"type":19,"value":136},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":14,"tagName":138,"properties":139,"children":140,"position":486},"table",{},[141,190],{"type":14,"tagName":142,"properties":143,"children":144,"position":187},"thead",{},[145],{"type":14,"tagName":146,"properties":147,"children":148,"position":184},"tr",{},[149,167],{"type":14,"tagName":150,"properties":151,"children":152,"position":161},"th",{},[153],{"type":19,"value":154,"position":155},"Stat",{"start":156,"end":159},{"line":157,"column":41,"offset":158},7,391,{"line":157,"column":157,"offset":160},395,{"start":162,"end":164},{"line":157,"column":33,"offset":163},389,{"line":157,"column":165,"offset":166},8,396,{"type":14,"tagName":150,"properties":168,"children":169,"position":179},{},[170],{"type":19,"value":171,"position":172},"Definition",{"start":173,"end":176},{"line":157,"column":174,"offset":175},10,398,{"line":157,"column":177,"offset":178},20,408,{"start":180,"end":181},{"line":157,"column":165,"offset":166},{"line":157,"column":182,"offset":183},22,410,{"start":185,"end":186},{"line":157,"column":33,"offset":163},{"line":157,"column":182,"offset":183},{"start":188,"end":189},{"line":157,"column":33,"offset":163},{"line":157,"column":182,"offset":183},{"type":14,"tagName":191,"properties":192,"children":193,"position":483},"tbody",{},[194,282,348,424],{"type":14,"tagName":146,"properties":195,"children":196,"position":279},{},[197,222],{"type":14,"tagName":198,"properties":199,"children":200,"position":216},"td",{},[201],{"type":14,"tagName":74,"properties":202,"children":203,"position":213},{},[204],{"type":19,"value":205,"position":206},"netProfit",{"start":207,"end":210},{"line":208,"column":41,"offset":209},9,427,{"line":208,"column":211,"offset":212},14,438,{"start":214,"end":215},{"line":208,"column":41,"offset":209},{"line":208,"column":211,"offset":212},{"start":217,"end":219},{"line":208,"column":33,"offset":218},425,{"line":208,"column":220,"offset":221},15,439,{"type":14,"tagName":198,"properties":223,"children":224,"position":274},{},[225,234,247,254,267],{"type":19,"value":226,"position":227},"Sum of realized trade PnL minus all fees paid. ",{"start":228,"end":231},{"line":208,"column":229,"offset":230},17,441,{"line":208,"column":232,"offset":233},64,488,{"type":14,"tagName":74,"properties":235,"children":236,"position":244},{},[237],{"type":19,"value":238,"position":239},"netProfitPct",{"start":240,"end":241},{"line":208,"column":232,"offset":233},{"line":208,"column":242,"offset":243},78,502,{"start":245,"end":246},{"line":208,"column":232,"offset":233},{"line":208,"column":242,"offset":243},{"type":19,"value":248,"position":249}," is relative to ",{"start":250,"end":251},{"line":208,"column":242,"offset":243},{"line":208,"column":252,"offset":253},94,518,{"type":14,"tagName":74,"properties":255,"children":256,"position":264},{},[257],{"type":19,"value":258,"position":259},"initialCapital",{"start":260,"end":261},{"line":208,"column":252,"offset":253},{"line":208,"column":262,"offset":263},110,534,{"start":265,"end":266},{"line":208,"column":252,"offset":253},{"line":208,"column":262,"offset":263},{"type":19,"value":268,"position":269},".",{"start":270,"end":271},{"line":208,"column":262,"offset":263},{"line":208,"column":272,"offset":273},111,535,{"start":275,"end":276},{"line":208,"column":220,"offset":221},{"line":208,"column":277,"offset":278},113,537,{"start":280,"end":281},{"line":208,"column":33,"offset":218},{"line":208,"column":277,"offset":278},{"type":14,"tagName":146,"properties":283,"children":284,"position":345},{},[285,328],{"type":14,"tagName":198,"properties":286,"children":287,"position":322},{},[288,302,309],{"type":14,"tagName":74,"properties":289,"children":290,"position":299},{},[291],{"type":19,"value":292,"position":293},"grossProfit",{"start":294,"end":296},{"line":174,"column":41,"offset":295},540,{"line":174,"column":297,"offset":298},16,553,{"start":300,"end":301},{"line":174,"column":41,"offset":295},{"line":174,"column":297,"offset":298},{"type":19,"value":303,"position":304}," / ",{"start":305,"end":306},{"line":174,"column":297,"offset":298},{"line":174,"column":307,"offset":308},19,556,{"type":14,"tagName":74,"properties":310,"children":311,"position":319},{},[312],{"type":19,"value":313,"position":314},"grossLoss",{"start":315,"end":316},{"line":174,"column":307,"offset":308},{"line":174,"column":317,"offset":318},30,567,{"start":320,"end":321},{"line":174,"column":307,"offset":308},{"line":174,"column":317,"offset":318},{"start":323,"end":325},{"line":174,"column":33,"offset":324},538,{"line":174,"column":326,"offset":327},31,568,{"type":14,"tagName":198,"properties":329,"children":330,"position":340},{},[331],{"type":19,"value":332,"position":333},"Sum of winning trades' PnL and (absolute) sum of losing trades' PnL, respectively.",{"start":334,"end":337},{"line":174,"column":335,"offset":336},33,570,{"line":174,"column":338,"offset":339},115,652,{"start":341,"end":342},{"line":174,"column":326,"offset":327},{"line":174,"column":343,"offset":344},117,654,{"start":346,"end":347},{"line":174,"column":33,"offset":324},{"line":174,"column":343,"offset":344},{"type":14,"tagName":146,"properties":349,"children":350,"position":421},{},[351,373],{"type":14,"tagName":198,"properties":352,"children":353,"position":367},{},[354],{"type":14,"tagName":74,"properties":355,"children":356,"position":364},{},[357],{"type":19,"value":358,"position":359},"profitFactor",{"start":360,"end":362},{"line":129,"column":41,"offset":361},657,{"line":129,"column":229,"offset":363},671,{"start":365,"end":366},{"line":129,"column":41,"offset":361},{"line":129,"column":229,"offset":363},{"start":368,"end":370},{"line":129,"column":33,"offset":369},655,{"line":129,"column":371,"offset":372},18,672,{"type":14,"tagName":198,"properties":374,"children":375,"position":416},{},[376,390,396,409],{"type":14,"tagName":74,"properties":377,"children":378,"position":387},{},[379],{"type":19,"value":380,"position":381},"grossProfit / grossLoss",{"start":382,"end":384},{"line":129,"column":177,"offset":383},674,{"line":129,"column":385,"offset":386},45,699,{"start":388,"end":389},{"line":129,"column":177,"offset":383},{"line":129,"column":385,"offset":386},{"type":19,"value":391,"position":392},". Reported as ",{"start":393,"end":394},{"line":129,"column":385,"offset":386},{"line":129,"column":44,"offset":395},713,{"type":14,"tagName":74,"properties":397,"children":398,"position":406},{},[399],{"type":19,"value":400,"position":401},"null",{"start":402,"end":403},{"line":129,"column":44,"offset":395},{"line":129,"column":404,"offset":405},65,719,{"start":407,"end":408},{"line":129,"column":44,"offset":395},{"line":129,"column":404,"offset":405},{"type":19,"value":410,"position":411}," when there are no losses (division by zero is not a number worth printing).",{"start":412,"end":413},{"line":129,"column":404,"offset":405},{"line":129,"column":414,"offset":415},141,795,{"start":417,"end":418},{"line":129,"column":371,"offset":372},{"line":129,"column":419,"offset":420},143,797,{"start":422,"end":423},{"line":129,"column":33,"offset":369},{"line":129,"column":419,"offset":420},{"type":14,"tagName":146,"properties":425,"children":426,"position":480},{},[427,450],{"type":14,"tagName":198,"properties":428,"children":429,"position":445},{},[430],{"type":14,"tagName":74,"properties":431,"children":432,"position":442},{},[433],{"type":19,"value":434,"position":435},"buyHoldReturnPct",{"start":436,"end":439},{"line":437,"column":41,"offset":438},12,800,{"line":437,"column":440,"offset":441},21,818,{"start":443,"end":444},{"line":437,"column":41,"offset":438},{"line":437,"column":440,"offset":441},{"start":446,"end":448},{"line":437,"column":33,"offset":447},798,{"line":437,"column":182,"offset":449},819,{"type":14,"tagName":198,"properties":451,"children":452,"position":475},{},[453,468],{"type":14,"tagName":74,"properties":454,"children":455,"position":465},{},[456],{"type":19,"value":457,"position":458},"(lastClose / firstTradableClose - 1) * 100",{"start":459,"end":462},{"line":437,"column":460,"offset":461},24,821,{"line":437,"column":463,"offset":464},68,865,{"start":466,"end":467},{"line":437,"column":460,"offset":461},{"line":437,"column":463,"offset":464},{"type":19,"value":469,"position":470},": what doing nothing would have returned over the same window. If your strategy does not beat this after costs, the market did the work, not the rules.",{"start":471,"end":472},{"line":437,"column":463,"offset":464},{"line":437,"column":473,"offset":474},219,1016,{"start":476,"end":477},{"line":437,"column":182,"offset":449},{"line":437,"column":478,"offset":479},221,1018,{"start":481,"end":482},{"line":437,"column":33,"offset":447},{"line":437,"column":478,"offset":479},{"start":484,"end":485},{"line":208,"column":33,"offset":218},{"line":437,"column":478,"offset":479},{"start":487,"end":488},{"line":157,"column":33,"offset":163},{"line":437,"column":478,"offset":479},{"type":19,"value":20},{"type":14,"tagName":119,"properties":491,"children":493,"position":501},{"id":492},"trades",[494],{"type":19,"value":495,"position":496},"Trades",{"start":497,"end":499},{"line":211,"column":35,"offset":498},1023,{"line":211,"column":174,"offset":500},1029,{"start":502,"end":504},{"line":211,"column":33,"offset":503},1020,{"line":211,"column":174,"offset":500},{"type":19,"value":506},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":14,"tagName":138,"properties":508,"children":509,"position":1013},{},[510,549],{"type":14,"tagName":142,"properties":511,"children":512,"position":546},{},[513],{"type":14,"tagName":146,"properties":514,"children":515,"position":543},{},[516,530],{"type":14,"tagName":150,"properties":517,"children":518,"position":525},{},[519],{"type":19,"value":154,"position":520},{"start":521,"end":523},{"line":297,"column":41,"offset":522},1033,{"line":297,"column":157,"offset":524},1037,{"start":526,"end":528},{"line":297,"column":33,"offset":527},1031,{"line":297,"column":165,"offset":529},1038,{"type":14,"tagName":150,"properties":531,"children":532,"position":539},{},[533],{"type":19,"value":171,"position":534},{"start":535,"end":537},{"line":297,"column":174,"offset":536},1040,{"line":297,"column":177,"offset":538},1050,{"start":540,"end":541},{"line":297,"column":165,"offset":529},{"line":297,"column":182,"offset":542},1052,{"start":544,"end":545},{"line":297,"column":33,"offset":527},{"line":297,"column":182,"offset":542},{"start":547,"end":548},{"line":297,"column":33,"offset":527},{"line":297,"column":182,"offset":542},{"type":14,"tagName":191,"properties":550,"children":551,"position":1010},{},[552,673,756,830,925,967],{"type":14,"tagName":146,"properties":553,"children":554,"position":670},{},[555,614],{"type":14,"tagName":198,"properties":556,"children":557,"position":608},{},[558,571,577,590,595],{"type":14,"tagName":74,"properties":559,"children":560,"position":568},{},[561],{"type":19,"value":562,"position":563},"totalTrades",{"start":564,"end":566},{"line":371,"column":41,"offset":565},1069,{"line":371,"column":297,"offset":567},1082,{"start":569,"end":570},{"line":371,"column":41,"offset":565},{"line":371,"column":297,"offset":567},{"type":19,"value":572,"position":573},", ",{"start":574,"end":575},{"line":371,"column":297,"offset":567},{"line":371,"column":371,"offset":576},1084,{"type":14,"tagName":74,"properties":578,"children":579,"position":587},{},[580],{"type":19,"value":581,"position":582},"winTrades",{"start":583,"end":584},{"line":371,"column":371,"offset":576},{"line":371,"column":585,"offset":586},29,1095,{"start":588,"end":589},{"line":371,"column":371,"offset":576},{"line":371,"column":585,"offset":586},{"type":19,"value":572,"position":591},{"start":592,"end":593},{"line":371,"column":585,"offset":586},{"line":371,"column":326,"offset":594},1097,{"type":14,"tagName":74,"properties":596,"children":597,"position":605},{},[598],{"type":19,"value":599,"position":600},"lossTrades",{"start":601,"end":602},{"line":371,"column":326,"offset":594},{"line":371,"column":603,"offset":604},43,1109,{"start":606,"end":607},{"line":371,"column":326,"offset":594},{"line":371,"column":603,"offset":604},{"start":609,"end":611},{"line":371,"column":33,"offset":610},1067,{"line":371,"column":612,"offset":613},44,1110,{"type":14,"tagName":198,"properties":615,"children":616,"position":665},{},[617,626,639,646,659],{"type":19,"value":618,"position":619},"Closed trades, and the win/loss split. ",{"start":620,"end":623},{"line":371,"column":621,"offset":622},46,1112,{"line":371,"column":624,"offset":625},85,1151,{"type":14,"tagName":74,"properties":627,"children":628,"position":636},{},[629],{"type":19,"value":630,"position":631},"winRatePct",{"start":632,"end":633},{"line":371,"column":624,"offset":625},{"line":371,"column":634,"offset":635},97,1163,{"start":637,"end":638},{"line":371,"column":624,"offset":625},{"line":371,"column":634,"offset":635},{"type":19,"value":640,"position":641}," is ",{"start":642,"end":643},{"line":371,"column":634,"offset":635},{"line":371,"column":644,"offset":645},101,1167,{"type":14,"tagName":74,"properties":647,"children":648,"position":656},{},[649],{"type":19,"value":650,"position":651},"winTrades / totalTrades * 100",{"start":652,"end":653},{"line":371,"column":644,"offset":645},{"line":371,"column":654,"offset":655},132,1198,{"start":657,"end":658},{"line":371,"column":644,"offset":645},{"line":371,"column":654,"offset":655},{"type":19,"value":268,"position":660},{"start":661,"end":662},{"line":371,"column":654,"offset":655},{"line":371,"column":663,"offset":664},133,1199,{"start":666,"end":667},{"line":371,"column":612,"offset":613},{"line":371,"column":668,"offset":669},135,1201,{"start":671,"end":672},{"line":371,"column":33,"offset":610},{"line":371,"column":668,"offset":669},{"type":14,"tagName":146,"properties":674,"children":675,"position":753},{},[676,736],{"type":14,"tagName":198,"properties":677,"children":678,"position":730},{},[679,693,698,711,717],{"type":14,"tagName":74,"properties":680,"children":681,"position":690},{},[682],{"type":19,"value":683,"position":684},"avgTrade",{"start":685,"end":687},{"line":307,"column":41,"offset":686},1204,{"line":307,"column":688,"offset":689},13,1214,{"start":691,"end":692},{"line":307,"column":41,"offset":686},{"line":307,"column":688,"offset":689},{"type":19,"value":572,"position":694},{"start":695,"end":696},{"line":307,"column":688,"offset":689},{"line":307,"column":220,"offset":697},1216,{"type":14,"tagName":74,"properties":699,"children":700,"position":708},{},[701],{"type":19,"value":702,"position":703},"avgWin",{"start":704,"end":705},{"line":307,"column":220,"offset":697},{"line":307,"column":706,"offset":707},23,1224,{"start":709,"end":710},{"line":307,"column":220,"offset":697},{"line":307,"column":706,"offset":707},{"type":19,"value":572,"position":712},{"start":713,"end":714},{"line":307,"column":706,"offset":707},{"line":307,"column":715,"offset":716},25,1226,{"type":14,"tagName":74,"properties":718,"children":719,"position":727},{},[720],{"type":19,"value":721,"position":722},"avgLoss",{"start":723,"end":724},{"line":307,"column":715,"offset":716},{"line":307,"column":725,"offset":726},34,1235,{"start":728,"end":729},{"line":307,"column":715,"offset":716},{"line":307,"column":725,"offset":726},{"start":731,"end":733},{"line":307,"column":33,"offset":732},1202,{"line":307,"column":734,"offset":735},35,1236,{"type":14,"tagName":198,"properties":737,"children":738,"position":748},{},[739],{"type":19,"value":740,"position":741},"Mean PnL per closed trade, per winner, per loser.",{"start":742,"end":745},{"line":307,"column":743,"offset":744},37,1238,{"line":307,"column":746,"offset":747},86,1287,{"start":749,"end":750},{"line":307,"column":734,"offset":735},{"line":307,"column":751,"offset":752},88,1289,{"start":754,"end":755},{"line":307,"column":33,"offset":732},{"line":307,"column":751,"offset":752},{"type":14,"tagName":146,"properties":757,"children":758,"position":827},{},[759,780],{"type":14,"tagName":198,"properties":760,"children":761,"position":775},{},[762],{"type":14,"tagName":74,"properties":763,"children":764,"position":772},{},[765],{"type":19,"value":766,"position":767},"payoffRatio",{"start":768,"end":770},{"line":177,"column":41,"offset":769},1292,{"line":177,"column":297,"offset":771},1305,{"start":773,"end":774},{"line":177,"column":41,"offset":769},{"line":177,"column":297,"offset":771},{"start":776,"end":778},{"line":177,"column":33,"offset":777},1290,{"line":177,"column":229,"offset":779},1306,{"type":14,"tagName":198,"properties":781,"children":782,"position":822},{},[783,797,803,815],{"type":14,"tagName":74,"properties":784,"children":785,"position":794},{},[786],{"type":19,"value":787,"position":788},"avgWin / abs(avgLoss)",{"start":789,"end":791},{"line":177,"column":307,"offset":790},1308,{"line":177,"column":792,"offset":793},42,1331,{"start":795,"end":796},{"line":177,"column":307,"offset":790},{"line":177,"column":792,"offset":793},{"type":19,"value":798,"position":799},". ",{"start":800,"end":801},{"line":177,"column":792,"offset":793},{"line":177,"column":612,"offset":802},1333,{"type":14,"tagName":74,"properties":804,"children":805,"position":812},{},[806],{"type":19,"value":400,"position":807},{"start":808,"end":809},{"line":177,"column":612,"offset":802},{"line":177,"column":810,"offset":811},50,1339,{"start":813,"end":814},{"line":177,"column":612,"offset":802},{"line":177,"column":810,"offset":811},{"type":19,"value":816,"position":817}," when there are no losers. Read it WITH the win rate: 40% winners at a 3.0 payoff is profitable, 70% winners at 0.3 is not.",{"start":818,"end":819},{"line":177,"column":810,"offset":811},{"line":177,"column":820,"offset":821},173,1462,{"start":823,"end":824},{"line":177,"column":229,"offset":779},{"line":177,"column":825,"offset":826},175,1464,{"start":828,"end":829},{"line":177,"column":33,"offset":777},{"line":177,"column":825,"offset":826},{"type":14,"tagName":146,"properties":831,"children":832,"position":922},{},[833,871],{"type":14,"tagName":198,"properties":834,"children":835,"position":866},{},[836,849,854],{"type":14,"tagName":74,"properties":837,"children":838,"position":846},{},[839],{"type":19,"value":840,"position":841},"largestWin",{"start":842,"end":844},{"line":440,"column":41,"offset":843},1467,{"line":440,"column":220,"offset":845},1479,{"start":847,"end":848},{"line":440,"column":41,"offset":843},{"line":440,"column":220,"offset":845},{"type":19,"value":572,"position":850},{"start":851,"end":852},{"line":440,"column":220,"offset":845},{"line":440,"column":229,"offset":853},1481,{"type":14,"tagName":74,"properties":855,"children":856,"position":863},{},[857],{"type":19,"value":858,"position":859},"largestLoss",{"start":860,"end":861},{"line":440,"column":229,"offset":853},{"line":440,"column":317,"offset":862},1494,{"start":864,"end":865},{"line":440,"column":229,"offset":853},{"line":440,"column":317,"offset":862},{"start":867,"end":869},{"line":440,"column":33,"offset":868},1465,{"line":440,"column":326,"offset":870},1495,{"type":14,"tagName":198,"properties":872,"children":873,"position":918},{},[874,882,894,901,912],{"type":19,"value":875,"position":876},"The single best and worst closed trades. If ",{"start":877,"end":879},{"line":440,"column":335,"offset":878},1497,{"line":440,"column":880,"offset":881},77,1541,{"type":14,"tagName":74,"properties":883,"children":884,"position":891},{},[885],{"type":19,"value":840,"position":886},{"start":887,"end":888},{"line":440,"column":880,"offset":881},{"line":440,"column":889,"offset":890},89,1553,{"start":892,"end":893},{"line":440,"column":880,"offset":881},{"line":440,"column":889,"offset":890},{"type":19,"value":895,"position":896}," dominates ",{"start":897,"end":898},{"line":440,"column":889,"offset":890},{"line":440,"column":899,"offset":900},100,1564,{"type":14,"tagName":74,"properties":902,"children":903,"position":909},{},[904],{"type":19,"value":205,"position":905},{"start":906,"end":907},{"line":440,"column":899,"offset":900},{"line":440,"column":272,"offset":908},1575,{"start":910,"end":911},{"line":440,"column":899,"offset":900},{"line":440,"column":272,"offset":908},{"type":19,"value":913,"position":914},", one trade made the backtest.",{"start":915,"end":916},{"line":440,"column":272,"offset":908},{"line":440,"column":414,"offset":917},1605,{"start":919,"end":920},{"line":440,"column":326,"offset":870},{"line":440,"column":419,"offset":921},1607,{"start":923,"end":924},{"line":440,"column":33,"offset":868},{"line":440,"column":419,"offset":921},{"type":14,"tagName":146,"properties":926,"children":927,"position":964},{},[928,949],{"type":14,"tagName":198,"properties":929,"children":930,"position":944},{},[931],{"type":14,"tagName":74,"properties":932,"children":933,"position":941},{},[934],{"type":19,"value":935,"position":936},"avgBarsInTrade",{"start":937,"end":939},{"line":182,"column":41,"offset":938},1610,{"line":182,"column":307,"offset":940},1626,{"start":942,"end":943},{"line":182,"column":41,"offset":938},{"line":182,"column":307,"offset":940},{"start":945,"end":947},{"line":182,"column":33,"offset":946},1608,{"line":182,"column":177,"offset":948},1627,{"type":14,"tagName":198,"properties":950,"children":951,"position":960},{},[952],{"type":19,"value":953,"position":954},"Mean holding time in bars.",{"start":955,"end":957},{"line":182,"column":182,"offset":956},1629,{"line":182,"column":958,"offset":959},48,1655,{"start":961,"end":962},{"line":182,"column":177,"offset":948},{"line":182,"column":810,"offset":963},1657,{"start":965,"end":966},{"line":182,"column":33,"offset":946},{"line":182,"column":810,"offset":963},{"type":14,"tagName":146,"properties":968,"children":969,"position":1007},{},[970,991],{"type":14,"tagName":198,"properties":971,"children":972,"position":986},{},[973],{"type":14,"tagName":74,"properties":974,"children":975,"position":983},{},[976],{"type":19,"value":977,"position":978},"rejectedOrders",{"start":979,"end":981},{"line":706,"column":41,"offset":980},1660,{"line":706,"column":307,"offset":982},1676,{"start":984,"end":985},{"line":706,"column":41,"offset":980},{"line":706,"column":307,"offset":982},{"start":987,"end":989},{"line":706,"column":33,"offset":988},1658,{"line":706,"column":177,"offset":990},1677,{"type":14,"tagName":198,"properties":992,"children":993,"position":1002},{},[994],{"type":19,"value":995,"position":996},"Orders the broker refused (pyramiding cap, invalid sizing, non-positive equity, NaN bars). Rejections are counted, never silently dropped.",{"start":997,"end":999},{"line":706,"column":182,"offset":998},1679,{"line":706,"column":1000,"offset":1001},160,1817,{"start":1003,"end":1004},{"line":706,"column":177,"offset":990},{"line":706,"column":1005,"offset":1006},162,1819,{"start":1008,"end":1009},{"line":706,"column":33,"offset":988},{"line":706,"column":1005,"offset":1006},{"start":1011,"end":1012},{"line":371,"column":33,"offset":610},{"line":706,"column":1005,"offset":1006},{"start":1014,"end":1015},{"line":297,"column":33,"offset":527},{"line":706,"column":1005,"offset":1006},{"type":19,"value":20},{"type":14,"tagName":119,"properties":1018,"children":1020,"position":1028},{"id":1019},"risk",[1021],{"type":19,"value":1022,"position":1023},"Risk",{"start":1024,"end":1026},{"line":715,"column":35,"offset":1025},1824,{"line":715,"column":165,"offset":1027},1828,{"start":1029,"end":1031},{"line":715,"column":33,"offset":1030},1821,{"line":715,"column":165,"offset":1027},{"type":19,"value":1033},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":14,"tagName":138,"properties":1035,"children":1036,"position":1369},{},[1037,1077],{"type":14,"tagName":142,"properties":1038,"children":1039,"position":1074},{},[1040],{"type":14,"tagName":146,"properties":1041,"children":1042,"position":1071},{},[1043,1058],{"type":14,"tagName":150,"properties":1044,"children":1045,"position":1053},{},[1046],{"type":19,"value":154,"position":1047},{"start":1048,"end":1051},{"line":1049,"column":41,"offset":1050},27,1832,{"line":1049,"column":157,"offset":1052},1836,{"start":1054,"end":1056},{"line":1049,"column":33,"offset":1055},1830,{"line":1049,"column":165,"offset":1057},1837,{"type":14,"tagName":150,"properties":1059,"children":1060,"position":1067},{},[1061],{"type":19,"value":171,"position":1062},{"start":1063,"end":1065},{"line":1049,"column":174,"offset":1064},1839,{"line":1049,"column":177,"offset":1066},1849,{"start":1068,"end":1069},{"line":1049,"column":165,"offset":1057},{"line":1049,"column":182,"offset":1070},1851,{"start":1072,"end":1073},{"line":1049,"column":33,"offset":1055},{"line":1049,"column":182,"offset":1070},{"start":1075,"end":1076},{"line":1049,"column":33,"offset":1055},{"line":1049,"column":182,"offset":1070},{"type":14,"tagName":191,"properties":1078,"children":1079,"position":1366},{},[1080,1142,1185,1279,1323],{"type":14,"tagName":146,"properties":1081,"children":1082,"position":1139},{},[1083,1104],{"type":14,"tagName":198,"properties":1084,"children":1085,"position":1099},{},[1086],{"type":14,"tagName":74,"properties":1087,"children":1088,"position":1096},{},[1089],{"type":19,"value":1090,"position":1091},"maxDrawdown",{"start":1092,"end":1094},{"line":585,"column":41,"offset":1093},1868,{"line":585,"column":297,"offset":1095},1881,{"start":1097,"end":1098},{"line":585,"column":41,"offset":1093},{"line":585,"column":297,"offset":1095},{"start":1100,"end":1102},{"line":585,"column":33,"offset":1101},1866,{"line":585,"column":229,"offset":1103},1882,{"type":14,"tagName":198,"properties":1105,"children":1106,"position":1134},{},[1107,1115,1127],{"type":19,"value":1108,"position":1109},"Largest peak-to-trough equity decline over the run, in money. ",{"start":1110,"end":1112},{"line":585,"column":307,"offset":1111},1884,{"line":585,"column":1113,"offset":1114},81,1946,{"type":14,"tagName":74,"properties":1116,"children":1117,"position":1124},{},[1118],{"type":19,"value":1119,"position":1120},"maxDrawdownPct",{"start":1121,"end":1122},{"line":585,"column":1113,"offset":1114},{"line":585,"column":634,"offset":1123},1962,{"start":1125,"end":1126},{"line":585,"column":1113,"offset":1114},{"line":585,"column":634,"offset":1123},{"type":19,"value":1128,"position":1129}," is relative to the equity peak it fell from.",{"start":1130,"end":1131},{"line":585,"column":634,"offset":1123},{"line":585,"column":1132,"offset":1133},142,2007,{"start":1135,"end":1136},{"line":585,"column":229,"offset":1103},{"line":585,"column":1137,"offset":1138},144,2009,{"start":1140,"end":1141},{"line":585,"column":33,"offset":1101},{"line":585,"column":1137,"offset":1138},{"type":14,"tagName":146,"properties":1143,"children":1144,"position":1182},{},[1145,1166],{"type":14,"tagName":198,"properties":1146,"children":1147,"position":1161},{},[1148],{"type":14,"tagName":74,"properties":1149,"children":1150,"position":1158},{},[1151],{"type":19,"value":1152,"position":1153},"maxRunup",{"start":1154,"end":1156},{"line":317,"column":41,"offset":1155},2012,{"line":317,"column":688,"offset":1157},2022,{"start":1159,"end":1160},{"line":317,"column":41,"offset":1155},{"line":317,"column":688,"offset":1157},{"start":1162,"end":1164},{"line":317,"column":33,"offset":1163},2010,{"line":317,"column":211,"offset":1165},2023,{"type":14,"tagName":198,"properties":1167,"children":1168,"position":1177},{},[1169],{"type":19,"value":1170,"position":1171},"Mirror of drawdown: the largest trough-to-peak climb.",{"start":1172,"end":1174},{"line":317,"column":297,"offset":1173},2025,{"line":317,"column":1175,"offset":1176},69,2078,{"start":1178,"end":1179},{"line":317,"column":211,"offset":1165},{"line":317,"column":1180,"offset":1181},71,2080,{"start":1183,"end":1184},{"line":317,"column":33,"offset":1163},{"line":317,"column":1180,"offset":1181},{"type":14,"tagName":146,"properties":1186,"children":1187,"position":1276},{},[1188,1209],{"type":14,"tagName":198,"properties":1189,"children":1190,"position":1204},{},[1191],{"type":14,"tagName":74,"properties":1192,"children":1193,"position":1201},{},[1194],{"type":19,"value":1195,"position":1196},"sharpe",{"start":1197,"end":1199},{"line":326,"column":41,"offset":1198},2083,{"line":326,"column":129,"offset":1200},2091,{"start":1202,"end":1203},{"line":326,"column":41,"offset":1198},{"line":326,"column":129,"offset":1200},{"start":1205,"end":1207},{"line":326,"column":33,"offset":1206},2081,{"line":326,"column":437,"offset":1208},2092,{"type":14,"tagName":198,"properties":1210,"children":1211,"position":1271},{},[1212,1225,1232,1244,1251,1264],{"type":14,"tagName":74,"properties":1213,"children":1214,"position":1222},{},[1215],{"type":19,"value":1216,"position":1217},"mean(r) / sampleStd(r) * sqrt(barsPerYear)",{"start":1218,"end":1220},{"line":326,"column":211,"offset":1219},2094,{"line":326,"column":45,"offset":1221},2138,{"start":1223,"end":1224},{"line":326,"column":211,"offset":1219},{"line":326,"column":45,"offset":1221},{"type":19,"value":1226,"position":1227},", where ",{"start":1228,"end":1229},{"line":326,"column":45,"offset":1221},{"line":326,"column":1230,"offset":1231},66,2146,{"type":14,"tagName":74,"properties":1233,"children":1234,"position":1241},{},[1235],{"type":19,"value":1236,"position":1237},"r",{"start":1238,"end":1239},{"line":326,"column":1230,"offset":1231},{"line":326,"column":1175,"offset":1240},2149,{"start":1242,"end":1243},{"line":326,"column":1230,"offset":1231},{"line":326,"column":1175,"offset":1240},{"type":19,"value":1245,"position":1246}," are per-bar equity returns over confirmed bars and ",{"start":1247,"end":1248},{"line":326,"column":1175,"offset":1240},{"line":326,"column":1249,"offset":1250},121,2201,{"type":14,"tagName":74,"properties":1252,"children":1253,"position":1261},{},[1254],{"type":19,"value":1255,"position":1256},"barsPerYear = 31,536,000,000 / intervalMs",{"start":1257,"end":1258},{"line":326,"column":1249,"offset":1250},{"line":326,"column":1259,"offset":1260},164,2244,{"start":1262,"end":1263},{"line":326,"column":1249,"offset":1250},{"line":326,"column":1259,"offset":1260},{"type":19,"value":1265,"position":1266},". Zero when the return series has no variance. Annualized from YOUR chart interval, so compare Sharpe across runs at the same interval.",{"start":1267,"end":1268},{"line":326,"column":1259,"offset":1260},{"line":326,"column":1269,"offset":1270},299,2379,{"start":1272,"end":1273},{"line":326,"column":437,"offset":1208},{"line":326,"column":1274,"offset":1275},301,2381,{"start":1277,"end":1278},{"line":326,"column":33,"offset":1206},{"line":326,"column":1274,"offset":1275},{"type":14,"tagName":146,"properties":1280,"children":1281,"position":1320},{},[1282,1304],{"type":14,"tagName":198,"properties":1283,"children":1284,"position":1299},{},[1285],{"type":14,"tagName":74,"properties":1286,"children":1287,"position":1296},{},[1288],{"type":19,"value":1289,"position":1290},"sortino",{"start":1291,"end":1294},{"line":1292,"column":41,"offset":1293},32,2384,{"line":1292,"column":437,"offset":1295},2393,{"start":1297,"end":1298},{"line":1292,"column":41,"offset":1293},{"line":1292,"column":437,"offset":1295},{"start":1300,"end":1302},{"line":1292,"column":33,"offset":1301},2382,{"line":1292,"column":688,"offset":1303},2394,{"type":14,"tagName":198,"properties":1305,"children":1306,"position":1315},{},[1307],{"type":19,"value":1308,"position":1309},"Same as Sharpe with downside deviation (only returns below zero) in the denominator. Punishes losing volatility, forgives winning volatility.",{"start":1310,"end":1312},{"line":1292,"column":220,"offset":1311},2396,{"line":1292,"column":1313,"offset":1314},156,2537,{"start":1316,"end":1317},{"line":1292,"column":688,"offset":1303},{"line":1292,"column":1318,"offset":1319},158,2539,{"start":1321,"end":1322},{"line":1292,"column":33,"offset":1301},{"line":1292,"column":1318,"offset":1319},{"type":14,"tagName":146,"properties":1324,"children":1325,"position":1363},{},[1326,1347],{"type":14,"tagName":198,"properties":1327,"children":1328,"position":1342},{},[1329],{"type":14,"tagName":74,"properties":1330,"children":1331,"position":1339},{},[1332],{"type":19,"value":1333,"position":1334},"exposurePct",{"start":1335,"end":1337},{"line":335,"column":41,"offset":1336},2542,{"line":335,"column":297,"offset":1338},2555,{"start":1340,"end":1341},{"line":335,"column":41,"offset":1336},{"line":335,"column":297,"offset":1338},{"start":1343,"end":1345},{"line":335,"column":33,"offset":1344},2540,{"line":335,"column":229,"offset":1346},2556,{"type":14,"tagName":198,"properties":1348,"children":1349,"position":1358},{},[1350],{"type":19,"value":1351,"position":1352},"Bars with a nonzero position divided by all confirmed bars, times 100. A strategy in the market 4% of the time with the same net profit as one exposed 90% of the time is taking far less risk per unit of return.",{"start":1353,"end":1355},{"line":335,"column":307,"offset":1354},2558,{"line":335,"column":1356,"offset":1357},229,2768,{"start":1359,"end":1360},{"line":335,"column":229,"offset":1346},{"line":335,"column":1361,"offset":1362},231,2770,{"start":1364,"end":1365},{"line":335,"column":33,"offset":1344},{"line":335,"column":1361,"offset":1362},{"start":1367,"end":1368},{"line":585,"column":33,"offset":1101},{"line":335,"column":1361,"offset":1362},{"start":1370,"end":1371},{"line":1049,"column":33,"offset":1055},{"line":335,"column":1361,"offset":1362},{"type":19,"value":20},{"type":14,"tagName":119,"properties":1374,"children":1376,"position":1384},{"id":1375},"costs",[1377],{"type":19,"value":1378,"position":1379},"Costs",{"start":1380,"end":1382},{"line":734,"column":35,"offset":1381},2775,{"line":734,"column":208,"offset":1383},2780,{"start":1385,"end":1387},{"line":734,"column":33,"offset":1386},2772,{"line":734,"column":208,"offset":1383},{"type":19,"value":1389},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":14,"tagName":138,"properties":1391,"children":1392,"position":1517},{},[1393,1432],{"type":14,"tagName":142,"properties":1394,"children":1395,"position":1429},{},[1396],{"type":14,"tagName":146,"properties":1397,"children":1398,"position":1426},{},[1399,1413],{"type":14,"tagName":150,"properties":1400,"children":1401,"position":1408},{},[1402],{"type":19,"value":154,"position":1403},{"start":1404,"end":1406},{"line":743,"column":41,"offset":1405},2784,{"line":743,"column":157,"offset":1407},2788,{"start":1409,"end":1411},{"line":743,"column":33,"offset":1410},2782,{"line":743,"column":165,"offset":1412},2789,{"type":14,"tagName":150,"properties":1414,"children":1415,"position":1422},{},[1416],{"type":19,"value":171,"position":1417},{"start":1418,"end":1420},{"line":743,"column":174,"offset":1419},2791,{"line":743,"column":177,"offset":1421},2801,{"start":1423,"end":1424},{"line":743,"column":165,"offset":1412},{"line":743,"column":182,"offset":1425},2803,{"start":1427,"end":1428},{"line":743,"column":33,"offset":1410},{"line":743,"column":182,"offset":1425},{"start":1430,"end":1431},{"line":743,"column":33,"offset":1410},{"line":743,"column":182,"offset":1425},{"type":14,"tagName":191,"properties":1433,"children":1434,"position":1514},{},[1435],{"type":14,"tagName":146,"properties":1436,"children":1437,"position":1511},{},[1438,1460],{"type":14,"tagName":198,"properties":1439,"children":1440,"position":1455},{},[1441],{"type":14,"tagName":74,"properties":1442,"children":1443,"position":1452},{},[1444],{"type":19,"value":1445,"position":1446},"feesPaid",{"start":1447,"end":1450},{"line":1448,"column":41,"offset":1449},39,2820,{"line":1448,"column":688,"offset":1451},2830,{"start":1453,"end":1454},{"line":1448,"column":41,"offset":1449},{"line":1448,"column":688,"offset":1451},{"start":1456,"end":1458},{"line":1448,"column":33,"offset":1457},2818,{"line":1448,"column":211,"offset":1459},2831,{"type":14,"tagName":198,"properties":1461,"children":1462,"position":1506},{},[1463,1471,1484,1490,1501],{"type":19,"value":1464,"position":1465},"Total commission across all fills (",{"start":1466,"end":1468},{"line":1448,"column":297,"offset":1467},2833,{"line":1448,"column":1469,"offset":1470},51,2868,{"type":14,"tagName":74,"properties":1472,"children":1473,"position":1481},{},[1474],{"type":19,"value":1475,"position":1476},"commissionPercent",{"start":1477,"end":1478},{"line":1448,"column":1469,"offset":1470},{"line":1448,"column":1479,"offset":1480},70,2887,{"start":1482,"end":1483},{"line":1448,"column":1469,"offset":1470},{"line":1448,"column":1479,"offset":1480},{"type":19,"value":1485,"position":1486}," of each fill's notional). Already subtracted from equity and ",{"start":1487,"end":1488},{"line":1448,"column":1479,"offset":1480},{"line":1448,"column":654,"offset":1489},2949,{"type":14,"tagName":74,"properties":1491,"children":1492,"position":1498},{},[1493],{"type":19,"value":205,"position":1494},{"start":1495,"end":1496},{"line":1448,"column":654,"offset":1489},{"line":1448,"column":419,"offset":1497},2960,{"start":1499,"end":1500},{"line":1448,"column":654,"offset":1489},{"line":1448,"column":419,"offset":1497},{"type":19,"value":268,"position":1502},{"start":1503,"end":1504},{"line":1448,"column":419,"offset":1497},{"line":1448,"column":1137,"offset":1505},2961,{"start":1507,"end":1508},{"line":1448,"column":211,"offset":1459},{"line":1448,"column":1509,"offset":1510},146,2963,{"start":1512,"end":1513},{"line":1448,"column":33,"offset":1457},{"line":1448,"column":1509,"offset":1510},{"start":1515,"end":1516},{"line":1448,"column":33,"offset":1457},{"line":1448,"column":1509,"offset":1510},{"start":1518,"end":1519},{"line":743,"column":33,"offset":1410},{"line":1448,"column":1509,"offset":1510},{"type":19,"value":20},{"type":14,"tagName":22,"properties":1522,"children":1523,"position":1557},{},[1524,1532,1550],{"type":19,"value":1525,"position":1526},"Slippage is not a separate stat line because it is baked into every fill price; the ",{"start":1527,"end":1530},{"line":1528,"column":33,"offset":1529},41,2965,{"line":1528,"column":624,"offset":1531},3049,{"type":14,"tagName":1533,"properties":1534,"children":1536,"position":1545},"a",{"href":1535},"slippage-and-costs.md#reading-the-slippage-disclosure",[1537],{"type":19,"value":1538,"position":1539},"slippage disclosure",{"start":1540,"end":1542},{"line":1528,"column":746,"offset":1541},3050,{"line":1528,"column":1543,"offset":1544},105,3069,{"start":1546,"end":1547},{"line":1528,"column":624,"offset":1531},{"line":1528,"column":1548,"offset":1549},161,3125,{"type":19,"value":1551,"position":1552}," in the run details reports how it was priced.",{"start":1553,"end":1554},{"line":1528,"column":1548,"offset":1549},{"line":1528,"column":1555,"offset":1556},207,3171,{"start":1558,"end":1559},{"line":1528,"column":33,"offset":1529},{"line":1528,"column":1555,"offset":1556},{"type":19,"value":20},{"type":14,"tagName":119,"properties":1562,"children":1564,"position":1572},{"id":1563},"long-short-splits",[1565],{"type":19,"value":1566,"position":1567},"Long / short splits",{"start":1568,"end":1570},{"line":603,"column":35,"offset":1569},3176,{"line":603,"column":706,"offset":1571},3195,{"start":1573,"end":1575},{"line":603,"column":33,"offset":1574},3173,{"line":603,"column":706,"offset":1571},{"type":19,"value":20},{"type":14,"tagName":22,"properties":1578,"children":1579,"position":1689},{},[1580,1593,1599,1611,1618,1630,1635,1646,1652,1664,1671,1682],{"type":14,"tagName":74,"properties":1581,"children":1582,"position":1590},{},[1583],{"type":19,"value":1584,"position":1585},"stats.long",{"start":1586,"end":1588},{"line":385,"column":33,"offset":1587},3197,{"line":385,"column":688,"offset":1589},3209,{"start":1591,"end":1592},{"line":385,"column":33,"offset":1587},{"line":385,"column":688,"offset":1589},{"type":19,"value":1594,"position":1595}," and ",{"start":1596,"end":1597},{"line":385,"column":688,"offset":1589},{"line":385,"column":371,"offset":1598},3214,{"type":14,"tagName":74,"properties":1600,"children":1601,"position":1608},{},[1602],{"type":19,"value":1603,"position":1604},"stats.short",{"start":1605,"end":1606},{"line":385,"column":371,"offset":1598},{"line":385,"column":326,"offset":1607},3227,{"start":1609,"end":1610},{"line":385,"column":371,"offset":1598},{"line":385,"column":326,"offset":1607},{"type":19,"value":1612,"position":1613}," carry ",{"start":1614,"end":1615},{"line":385,"column":326,"offset":1607},{"line":385,"column":1616,"offset":1617},38,3234,{"type":14,"tagName":74,"properties":1619,"children":1620,"position":1627},{},[1621],{"type":19,"value":205,"position":1622},{"start":1623,"end":1624},{"line":385,"column":1616,"offset":1617},{"line":385,"column":1625,"offset":1626},49,3245,{"start":1628,"end":1629},{"line":385,"column":1616,"offset":1617},{"line":385,"column":1625,"offset":1626},{"type":19,"value":572,"position":1631},{"start":1632,"end":1633},{"line":385,"column":1625,"offset":1626},{"line":385,"column":1469,"offset":1634},3247,{"type":14,"tagName":74,"properties":1636,"children":1637,"position":1643},{},[1638],{"type":19,"value":562,"position":1639},{"start":1640,"end":1641},{"line":385,"column":1469,"offset":1634},{"line":385,"column":232,"offset":1642},3260,{"start":1644,"end":1645},{"line":385,"column":1469,"offset":1634},{"line":385,"column":232,"offset":1642},{"type":19,"value":1647,"position":1648},", and ",{"start":1649,"end":1650},{"line":385,"column":232,"offset":1642},{"line":385,"column":1479,"offset":1651},3266,{"type":14,"tagName":74,"properties":1653,"children":1654,"position":1661},{},[1655],{"type":19,"value":630,"position":1656},{"start":1657,"end":1658},{"line":385,"column":1479,"offset":1651},{"line":385,"column":1659,"offset":1660},82,3278,{"start":1662,"end":1663},{"line":385,"column":1479,"offset":1651},{"line":385,"column":1659,"offset":1660},{"type":19,"value":1665,"position":1666}," per direction. A \"market-neutral\" idea whose entire profit sits in ",{"start":1667,"end":1668},{"line":385,"column":1659,"offset":1660},{"line":385,"column":1669,"offset":1670},150,3346,{"type":14,"tagName":74,"properties":1672,"children":1673,"position":1679},{},[1674],{"type":19,"value":1584,"position":1675},{"start":1676,"end":1677},{"line":385,"column":1669,"offset":1670},{"line":385,"column":1005,"offset":1678},3358,{"start":1680,"end":1681},{"line":385,"column":1669,"offset":1670},{"line":385,"column":1005,"offset":1678},{"type":19,"value":1683,"position":1684}," during a bull-market window is a long-only idea with extra steps.",{"start":1685,"end":1686},{"line":385,"column":1005,"offset":1678},{"line":385,"column":1687,"offset":1688},228,3424,{"start":1690,"end":1691},{"line":385,"column":33,"offset":1587},{"line":385,"column":1687,"offset":1688},{"type":19,"value":20},{"type":14,"tagName":119,"properties":1694,"children":1696,"position":1706},{"id":1695},"simulation-quality-stats",[1697],{"type":19,"value":1698,"position":1699},"Simulation-quality stats",{"start":1700,"end":1703},{"line":1701,"column":35,"offset":1702},47,3429,{"line":1701,"column":1704,"offset":1705},28,3453,{"start":1707,"end":1709},{"line":1701,"column":33,"offset":1708},3426,{"line":1701,"column":1704,"offset":1705},{"type":19,"value":20},{"type":14,"tagName":22,"properties":1712,"children":1713,"position":1722},{},[1714],{"type":19,"value":1715,"position":1716},"These describe how the result was produced, not how the strategy performed. They power the disclosures in the run-details popover:",{"start":1717,"end":1719},{"line":1625,"column":33,"offset":1718},3455,{"line":1625,"column":1720,"offset":1721},131,3585,{"start":1723,"end":1724},{"line":1625,"column":33,"offset":1718},{"line":1625,"column":1720,"offset":1721},{"type":19,"value":1726},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":14,"tagName":138,"properties":1728,"children":1729,"position":2187},{},[1730,1769],{"type":14,"tagName":142,"properties":1731,"children":1732,"position":1766},{},[1733],{"type":14,"tagName":146,"properties":1734,"children":1735,"position":1763},{},[1736,1750],{"type":14,"tagName":150,"properties":1737,"children":1738,"position":1745},{},[1739],{"type":19,"value":154,"position":1740},{"start":1741,"end":1743},{"line":1469,"column":41,"offset":1742},3589,{"line":1469,"column":157,"offset":1744},3593,{"start":1746,"end":1748},{"line":1469,"column":33,"offset":1747},3587,{"line":1469,"column":165,"offset":1749},3594,{"type":14,"tagName":150,"properties":1751,"children":1752,"position":1759},{},[1753],{"type":19,"value":171,"position":1754},{"start":1755,"end":1757},{"line":1469,"column":174,"offset":1756},3596,{"line":1469,"column":177,"offset":1758},3606,{"start":1760,"end":1761},{"line":1469,"column":165,"offset":1749},{"line":1469,"column":182,"offset":1762},3608,{"start":1764,"end":1765},{"line":1469,"column":33,"offset":1747},{"line":1469,"column":182,"offset":1762},{"start":1767,"end":1768},{"line":1469,"column":33,"offset":1747},{"line":1469,"column":182,"offset":1762},{"type":14,"tagName":191,"properties":1770,"children":1771,"position":2184},{},[1772,1857,1900,1962,2021,2082,2125],{"type":14,"tagName":146,"properties":1773,"children":1774,"position":1854},{},[1775,1797],{"type":14,"tagName":198,"properties":1776,"children":1777,"position":1792},{},[1778],{"type":14,"tagName":74,"properties":1779,"children":1780,"position":1789},{},[1781],{"type":19,"value":1782,"position":1783},"ambiguousFillCount",{"start":1784,"end":1787},{"line":1785,"column":41,"offset":1786},53,3625,{"line":1785,"column":706,"offset":1788},3645,{"start":1790,"end":1791},{"line":1785,"column":41,"offset":1786},{"line":1785,"column":706,"offset":1788},{"start":1793,"end":1795},{"line":1785,"column":33,"offset":1794},3623,{"line":1785,"column":460,"offset":1796},3646,{"type":14,"tagName":198,"properties":1798,"children":1799,"position":1849},{},[1800,1808,1820,1827,1843],{"type":19,"value":1801,"position":1802},"Intrabar ordering decisions settled by the declared ",{"start":1803,"end":1806},{"line":1785,"column":1804,"offset":1805},26,3648,{"line":1785,"column":242,"offset":1807},3700,{"type":14,"tagName":74,"properties":1809,"children":1810,"position":1817},{},[1811],{"type":19,"value":1812,"position":1813},"fillModel",{"start":1814,"end":1815},{"line":1785,"column":242,"offset":1807},{"line":1785,"column":889,"offset":1816},3711,{"start":1818,"end":1819},{"line":1785,"column":242,"offset":1807},{"line":1785,"column":889,"offset":1816},{"type":19,"value":1821,"position":1822}," assumption rather than data. Details in ",{"start":1823,"end":1824},{"line":1785,"column":889,"offset":1816},{"line":1785,"column":1825,"offset":1826},130,3752,{"type":14,"tagName":1533,"properties":1828,"children":1830,"position":1838},{"href":1829},"fill-simulation.md",[1831],{"type":19,"value":1832,"position":1833},"fill simulation",{"start":1834,"end":1836},{"line":1785,"column":1720,"offset":1835},3753,{"line":1785,"column":1509,"offset":1837},3768,{"start":1839,"end":1840},{"line":1785,"column":1825,"offset":1826},{"line":1785,"column":1841,"offset":1842},167,3789,{"type":19,"value":268,"position":1844},{"start":1845,"end":1846},{"line":1785,"column":1841,"offset":1842},{"line":1785,"column":1847,"offset":1848},168,3790,{"start":1850,"end":1851},{"line":1785,"column":460,"offset":1796},{"line":1785,"column":1852,"offset":1853},170,3792,{"start":1855,"end":1856},{"line":1785,"column":33,"offset":1794},{"line":1785,"column":1852,"offset":1853},{"type":14,"tagName":146,"properties":1858,"children":1859,"position":1897},{},[1860,1882],{"type":14,"tagName":198,"properties":1861,"children":1862,"position":1877},{},[1863],{"type":14,"tagName":74,"properties":1864,"children":1865,"position":1874},{},[1866],{"type":19,"value":1867,"position":1868},"fineResolvedCount",{"start":1869,"end":1872},{"line":1870,"column":41,"offset":1871},54,3795,{"line":1870,"column":182,"offset":1873},3814,{"start":1875,"end":1876},{"line":1870,"column":41,"offset":1871},{"line":1870,"column":182,"offset":1873},{"start":1878,"end":1880},{"line":1870,"column":33,"offset":1879},3793,{"line":1870,"column":706,"offset":1881},3815,{"type":14,"tagName":198,"properties":1883,"children":1884,"position":1893},{},[1885],{"type":19,"value":1886,"position":1887},"Ordering questions settled by walking finer-interval bars (no assumption involved).",{"start":1888,"end":1890},{"line":1870,"column":715,"offset":1889},3817,{"line":1870,"column":1891,"offset":1892},108,3900,{"start":1894,"end":1895},{"line":1870,"column":706,"offset":1881},{"line":1870,"column":262,"offset":1896},3902,{"start":1898,"end":1899},{"line":1870,"column":33,"offset":1879},{"line":1870,"column":262,"offset":1896},{"type":14,"tagName":146,"properties":1901,"children":1902,"position":1959},{},[1903,1925],{"type":14,"tagName":198,"properties":1904,"children":1905,"position":1920},{},[1906],{"type":14,"tagName":74,"properties":1907,"children":1908,"position":1917},{},[1909],{"type":19,"value":1910,"position":1911},"fineFillCoveragePct",{"start":1912,"end":1915},{"line":1913,"column":41,"offset":1914},55,3905,{"line":1913,"column":460,"offset":1916},3926,{"start":1918,"end":1919},{"line":1913,"column":41,"offset":1914},{"line":1913,"column":460,"offset":1916},{"start":1921,"end":1923},{"line":1913,"column":33,"offset":1922},3903,{"line":1913,"column":715,"offset":1924},3927,{"type":14,"tagName":198,"properties":1926,"children":1927,"position":1955},{},[1928,1936,1948],{"type":19,"value":1929,"position":1930},"Walked ordering questions over all ordering questions, times 100. ",{"start":1931,"end":1933},{"line":1913,"column":1049,"offset":1932},3929,{"line":1913,"column":1934,"offset":1935},93,3995,{"type":14,"tagName":74,"properties":1937,"children":1938,"position":1945},{},[1939],{"type":19,"value":400,"position":1940},{"start":1941,"end":1942},{"line":1913,"column":1934,"offset":1935},{"line":1913,"column":1943,"offset":1944},99,4001,{"start":1946,"end":1947},{"line":1913,"column":1934,"offset":1935},{"line":1913,"column":1943,"offset":1944},{"type":19,"value":1949,"position":1950}," when the run posed none (zero of zero is not zero percent).",{"start":1951,"end":1952},{"line":1913,"column":1943,"offset":1944},{"line":1913,"column":1953,"offset":1954},159,4061,{"start":1956,"end":1957},{"line":1913,"column":715,"offset":1924},{"line":1913,"column":1548,"offset":1958},4063,{"start":1960,"end":1961},{"line":1913,"column":33,"offset":1922},{"line":1913,"column":1548,"offset":1958},{"type":14,"tagName":146,"properties":1963,"children":1964,"position":2018},{},[1965,1986],{"type":14,"tagName":198,"properties":1966,"children":1967,"position":1981},{},[1968],{"type":14,"tagName":74,"properties":1969,"children":1970,"position":1978},{},[1971],{"type":19,"value":1972,"position":1973},"fillResolutionByLane",{"start":1974,"end":1976},{"line":38,"column":41,"offset":1975},4066,{"line":38,"column":715,"offset":1977},4088,{"start":1979,"end":1980},{"line":38,"column":41,"offset":1975},{"line":38,"column":715,"offset":1977},{"start":1982,"end":1984},{"line":38,"column":33,"offset":1983},4064,{"line":38,"column":1804,"offset":1985},4089,{"type":14,"tagName":198,"properties":1987,"children":1988,"position":2014},{},[1989,1996,2008],{"type":19,"value":1990,"position":1991},"Walked questions per finer-data lane, e.g. ",{"start":1992,"end":1994},{"line":38,"column":1704,"offset":1993},4091,{"line":38,"column":1180,"offset":1995},4134,{"type":14,"tagName":74,"properties":1997,"children":1998,"position":2005},{},[1999],{"type":19,"value":2000,"position":2001},"{ \"1m\": 12, \"5m\": 3 }",{"start":2002,"end":2003},{"line":38,"column":1180,"offset":1995},{"line":38,"column":252,"offset":2004},4157,{"start":2006,"end":2007},{"line":38,"column":1180,"offset":1995},{"line":38,"column":252,"offset":2004},{"type":19,"value":268,"position":2009},{"start":2010,"end":2011},{"line":38,"column":252,"offset":2004},{"line":38,"column":2012,"offset":2013},95,4158,{"start":2015,"end":2016},{"line":38,"column":1804,"offset":1985},{"line":38,"column":634,"offset":2017},4160,{"start":2019,"end":2020},{"line":38,"column":33,"offset":1983},{"line":38,"column":634,"offset":2017},{"type":14,"tagName":146,"properties":2022,"children":2023,"position":2079},{},[2024,2045],{"type":14,"tagName":198,"properties":2025,"children":2026,"position":2040},{},[2027],{"type":14,"tagName":74,"properties":2028,"children":2029,"position":2037},{},[2030],{"type":19,"value":2031,"position":2032},"bookSlippageFillCount",{"start":2033,"end":2035},{"line":37,"column":41,"offset":2034},4163,{"line":37,"column":1804,"offset":2036},4186,{"start":2038,"end":2039},{"line":37,"column":41,"offset":2034},{"line":37,"column":1804,"offset":2036},{"start":2041,"end":2043},{"line":37,"column":33,"offset":2042},4161,{"line":37,"column":1049,"offset":2044},4187,{"type":14,"tagName":198,"properties":2046,"children":2047,"position":2075},{},[2048,2056,2069],{"type":19,"value":2049,"position":2050},"Fills priced from recorded order-book depth (",{"start":2051,"end":2053},{"line":37,"column":585,"offset":2052},4189,{"line":37,"column":2054,"offset":2055},74,4234,{"type":14,"tagName":74,"properties":2057,"children":2058,"position":2066},{},[2059],{"type":19,"value":2060,"position":2061},"slippageModel=\"bookEstimate\"",{"start":2062,"end":2063},{"line":37,"column":2054,"offset":2055},{"line":37,"column":2064,"offset":2065},104,4264,{"start":2067,"end":2068},{"line":37,"column":2054,"offset":2055},{"line":37,"column":2064,"offset":2065},{"type":19,"value":2070,"position":2071}," only).",{"start":2072,"end":2073},{"line":37,"column":2064,"offset":2065},{"line":37,"column":272,"offset":2074},4271,{"start":2076,"end":2077},{"line":37,"column":1049,"offset":2044},{"line":37,"column":277,"offset":2078},4273,{"start":2080,"end":2081},{"line":37,"column":33,"offset":2042},{"line":37,"column":277,"offset":2078},{"type":14,"tagName":146,"properties":2083,"children":2084,"position":2122},{},[2085,2106],{"type":14,"tagName":198,"properties":2086,"children":2087,"position":2101},{},[2088],{"type":14,"tagName":74,"properties":2089,"children":2090,"position":2098},{},[2091],{"type":19,"value":2092,"position":2093},"bookSlippageUnavailableCount",{"start":2094,"end":2096},{"line":45,"column":41,"offset":2095},4276,{"line":45,"column":335,"offset":2097},4306,{"start":2099,"end":2100},{"line":45,"column":41,"offset":2095},{"line":45,"column":335,"offset":2097},{"start":2102,"end":2104},{"line":45,"column":33,"offset":2103},4274,{"line":45,"column":725,"offset":2105},4307,{"type":14,"tagName":198,"properties":2107,"children":2108,"position":2118},{},[2109],{"type":19,"value":2110,"position":2111},"bookEstimate fills that fell back to the declared rate (no usable book for that bar or size).",{"start":2112,"end":2115},{"line":45,"column":2113,"offset":2114},36,4309,{"line":45,"column":2116,"offset":2117},129,4402,{"start":2119,"end":2120},{"line":45,"column":725,"offset":2105},{"line":45,"column":1720,"offset":2121},4404,{"start":2123,"end":2124},{"line":45,"column":33,"offset":2103},{"line":45,"column":1720,"offset":2121},{"type":14,"tagName":146,"properties":2126,"children":2127,"position":2181},{},[2128,2149],{"type":14,"tagName":198,"properties":2129,"children":2130,"position":2144},{},[2131],{"type":14,"tagName":74,"properties":2132,"children":2133,"position":2141},{},[2134],{"type":19,"value":2135,"position":2136},"bookSlippageAvgBps",{"start":2137,"end":2139},{"line":44,"column":41,"offset":2138},4407,{"line":44,"column":706,"offset":2140},4427,{"start":2142,"end":2143},{"line":44,"column":41,"offset":2138},{"line":44,"column":706,"offset":2140},{"start":2145,"end":2147},{"line":44,"column":33,"offset":2146},4405,{"line":44,"column":460,"offset":2148},4428,{"type":14,"tagName":198,"properties":2150,"children":2151,"position":2176},{},[2152,2159,2170],{"type":19,"value":2153,"position":2154},"Mean applied book impact in basis points; ",{"start":2155,"end":2157},{"line":44,"column":1804,"offset":2156},4430,{"line":44,"column":463,"offset":2158},4472,{"type":14,"tagName":74,"properties":2160,"children":2161,"position":2167},{},[2162],{"type":19,"value":400,"position":2163},{"start":2164,"end":2165},{"line":44,"column":463,"offset":2158},{"line":44,"column":2054,"offset":2166},4478,{"start":2168,"end":2169},{"line":44,"column":463,"offset":2158},{"line":44,"column":2054,"offset":2166},{"type":19,"value":2171,"position":2172}," when nothing was book-priced.",{"start":2173,"end":2174},{"line":44,"column":2054,"offset":2166},{"line":44,"column":2064,"offset":2175},4508,{"start":2177,"end":2178},{"line":44,"column":460,"offset":2148},{"line":44,"column":2179,"offset":2180},106,4510,{"start":2182,"end":2183},{"line":44,"column":33,"offset":2146},{"line":44,"column":2179,"offset":2180},{"start":2185,"end":2186},{"line":1785,"column":33,"offset":1794},{"line":44,"column":2179,"offset":2180},{"start":2188,"end":2189},{"line":1469,"column":33,"offset":1747},{"line":44,"column":2179,"offset":2180},{"type":19,"value":20},{"type":14,"tagName":119,"properties":2192,"children":2194,"position":2203},{"id":2193},"equity-accounting-precisely",[2195],{"type":19,"value":2196,"position":2197},"Equity accounting, precisely",{"start":2198,"end":2201},{"line":2199,"column":35,"offset":2200},61,4515,{"line":2199,"column":1292,"offset":2202},4543,{"start":2204,"end":2206},{"line":2199,"column":33,"offset":2205},4512,{"line":2199,"column":1292,"offset":2202},{"type":19,"value":20},{"type":14,"tagName":22,"properties":2209,"children":2210,"position":2277},{},[2211,2219,2231,2237,2250,2257,2270],{"type":19,"value":2212,"position":2213},"Equity on every bar ",{"start":2214,"end":2217},{"line":2215,"column":33,"offset":2216},63,4545,{"line":2215,"column":440,"offset":2218},4565,{"type":14,"tagName":74,"properties":2220,"children":2221,"position":2228},{},[2222],{"type":19,"value":2223,"position":2224},"i",{"start":2225,"end":2226},{"line":2215,"column":440,"offset":2218},{"line":2215,"column":460,"offset":2227},4568,{"start":2229,"end":2230},{"line":2215,"column":440,"offset":2218},{"line":2215,"column":460,"offset":2227},{"type":19,"value":2232,"position":2233}," is cash plus the open position marked at ",{"start":2234,"end":2235},{"line":2215,"column":460,"offset":2227},{"line":2215,"column":1230,"offset":2236},4610,{"type":14,"tagName":74,"properties":2238,"children":2239,"position":2247},{},[2240],{"type":19,"value":2241,"position":2242},"close[i]",{"start":2243,"end":2244},{"line":2215,"column":1230,"offset":2236},{"line":2215,"column":2245,"offset":2246},76,4620,{"start":2248,"end":2249},{"line":2215,"column":1230,"offset":2236},{"line":2215,"column":2245,"offset":2246},{"type":19,"value":2251,"position":2252},", minus all fees paid so far, recorded on flat bars too. Per-bar returns for Sharpe and Sortino are ",{"start":2253,"end":2254},{"line":2215,"column":2245,"offset":2246},{"line":2215,"column":2255,"offset":2256},176,4720,{"type":14,"tagName":74,"properties":2258,"children":2259,"position":2267},{},[2260],{"type":19,"value":2261,"position":2262},"r_i = equity_i / equity_{i-1} - 1",{"start":2263,"end":2264},{"line":2215,"column":2255,"offset":2256},{"line":2215,"column":2265,"offset":2266},211,4755,{"start":2268,"end":2269},{"line":2215,"column":2255,"offset":2256},{"line":2215,"column":2265,"offset":2266},{"type":19,"value":2271,"position":2272}," over confirmed bars with positive prior equity. On the live edge, strategy scripts fully recompute on every tick; the forming bar can shift pending-order and stat values once between the initial render and the first tick, and settles when the bar confirms.",{"start":2273,"end":2274},{"line":2215,"column":2265,"offset":2266},{"line":2215,"column":2275,"offset":2276},468,5012,{"start":2278,"end":2279},{"line":2215,"column":33,"offset":2216},{"line":2215,"column":2275,"offset":2276},{"quirksMode":2281},false,{"start":2283,"end":2284},{"line":33,"column":33,"offset":59},{"line":232,"column":33,"offset":2285},5013,1783408980724]