[{"data":1,"prerenderedAt":3646},["ShallowReactive",2],{"wrun-open-editor-url":3,"indicators:strategies/writing-strategies":4},"https://openmarket.xyz/chart/#wrun-open=v1",{"slug":5,"filePath":6,"frontmatter":7,"rawMarkdown":12,"tree":13},"strategies/writing-strategies","strategies/writing-strategies.md",{"title":8,"description":9,"order":10,"section":11},"Writing strategies","The strategy({ ... }) declaration, the order API, the position model and sizing. The chart's Strategy Tester runs the engine's broker, so every rule below is…",122,"strategies","---\ntitle: \"Writing strategies\"\ndescription: \"The strategy({ ... }) declaration, the order API, the position model and sizing. The chart's Strategy Tester runs the engine's broker, so every rule below is…\"\norder: 122\nsection: \"strategies\"\n---\n\n\u003C!-- source: docs/indicators/strategies/writing-strategies.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit -->\n\n# Writing strategies\n\nThe `strategy({ ... })` declaration, the order API, the position model and sizing. The chart's Strategy Tester runs the engine's broker, so every rule below is the rule it applies.\n\n## The declaration\n\n`strategy(options)` is one top-level statement of the file, beside `param`, `input` and `output`. It takes the engine's setting names; every field is optional and `strategy()` enables the broker with every default. A numeric field may be the handle `param(...)` returns: the setting then shows as a number field in the strategy's settings dialog, starting at the param's default, and changing it reruns the strategy without a recompile.\n\n| Setting | Sheet field | Default | Meaning |\n| --- | --- | --- | --- |\n| `initialCapital` | `initial_capital` | 10000 | Starting equity, more than 0. |\n| `currency` | `currency` | `\"USD\"` | Display label for money-denominated stats. |\n| `commissionPercent` | `commission_percent` | 0 | Spot commission on every fill, percent of notional. Ignored on perps. |\n| `slippageBps` | `slippage_bps` | 0 | Adverse basis points on market, stop and trailing fills. Limit fills are exempt: a limit price is a bound. |\n| `slippageModel` | `slippage_model` | `\"fixed\"` | `\"bookEstimate\"` is refused by name when the strategy runs (the chart attaches no order book). |\n| `qtyType`, `qtyValue` | `qty_type`, `qty_value` | `\"percentOfEquity\"`, 100 | Default sizing. `\"fixed\"`: `qtyValue` units per entry. `\"percentOfEquity\"`: `qtyValue / 100 * equityAtFill / fillPrice`. `\"cash\"`: `qtyValue / fillPrice`. On perps the last two size margin, and notional is margin times leverage. |\n| `pyramiding` | `pyramiding` | 1 | Maximum stacked same-direction entries; excess entries are rejected and counted. |\n| `fillModel` | `fill_model` | `\"pessimistic\"` | Intrabar ordering assumption when a bar could fill two levels; see [fill simulation](fill-simulation.md). |\n| `instrument` | `instrument` | `\"spot\"` | `\"perps\"` enables isolated leveraged margin, liquidation, maker and taker fees and funding. |\n| `leverage` | `leverage` | 1 | Perps leverage, more than 0. |\n| `maintenanceMarginPercent` | `maintenance_margin_percent` | 0.5 | Perps maintenance margin, at least 0 and under 100. |\n| `makerFeePercent`, `takerFeePercent` | `maker_fee_percent`, `taker_fee_percent` | 0, 0 | Perps fee rates, percent of notional; maker on limit-bound fills, taker on market-crossing fills. Ignored on spot. |\n| `funding` | `funding` | `\"data\"` | `\"off\"` is an exact no-op; `\"data\"` settles recorded funding when funding data is attached, and counts the bars it cannot settle otherwise (the chart attaches none). |\n| `onLiquidation` | `on_liquidation` | `\"continue\"` | `\"halt\"` rejects every entry after the first liquidation. |\n\nRun derives the section into the sheet with the field names in the second column, and checks every value with the engine's rules as the file builds: a value out of range stops the build, with the problem in the editor's **Console**. A strategy's price input reads `ohlcv` on the chart's own market, with no symbol or exchange pin (a file with no `input` line gets the chart's close as that input): the broker fills against the chart's own candles, and any other primary input is refused by name. The names `strategy.position` and `strategy.equity` are reserved for the strategy's own alert choices (\"Strategy position\" and \"Strategy equity\"): an output with either name is refused by name. There is no `calc_on_every_tick`: live behavior is fixed, [fill simulation](fill-simulation.md) explains it.\n\n## The order API\n\nEvery call maps to one engine broker call, with the engine's own validation:\n\n```text\nstrategy.long(id).qty(n).limit(px).stop(px).oca(name).send()      // strategy.entry(id, \"long\", ...)\nstrategy.short(id).qty(n).limit(px).stop(px).oca(name).send()     // strategy.entry(id, \"short\", ...)\nstrategy.exit(id).from(entryId).qty(n).qtyPercent(p)\n                 .profit(pts).limit(px).loss(pts).stop(px)\n                 .trail(points, offset).oca(name).send()          // strategy.exit(id, fromEntry, ...)\nstrategy.close(id)     strategy.closeAll()                        // market, next open\nstrategy.cancel(id)    strategy.cancelAll()                       // pending unfilled orders\n```\n\n- A plain `strategy.long(id).send()` is a market order for the next bar's open. `limit` or `stop` makes it a resting order that fills when touched; both on one entry is rejected and counted. Re-issuing an id replaces the pending unfilled order with that id.\n- `strategy.exit(id)` attaches bracket legs to an entry: `profit` and `loss` in price points, `limit` and `stop` as absolute prices, at least one leg. Without `from` it protects every open entry. Stop, limit and trail legs under one exit id are one-cancels-all.\n- `trail(points, offset)` activates a trailing stop once the trade's favorable excursion reaches `points`, then ratchets with new extremes at `offset` behind them.\n- `oca(name)` joins any orders, entries and exits alike, into a one-cancels-all group: when one fills, the rest cancel.\n- The builders are preallocated singletons: `strategy.long`, `strategy.short` and `strategy.exit` each reset one builder, the setters fill its legs, and `send()` is the only call that reaches the broker, so finish one order before starting the next. An unset leg is absent. There is no `comment`: the engine keeps it on no record.\n- Getters, valid in `onBar()` beside the order calls: `strategy.positionSize()` (signed), `strategy.positionAvgPrice()`, `strategy.equity()`, `strategy.openProfit()`, `strategy.netProfit()`, `strategy.closedTradeCount()`, `strategy.winTradeCount()`, `strategy.lossTradeCount()`, `strategy.maxDrawdown()`.\n\nA crossover entry bracketed by both a stop and a take-profit limit; whichever the market touches first closes the trade and cancels the other side:\n\n```typescript sample=strat-trend-brackets\n// Trend entries with bracket exits: a stop and a take-profit limit on one exit id, whichever the market touches first closes the trade and cancels the other.\nstrategy({ initialCapital: 10000, qtyType: \"fixed\", qtyValue: 1, pyramiding: 1, fillModel: \"pathHeuristic\" });\noutput(\"fast\", line, overlay, { description: \"5-period SMA of close\" });\noutput(\"slow\", line, overlay, { description: \"20-period SMA of close\" });\n\nconst fastSma = new Sma(5);\nconst slowSma = new Sma(20);\nconst cross = new Cross();\n\nfunction onBar(): void {\n  const close = bar.close();\n  const fast = fastSma.update(close);\n  const slow = slowSma.update(close);\n  if (isNaN(fast) || isNaN(slow)) return;\n  const crossed = cross.update(fast, slow);\n  if (crossed == 1) strategy.long(\"Trend\").send();\n  if (strategy.positionSize() > 0) strategy.exit(\"Protect\").from(\"Trend\").stop(close * 0.97).limit(close * 1.05).send();\n  out_fast(fast);\n  out_slow(slow);\n}\n```\n\n## Position model\n\nThe broker nets to one position. An entry in the opposite direction is a reversal: it closes the existing position fully at the same fill, then opens the new one at the requested quantity. `pyramiding` caps same-direction stacking; rejected entries are counted in the broker's `rejectedOrders` rather than thrown.\n\nSizing details worth knowing:\n\n- An explicit `qty(...)` on an order always wins over the declaration's `qtyType`.\n- Sized-at-fill quantities (`percentOfEquity`, `cash`) resolve from the slippage-adjusted fill price, and fractional quantities are legal (the broker does not round lots).\n- On perps, `percentOfEquity` and `cash` size the isolated margin commitment, not the notional. Explicit quantities and `qtyType: \"fixed\"` stay direct quantities and are margin-checked. Perps entries also pass an isolated-margin admission check before the opening leg applies; unrealized PnL is not collateral. [Perps](perps.md#margin) has the model.\n- A computed size is rejected and counted when equity at fill is not positive or the quantity is not finite and positive.\n\nOrder calls are recorded as rejected, not thrown, when the current bar has non-finite prices or is not confirmed (a live chart's forming bar). On the last bar, unfilled orders remain visible under **Pending orders** in the Strategy Tester's Trades tab.\n\n## Limits\n\nAt most 64 distinct order ids per run (`closeAll` counts as one; ids are slots, re-issuing one replaces its pending order), 64 bytes of UTF-8 per id, 4096 strategy calls per bar, and 10000 closed trades per run. Each breach refuses the run by name, and every engine rejection stays a counted rejection; the [limits](../reference/limits.md) page lists them.\n",{"type":14,"children":15,"data":3640,"position":3642},"root",[16,26,29,30,67,68,86,87,214,216,1655,1656,1816,1817,1831,1832,1845,1846,1923,1924,2523,2524,2537,2538,3229,3230,3245,3246,3297,3298,3311,3312,3528,3529,3568,3569,3583,3584],{"type":17,"value":18,"position":19},"comment"," source: docs/indicators/strategies/writing-strategies.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit ",{"start":20,"end":23},{"line":21,"column":21,"offset":22},1,0,{"line":21,"column":24,"offset":25},136,135,{"type":27,"value":28},"text","\n",{"type":27,"value":28},{"type":31,"tagName":32,"properties":33,"children":34,"position":64},"element","p",{},[35,43,57],{"type":27,"value":36,"position":37},"The ",{"start":38,"end":41},{"line":39,"column":21,"offset":40},5,159,{"line":39,"column":39,"offset":42},163,{"type":31,"tagName":44,"properties":45,"children":46,"position":54},"code",{},[47],{"type":27,"value":48,"position":49},"strategy({ ... })",{"start":50,"end":51},{"line":39,"column":39,"offset":42},{"line":39,"column":52,"offset":53},24,182,{"start":55,"end":56},{"line":39,"column":39,"offset":42},{"line":39,"column":52,"offset":53},{"type":27,"value":58,"position":59}," declaration, the order API, the position model and sizing. The chart's Strategy Tester runs the engine's broker, so every rule below is the rule it applies.",{"start":60,"end":61},{"line":39,"column":52,"offset":53},{"line":39,"column":62,"offset":63},181,339,{"start":65,"end":66},{"line":39,"column":21,"offset":40},{"line":39,"column":62,"offset":63},{"type":27,"value":28},{"type":31,"tagName":69,"properties":70,"children":71,"position":82},"h2",{},[72],{"type":27,"value":73,"position":74},"The declaration",{"start":75,"end":79},{"line":76,"column":77,"offset":78},7,4,344,{"line":76,"column":80,"offset":81},19,359,{"start":83,"end":85},{"line":76,"column":21,"offset":84},341,{"line":76,"column":80,"offset":81},{"type":27,"value":28},{"type":31,"tagName":32,"properties":88,"children":89,"position":211},{},[90,105,112,125,132,145,152,165,172,185,192,205],{"type":31,"tagName":44,"properties":91,"children":92,"position":102},{},[93],{"type":27,"value":94,"position":95},"strategy(options)",{"start":96,"end":99},{"line":97,"column":21,"offset":98},9,361,{"line":97,"column":100,"offset":101},20,380,{"start":103,"end":104},{"line":97,"column":21,"offset":98},{"line":97,"column":100,"offset":101},{"type":27,"value":106,"position":107}," is one top-level statement of the file, beside ",{"start":108,"end":109},{"line":97,"column":100,"offset":101},{"line":97,"column":110,"offset":111},68,428,{"type":31,"tagName":44,"properties":113,"children":114,"position":122},{},[115],{"type":27,"value":116,"position":117},"param",{"start":118,"end":119},{"line":97,"column":110,"offset":111},{"line":97,"column":120,"offset":121},75,435,{"start":123,"end":124},{"line":97,"column":110,"offset":111},{"line":97,"column":120,"offset":121},{"type":27,"value":126,"position":127},", ",{"start":128,"end":129},{"line":97,"column":120,"offset":121},{"line":97,"column":130,"offset":131},77,437,{"type":31,"tagName":44,"properties":133,"children":134,"position":142},{},[135],{"type":27,"value":136,"position":137},"input",{"start":138,"end":139},{"line":97,"column":130,"offset":131},{"line":97,"column":140,"offset":141},84,444,{"start":143,"end":144},{"line":97,"column":130,"offset":131},{"line":97,"column":140,"offset":141},{"type":27,"value":146,"position":147}," and ",{"start":148,"end":149},{"line":97,"column":140,"offset":141},{"line":97,"column":150,"offset":151},89,449,{"type":31,"tagName":44,"properties":153,"children":154,"position":162},{},[155],{"type":27,"value":156,"position":157},"output",{"start":158,"end":159},{"line":97,"column":150,"offset":151},{"line":97,"column":160,"offset":161},97,457,{"start":163,"end":164},{"line":97,"column":150,"offset":151},{"line":97,"column":160,"offset":161},{"type":27,"value":166,"position":167},". It takes the engine's setting names; every field is optional and ",{"start":168,"end":169},{"line":97,"column":160,"offset":161},{"line":97,"column":170,"offset":171},164,524,{"type":31,"tagName":44,"properties":173,"children":174,"position":182},{},[175],{"type":27,"value":176,"position":177},"strategy()",{"start":178,"end":179},{"line":97,"column":170,"offset":171},{"line":97,"column":180,"offset":181},176,536,{"start":183,"end":184},{"line":97,"column":170,"offset":171},{"line":97,"column":180,"offset":181},{"type":27,"value":186,"position":187}," enables the broker with every default. A numeric field may be the handle ",{"start":188,"end":189},{"line":97,"column":180,"offset":181},{"line":97,"column":190,"offset":191},250,610,{"type":31,"tagName":44,"properties":193,"children":194,"position":202},{},[195],{"type":27,"value":196,"position":197},"param(...)",{"start":198,"end":199},{"line":97,"column":190,"offset":191},{"line":97,"column":200,"offset":201},262,622,{"start":203,"end":204},{"line":97,"column":190,"offset":191},{"line":97,"column":200,"offset":201},{"type":27,"value":206,"position":207}," returns: the setting then shows as a number field in the strategy's settings dialog, starting at the param's default, and changing it reruns the strategy without a recompile.",{"start":208,"end":209},{"line":97,"column":200,"offset":201},{"line":97,"column":131,"offset":210},797,{"start":212,"end":213},{"line":97,"column":21,"offset":98},{"line":97,"column":131,"offset":210},{"type":27,"value":215},"\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\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":31,"tagName":217,"properties":218,"children":219,"position":1652},"table",{},[220,303],{"type":31,"tagName":221,"properties":222,"children":223,"position":300},"thead",{},[224],{"type":31,"tagName":225,"properties":226,"children":227,"position":297},"tr",{},[228,247,263,280],{"type":31,"tagName":229,"properties":230,"children":231,"position":242},"th",{},[232],{"type":27,"value":233,"position":234},"Setting",{"start":235,"end":239},{"line":236,"column":237,"offset":238},11,3,801,{"line":236,"column":240,"offset":241},10,808,{"start":243,"end":245},{"line":236,"column":21,"offset":244},799,{"line":236,"column":236,"offset":246},809,{"type":31,"tagName":229,"properties":248,"children":249,"position":258},{},[250],{"type":27,"value":251,"position":252},"Sheet field",{"start":253,"end":256},{"line":236,"column":254,"offset":255},13,811,{"line":236,"column":52,"offset":257},822,{"start":259,"end":260},{"line":236,"column":236,"offset":246},{"line":236,"column":261,"offset":262},25,823,{"type":31,"tagName":229,"properties":264,"children":265,"position":275},{},[266],{"type":27,"value":267,"position":268},"Default",{"start":269,"end":272},{"line":236,"column":270,"offset":271},27,825,{"line":236,"column":273,"offset":274},34,832,{"start":276,"end":277},{"line":236,"column":261,"offset":262},{"line":236,"column":278,"offset":279},35,833,{"type":31,"tagName":229,"properties":281,"children":282,"position":292},{},[283],{"type":27,"value":284,"position":285},"Meaning",{"start":286,"end":289},{"line":236,"column":287,"offset":288},37,835,{"line":236,"column":290,"offset":291},44,842,{"start":293,"end":294},{"line":236,"column":278,"offset":279},{"line":236,"column":295,"offset":296},46,844,{"start":298,"end":299},{"line":236,"column":21,"offset":244},{"line":236,"column":295,"offset":296},{"start":301,"end":302},{"line":236,"column":21,"offset":244},{"line":236,"column":295,"offset":296},{"type":31,"tagName":304,"properties":305,"children":306,"position":1649},"tbody",{},[307,386,463,550,623,706,934,1005,1104,1186,1255,1347,1467,1565],{"type":31,"tagName":225,"properties":308,"children":309,"position":383},{},[310,329,349,366],{"type":31,"tagName":311,"properties":312,"children":313,"position":324},"td",{},[314],{"type":31,"tagName":44,"properties":315,"children":316,"position":319},{},[317],{"type":27,"value":318},"initialCapital",{"start":320,"end":322},{"line":254,"column":237,"offset":321},873,{"line":254,"column":80,"offset":323},889,{"start":325,"end":327},{"line":254,"column":21,"offset":326},871,{"line":254,"column":100,"offset":328},890,{"type":31,"tagName":311,"properties":330,"children":331,"position":344},{},[332],{"type":31,"tagName":44,"properties":333,"children":334,"position":337},{},[335],{"type":27,"value":336},"initial_capital",{"start":338,"end":341},{"line":254,"column":339,"offset":340},22,892,{"line":254,"column":342,"offset":343},39,909,{"start":345,"end":346},{"line":254,"column":100,"offset":328},{"line":254,"column":347,"offset":348},40,910,{"type":31,"tagName":311,"properties":350,"children":351,"position":361},{},[352],{"type":27,"value":353,"position":354},"10000",{"start":355,"end":358},{"line":254,"column":356,"offset":357},42,912,{"line":254,"column":359,"offset":360},47,917,{"start":362,"end":363},{"line":254,"column":347,"offset":348},{"line":254,"column":364,"offset":365},48,918,{"type":31,"tagName":311,"properties":367,"children":368,"position":378},{},[369],{"type":27,"value":370,"position":371},"Starting equity, more than 0.",{"start":372,"end":375},{"line":254,"column":373,"offset":374},50,920,{"line":254,"column":376,"offset":377},79,949,{"start":379,"end":380},{"line":254,"column":364,"offset":365},{"line":254,"column":381,"offset":382},81,951,{"start":384,"end":385},{"line":254,"column":21,"offset":326},{"line":254,"column":381,"offset":382},{"type":31,"tagName":225,"properties":387,"children":388,"position":460},{},[389,408,426,445],{"type":31,"tagName":311,"properties":390,"children":391,"position":403},{},[392],{"type":31,"tagName":44,"properties":393,"children":394,"position":397},{},[395],{"type":27,"value":396},"currency",{"start":398,"end":401},{"line":399,"column":237,"offset":400},14,954,{"line":399,"column":254,"offset":402},964,{"start":404,"end":406},{"line":399,"column":21,"offset":405},952,{"line":399,"column":399,"offset":407},965,{"type":31,"tagName":311,"properties":409,"children":410,"position":422},{},[411],{"type":31,"tagName":44,"properties":412,"children":413,"position":415},{},[414],{"type":27,"value":396},{"start":416,"end":419},{"line":399,"column":417,"offset":418},16,967,{"line":399,"column":420,"offset":421},26,977,{"start":423,"end":424},{"line":399,"column":399,"offset":407},{"line":399,"column":270,"offset":425},978,{"type":31,"tagName":311,"properties":427,"children":428,"position":441},{},[429],{"type":31,"tagName":44,"properties":430,"children":431,"position":434},{},[432],{"type":27,"value":433},"\"USD\"",{"start":435,"end":438},{"line":399,"column":436,"offset":437},29,980,{"line":399,"column":439,"offset":440},36,987,{"start":442,"end":443},{"line":399,"column":270,"offset":425},{"line":399,"column":287,"offset":444},988,{"type":31,"tagName":311,"properties":446,"children":447,"position":455},{},[448],{"type":27,"value":449,"position":450},"Display label for money-denominated stats.",{"start":451,"end":453},{"line":399,"column":342,"offset":452},990,{"line":399,"column":381,"offset":454},1032,{"start":456,"end":457},{"line":399,"column":287,"offset":444},{"line":399,"column":458,"offset":459},83,1034,{"start":461,"end":462},{"line":399,"column":21,"offset":405},{"line":399,"column":458,"offset":459},{"type":31,"tagName":225,"properties":464,"children":465,"position":547},{},[466,492,515,530],{"type":31,"tagName":311,"properties":467,"children":468,"position":486},{},[469],{"type":31,"tagName":44,"properties":470,"children":471,"position":480},{},[472,474,478],{"type":27,"value":473},"commission",{"type":31,"tagName":475,"properties":476,"children":477},"wbr",{},[],{"type":27,"value":479},"Percent",{"start":481,"end":484},{"line":482,"column":237,"offset":483},15,1037,{"line":482,"column":339,"offset":485},1056,{"start":487,"end":489},{"line":482,"column":21,"offset":488},1035,{"line":482,"column":490,"offset":491},23,1057,{"type":31,"tagName":311,"properties":493,"children":494,"position":511},{},[495],{"type":31,"tagName":44,"properties":496,"children":497,"position":505},{},[498,500,503],{"type":27,"value":499},"commission_",{"type":31,"tagName":475,"properties":501,"children":502},{},[],{"type":27,"value":504},"percent",{"start":506,"end":508},{"line":482,"column":261,"offset":507},1059,{"line":482,"column":509,"offset":510},45,1079,{"start":512,"end":513},{"line":482,"column":490,"offset":491},{"line":482,"column":295,"offset":514},1080,{"type":31,"tagName":311,"properties":516,"children":517,"position":526},{},[518],{"type":27,"value":519,"position":520},"0",{"start":521,"end":523},{"line":482,"column":364,"offset":522},1082,{"line":482,"column":524,"offset":525},49,1083,{"start":527,"end":528},{"line":482,"column":295,"offset":514},{"line":482,"column":373,"offset":529},1084,{"type":31,"tagName":311,"properties":531,"children":532,"position":542},{},[533],{"type":27,"value":534,"position":535},"Spot commission on every fill, percent of notional. Ignored on perps.",{"start":536,"end":539},{"line":482,"column":537,"offset":538},52,1086,{"line":482,"column":540,"offset":541},121,1155,{"start":543,"end":544},{"line":482,"column":373,"offset":529},{"line":482,"column":545,"offset":546},123,1157,{"start":548,"end":549},{"line":482,"column":21,"offset":488},{"line":482,"column":545,"offset":546},{"type":31,"tagName":225,"properties":551,"children":552,"position":620},{},[553,572,590,604],{"type":31,"tagName":311,"properties":554,"children":555,"position":566},{},[556],{"type":31,"tagName":44,"properties":557,"children":558,"position":561},{},[559],{"type":27,"value":560},"slippageBps",{"start":562,"end":564},{"line":417,"column":237,"offset":563},1160,{"line":417,"column":417,"offset":565},1173,{"start":567,"end":569},{"line":417,"column":21,"offset":568},1158,{"line":417,"column":570,"offset":571},17,1174,{"type":31,"tagName":311,"properties":573,"children":574,"position":586},{},[575],{"type":31,"tagName":44,"properties":576,"children":577,"position":580},{},[578],{"type":27,"value":579},"slippage_bps",{"start":581,"end":583},{"line":417,"column":80,"offset":582},1176,{"line":417,"column":584,"offset":585},33,1190,{"start":587,"end":588},{"line":417,"column":570,"offset":571},{"line":417,"column":273,"offset":589},1191,{"type":31,"tagName":311,"properties":591,"children":592,"position":599},{},[593],{"type":27,"value":519,"position":594},{"start":595,"end":597},{"line":417,"column":439,"offset":596},1193,{"line":417,"column":287,"offset":598},1194,{"start":600,"end":601},{"line":417,"column":273,"offset":589},{"line":417,"column":602,"offset":603},38,1195,{"type":31,"tagName":311,"properties":605,"children":606,"position":615},{},[607],{"type":27,"value":608,"position":609},"Adverse basis points on market, stop and trailing fills. Limit fills are exempt: a limit price is a bound.",{"start":610,"end":612},{"line":417,"column":347,"offset":611},1197,{"line":417,"column":613,"offset":614},146,1303,{"start":616,"end":617},{"line":417,"column":602,"offset":603},{"line":417,"column":618,"offset":619},148,1305,{"start":621,"end":622},{"line":417,"column":21,"offset":568},{"line":417,"column":618,"offset":619},{"type":31,"tagName":225,"properties":624,"children":625,"position":703},{},[626,645,663,680],{"type":31,"tagName":311,"properties":627,"children":628,"position":640},{},[629],{"type":31,"tagName":44,"properties":630,"children":631,"position":634},{},[632],{"type":27,"value":633},"slippageModel",{"start":635,"end":637},{"line":570,"column":237,"offset":636},1308,{"line":570,"column":638,"offset":639},18,1323,{"start":641,"end":643},{"line":570,"column":21,"offset":642},1306,{"line":570,"column":80,"offset":644},1324,{"type":31,"tagName":311,"properties":646,"children":647,"position":659},{},[648],{"type":31,"tagName":44,"properties":649,"children":650,"position":653},{},[651],{"type":27,"value":652},"slippage_model",{"start":654,"end":657},{"line":570,"column":655,"offset":656},21,1326,{"line":570,"column":287,"offset":658},1342,{"start":660,"end":661},{"line":570,"column":80,"offset":644},{"line":570,"column":602,"offset":662},1343,{"type":31,"tagName":311,"properties":664,"children":665,"position":676},{},[666],{"type":31,"tagName":44,"properties":667,"children":668,"position":671},{},[669],{"type":27,"value":670},"\"fixed\"",{"start":672,"end":674},{"line":570,"column":347,"offset":673},1345,{"line":570,"column":524,"offset":675},1354,{"start":677,"end":678},{"line":570,"column":602,"offset":662},{"line":570,"column":373,"offset":679},1355,{"type":31,"tagName":311,"properties":681,"children":682,"position":699},{},[683,693],{"type":31,"tagName":44,"properties":684,"children":685,"position":688},{},[686],{"type":27,"value":687},"\"bookEstimate\"",{"start":689,"end":691},{"line":570,"column":537,"offset":690},1357,{"line":570,"column":110,"offset":692},1373,{"type":27,"value":694,"position":695}," is refused by name when the strategy runs (the chart attaches no order book).",{"start":696,"end":697},{"line":570,"column":110,"offset":692},{"line":570,"column":613,"offset":698},1451,{"start":700,"end":701},{"line":570,"column":373,"offset":679},{"line":570,"column":618,"offset":702},1453,{"start":704,"end":705},{"line":570,"column":21,"offset":642},{"line":570,"column":618,"offset":702},{"type":31,"tagName":225,"properties":707,"children":708,"position":931},{},[709,742,774,810],{"type":31,"tagName":311,"properties":710,"children":711,"position":737},{},[712,723,728],{"type":31,"tagName":44,"properties":713,"children":714,"position":717},{},[715],{"type":27,"value":716},"qtyType",{"start":718,"end":720},{"line":638,"column":237,"offset":719},1456,{"line":638,"column":721,"offset":722},12,1465,{"type":27,"value":126,"position":724},{"start":725,"end":726},{"line":638,"column":721,"offset":722},{"line":638,"column":399,"offset":727},1467,{"type":31,"tagName":44,"properties":729,"children":730,"position":733},{},[731],{"type":27,"value":732},"qtyValue",{"start":734,"end":735},{"line":638,"column":399,"offset":727},{"line":638,"column":52,"offset":736},1477,{"start":738,"end":740},{"line":638,"column":21,"offset":739},1454,{"line":638,"column":261,"offset":741},1478,{"type":31,"tagName":311,"properties":743,"children":744,"position":769},{},[745,755,760],{"type":31,"tagName":44,"properties":746,"children":747,"position":750},{},[748],{"type":27,"value":749},"qty_type",{"start":751,"end":753},{"line":638,"column":270,"offset":752},1480,{"line":638,"column":287,"offset":754},1490,{"type":27,"value":126,"position":756},{"start":757,"end":758},{"line":638,"column":287,"offset":754},{"line":638,"column":342,"offset":759},1492,{"type":31,"tagName":44,"properties":761,"children":762,"position":765},{},[763],{"type":27,"value":764},"qty_value",{"start":766,"end":767},{"line":638,"column":342,"offset":759},{"line":638,"column":373,"offset":768},1503,{"start":770,"end":771},{"line":638,"column":261,"offset":741},{"line":638,"column":772,"offset":773},51,1504,{"type":31,"tagName":311,"properties":775,"children":776,"position":805},{},[777,799],{"type":31,"tagName":44,"properties":778,"children":779,"position":792},{},[780,782,785,787,790],{"type":27,"value":781},"\"percent",{"type":31,"tagName":475,"properties":783,"children":784},{},[],{"type":27,"value":786},"Of",{"type":31,"tagName":475,"properties":788,"children":789},{},[],{"type":27,"value":791},"Equity\"",{"start":793,"end":796},{"line":638,"column":794,"offset":795},53,1506,{"line":638,"column":797,"offset":798},72,1525,{"type":27,"value":800,"position":801},", 100",{"start":802,"end":803},{"line":638,"column":797,"offset":798},{"line":638,"column":130,"offset":804},1530,{"start":806,"end":807},{"line":638,"column":772,"offset":773},{"line":638,"column":808,"offset":809},78,1531,{"type":31,"tagName":311,"properties":811,"children":812,"position":926},{},[813,822,831,838,847,853,870,876,886,893,903,909,919],{"type":27,"value":814,"position":815},"Default sizing. ",{"start":816,"end":819},{"line":638,"column":817,"offset":818},80,1533,{"line":638,"column":820,"offset":821},96,1549,{"type":31,"tagName":44,"properties":823,"children":824,"position":826},{},[825],{"type":27,"value":670},{"start":827,"end":828},{"line":638,"column":820,"offset":821},{"line":638,"column":829,"offset":830},105,1558,{"type":27,"value":832,"position":833},": ",{"start":834,"end":835},{"line":638,"column":829,"offset":830},{"line":638,"column":836,"offset":837},107,1560,{"type":31,"tagName":44,"properties":839,"children":840,"position":842},{},[841],{"type":27,"value":732},{"start":843,"end":844},{"line":638,"column":836,"offset":837},{"line":638,"column":845,"offset":846},117,1570,{"type":27,"value":848,"position":849}," units per entry. ",{"start":850,"end":851},{"line":638,"column":845,"offset":846},{"line":638,"column":25,"offset":852},1588,{"type":31,"tagName":44,"properties":854,"children":855,"position":865},{},[856,857,860,861,864],{"type":27,"value":781},{"type":31,"tagName":475,"properties":858,"children":859},{},[],{"type":27,"value":786},{"type":31,"tagName":475,"properties":862,"children":863},{},[],{"type":27,"value":791},{"start":866,"end":867},{"line":638,"column":25,"offset":852},{"line":638,"column":868,"offset":869},154,1607,{"type":27,"value":832,"position":871},{"start":872,"end":873},{"line":638,"column":868,"offset":869},{"line":638,"column":874,"offset":875},156,1609,{"type":31,"tagName":44,"properties":877,"children":878,"position":881},{},[879],{"type":27,"value":880},"qtyValue / 100 * equityAtFill / fillPrice",{"start":882,"end":883},{"line":638,"column":874,"offset":875},{"line":638,"column":884,"offset":885},199,1652,{"type":27,"value":887,"position":888},". ",{"start":889,"end":890},{"line":638,"column":884,"offset":885},{"line":638,"column":891,"offset":892},201,1654,{"type":31,"tagName":44,"properties":894,"children":895,"position":898},{},[896],{"type":27,"value":897},"\"cash\"",{"start":899,"end":900},{"line":638,"column":891,"offset":892},{"line":638,"column":901,"offset":902},209,1662,{"type":27,"value":832,"position":904},{"start":905,"end":906},{"line":638,"column":901,"offset":902},{"line":638,"column":907,"offset":908},211,1664,{"type":31,"tagName":44,"properties":910,"children":911,"position":914},{},[912],{"type":27,"value":913},"qtyValue / fillPrice",{"start":915,"end":916},{"line":638,"column":907,"offset":908},{"line":638,"column":917,"offset":918},233,1686,{"type":27,"value":920,"position":921},". On perps the last two size margin, and notional is margin times leverage.",{"start":922,"end":923},{"line":638,"column":917,"offset":918},{"line":638,"column":924,"offset":925},308,1761,{"start":927,"end":928},{"line":638,"column":808,"offset":809},{"line":638,"column":929,"offset":930},310,1763,{"start":932,"end":933},{"line":638,"column":21,"offset":739},{"line":638,"column":929,"offset":930},{"type":31,"tagName":225,"properties":935,"children":936,"position":1002},{},[937,955,973,987],{"type":31,"tagName":311,"properties":938,"children":939,"position":950},{},[940],{"type":31,"tagName":44,"properties":941,"children":942,"position":945},{},[943],{"type":27,"value":944},"pyramiding",{"start":946,"end":948},{"line":80,"column":237,"offset":947},1766,{"line":80,"column":482,"offset":949},1778,{"start":951,"end":953},{"line":80,"column":21,"offset":952},1764,{"line":80,"column":417,"offset":954},1779,{"type":31,"tagName":311,"properties":956,"children":957,"position":968},{},[958],{"type":31,"tagName":44,"properties":959,"children":960,"position":962},{},[961],{"type":27,"value":944},{"start":963,"end":965},{"line":80,"column":638,"offset":964},1781,{"line":80,"column":966,"offset":967},30,1793,{"start":969,"end":970},{"line":80,"column":417,"offset":954},{"line":80,"column":971,"offset":972},31,1794,{"type":31,"tagName":311,"properties":974,"children":975,"position":983},{},[976],{"type":27,"value":977,"position":978},"1",{"start":979,"end":981},{"line":80,"column":584,"offset":980},1796,{"line":80,"column":273,"offset":982},1797,{"start":984,"end":985},{"line":80,"column":971,"offset":972},{"line":80,"column":278,"offset":986},1798,{"type":31,"tagName":311,"properties":988,"children":989,"position":997},{},[990],{"type":27,"value":991,"position":992},"Maximum stacked same-direction entries; excess entries are rejected and counted.",{"start":993,"end":995},{"line":80,"column":287,"offset":994},1800,{"line":80,"column":845,"offset":996},1880,{"start":998,"end":999},{"line":80,"column":278,"offset":986},{"line":80,"column":1000,"offset":1001},119,1882,{"start":1003,"end":1004},{"line":80,"column":21,"offset":952},{"line":80,"column":1000,"offset":1001},{"type":31,"tagName":225,"properties":1006,"children":1007,"position":1101},{},[1008,1026,1043,1061],{"type":31,"tagName":311,"properties":1009,"children":1010,"position":1021},{},[1011],{"type":31,"tagName":44,"properties":1012,"children":1013,"position":1016},{},[1014],{"type":27,"value":1015},"fillModel",{"start":1017,"end":1019},{"line":100,"column":237,"offset":1018},1885,{"line":100,"column":399,"offset":1020},1896,{"start":1022,"end":1024},{"line":100,"column":21,"offset":1023},1883,{"line":100,"column":482,"offset":1025},1897,{"type":31,"tagName":311,"properties":1027,"children":1028,"position":1039},{},[1029],{"type":31,"tagName":44,"properties":1030,"children":1031,"position":1034},{},[1032],{"type":27,"value":1033},"fill_model",{"start":1035,"end":1037},{"line":100,"column":570,"offset":1036},1899,{"line":100,"column":436,"offset":1038},1911,{"start":1040,"end":1041},{"line":100,"column":482,"offset":1025},{"line":100,"column":966,"offset":1042},1912,{"type":31,"tagName":311,"properties":1044,"children":1045,"position":1057},{},[1046],{"type":31,"tagName":44,"properties":1047,"children":1048,"position":1051},{},[1049],{"type":27,"value":1050},"\"pessimistic\"",{"start":1052,"end":1055},{"line":100,"column":1053,"offset":1054},32,1914,{"line":100,"column":359,"offset":1056},1929,{"start":1058,"end":1059},{"line":100,"column":966,"offset":1042},{"line":100,"column":364,"offset":1060},1930,{"type":31,"tagName":311,"properties":1062,"children":1063,"position":1096},{},[1064,1071,1089],{"type":27,"value":1065,"position":1066},"Intrabar ordering assumption when a bar could fill two levels; see ",{"start":1067,"end":1069},{"line":100,"column":373,"offset":1068},1932,{"line":100,"column":845,"offset":1070},1999,{"type":31,"tagName":1072,"properties":1073,"children":1075,"position":1085},"a",{"href":1074},"fill-simulation.md",[1076],{"type":27,"value":1077,"position":1078},"fill simulation",{"start":1079,"end":1082},{"line":100,"column":1080,"offset":1081},118,2000,{"line":100,"column":1083,"offset":1084},133,2015,{"start":1086,"end":1087},{"line":100,"column":845,"offset":1070},{"line":100,"column":868,"offset":1088},2036,{"type":27,"value":1090,"position":1091},".",{"start":1092,"end":1093},{"line":100,"column":868,"offset":1088},{"line":100,"column":1094,"offset":1095},155,2037,{"start":1097,"end":1098},{"line":100,"column":364,"offset":1060},{"line":100,"column":1099,"offset":1100},157,2039,{"start":1102,"end":1103},{"line":100,"column":21,"offset":1023},{"line":100,"column":1099,"offset":1100},{"type":31,"tagName":225,"properties":1105,"children":1106,"position":1183},{},[1107,1125,1141,1159],{"type":31,"tagName":311,"properties":1108,"children":1109,"position":1120},{},[1110],{"type":31,"tagName":44,"properties":1111,"children":1112,"position":1115},{},[1113],{"type":27,"value":1114},"instrument",{"start":1116,"end":1118},{"line":655,"column":237,"offset":1117},2042,{"line":655,"column":482,"offset":1119},2054,{"start":1121,"end":1123},{"line":655,"column":21,"offset":1122},2040,{"line":655,"column":417,"offset":1124},2055,{"type":31,"tagName":311,"properties":1126,"children":1127,"position":1137},{},[1128],{"type":31,"tagName":44,"properties":1129,"children":1130,"position":1132},{},[1131],{"type":27,"value":1114},{"start":1133,"end":1135},{"line":655,"column":638,"offset":1134},2057,{"line":655,"column":966,"offset":1136},2069,{"start":1138,"end":1139},{"line":655,"column":417,"offset":1124},{"line":655,"column":971,"offset":1140},2070,{"type":31,"tagName":311,"properties":1142,"children":1143,"position":1155},{},[1144],{"type":31,"tagName":44,"properties":1145,"children":1146,"position":1149},{},[1147],{"type":27,"value":1148},"\"spot\"",{"start":1150,"end":1152},{"line":655,"column":584,"offset":1151},2072,{"line":655,"column":1153,"offset":1154},41,2080,{"start":1156,"end":1157},{"line":655,"column":971,"offset":1140},{"line":655,"column":356,"offset":1158},2081,{"type":31,"tagName":311,"properties":1160,"children":1161,"position":1178},{},[1162,1172],{"type":31,"tagName":44,"properties":1163,"children":1164,"position":1167},{},[1165],{"type":27,"value":1166},"\"perps\"",{"start":1168,"end":1170},{"line":655,"column":290,"offset":1169},2083,{"line":655,"column":794,"offset":1171},2092,{"type":27,"value":1173,"position":1174}," enables isolated leveraged margin, liquidation, maker and taker fees and funding.",{"start":1175,"end":1176},{"line":655,"column":794,"offset":1171},{"line":655,"column":25,"offset":1177},2174,{"start":1179,"end":1180},{"line":655,"column":356,"offset":1158},{"line":655,"column":1181,"offset":1182},137,2176,{"start":1184,"end":1185},{"line":655,"column":21,"offset":1122},{"line":655,"column":1181,"offset":1182},{"type":31,"tagName":225,"properties":1187,"children":1188,"position":1252},{},[1189,1207,1223,1236],{"type":31,"tagName":311,"properties":1190,"children":1191,"position":1202},{},[1192],{"type":31,"tagName":44,"properties":1193,"children":1194,"position":1197},{},[1195],{"type":27,"value":1196},"leverage",{"start":1198,"end":1200},{"line":339,"column":237,"offset":1199},2179,{"line":339,"column":254,"offset":1201},2189,{"start":1203,"end":1205},{"line":339,"column":21,"offset":1204},2177,{"line":339,"column":399,"offset":1206},2190,{"type":31,"tagName":311,"properties":1208,"children":1209,"position":1219},{},[1210],{"type":31,"tagName":44,"properties":1211,"children":1212,"position":1214},{},[1213],{"type":27,"value":1196},{"start":1215,"end":1217},{"line":339,"column":417,"offset":1216},2192,{"line":339,"column":420,"offset":1218},2202,{"start":1220,"end":1221},{"line":339,"column":399,"offset":1206},{"line":339,"column":270,"offset":1222},2203,{"type":31,"tagName":311,"properties":1224,"children":1225,"position":1232},{},[1226],{"type":27,"value":977,"position":1227},{"start":1228,"end":1230},{"line":339,"column":436,"offset":1229},2205,{"line":339,"column":966,"offset":1231},2206,{"start":1233,"end":1234},{"line":339,"column":270,"offset":1222},{"line":339,"column":971,"offset":1235},2207,{"type":31,"tagName":311,"properties":1237,"children":1238,"position":1247},{},[1239],{"type":27,"value":1240,"position":1241},"Perps leverage, more than 0.",{"start":1242,"end":1244},{"line":339,"column":584,"offset":1243},2209,{"line":339,"column":1245,"offset":1246},61,2237,{"start":1248,"end":1249},{"line":339,"column":971,"offset":1235},{"line":339,"column":1250,"offset":1251},63,2239,{"start":1253,"end":1254},{"line":339,"column":21,"offset":1204},{"line":339,"column":1250,"offset":1251},{"type":31,"tagName":225,"properties":1256,"children":1257,"position":1344},{},[1258,1285,1312,1328],{"type":31,"tagName":311,"properties":1259,"children":1260,"position":1280},{},[1261],{"type":31,"tagName":44,"properties":1262,"children":1263,"position":1275},{},[1264,1266,1269,1271,1274],{"type":27,"value":1265},"maintenance",{"type":31,"tagName":475,"properties":1267,"children":1268},{},[],{"type":27,"value":1270},"Margin",{"type":31,"tagName":475,"properties":1272,"children":1273},{},[],{"type":27,"value":479},{"start":1276,"end":1278},{"line":490,"column":237,"offset":1277},2242,{"line":490,"column":436,"offset":1279},2268,{"start":1281,"end":1283},{"line":490,"column":21,"offset":1282},2240,{"line":490,"column":966,"offset":1284},2269,{"type":31,"tagName":311,"properties":1286,"children":1287,"position":1308},{},[1288],{"type":31,"tagName":44,"properties":1289,"children":1290,"position":1302},{},[1291,1293,1296,1298,1301],{"type":27,"value":1292},"maintenance_",{"type":31,"tagName":475,"properties":1294,"children":1295},{},[],{"type":27,"value":1297},"margin_",{"type":31,"tagName":475,"properties":1299,"children":1300},{},[],{"type":27,"value":504},{"start":1303,"end":1305},{"line":490,"column":1053,"offset":1304},2271,{"line":490,"column":1306,"offset":1307},60,2299,{"start":1309,"end":1310},{"line":490,"column":966,"offset":1284},{"line":490,"column":1245,"offset":1311},2300,{"type":31,"tagName":311,"properties":1313,"children":1314,"position":1323},{},[1315],{"type":27,"value":1316,"position":1317},"0.5",{"start":1318,"end":1320},{"line":490,"column":1250,"offset":1319},2302,{"line":490,"column":1321,"offset":1322},66,2305,{"start":1324,"end":1325},{"line":490,"column":1245,"offset":1311},{"line":490,"column":1326,"offset":1327},67,2306,{"type":31,"tagName":311,"properties":1329,"children":1330,"position":1340},{},[1331],{"type":27,"value":1332,"position":1333},"Perps maintenance margin, at least 0 and under 100.",{"start":1334,"end":1337},{"line":490,"column":1335,"offset":1336},69,2308,{"line":490,"column":1338,"offset":1339},120,2359,{"start":1341,"end":1342},{"line":490,"column":1326,"offset":1327},{"line":490,"column":10,"offset":1343},2361,{"start":1345,"end":1346},{"line":490,"column":21,"offset":1282},{"line":490,"column":10,"offset":1343},{"type":31,"tagName":225,"properties":1348,"children":1349,"position":1464},{},[1350,1382,1431,1447],{"type":31,"tagName":311,"properties":1351,"children":1352,"position":1377},{},[1353,1363,1368],{"type":31,"tagName":44,"properties":1354,"children":1355,"position":1358},{},[1356],{"type":27,"value":1357},"makerFeePercent",{"start":1359,"end":1361},{"line":52,"column":237,"offset":1360},2364,{"line":52,"column":100,"offset":1362},2381,{"type":27,"value":126,"position":1364},{"start":1365,"end":1366},{"line":52,"column":100,"offset":1362},{"line":52,"column":339,"offset":1367},2383,{"type":31,"tagName":44,"properties":1369,"children":1370,"position":1373},{},[1371],{"type":27,"value":1372},"takerFeePercent",{"start":1374,"end":1375},{"line":52,"column":339,"offset":1367},{"line":52,"column":342,"offset":1376},2400,{"start":1378,"end":1380},{"line":52,"column":21,"offset":1379},2362,{"line":52,"column":347,"offset":1381},2401,{"type":31,"tagName":311,"properties":1383,"children":1384,"position":1427},{},[1385,1404,1409],{"type":31,"tagName":44,"properties":1386,"children":1387,"position":1399},{},[1388,1390,1393,1395,1398],{"type":27,"value":1389},"maker_",{"type":31,"tagName":475,"properties":1391,"children":1392},{},[],{"type":27,"value":1394},"fee_",{"type":31,"tagName":475,"properties":1396,"children":1397},{},[],{"type":27,"value":504},{"start":1400,"end":1402},{"line":52,"column":356,"offset":1401},2403,{"line":52,"column":1245,"offset":1403},2422,{"type":27,"value":126,"position":1405},{"start":1406,"end":1407},{"line":52,"column":1245,"offset":1403},{"line":52,"column":1250,"offset":1408},2424,{"type":31,"tagName":44,"properties":1410,"children":1411,"position":1422},{},[1412,1414,1417,1418,1421],{"type":27,"value":1413},"taker_",{"type":31,"tagName":475,"properties":1415,"children":1416},{},[],{"type":27,"value":1394},{"type":31,"tagName":475,"properties":1419,"children":1420},{},[],{"type":27,"value":504},{"start":1423,"end":1424},{"line":52,"column":1250,"offset":1408},{"line":52,"column":1425,"offset":1426},82,2443,{"start":1428,"end":1429},{"line":52,"column":347,"offset":1381},{"line":52,"column":458,"offset":1430},2444,{"type":31,"tagName":311,"properties":1432,"children":1433,"position":1442},{},[1434],{"type":27,"value":1435,"position":1436},"0, 0",{"start":1437,"end":1440},{"line":52,"column":1438,"offset":1439},85,2446,{"line":52,"column":150,"offset":1441},2450,{"start":1443,"end":1444},{"line":52,"column":458,"offset":1430},{"line":52,"column":1445,"offset":1446},90,2451,{"type":31,"tagName":311,"properties":1448,"children":1449,"position":1459},{},[1450],{"type":27,"value":1451,"position":1452},"Perps fee rates, percent of notional; maker on limit-bound fills, taker on market-crossing fills. Ignored on spot.",{"start":1453,"end":1456},{"line":52,"column":1454,"offset":1455},92,2453,{"line":52,"column":1457,"offset":1458},206,2567,{"start":1460,"end":1461},{"line":52,"column":1445,"offset":1446},{"line":52,"column":1462,"offset":1463},208,2569,{"start":1465,"end":1466},{"line":52,"column":21,"offset":1379},{"line":52,"column":1462,"offset":1463},{"type":31,"tagName":225,"properties":1468,"children":1469,"position":1562},{},[1470,1488,1504,1521],{"type":31,"tagName":311,"properties":1471,"children":1472,"position":1483},{},[1473],{"type":31,"tagName":44,"properties":1474,"children":1475,"position":1478},{},[1476],{"type":27,"value":1477},"funding",{"start":1479,"end":1481},{"line":261,"column":237,"offset":1480},2572,{"line":261,"column":721,"offset":1482},2581,{"start":1484,"end":1486},{"line":261,"column":21,"offset":1485},2570,{"line":261,"column":254,"offset":1487},2582,{"type":31,"tagName":311,"properties":1489,"children":1490,"position":1500},{},[1491],{"type":31,"tagName":44,"properties":1492,"children":1493,"position":1495},{},[1494],{"type":27,"value":1477},{"start":1496,"end":1498},{"line":261,"column":482,"offset":1497},2584,{"line":261,"column":52,"offset":1499},2593,{"start":1501,"end":1502},{"line":261,"column":254,"offset":1487},{"line":261,"column":261,"offset":1503},2594,{"type":31,"tagName":311,"properties":1505,"children":1506,"position":1517},{},[1507],{"type":31,"tagName":44,"properties":1508,"children":1509,"position":1512},{},[1510],{"type":27,"value":1511},"\"data\"",{"start":1513,"end":1515},{"line":261,"column":270,"offset":1514},2596,{"line":261,"column":278,"offset":1516},2604,{"start":1518,"end":1519},{"line":261,"column":261,"offset":1503},{"line":261,"column":439,"offset":1520},2605,{"type":31,"tagName":311,"properties":1522,"children":1523,"position":1557},{},[1524,1534,1541,1550],{"type":31,"tagName":44,"properties":1525,"children":1526,"position":1529},{},[1527],{"type":27,"value":1528},"\"off\"",{"start":1530,"end":1532},{"line":261,"column":602,"offset":1531},2607,{"line":261,"column":509,"offset":1533},2614,{"type":27,"value":1535,"position":1536}," is an exact no-op; ",{"start":1537,"end":1538},{"line":261,"column":509,"offset":1533},{"line":261,"column":1539,"offset":1540},65,2634,{"type":31,"tagName":44,"properties":1542,"children":1543,"position":1545},{},[1544],{"type":27,"value":1511},{"start":1546,"end":1547},{"line":261,"column":1539,"offset":1540},{"line":261,"column":1548,"offset":1549},73,2642,{"type":27,"value":1551,"position":1552}," settles recorded funding when funding data is attached, and counts the bars it cannot settle otherwise (the chart attaches none).",{"start":1553,"end":1554},{"line":261,"column":1548,"offset":1549},{"line":261,"column":1555,"offset":1556},203,2772,{"start":1558,"end":1559},{"line":261,"column":439,"offset":1520},{"line":261,"column":1560,"offset":1561},205,2774,{"start":1563,"end":1564},{"line":261,"column":21,"offset":1485},{"line":261,"column":1560,"offset":1561},{"type":31,"tagName":225,"properties":1566,"children":1567,"position":1646},{},[1568,1586,1603,1620],{"type":31,"tagName":311,"properties":1569,"children":1570,"position":1581},{},[1571],{"type":31,"tagName":44,"properties":1572,"children":1573,"position":1576},{},[1574],{"type":27,"value":1575},"onLiquidation",{"start":1577,"end":1579},{"line":420,"column":237,"offset":1578},2777,{"line":420,"column":638,"offset":1580},2792,{"start":1582,"end":1584},{"line":420,"column":21,"offset":1583},2775,{"line":420,"column":80,"offset":1585},2793,{"type":31,"tagName":311,"properties":1587,"children":1588,"position":1599},{},[1589],{"type":31,"tagName":44,"properties":1590,"children":1591,"position":1594},{},[1592],{"type":27,"value":1593},"on_liquidation",{"start":1595,"end":1597},{"line":420,"column":655,"offset":1596},2795,{"line":420,"column":287,"offset":1598},2811,{"start":1600,"end":1601},{"line":420,"column":80,"offset":1585},{"line":420,"column":602,"offset":1602},2812,{"type":31,"tagName":311,"properties":1604,"children":1605,"position":1616},{},[1606],{"type":31,"tagName":44,"properties":1607,"children":1608,"position":1611},{},[1609],{"type":27,"value":1610},"\"continue\"",{"start":1612,"end":1614},{"line":420,"column":347,"offset":1613},2814,{"line":420,"column":537,"offset":1615},2826,{"start":1617,"end":1618},{"line":420,"column":602,"offset":1602},{"line":420,"column":794,"offset":1619},2827,{"type":31,"tagName":311,"properties":1621,"children":1622,"position":1641},{},[1623,1634],{"type":31,"tagName":44,"properties":1624,"children":1625,"position":1628},{},[1626],{"type":27,"value":1627},"\"halt\"",{"start":1629,"end":1632},{"line":420,"column":1630,"offset":1631},55,2829,{"line":420,"column":1250,"offset":1633},2837,{"type":27,"value":1635,"position":1636}," rejects every entry after the first liquidation.",{"start":1637,"end":1638},{"line":420,"column":1250,"offset":1633},{"line":420,"column":1639,"offset":1640},112,2886,{"start":1642,"end":1643},{"line":420,"column":794,"offset":1619},{"line":420,"column":1644,"offset":1645},114,2888,{"start":1647,"end":1648},{"line":420,"column":21,"offset":1583},{"line":420,"column":1644,"offset":1645},{"start":1650,"end":1651},{"line":254,"column":21,"offset":326},{"line":420,"column":1644,"offset":1645},{"start":1653,"end":1654},{"line":236,"column":21,"offset":244},{"line":420,"column":1644,"offset":1645},{"type":27,"value":28},{"type":31,"tagName":32,"properties":1657,"children":1658,"position":1813},{},[1659,1668,1686,1693,1706,1713,1725,1732,1745,1751,1764,1771,1784,1791,1807],{"type":27,"value":1660,"position":1661},"Run derives the section into the sheet with the field names in the second column, and checks every value with the engine's rules as the file builds: a value out of range stops the build, with the problem in the editor's ",{"start":1662,"end":1665},{"line":1663,"column":21,"offset":1664},28,2890,{"line":1663,"column":1666,"offset":1667},221,3110,{"type":31,"tagName":1669,"properties":1670,"children":1671,"position":1681},"strong",{},[1672],{"type":27,"value":1673,"position":1674},"Console",{"start":1675,"end":1678},{"line":1663,"column":1676,"offset":1677},223,3112,{"line":1663,"column":1679,"offset":1680},230,3119,{"start":1682,"end":1683},{"line":1663,"column":1666,"offset":1667},{"line":1663,"column":1684,"offset":1685},232,3121,{"type":27,"value":1687,"position":1688},". A strategy's price input reads ",{"start":1689,"end":1690},{"line":1663,"column":1684,"offset":1685},{"line":1663,"column":1691,"offset":1692},265,3154,{"type":31,"tagName":44,"properties":1694,"children":1695,"position":1703},{},[1696],{"type":27,"value":1697,"position":1698},"ohlcv",{"start":1699,"end":1700},{"line":1663,"column":1691,"offset":1692},{"line":1663,"column":1701,"offset":1702},272,3161,{"start":1704,"end":1705},{"line":1663,"column":1691,"offset":1692},{"line":1663,"column":1701,"offset":1702},{"type":27,"value":1707,"position":1708}," on the chart's own market, with no symbol or exchange pin (a file with no ",{"start":1709,"end":1710},{"line":1663,"column":1701,"offset":1702},{"line":1663,"column":1711,"offset":1712},347,3236,{"type":31,"tagName":44,"properties":1714,"children":1715,"position":1722},{},[1716],{"type":27,"value":136,"position":1717},{"start":1718,"end":1719},{"line":1663,"column":1711,"offset":1712},{"line":1663,"column":1720,"offset":1721},354,3243,{"start":1723,"end":1724},{"line":1663,"column":1711,"offset":1712},{"line":1663,"column":1720,"offset":1721},{"type":27,"value":1726,"position":1727}," line gets the chart's close as that input): the broker fills against the chart's own candles, and any other primary input is refused by name. The names ",{"start":1728,"end":1729},{"line":1663,"column":1720,"offset":1721},{"line":1663,"column":1730,"offset":1731},507,3396,{"type":31,"tagName":44,"properties":1733,"children":1734,"position":1742},{},[1735],{"type":27,"value":1736,"position":1737},"strategy.position",{"start":1738,"end":1739},{"line":1663,"column":1730,"offset":1731},{"line":1663,"column":1740,"offset":1741},526,3415,{"start":1743,"end":1744},{"line":1663,"column":1730,"offset":1731},{"line":1663,"column":1740,"offset":1741},{"type":27,"value":146,"position":1746},{"start":1747,"end":1748},{"line":1663,"column":1740,"offset":1741},{"line":1663,"column":1749,"offset":1750},531,3420,{"type":31,"tagName":44,"properties":1752,"children":1753,"position":1761},{},[1754],{"type":27,"value":1755,"position":1756},"strategy.equity",{"start":1757,"end":1758},{"line":1663,"column":1749,"offset":1750},{"line":1663,"column":1759,"offset":1760},548,3437,{"start":1762,"end":1763},{"line":1663,"column":1749,"offset":1750},{"line":1663,"column":1759,"offset":1760},{"type":27,"value":1765,"position":1766}," are reserved for the strategy's own alert choices (\"Strategy position\" and \"Strategy equity\"): an output with either name is refused by name. There is no ",{"start":1767,"end":1768},{"line":1663,"column":1759,"offset":1760},{"line":1663,"column":1769,"offset":1770},703,3592,{"type":31,"tagName":44,"properties":1772,"children":1773,"position":1781},{},[1774],{"type":27,"value":1775,"position":1776},"calc_on_every_tick",{"start":1777,"end":1778},{"line":1663,"column":1769,"offset":1770},{"line":1663,"column":1779,"offset":1780},723,3612,{"start":1782,"end":1783},{"line":1663,"column":1769,"offset":1770},{"line":1663,"column":1779,"offset":1780},{"type":27,"value":1785,"position":1786},": live behavior is fixed, ",{"start":1787,"end":1788},{"line":1663,"column":1779,"offset":1780},{"line":1663,"column":1789,"offset":1790},749,3638,{"type":31,"tagName":1072,"properties":1792,"children":1793,"position":1802},{"href":1074},[1794],{"type":27,"value":1077,"position":1795},{"start":1796,"end":1799},{"line":1663,"column":1797,"offset":1798},750,3639,{"line":1663,"column":1800,"offset":1801},765,3654,{"start":1803,"end":1804},{"line":1663,"column":1789,"offset":1790},{"line":1663,"column":1805,"offset":1806},786,3675,{"type":27,"value":1808,"position":1809}," explains it.",{"start":1810,"end":1811},{"line":1663,"column":1805,"offset":1806},{"line":1663,"column":244,"offset":1812},3688,{"start":1814,"end":1815},{"line":1663,"column":21,"offset":1664},{"line":1663,"column":244,"offset":1812},{"type":27,"value":28},{"type":31,"tagName":69,"properties":1818,"children":1819,"position":1827},{},[1820],{"type":27,"value":1821,"position":1822},"The order API",{"start":1823,"end":1825},{"line":966,"column":77,"offset":1824},3693,{"line":966,"column":570,"offset":1826},3706,{"start":1828,"end":1830},{"line":966,"column":21,"offset":1829},3690,{"line":966,"column":570,"offset":1826},{"type":27,"value":28},{"type":31,"tagName":32,"properties":1833,"children":1834,"position":1842},{},[1835],{"type":27,"value":1836,"position":1837},"Every call maps to one engine broker call, with the engine's own validation:",{"start":1838,"end":1840},{"line":1053,"column":21,"offset":1839},3708,{"line":1053,"column":130,"offset":1841},3784,{"start":1843,"end":1844},{"line":1053,"column":21,"offset":1839},{"line":1053,"column":130,"offset":1841},{"type":27,"value":28},{"type":14,"children":1847},[1848],{"type":31,"tagName":1849,"properties":1850,"children":1853,"data":-1},"pre",{"class":1851,"style":1852,"tabindex":519},"shiki shiki-themes github-dark github-light","--shiki-dark:#e1e4e8;--shiki-light:#24292e;--shiki-dark-bg:#24292e;--shiki-light-bg:#fff",[1854],{"type":31,"tagName":44,"properties":1855,"children":1858},{"class":1856},[1857],"language-text",[1859,1869,1870,1878,1879,1887,1888,1896,1897,1905,1906,1914,1915],{"type":31,"tagName":1860,"properties":1861,"children":1863},"span",{"class":1862},"line",[1864],{"type":31,"tagName":1860,"properties":1865,"children":1866},{},[1867],{"type":27,"value":1868},"strategy.long(id).qty(n).limit(px).stop(px).oca(name).send()      // strategy.entry(id, \"long\", ...)",{"type":27,"value":28},{"type":31,"tagName":1860,"properties":1871,"children":1872},{"class":1862},[1873],{"type":31,"tagName":1860,"properties":1874,"children":1875},{},[1876],{"type":27,"value":1877},"strategy.short(id).qty(n).limit(px).stop(px).oca(name).send()     // strategy.entry(id, \"short\", ...)",{"type":27,"value":28},{"type":31,"tagName":1860,"properties":1880,"children":1881},{"class":1862},[1882],{"type":31,"tagName":1860,"properties":1883,"children":1884},{},[1885],{"type":27,"value":1886},"strategy.exit(id).from(entryId).qty(n).qtyPercent(p)",{"type":27,"value":28},{"type":31,"tagName":1860,"properties":1889,"children":1890},{"class":1862},[1891],{"type":31,"tagName":1860,"properties":1892,"children":1893},{},[1894],{"type":27,"value":1895},"                 .profit(pts).limit(px).loss(pts).stop(px)",{"type":27,"value":28},{"type":31,"tagName":1860,"properties":1898,"children":1899},{"class":1862},[1900],{"type":31,"tagName":1860,"properties":1901,"children":1902},{},[1903],{"type":27,"value":1904},"                 .trail(points, offset).oca(name).send()          // strategy.exit(id, fromEntry, ...)",{"type":27,"value":28},{"type":31,"tagName":1860,"properties":1907,"children":1908},{"class":1862},[1909],{"type":31,"tagName":1860,"properties":1910,"children":1911},{},[1912],{"type":27,"value":1913},"strategy.close(id)     strategy.closeAll()                        // market, next open",{"type":27,"value":28},{"type":31,"tagName":1860,"properties":1916,"children":1917},{"class":1862},[1918],{"type":31,"tagName":1860,"properties":1919,"children":1920},{},[1921],{"type":27,"value":1922},"strategy.cancel(id)    strategy.cancelAll()                       // pending unfilled orders",{"type":27,"value":28},{"type":31,"tagName":1925,"properties":1926,"children":1927,"position":2520},"ul",{},[1928,1929,2001,2002,2121,2122,2187,2188,2214,2215,2321,2322,2519],{"type":27,"value":28},{"type":31,"tagName":1930,"properties":1931,"children":1932,"position":1997},"li",{},[1933,1940,1952,1958,1971,1977,1990],{"type":27,"value":1934,"position":1935},"A plain ",{"start":1936,"end":1938},{"line":290,"column":237,"offset":1937},4399,{"line":290,"column":236,"offset":1939},4407,{"type":31,"tagName":44,"properties":1941,"children":1942,"position":1949},{},[1943],{"type":27,"value":1944,"position":1945},"strategy.long(id).send()",{"start":1946,"end":1947},{"line":290,"column":236,"offset":1939},{"line":290,"column":287,"offset":1948},4433,{"start":1950,"end":1951},{"line":290,"column":236,"offset":1939},{"line":290,"column":287,"offset":1948},{"type":27,"value":1953,"position":1954}," is a market order for the next bar's open. ",{"start":1955,"end":1956},{"line":290,"column":287,"offset":1948},{"line":290,"column":381,"offset":1957},4477,{"type":31,"tagName":44,"properties":1959,"children":1960,"position":1968},{},[1961],{"type":27,"value":1962,"position":1963},"limit",{"start":1964,"end":1965},{"line":290,"column":381,"offset":1957},{"line":290,"column":1966,"offset":1967},88,4484,{"start":1969,"end":1970},{"line":290,"column":381,"offset":1957},{"line":290,"column":1966,"offset":1967},{"type":27,"value":1972,"position":1973}," or ",{"start":1974,"end":1975},{"line":290,"column":1966,"offset":1967},{"line":290,"column":1454,"offset":1976},4488,{"type":31,"tagName":44,"properties":1978,"children":1979,"position":1987},{},[1980],{"type":27,"value":1981,"position":1982},"stop",{"start":1983,"end":1984},{"line":290,"column":1454,"offset":1976},{"line":290,"column":1985,"offset":1986},98,4494,{"start":1988,"end":1989},{"line":290,"column":1454,"offset":1976},{"line":290,"column":1985,"offset":1986},{"type":27,"value":1991,"position":1992}," makes it a resting order that fills when touched; both on one entry is rejected and counted. Re-issuing an id replaces the pending unfilled order with that id.",{"start":1993,"end":1994},{"line":290,"column":1985,"offset":1986},{"line":290,"column":1995,"offset":1996},258,4654,{"start":1998,"end":2000},{"line":290,"column":21,"offset":1999},4397,{"line":290,"column":1995,"offset":1996},{"type":27,"value":28},{"type":31,"tagName":1930,"properties":2003,"children":2004,"position":2117},{},[2005,2018,2025,2037,2043,2055,2062,2074,2079,2091,2098,2111],{"type":31,"tagName":44,"properties":2006,"children":2007,"position":2015},{},[2008],{"type":27,"value":2009,"position":2010},"strategy.exit(id)",{"start":2011,"end":2013},{"line":509,"column":237,"offset":2012},4657,{"line":509,"column":339,"offset":2014},4676,{"start":2016,"end":2017},{"line":509,"column":237,"offset":2012},{"line":509,"column":339,"offset":2014},{"type":27,"value":2019,"position":2020}," attaches bracket legs to an entry: ",{"start":2021,"end":2022},{"line":509,"column":339,"offset":2014},{"line":509,"column":2023,"offset":2024},58,4712,{"type":31,"tagName":44,"properties":2026,"children":2027,"position":2034},{},[2028],{"type":27,"value":2029,"position":2030},"profit",{"start":2031,"end":2032},{"line":509,"column":2023,"offset":2024},{"line":509,"column":1321,"offset":2033},4720,{"start":2035,"end":2036},{"line":509,"column":2023,"offset":2024},{"line":509,"column":1321,"offset":2033},{"type":27,"value":146,"position":2038},{"start":2039,"end":2040},{"line":509,"column":1321,"offset":2033},{"line":509,"column":2041,"offset":2042},71,4725,{"type":31,"tagName":44,"properties":2044,"children":2045,"position":2052},{},[2046],{"type":27,"value":2047,"position":2048},"loss",{"start":2049,"end":2050},{"line":509,"column":2041,"offset":2042},{"line":509,"column":130,"offset":2051},4731,{"start":2053,"end":2054},{"line":509,"column":2041,"offset":2042},{"line":509,"column":130,"offset":2051},{"type":27,"value":2056,"position":2057}," in price points, ",{"start":2058,"end":2059},{"line":509,"column":130,"offset":2051},{"line":509,"column":2060,"offset":2061},95,4749,{"type":31,"tagName":44,"properties":2063,"children":2064,"position":2071},{},[2065],{"type":27,"value":1962,"position":2066},{"start":2067,"end":2068},{"line":509,"column":2060,"offset":2061},{"line":509,"column":2069,"offset":2070},102,4756,{"start":2072,"end":2073},{"line":509,"column":2060,"offset":2061},{"line":509,"column":2069,"offset":2070},{"type":27,"value":146,"position":2075},{"start":2076,"end":2077},{"line":509,"column":2069,"offset":2070},{"line":509,"column":836,"offset":2078},4761,{"type":31,"tagName":44,"properties":2080,"children":2081,"position":2088},{},[2082],{"type":27,"value":1981,"position":2083},{"start":2084,"end":2085},{"line":509,"column":836,"offset":2078},{"line":509,"column":2086,"offset":2087},113,4767,{"start":2089,"end":2090},{"line":509,"column":836,"offset":2078},{"line":509,"column":2086,"offset":2087},{"type":27,"value":2092,"position":2093}," as absolute prices, at least one leg. Without ",{"start":2094,"end":2095},{"line":509,"column":2086,"offset":2087},{"line":509,"column":2096,"offset":2097},160,4814,{"type":31,"tagName":44,"properties":2099,"children":2100,"position":2108},{},[2101],{"type":27,"value":2102,"position":2103},"from",{"start":2104,"end":2105},{"line":509,"column":2096,"offset":2097},{"line":509,"column":2106,"offset":2107},166,4820,{"start":2109,"end":2110},{"line":509,"column":2096,"offset":2097},{"line":509,"column":2106,"offset":2107},{"type":27,"value":2112,"position":2113}," it protects every open entry. Stop, limit and trail legs under one exit id are one-cancels-all.",{"start":2114,"end":2115},{"line":509,"column":2106,"offset":2107},{"line":509,"column":200,"offset":2116},4916,{"start":2118,"end":2120},{"line":509,"column":21,"offset":2119},4655,{"line":509,"column":200,"offset":2116},{"type":27,"value":28},{"type":31,"tagName":1930,"properties":2123,"children":2124,"position":2183},{},[2125,2138,2144,2157,2164,2177],{"type":31,"tagName":44,"properties":2126,"children":2127,"position":2135},{},[2128],{"type":27,"value":2129,"position":2130},"trail(points, offset)",{"start":2131,"end":2133},{"line":295,"column":237,"offset":2132},4919,{"line":295,"column":420,"offset":2134},4942,{"start":2136,"end":2137},{"line":295,"column":237,"offset":2132},{"line":295,"column":420,"offset":2134},{"type":27,"value":2139,"position":2140}," activates a trailing stop once the trade's favorable excursion reaches ",{"start":2141,"end":2142},{"line":295,"column":420,"offset":2134},{"line":295,"column":1985,"offset":2143},5014,{"type":31,"tagName":44,"properties":2145,"children":2146,"position":2154},{},[2147],{"type":27,"value":2148,"position":2149},"points",{"start":2150,"end":2151},{"line":295,"column":1985,"offset":2143},{"line":295,"column":2152,"offset":2153},106,5022,{"start":2155,"end":2156},{"line":295,"column":1985,"offset":2143},{"line":295,"column":2152,"offset":2153},{"type":27,"value":2158,"position":2159},", then ratchets with new extremes at ",{"start":2160,"end":2161},{"line":295,"column":2152,"offset":2153},{"line":295,"column":2162,"offset":2163},143,5059,{"type":31,"tagName":44,"properties":2165,"children":2166,"position":2174},{},[2167],{"type":27,"value":2168,"position":2169},"offset",{"start":2170,"end":2171},{"line":295,"column":2162,"offset":2163},{"line":295,"column":2172,"offset":2173},151,5067,{"start":2175,"end":2176},{"line":295,"column":2162,"offset":2163},{"line":295,"column":2172,"offset":2173},{"type":27,"value":2178,"position":2179}," behind them.",{"start":2180,"end":2181},{"line":295,"column":2172,"offset":2173},{"line":295,"column":170,"offset":2182},5080,{"start":2184,"end":2186},{"line":295,"column":21,"offset":2185},4917,{"line":295,"column":170,"offset":2182},{"type":27,"value":28},{"type":31,"tagName":1930,"properties":2189,"children":2190,"position":2210},{},[2191,2204],{"type":31,"tagName":44,"properties":2192,"children":2193,"position":2201},{},[2194],{"type":27,"value":2195,"position":2196},"oca(name)",{"start":2197,"end":2199},{"line":359,"column":237,"offset":2198},5083,{"line":359,"column":399,"offset":2200},5094,{"start":2202,"end":2203},{"line":359,"column":237,"offset":2198},{"line":359,"column":399,"offset":2200},{"type":27,"value":2205,"position":2206}," joins any orders, entries and exits alike, into a one-cancels-all group: when one fills, the rest cancel.",{"start":2207,"end":2208},{"line":359,"column":399,"offset":2200},{"line":359,"column":1338,"offset":2209},5200,{"start":2211,"end":2213},{"line":359,"column":21,"offset":2212},5081,{"line":359,"column":1338,"offset":2209},{"type":27,"value":28},{"type":31,"tagName":1930,"properties":2216,"children":2217,"position":2317},{},[2218,2225,2237,2243,2255,2260,2272,2278,2291,2298,2310],{"type":27,"value":2219,"position":2220},"The builders are preallocated singletons: ",{"start":2221,"end":2223},{"line":364,"column":237,"offset":2222},5203,{"line":364,"column":509,"offset":2224},5245,{"type":31,"tagName":44,"properties":2226,"children":2227,"position":2234},{},[2228],{"type":27,"value":2229,"position":2230},"strategy.long",{"start":2231,"end":2232},{"line":364,"column":509,"offset":2224},{"line":364,"column":1306,"offset":2233},5260,{"start":2235,"end":2236},{"line":364,"column":509,"offset":2224},{"line":364,"column":1306,"offset":2233},{"type":27,"value":126,"position":2238},{"start":2239,"end":2240},{"line":364,"column":1306,"offset":2233},{"line":364,"column":2241,"offset":2242},62,5262,{"type":31,"tagName":44,"properties":2244,"children":2245,"position":2252},{},[2246],{"type":27,"value":2247,"position":2248},"strategy.short",{"start":2249,"end":2250},{"line":364,"column":2241,"offset":2242},{"line":364,"column":808,"offset":2251},5278,{"start":2253,"end":2254},{"line":364,"column":2241,"offset":2242},{"line":364,"column":808,"offset":2251},{"type":27,"value":146,"position":2256},{"start":2257,"end":2258},{"line":364,"column":808,"offset":2251},{"line":364,"column":458,"offset":2259},5283,{"type":31,"tagName":44,"properties":2261,"children":2262,"position":2269},{},[2263],{"type":27,"value":2264,"position":2265},"strategy.exit",{"start":2266,"end":2267},{"line":364,"column":458,"offset":2259},{"line":364,"column":1985,"offset":2268},5298,{"start":2270,"end":2271},{"line":364,"column":458,"offset":2259},{"line":364,"column":1985,"offset":2268},{"type":27,"value":2273,"position":2274}," each reset one builder, the setters fill its legs, and ",{"start":2275,"end":2276},{"line":364,"column":1985,"offset":2268},{"line":364,"column":868,"offset":2277},5354,{"type":31,"tagName":44,"properties":2279,"children":2280,"position":2288},{},[2281],{"type":27,"value":2282,"position":2283},"send()",{"start":2284,"end":2285},{"line":364,"column":868,"offset":2277},{"line":364,"column":2286,"offset":2287},162,5362,{"start":2289,"end":2290},{"line":364,"column":868,"offset":2277},{"line":364,"column":2286,"offset":2287},{"type":27,"value":2292,"position":2293}," is the only call that reaches the broker, so finish one order before starting the next. An unset leg is absent. There is no ",{"start":2294,"end":2295},{"line":364,"column":2286,"offset":2287},{"line":364,"column":2296,"offset":2297},287,5487,{"type":31,"tagName":44,"properties":2299,"children":2300,"position":2307},{},[2301],{"type":27,"value":17,"position":2302},{"start":2303,"end":2304},{"line":364,"column":2296,"offset":2297},{"line":364,"column":2305,"offset":2306},296,5496,{"start":2308,"end":2309},{"line":364,"column":2296,"offset":2297},{"line":364,"column":2305,"offset":2306},{"type":27,"value":2311,"position":2312},": the engine keeps it on no record.",{"start":2313,"end":2314},{"line":364,"column":2305,"offset":2306},{"line":364,"column":2315,"offset":2316},331,5531,{"start":2318,"end":2320},{"line":364,"column":21,"offset":2319},5201,{"line":364,"column":2315,"offset":2316},{"type":27,"value":28},{"type":31,"tagName":1930,"properties":2323,"children":2324,"position":2515},{},[2325,2332,2344,2350,2362,2369,2381,2386,2399,2404,2416,2422,2435,2441,2453,2458,2471,2477,2490,2496,2509],{"type":27,"value":2326,"position":2327},"Getters, valid in ",{"start":2328,"end":2330},{"line":524,"column":237,"offset":2329},5534,{"line":524,"column":655,"offset":2331},5552,{"type":31,"tagName":44,"properties":2333,"children":2334,"position":2341},{},[2335],{"type":27,"value":2336,"position":2337},"onBar()",{"start":2338,"end":2339},{"line":524,"column":655,"offset":2331},{"line":524,"column":966,"offset":2340},5561,{"start":2342,"end":2343},{"line":524,"column":655,"offset":2331},{"line":524,"column":966,"offset":2340},{"type":27,"value":2345,"position":2346}," beside the order calls: ",{"start":2347,"end":2348},{"line":524,"column":966,"offset":2340},{"line":524,"column":1630,"offset":2349},5586,{"type":31,"tagName":44,"properties":2351,"children":2352,"position":2359},{},[2353],{"type":27,"value":2354,"position":2355},"strategy.positionSize()",{"start":2356,"end":2357},{"line":524,"column":1630,"offset":2349},{"line":524,"column":817,"offset":2358},5611,{"start":2360,"end":2361},{"line":524,"column":1630,"offset":2349},{"line":524,"column":817,"offset":2358},{"type":27,"value":2363,"position":2364}," (signed), ",{"start":2365,"end":2366},{"line":524,"column":817,"offset":2358},{"line":524,"column":2367,"offset":2368},91,5622,{"type":31,"tagName":44,"properties":2370,"children":2371,"position":2378},{},[2372],{"type":27,"value":2373,"position":2374},"strategy.positionAvgPrice()",{"start":2375,"end":2376},{"line":524,"column":2367,"offset":2368},{"line":524,"column":1338,"offset":2377},5651,{"start":2379,"end":2380},{"line":524,"column":2367,"offset":2368},{"line":524,"column":1338,"offset":2377},{"type":27,"value":126,"position":2382},{"start":2383,"end":2384},{"line":524,"column":1338,"offset":2377},{"line":524,"column":10,"offset":2385},5653,{"type":31,"tagName":44,"properties":2387,"children":2388,"position":2396},{},[2389],{"type":27,"value":2390,"position":2391},"strategy.equity()",{"start":2392,"end":2393},{"line":524,"column":10,"offset":2385},{"line":524,"column":2394,"offset":2395},141,5672,{"start":2397,"end":2398},{"line":524,"column":10,"offset":2385},{"line":524,"column":2394,"offset":2395},{"type":27,"value":126,"position":2400},{"start":2401,"end":2402},{"line":524,"column":2394,"offset":2395},{"line":524,"column":2162,"offset":2403},5674,{"type":31,"tagName":44,"properties":2405,"children":2406,"position":2413},{},[2407],{"type":27,"value":2408,"position":2409},"strategy.openProfit()",{"start":2410,"end":2411},{"line":524,"column":2162,"offset":2403},{"line":524,"column":2106,"offset":2412},5697,{"start":2414,"end":2415},{"line":524,"column":2162,"offset":2403},{"line":524,"column":2106,"offset":2412},{"type":27,"value":126,"position":2417},{"start":2418,"end":2419},{"line":524,"column":2106,"offset":2412},{"line":524,"column":2420,"offset":2421},168,5699,{"type":31,"tagName":44,"properties":2423,"children":2424,"position":2432},{},[2425],{"type":27,"value":2426,"position":2427},"strategy.netProfit()",{"start":2428,"end":2429},{"line":524,"column":2420,"offset":2421},{"line":524,"column":2430,"offset":2431},190,5721,{"start":2433,"end":2434},{"line":524,"column":2420,"offset":2421},{"line":524,"column":2430,"offset":2431},{"type":27,"value":126,"position":2436},{"start":2437,"end":2438},{"line":524,"column":2430,"offset":2431},{"line":524,"column":2439,"offset":2440},192,5723,{"type":31,"tagName":44,"properties":2442,"children":2443,"position":2450},{},[2444],{"type":27,"value":2445,"position":2446},"strategy.closedTradeCount()",{"start":2447,"end":2448},{"line":524,"column":2439,"offset":2440},{"line":524,"column":1666,"offset":2449},5752,{"start":2451,"end":2452},{"line":524,"column":2439,"offset":2440},{"line":524,"column":1666,"offset":2449},{"type":27,"value":126,"position":2454},{"start":2455,"end":2456},{"line":524,"column":1666,"offset":2449},{"line":524,"column":1676,"offset":2457},5754,{"type":31,"tagName":44,"properties":2459,"children":2460,"position":2468},{},[2461],{"type":27,"value":2462,"position":2463},"strategy.winTradeCount()",{"start":2464,"end":2465},{"line":524,"column":1676,"offset":2457},{"line":524,"column":2466,"offset":2467},249,5780,{"start":2469,"end":2470},{"line":524,"column":1676,"offset":2457},{"line":524,"column":2466,"offset":2467},{"type":27,"value":126,"position":2472},{"start":2473,"end":2474},{"line":524,"column":2466,"offset":2467},{"line":524,"column":2475,"offset":2476},251,5782,{"type":31,"tagName":44,"properties":2478,"children":2479,"position":2487},{},[2480],{"type":27,"value":2481,"position":2482},"strategy.lossTradeCount()",{"start":2483,"end":2484},{"line":524,"column":2475,"offset":2476},{"line":524,"column":2485,"offset":2486},278,5809,{"start":2488,"end":2489},{"line":524,"column":2475,"offset":2476},{"line":524,"column":2485,"offset":2486},{"type":27,"value":126,"position":2491},{"start":2492,"end":2493},{"line":524,"column":2485,"offset":2486},{"line":524,"column":2494,"offset":2495},280,5811,{"type":31,"tagName":44,"properties":2497,"children":2498,"position":2506},{},[2499],{"type":27,"value":2500,"position":2501},"strategy.maxDrawdown()",{"start":2502,"end":2503},{"line":524,"column":2494,"offset":2495},{"line":524,"column":2504,"offset":2505},304,5835,{"start":2507,"end":2508},{"line":524,"column":2494,"offset":2495},{"line":524,"column":2504,"offset":2505},{"type":27,"value":1090,"position":2510},{"start":2511,"end":2512},{"line":524,"column":2504,"offset":2505},{"line":524,"column":2513,"offset":2514},305,5836,{"start":2516,"end":2518},{"line":524,"column":21,"offset":2517},5532,{"line":524,"column":2513,"offset":2514},{"type":27,"value":28},{"start":2521,"end":2522},{"line":290,"column":21,"offset":1999},{"line":524,"column":2513,"offset":2514},{"type":27,"value":28},{"type":31,"tagName":32,"properties":2525,"children":2526,"position":2534},{},[2527],{"type":27,"value":2528,"position":2529},"A crossover entry bracketed by both a stop and a take-profit limit; whichever the market touches first closes the trade and cancels the other side:",{"start":2530,"end":2532},{"line":772,"column":21,"offset":2531},5838,{"line":772,"column":618,"offset":2533},5985,{"start":2535,"end":2536},{"line":772,"column":21,"offset":2531},{"line":772,"column":618,"offset":2533},{"type":27,"value":28},{"type":14,"children":2539},[2540],{"type":31,"tagName":1849,"properties":2541,"children":2543,"data":-1},{"class":1851,"style":1852,"tabindex":519,"data-sample":2542},"strat-trend-brackets",[2544],{"type":31,"tagName":44,"properties":2545,"children":2548},{"class":2546},[2547],"language-typescript",[2549,2558,2559,2622,2623,2654,2655,2684,2685,2688,2689,2732,2733,2770,2771,2801,2802,2805,2806,2839,2840,2871,2872,2903,2904,2933,2934,2982,2983,3013,3014,3069,3070,3192,3193,3206,3207,3220,3221],{"type":31,"tagName":1860,"properties":2550,"children":2551},{"class":1862},[2552],{"type":31,"tagName":1860,"properties":2553,"children":2555},{"style":2554},"--shiki-dark:#6A737D;--shiki-light:#6A737D",[2556],{"type":27,"value":2557},"// Trend entries with bracket exits: a stop and a take-profit limit on one exit id, whichever the market touches first closes the trade and cancels the other.",{"type":27,"value":28},{"type":31,"tagName":1860,"properties":2560,"children":2561},{"class":1862},[2562,2568,2574,2579,2584,2589,2594,2598,2603,2607,2612,2617],{"type":31,"tagName":1860,"properties":2563,"children":2565},{"style":2564},"--shiki-dark:#B392F0;--shiki-light:#6F42C1",[2566],{"type":27,"value":2567},"strategy",{"type":31,"tagName":1860,"properties":2569,"children":2571},{"style":2570},"--shiki-dark:#E1E4E8;--shiki-light:#24292E",[2572],{"type":27,"value":2573},"({ initialCapital: ",{"type":31,"tagName":1860,"properties":2575,"children":2577},{"style":2576},"--shiki-dark:#79B8FF;--shiki-light:#005CC5",[2578],{"type":27,"value":353},{"type":31,"tagName":1860,"properties":2580,"children":2581},{"style":2570},[2582],{"type":27,"value":2583},", qtyType: ",{"type":31,"tagName":1860,"properties":2585,"children":2587},{"style":2586},"--shiki-dark:#9ECBFF;--shiki-light:#032F62",[2588],{"type":27,"value":670},{"type":31,"tagName":1860,"properties":2590,"children":2591},{"style":2570},[2592],{"type":27,"value":2593},", qtyValue: ",{"type":31,"tagName":1860,"properties":2595,"children":2596},{"style":2576},[2597],{"type":27,"value":977},{"type":31,"tagName":1860,"properties":2599,"children":2600},{"style":2570},[2601],{"type":27,"value":2602},", pyramiding: ",{"type":31,"tagName":1860,"properties":2604,"children":2605},{"style":2576},[2606],{"type":27,"value":977},{"type":31,"tagName":1860,"properties":2608,"children":2609},{"style":2570},[2610],{"type":27,"value":2611},", fillModel: ",{"type":31,"tagName":1860,"properties":2613,"children":2614},{"style":2586},[2615],{"type":27,"value":2616},"\"pathHeuristic\"",{"type":31,"tagName":1860,"properties":2618,"children":2619},{"style":2570},[2620],{"type":27,"value":2621}," });",{"type":27,"value":28},{"type":31,"tagName":1860,"properties":2624,"children":2625},{"class":1862},[2626,2630,2635,2640,2645,2650],{"type":31,"tagName":1860,"properties":2627,"children":2628},{"style":2564},[2629],{"type":27,"value":156},{"type":31,"tagName":1860,"properties":2631,"children":2632},{"style":2570},[2633],{"type":27,"value":2634},"(",{"type":31,"tagName":1860,"properties":2636,"children":2637},{"style":2586},[2638],{"type":27,"value":2639},"\"fast\"",{"type":31,"tagName":1860,"properties":2641,"children":2642},{"style":2570},[2643],{"type":27,"value":2644},", line, overlay, { description: ",{"type":31,"tagName":1860,"properties":2646,"children":2647},{"style":2586},[2648],{"type":27,"value":2649},"\"5-period SMA of close\"",{"type":31,"tagName":1860,"properties":2651,"children":2652},{"style":2570},[2653],{"type":27,"value":2621},{"type":27,"value":28},{"type":31,"tagName":1860,"properties":2656,"children":2657},{"class":1862},[2658,2662,2666,2671,2675,2680],{"type":31,"tagName":1860,"properties":2659,"children":2660},{"style":2564},[2661],{"type":27,"value":156},{"type":31,"tagName":1860,"properties":2663,"children":2664},{"style":2570},[2665],{"type":27,"value":2634},{"type":31,"tagName":1860,"properties":2667,"children":2668},{"style":2586},[2669],{"type":27,"value":2670},"\"slow\"",{"type":31,"tagName":1860,"properties":2672,"children":2673},{"style":2570},[2674],{"type":27,"value":2644},{"type":31,"tagName":1860,"properties":2676,"children":2677},{"style":2586},[2678],{"type":27,"value":2679},"\"20-period SMA of close\"",{"type":31,"tagName":1860,"properties":2681,"children":2682},{"style":2570},[2683],{"type":27,"value":2621},{"type":27,"value":28},{"type":31,"tagName":1860,"properties":2686,"children":2687},{"class":1862},[],{"type":27,"value":28},{"type":31,"tagName":1860,"properties":2690,"children":2691},{"class":1862},[2692,2698,2703,2708,2713,2718,2722,2727],{"type":31,"tagName":1860,"properties":2693,"children":2695},{"style":2694},"--shiki-dark:#F97583;--shiki-light:#D73A49",[2696],{"type":27,"value":2697},"const",{"type":31,"tagName":1860,"properties":2699,"children":2700},{"style":2576},[2701],{"type":27,"value":2702}," fastSma",{"type":31,"tagName":1860,"properties":2704,"children":2705},{"style":2694},[2706],{"type":27,"value":2707}," =",{"type":31,"tagName":1860,"properties":2709,"children":2710},{"style":2694},[2711],{"type":27,"value":2712}," new",{"type":31,"tagName":1860,"properties":2714,"children":2715},{"style":2564},[2716],{"type":27,"value":2717}," Sma",{"type":31,"tagName":1860,"properties":2719,"children":2720},{"style":2570},[2721],{"type":27,"value":2634},{"type":31,"tagName":1860,"properties":2723,"children":2724},{"style":2576},[2725],{"type":27,"value":2726},"5",{"type":31,"tagName":1860,"properties":2728,"children":2729},{"style":2570},[2730],{"type":27,"value":2731},");",{"type":27,"value":28},{"type":31,"tagName":1860,"properties":2734,"children":2735},{"class":1862},[2736,2740,2745,2749,2753,2757,2761,2766],{"type":31,"tagName":1860,"properties":2737,"children":2738},{"style":2694},[2739],{"type":27,"value":2697},{"type":31,"tagName":1860,"properties":2741,"children":2742},{"style":2576},[2743],{"type":27,"value":2744}," slowSma",{"type":31,"tagName":1860,"properties":2746,"children":2747},{"style":2694},[2748],{"type":27,"value":2707},{"type":31,"tagName":1860,"properties":2750,"children":2751},{"style":2694},[2752],{"type":27,"value":2712},{"type":31,"tagName":1860,"properties":2754,"children":2755},{"style":2564},[2756],{"type":27,"value":2717},{"type":31,"tagName":1860,"properties":2758,"children":2759},{"style":2570},[2760],{"type":27,"value":2634},{"type":31,"tagName":1860,"properties":2762,"children":2763},{"style":2576},[2764],{"type":27,"value":2765},"20",{"type":31,"tagName":1860,"properties":2767,"children":2768},{"style":2570},[2769],{"type":27,"value":2731},{"type":27,"value":28},{"type":31,"tagName":1860,"properties":2772,"children":2773},{"class":1862},[2774,2778,2783,2787,2791,2796],{"type":31,"tagName":1860,"properties":2775,"children":2776},{"style":2694},[2777],{"type":27,"value":2697},{"type":31,"tagName":1860,"properties":2779,"children":2780},{"style":2576},[2781],{"type":27,"value":2782}," cross",{"type":31,"tagName":1860,"properties":2784,"children":2785},{"style":2694},[2786],{"type":27,"value":2707},{"type":31,"tagName":1860,"properties":2788,"children":2789},{"style":2694},[2790],{"type":27,"value":2712},{"type":31,"tagName":1860,"properties":2792,"children":2793},{"style":2564},[2794],{"type":27,"value":2795}," Cross",{"type":31,"tagName":1860,"properties":2797,"children":2798},{"style":2570},[2799],{"type":27,"value":2800},"();",{"type":27,"value":28},{"type":31,"tagName":1860,"properties":2803,"children":2804},{"class":1862},[],{"type":27,"value":28},{"type":31,"tagName":1860,"properties":2807,"children":2808},{"class":1862},[2809,2814,2819,2824,2829,2834],{"type":31,"tagName":1860,"properties":2810,"children":2811},{"style":2694},[2812],{"type":27,"value":2813},"function",{"type":31,"tagName":1860,"properties":2815,"children":2816},{"style":2564},[2817],{"type":27,"value":2818}," onBar",{"type":31,"tagName":1860,"properties":2820,"children":2821},{"style":2570},[2822],{"type":27,"value":2823},"()",{"type":31,"tagName":1860,"properties":2825,"children":2826},{"style":2694},[2827],{"type":27,"value":2828},":",{"type":31,"tagName":1860,"properties":2830,"children":2831},{"style":2576},[2832],{"type":27,"value":2833}," void",{"type":31,"tagName":1860,"properties":2835,"children":2836},{"style":2570},[2837],{"type":27,"value":2838}," {",{"type":27,"value":28},{"type":31,"tagName":1860,"properties":2841,"children":2842},{"class":1862},[2843,2848,2853,2857,2862,2867],{"type":31,"tagName":1860,"properties":2844,"children":2845},{"style":2694},[2846],{"type":27,"value":2847},"  const",{"type":31,"tagName":1860,"properties":2849,"children":2850},{"style":2576},[2851],{"type":27,"value":2852}," close",{"type":31,"tagName":1860,"properties":2854,"children":2855},{"style":2694},[2856],{"type":27,"value":2707},{"type":31,"tagName":1860,"properties":2858,"children":2859},{"style":2570},[2860],{"type":27,"value":2861}," bar.",{"type":31,"tagName":1860,"properties":2863,"children":2864},{"style":2564},[2865],{"type":27,"value":2866},"close",{"type":31,"tagName":1860,"properties":2868,"children":2869},{"style":2570},[2870],{"type":27,"value":2800},{"type":27,"value":28},{"type":31,"tagName":1860,"properties":2873,"children":2874},{"class":1862},[2875,2879,2884,2888,2893,2898],{"type":31,"tagName":1860,"properties":2876,"children":2877},{"style":2694},[2878],{"type":27,"value":2847},{"type":31,"tagName":1860,"properties":2880,"children":2881},{"style":2576},[2882],{"type":27,"value":2883}," fast",{"type":31,"tagName":1860,"properties":2885,"children":2886},{"style":2694},[2887],{"type":27,"value":2707},{"type":31,"tagName":1860,"properties":2889,"children":2890},{"style":2570},[2891],{"type":27,"value":2892}," fastSma.",{"type":31,"tagName":1860,"properties":2894,"children":2895},{"style":2564},[2896],{"type":27,"value":2897},"update",{"type":31,"tagName":1860,"properties":2899,"children":2900},{"style":2570},[2901],{"type":27,"value":2902},"(close);",{"type":27,"value":28},{"type":31,"tagName":1860,"properties":2905,"children":2906},{"class":1862},[2907,2911,2916,2920,2925,2929],{"type":31,"tagName":1860,"properties":2908,"children":2909},{"style":2694},[2910],{"type":27,"value":2847},{"type":31,"tagName":1860,"properties":2912,"children":2913},{"style":2576},[2914],{"type":27,"value":2915}," slow",{"type":31,"tagName":1860,"properties":2917,"children":2918},{"style":2694},[2919],{"type":27,"value":2707},{"type":31,"tagName":1860,"properties":2921,"children":2922},{"style":2570},[2923],{"type":27,"value":2924}," slowSma.",{"type":31,"tagName":1860,"properties":2926,"children":2927},{"style":2564},[2928],{"type":27,"value":2897},{"type":31,"tagName":1860,"properties":2930,"children":2931},{"style":2570},[2932],{"type":27,"value":2902},{"type":27,"value":28},{"type":31,"tagName":1860,"properties":2935,"children":2936},{"class":1862},[2937,2942,2947,2952,2957,2962,2967,2972,2977],{"type":31,"tagName":1860,"properties":2938,"children":2939},{"style":2694},[2940],{"type":27,"value":2941},"  if",{"type":31,"tagName":1860,"properties":2943,"children":2944},{"style":2570},[2945],{"type":27,"value":2946}," (",{"type":31,"tagName":1860,"properties":2948,"children":2949},{"style":2564},[2950],{"type":27,"value":2951},"isNaN",{"type":31,"tagName":1860,"properties":2953,"children":2954},{"style":2570},[2955],{"type":27,"value":2956},"(fast) ",{"type":31,"tagName":1860,"properties":2958,"children":2959},{"style":2694},[2960],{"type":27,"value":2961},"||",{"type":31,"tagName":1860,"properties":2963,"children":2964},{"style":2564},[2965],{"type":27,"value":2966}," isNaN",{"type":31,"tagName":1860,"properties":2968,"children":2969},{"style":2570},[2970],{"type":27,"value":2971},"(slow)) ",{"type":31,"tagName":1860,"properties":2973,"children":2974},{"style":2694},[2975],{"type":27,"value":2976},"return",{"type":31,"tagName":1860,"properties":2978,"children":2979},{"style":2570},[2980],{"type":27,"value":2981},";",{"type":27,"value":28},{"type":31,"tagName":1860,"properties":2984,"children":2985},{"class":1862},[2986,2990,2995,2999,3004,3008],{"type":31,"tagName":1860,"properties":2987,"children":2988},{"style":2694},[2989],{"type":27,"value":2847},{"type":31,"tagName":1860,"properties":2991,"children":2992},{"style":2576},[2993],{"type":27,"value":2994}," crossed",{"type":31,"tagName":1860,"properties":2996,"children":2997},{"style":2694},[2998],{"type":27,"value":2707},{"type":31,"tagName":1860,"properties":3000,"children":3001},{"style":2570},[3002],{"type":27,"value":3003}," cross.",{"type":31,"tagName":1860,"properties":3005,"children":3006},{"style":2564},[3007],{"type":27,"value":2897},{"type":31,"tagName":1860,"properties":3009,"children":3010},{"style":2570},[3011],{"type":27,"value":3012},"(fast, slow);",{"type":27,"value":28},{"type":31,"tagName":1860,"properties":3015,"children":3016},{"class":1862},[3017,3021,3026,3031,3036,3041,3046,3050,3055,3060,3065],{"type":31,"tagName":1860,"properties":3018,"children":3019},{"style":2694},[3020],{"type":27,"value":2941},{"type":31,"tagName":1860,"properties":3022,"children":3023},{"style":2570},[3024],{"type":27,"value":3025}," (crossed ",{"type":31,"tagName":1860,"properties":3027,"children":3028},{"style":2694},[3029],{"type":27,"value":3030},"==",{"type":31,"tagName":1860,"properties":3032,"children":3033},{"style":2576},[3034],{"type":27,"value":3035}," 1",{"type":31,"tagName":1860,"properties":3037,"children":3038},{"style":2570},[3039],{"type":27,"value":3040},") strategy.",{"type":31,"tagName":1860,"properties":3042,"children":3043},{"style":2564},[3044],{"type":27,"value":3045},"long",{"type":31,"tagName":1860,"properties":3047,"children":3048},{"style":2570},[3049],{"type":27,"value":2634},{"type":31,"tagName":1860,"properties":3051,"children":3052},{"style":2586},[3053],{"type":27,"value":3054},"\"Trend\"",{"type":31,"tagName":1860,"properties":3056,"children":3057},{"style":2570},[3058],{"type":27,"value":3059},").",{"type":31,"tagName":1860,"properties":3061,"children":3062},{"style":2564},[3063],{"type":27,"value":3064},"send",{"type":31,"tagName":1860,"properties":3066,"children":3067},{"style":2570},[3068],{"type":27,"value":2800},{"type":27,"value":28},{"type":31,"tagName":1860,"properties":3071,"children":3072},{"class":1862},[3073,3077,3082,3087,3092,3097,3102,3106,3111,3115,3120,3124,3128,3132,3136,3140,3144,3149,3154,3159,3163,3167,3171,3175,3180,3184,3188],{"type":31,"tagName":1860,"properties":3074,"children":3075},{"style":2694},[3076],{"type":27,"value":2941},{"type":31,"tagName":1860,"properties":3078,"children":3079},{"style":2570},[3080],{"type":27,"value":3081}," (strategy.",{"type":31,"tagName":1860,"properties":3083,"children":3084},{"style":2564},[3085],{"type":27,"value":3086},"positionSize",{"type":31,"tagName":1860,"properties":3088,"children":3089},{"style":2570},[3090],{"type":27,"value":3091},"() ",{"type":31,"tagName":1860,"properties":3093,"children":3094},{"style":2694},[3095],{"type":27,"value":3096},">",{"type":31,"tagName":1860,"properties":3098,"children":3099},{"style":2576},[3100],{"type":27,"value":3101}," 0",{"type":31,"tagName":1860,"properties":3103,"children":3104},{"style":2570},[3105],{"type":27,"value":3040},{"type":31,"tagName":1860,"properties":3107,"children":3108},{"style":2564},[3109],{"type":27,"value":3110},"exit",{"type":31,"tagName":1860,"properties":3112,"children":3113},{"style":2570},[3114],{"type":27,"value":2634},{"type":31,"tagName":1860,"properties":3116,"children":3117},{"style":2586},[3118],{"type":27,"value":3119},"\"Protect\"",{"type":31,"tagName":1860,"properties":3121,"children":3122},{"style":2570},[3123],{"type":27,"value":3059},{"type":31,"tagName":1860,"properties":3125,"children":3126},{"style":2564},[3127],{"type":27,"value":2102},{"type":31,"tagName":1860,"properties":3129,"children":3130},{"style":2570},[3131],{"type":27,"value":2634},{"type":31,"tagName":1860,"properties":3133,"children":3134},{"style":2586},[3135],{"type":27,"value":3054},{"type":31,"tagName":1860,"properties":3137,"children":3138},{"style":2570},[3139],{"type":27,"value":3059},{"type":31,"tagName":1860,"properties":3141,"children":3142},{"style":2564},[3143],{"type":27,"value":1981},{"type":31,"tagName":1860,"properties":3145,"children":3146},{"style":2570},[3147],{"type":27,"value":3148},"(close ",{"type":31,"tagName":1860,"properties":3150,"children":3151},{"style":2694},[3152],{"type":27,"value":3153},"*",{"type":31,"tagName":1860,"properties":3155,"children":3156},{"style":2576},[3157],{"type":27,"value":3158}," 0.97",{"type":31,"tagName":1860,"properties":3160,"children":3161},{"style":2570},[3162],{"type":27,"value":3059},{"type":31,"tagName":1860,"properties":3164,"children":3165},{"style":2564},[3166],{"type":27,"value":1962},{"type":31,"tagName":1860,"properties":3168,"children":3169},{"style":2570},[3170],{"type":27,"value":3148},{"type":31,"tagName":1860,"properties":3172,"children":3173},{"style":2694},[3174],{"type":27,"value":3153},{"type":31,"tagName":1860,"properties":3176,"children":3177},{"style":2576},[3178],{"type":27,"value":3179}," 1.05",{"type":31,"tagName":1860,"properties":3181,"children":3182},{"style":2570},[3183],{"type":27,"value":3059},{"type":31,"tagName":1860,"properties":3185,"children":3186},{"style":2564},[3187],{"type":27,"value":3064},{"type":31,"tagName":1860,"properties":3189,"children":3190},{"style":2570},[3191],{"type":27,"value":2800},{"type":27,"value":28},{"type":31,"tagName":1860,"properties":3194,"children":3195},{"class":1862},[3196,3201],{"type":31,"tagName":1860,"properties":3197,"children":3198},{"style":2564},[3199],{"type":27,"value":3200},"  out_fast",{"type":31,"tagName":1860,"properties":3202,"children":3203},{"style":2570},[3204],{"type":27,"value":3205},"(fast);",{"type":27,"value":28},{"type":31,"tagName":1860,"properties":3208,"children":3209},{"class":1862},[3210,3215],{"type":31,"tagName":1860,"properties":3211,"children":3212},{"style":2564},[3213],{"type":27,"value":3214},"  out_slow",{"type":31,"tagName":1860,"properties":3216,"children":3217},{"style":2570},[3218],{"type":27,"value":3219},"(slow);",{"type":27,"value":28},{"type":31,"tagName":1860,"properties":3222,"children":3223},{"class":1862},[3224],{"type":31,"tagName":1860,"properties":3225,"children":3226},{"style":2570},[3227],{"type":27,"value":3228},"}",{"type":27,"value":28},{"type":31,"tagName":69,"properties":3231,"children":3232,"position":3241},{},[3233],{"type":27,"value":3234,"position":3235},"Position model",{"start":3236,"end":3239},{"line":3237,"column":77,"offset":3238},76,6966,{"line":3237,"column":638,"offset":3240},6980,{"start":3242,"end":3244},{"line":3237,"column":21,"offset":3243},6963,{"line":3237,"column":638,"offset":3240},{"type":27,"value":28},{"type":31,"tagName":32,"properties":3247,"children":3248,"position":3294},{},[3249,3256,3268,3274,3287],{"type":27,"value":3250,"position":3251},"The broker nets to one position. An entry in the opposite direction is a reversal: it closes the existing position fully at the same fill, then opens the new one at the requested quantity. ",{"start":3252,"end":3254},{"line":808,"column":21,"offset":3253},6982,{"line":808,"column":2430,"offset":3255},7171,{"type":31,"tagName":44,"properties":3257,"children":3258,"position":3265},{},[3259],{"type":27,"value":944,"position":3260},{"start":3261,"end":3262},{"line":808,"column":2430,"offset":3255},{"line":808,"column":3263,"offset":3264},202,7183,{"start":3266,"end":3267},{"line":808,"column":2430,"offset":3255},{"line":808,"column":3263,"offset":3264},{"type":27,"value":3269,"position":3270}," caps same-direction stacking; rejected entries are counted in the broker's ",{"start":3271,"end":3272},{"line":808,"column":3263,"offset":3264},{"line":808,"column":2485,"offset":3273},7259,{"type":31,"tagName":44,"properties":3275,"children":3276,"position":3284},{},[3277],{"type":27,"value":3278,"position":3279},"rejectedOrders",{"start":3280,"end":3281},{"line":808,"column":2485,"offset":3273},{"line":808,"column":3282,"offset":3283},294,7275,{"start":3285,"end":3286},{"line":808,"column":2485,"offset":3273},{"line":808,"column":3282,"offset":3283},{"type":27,"value":3288,"position":3289}," rather than thrown.",{"start":3290,"end":3291},{"line":808,"column":3282,"offset":3283},{"line":808,"column":3292,"offset":3293},314,7295,{"start":3295,"end":3296},{"line":808,"column":21,"offset":3253},{"line":808,"column":3292,"offset":3293},{"type":27,"value":28},{"type":31,"tagName":32,"properties":3299,"children":3300,"position":3308},{},[3301],{"type":27,"value":3302,"position":3303},"Sizing details worth knowing:",{"start":3304,"end":3306},{"line":817,"column":21,"offset":3305},7297,{"line":817,"column":966,"offset":3307},7326,{"start":3309,"end":3310},{"line":817,"column":21,"offset":3305},{"line":817,"column":966,"offset":3307},{"type":27,"value":28},{"type":31,"tagName":1925,"properties":3313,"children":3314,"position":3525},{},[3315,3316,3364,3365,3416,3417,3509,3510,3524],{"type":27,"value":28},{"type":31,"tagName":1930,"properties":3317,"children":3318,"position":3360},{},[3319,3326,3338,3344,3355],{"type":27,"value":3320,"position":3321},"An explicit ",{"start":3322,"end":3324},{"line":1425,"column":237,"offset":3323},7330,{"line":1425,"column":482,"offset":3325},7342,{"type":31,"tagName":44,"properties":3327,"children":3328,"position":3335},{},[3329],{"type":27,"value":3330,"position":3331},"qty(...)",{"start":3332,"end":3333},{"line":1425,"column":482,"offset":3325},{"line":1425,"column":261,"offset":3334},7352,{"start":3336,"end":3337},{"line":1425,"column":482,"offset":3325},{"line":1425,"column":261,"offset":3334},{"type":27,"value":3339,"position":3340}," on an order always wins over the declaration's ",{"start":3341,"end":3342},{"line":1425,"column":261,"offset":3334},{"line":1425,"column":1548,"offset":3343},7400,{"type":31,"tagName":44,"properties":3345,"children":3346,"position":3352},{},[3347],{"type":27,"value":716,"position":3348},{"start":3349,"end":3350},{"line":1425,"column":1548,"offset":3343},{"line":1425,"column":1425,"offset":3351},7409,{"start":3353,"end":3354},{"line":1425,"column":1548,"offset":3343},{"line":1425,"column":1425,"offset":3351},{"type":27,"value":1090,"position":3356},{"start":3357,"end":3358},{"line":1425,"column":1425,"offset":3351},{"line":1425,"column":458,"offset":3359},7410,{"start":3361,"end":3363},{"line":1425,"column":21,"offset":3362},7328,{"line":1425,"column":458,"offset":3359},{"type":27,"value":28},{"type":31,"tagName":1930,"properties":3366,"children":3367,"position":3412},{},[3368,3375,3387,3392,3405],{"type":27,"value":3369,"position":3370},"Sized-at-fill quantities (",{"start":3371,"end":3373},{"line":458,"column":237,"offset":3372},7413,{"line":458,"column":436,"offset":3374},7439,{"type":31,"tagName":44,"properties":3376,"children":3377,"position":3384},{},[3378],{"type":27,"value":3379,"position":3380},"percentOfEquity",{"start":3381,"end":3382},{"line":458,"column":436,"offset":3374},{"line":458,"column":295,"offset":3383},7456,{"start":3385,"end":3386},{"line":458,"column":436,"offset":3374},{"line":458,"column":295,"offset":3383},{"type":27,"value":126,"position":3388},{"start":3389,"end":3390},{"line":458,"column":295,"offset":3383},{"line":458,"column":364,"offset":3391},7458,{"type":31,"tagName":44,"properties":3393,"children":3394,"position":3402},{},[3395],{"type":27,"value":3396,"position":3397},"cash",{"start":3398,"end":3399},{"line":458,"column":364,"offset":3391},{"line":458,"column":3400,"offset":3401},54,7464,{"start":3403,"end":3404},{"line":458,"column":364,"offset":3391},{"line":458,"column":3400,"offset":3401},{"type":27,"value":3406,"position":3407},") resolve from the slippage-adjusted fill price, and fractional quantities are legal (the broker does not round lots).",{"start":3408,"end":3409},{"line":458,"column":3400,"offset":3401},{"line":458,"column":3410,"offset":3411},172,7582,{"start":3413,"end":3415},{"line":458,"column":21,"offset":3414},7411,{"line":458,"column":3410,"offset":3411},{"type":27,"value":28},{"type":31,"tagName":1930,"properties":3418,"children":3419,"position":3505},{},[3420,3427,3438,3443,3454,3460,3473,3480,3498],{"type":27,"value":3421,"position":3422},"On perps, ",{"start":3423,"end":3425},{"line":140,"column":237,"offset":3424},7585,{"line":140,"column":254,"offset":3426},7595,{"type":31,"tagName":44,"properties":3428,"children":3429,"position":3435},{},[3430],{"type":27,"value":3379,"position":3431},{"start":3432,"end":3433},{"line":140,"column":254,"offset":3426},{"line":140,"column":966,"offset":3434},7612,{"start":3436,"end":3437},{"line":140,"column":254,"offset":3426},{"line":140,"column":966,"offset":3434},{"type":27,"value":146,"position":3439},{"start":3440,"end":3441},{"line":140,"column":966,"offset":3434},{"line":140,"column":278,"offset":3442},7617,{"type":31,"tagName":44,"properties":3444,"children":3445,"position":3451},{},[3446],{"type":27,"value":3396,"position":3447},{"start":3448,"end":3449},{"line":140,"column":278,"offset":3442},{"line":140,"column":1153,"offset":3450},7623,{"start":3452,"end":3453},{"line":140,"column":278,"offset":3442},{"line":140,"column":1153,"offset":3450},{"type":27,"value":3455,"position":3456}," size the isolated margin commitment, not the notional. Explicit quantities and ",{"start":3457,"end":3458},{"line":140,"column":1153,"offset":3450},{"line":140,"column":540,"offset":3459},7703,{"type":31,"tagName":44,"properties":3461,"children":3462,"position":3470},{},[3463],{"type":27,"value":3464,"position":3465},"qtyType: \"fixed\"",{"start":3466,"end":3467},{"line":140,"column":540,"offset":3459},{"line":140,"column":3468,"offset":3469},139,7721,{"start":3471,"end":3472},{"line":140,"column":540,"offset":3459},{"line":140,"column":3468,"offset":3469},{"type":27,"value":3474,"position":3475}," stay direct quantities and are margin-checked. Perps entries also pass an isolated-margin admission check before the opening leg applies; unrealized PnL is not collateral. ",{"start":3476,"end":3477},{"line":140,"column":3468,"offset":3469},{"line":140,"column":3478,"offset":3479},312,7894,{"type":31,"tagName":1072,"properties":3481,"children":3483,"position":3493},{"href":3482},"perps.md#margin",[3484],{"type":27,"value":3485,"position":3486},"Perps",{"start":3487,"end":3490},{"line":140,"column":3488,"offset":3489},313,7895,{"line":140,"column":3491,"offset":3492},318,7900,{"start":3494,"end":3495},{"line":140,"column":3478,"offset":3479},{"line":140,"column":3496,"offset":3497},336,7918,{"type":27,"value":3499,"position":3500}," has the model.",{"start":3501,"end":3502},{"line":140,"column":3496,"offset":3497},{"line":140,"column":3503,"offset":3504},351,7933,{"start":3506,"end":3508},{"line":140,"column":21,"offset":3507},7583,{"line":140,"column":3503,"offset":3504},{"type":27,"value":28},{"type":31,"tagName":1930,"properties":3511,"children":3512,"position":3520},{},[3513],{"type":27,"value":3514,"position":3515},"A computed size is rejected and counted when equity at fill is not positive or the quantity is not finite and positive.",{"start":3516,"end":3518},{"line":1438,"column":237,"offset":3517},7936,{"line":1438,"column":10,"offset":3519},8055,{"start":3521,"end":3523},{"line":1438,"column":21,"offset":3522},7934,{"line":1438,"column":10,"offset":3519},{"type":27,"value":28},{"start":3526,"end":3527},{"line":1425,"column":21,"offset":3362},{"line":1438,"column":10,"offset":3519},{"type":27,"value":28},{"type":31,"tagName":32,"properties":3530,"children":3531,"position":3565},{},[3532,3541,3558],{"type":27,"value":3533,"position":3534},"Order calls are recorded as rejected, not thrown, when the current bar has non-finite prices or is not confirmed (a live chart's forming bar). On the last bar, unfilled orders remain visible under ",{"start":3535,"end":3538},{"line":3536,"column":21,"offset":3537},87,8057,{"line":3536,"column":3539,"offset":3540},198,8254,{"type":31,"tagName":1669,"properties":3542,"children":3543,"position":3553},{},[3544],{"type":27,"value":3545,"position":3546},"Pending orders",{"start":3547,"end":3550},{"line":3536,"column":3548,"offset":3549},200,8256,{"line":3536,"column":3551,"offset":3552},214,8270,{"start":3554,"end":3555},{"line":3536,"column":3539,"offset":3540},{"line":3536,"column":3556,"offset":3557},216,8272,{"type":27,"value":3559,"position":3560}," in the Strategy Tester's Trades tab.",{"start":3561,"end":3562},{"line":3536,"column":3556,"offset":3557},{"line":3536,"column":3563,"offset":3564},253,8309,{"start":3566,"end":3567},{"line":3536,"column":21,"offset":3537},{"line":3536,"column":3563,"offset":3564},{"type":27,"value":28},{"type":31,"tagName":69,"properties":3570,"children":3571,"position":3579},{},[3572],{"type":27,"value":3573,"position":3574},"Limits",{"start":3575,"end":3577},{"line":150,"column":77,"offset":3576},8314,{"line":150,"column":240,"offset":3578},8320,{"start":3580,"end":3582},{"line":150,"column":21,"offset":3581},8311,{"line":150,"column":240,"offset":3578},{"type":27,"value":28},{"type":31,"tagName":32,"properties":3585,"children":3586,"position":3637},{},[3587,3594,3606,3612,3630],{"type":27,"value":3588,"position":3589},"At most 64 distinct order ids per run (",{"start":3590,"end":3592},{"line":2367,"column":21,"offset":3591},8322,{"line":2367,"column":347,"offset":3593},8361,{"type":31,"tagName":44,"properties":3595,"children":3596,"position":3603},{},[3597],{"type":27,"value":3598,"position":3599},"closeAll",{"start":3600,"end":3601},{"line":2367,"column":347,"offset":3593},{"line":2367,"column":373,"offset":3602},8371,{"start":3604,"end":3605},{"line":2367,"column":347,"offset":3593},{"line":2367,"column":373,"offset":3602},{"type":27,"value":3607,"position":3608}," counts as one; ids are slots, re-issuing one replaces its pending order), 64 bytes of UTF-8 per id, 4096 strategy calls per bar, and 10000 closed trades per run. Each breach refuses the run by name, and every engine rejection stays a counted rejection; the ",{"start":3609,"end":3610},{"line":2367,"column":373,"offset":3602},{"line":2367,"column":924,"offset":3611},8629,{"type":31,"tagName":1072,"properties":3613,"children":3615,"position":3625},{"href":3614},"../reference/limits.md",[3616],{"type":27,"value":3617,"position":3618},"limits",{"start":3619,"end":3622},{"line":2367,"column":3620,"offset":3621},309,8630,{"line":2367,"column":3623,"offset":3624},315,8636,{"start":3626,"end":3627},{"line":2367,"column":924,"offset":3611},{"line":2367,"column":3628,"offset":3629},340,8661,{"type":27,"value":3631,"position":3632}," page lists them.",{"start":3633,"end":3634},{"line":2367,"column":3628,"offset":3629},{"line":2367,"column":3635,"offset":3636},357,8678,{"start":3638,"end":3639},{"line":2367,"column":21,"offset":3591},{"line":2367,"column":3635,"offset":3636},{"quirksMode":3641},false,{"start":3643,"end":3644},{"line":21,"column":21,"offset":22},{"line":1454,"column":21,"offset":3645},8679,1791265205235]