[{"data":1,"prerenderedAt":3056},["ShallowReactive",2],{"wrun-open-editor-url":3,"indicators:cookbook/strategy-ma-cross":4},"https://openmarket.xyz/chart/#wrun-open=v1",{"slug":5,"filePath":6,"frontmatter":7,"rawMarkdown":12,"tree":13},"cookbook/strategy-ma-cross","cookbook/strategy-ma-cross.md",{"title":8,"description":9,"order":10,"section":11},"Moving-average cross","A strategy: long when the fast average crosses above the slow one, flat when it crosses back under. The fast average (sky) and the slow average (violet) on…",114,"cookbook","---\ntitle: \"Moving-average cross\"\ndescription: \"A strategy: long when the fast average crosses above the slow one, flat when it crosses back under. The fast average (sky) and the slow average (violet) on…\"\norder: 114\nsection: \"cookbook\"\n---\n\n\u003C!-- source: docs/indicators/cookbook/strategy-ma-cross.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit -->\n\n# Moving-average cross\n\n![Moving-average cross strategy with ribbon, cross marks and Strategy Tester](/wrun/images/strategy-ma-cross.png)\n\nA strategy: long when the fast average crosses above the slow one, flat when it crosses back under. The fast average (sky) and the slow average (violet) on price, a ribbon between them, amber while the fast average leads and orange while it trails, and a mark on the bar of each cross at the price where the lines met: amber for a cross up (the entry fills at the next open), orange for a cross down (the position closes at the next open). The Strategy Tester under the chart holds the fills on the candles, equity against buy and hold, net profit, win rate, profit factor, drawdown, Sharpe and the trade list.\n\nThe parts are `strategy(...)` declared in the source with the order calls in `onBar()` ([Strategies overview](../strategies/overview.md)), a `range` between the two averages tinted by a data-only output ([Styling](../presentation/styling.md)), and two `shape` outputs for the cross marks. This is also the `strategy-ma-cross` template: the **Moving-Average Cross** card under **Strategies** in the editor's starter list, and it compiles as written.\n\n## The wrun indicator\n\n```typescript sample=strategy-ma-cross\n// Moving-Average Cross: long when the fast average crosses above the slow one, flat when it crosses back under.\n// The trader sees both averages on price, a ribbon between them tinted by which one leads (amber while the fast\n// average is on top, orange while it trails), a mark on the bar of each cross at the price where the lines met,\n// and the Strategy Tester under the chart with the fills, the equity curve and the numbers.\n\n// strategy({...}) makes the package a strategy: equity, sizing (50% of equity per entry), commission and slippage live here.\nstrategy({ initialCapital: 10000, qtyType: \"percentOfEquity\", qtyValue: 50, commissionPercent: 0.05, slippageBps: 2 });\nparam.int(\"fast_len\", 9, { min: 1, max: 200, label: \"Fast length in bars\", row: \"lengths\", description: \"Fast average length in bars\" }); // two whole numbers on one dialog line: rows naming the same row word sit side by side\nparam.int(\"slow_len\", 21, { min: 2, max: 400, label: \"Slow length in bars\", row: \"lengths\", description: \"Slow average length in bars\" });\nconst fastLine = output(\"fast_ma\", line, overlay, { color: \"#38bdf8\", width: 2, label: \"Fast\", format: \"price\", description: \"Simple moving average of the close over fast_len bars\" }); // the handle names it for the hover card\noutput(\"slow_ma\", line, overlay, { color: \"#a78bfa\", width: 2, label: \"Slow\", format: \"price\", description: \"Simple moving average of the close over slow_len bars\" });\noutput(\"trend\", none, overlay, { description: \"1 while the fast average is above the slow one, else 0\" });\nhover(fastLine, [block.value(\"Fast\", \"fast_ma\", { format: \"price\" }), block.rows([[\"Slow\", \"slow_ma\", \"price\"], [\"Trend\", \"trend\", \"int\"]])]); // the card the fast average opens under the cursor\noutput(\"entry_cross\", shape, overlay, { color: \"#f8c000\", width: 6, description: \"The price where the fast average crossed above the slow one; the long entry fills at the next open\" });\noutput(\"exit_cross\", shape, overlay, { color: \"#f86800\", width: 6, description: \"The price where the fast average crossed below the slow one; the position closes at the next open\" });\nrange(\"fast_ma\", \"slow_ma\", { color_by: \"trend\", colors: [\"rgba(248, 104, 0, 0.14)\", \"rgba(248, 192, 0, 0.14)\"] }); // the ribbon, tinted by the trend\n\nlet fastSma = new Sma(9); // onStart() rebuilds both at the chosen lengths\nlet slowSma = new Sma(21);\nconst cross = new Cross(); // +1 on the bar the fast average crosses above the slow one, -1 below, 0 otherwise\n\n// onStart() runs once before the first bar: read each setting (i32() = whole bars).\nfunction onStart(): void {\n  fastSma = new Sma(i32(p_fast_len()));\n  slowSma = new Sma(i32(p_slow_len()));\n}\n\n// onBar() runs once per bar: fold the close into both windows and leave while either is still warming up (nothing\n// written, no orders); then place the orders (an order fills at the next bar's open, never earlier) and write the\n// outputs. The cross marks are NaN on every bar without a cross, so nothing is drawn there.\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  const trend = fast > slow ? 1.0 : 0.0;\n  if (crossed == 1) strategy.long(\"L\").send(); // a market entry under the id L, sized by the settings above\n  if (crossed == -1) strategy.closeAll(); // every open entry closes at the next open\n  const crossPrice = (fast + slow) * 0.5; // where the two averages met on this bar\n  out_fast_ma(fast);\n  out_slow_ma(slow);\n  out_trend(trend);\n  out_entry_cross(crossed == 1 ? crossPrice : NaN);\n  out_exit_cross(crossed == -1 ? crossPrice : NaN);\n}\n```\n\n## How it works\n\n**The file is the strategy.** `strategy({ initialCapital: 10000, qtyType: \"percentOfEquity\", qtyValue: 50, commissionPercent: 0.05, slippageBps: 2 })` makes the package a strategy: 10,000 starting equity, 50% of equity per entry, 0.05% commission, 2 bps slippage. The primary input is the chart's own close (`bar.close()`, no input line needed), the candles the broker fills against.\n\n**Orders fill at the next open.** `onBar()` folds the close into two `Sma` windows (`fast_len` 9, `slow_len` 21) and returns early while either is warming up (nothing written, no orders); `Cross.update(fast, slow)` is +1 on the bar the fast average crosses above the slow one and -1 on the way back. On a cross, `strategy.long(\"L\").send()` places a market entry under the id L and `strategy.closeAll()` closes every open entry; both fill at the next bar's open, never earlier.\n\n**The look is three outputs.** `trend` (1 while the fast average is above the slow one) is data-only and drives `range(\"fast_ma\", \"slow_ma\", { color_by: \"trend\", colors: [orange, amber] })`, the ribbon; `entry_cross` and `exit_cross` carry the price where the two averages met on a cross bar (NaN elsewhere), the two marks.\n\n## Where it runs\n\nEvery market with candles: perps, spot, prediction markets, FX. The Strategy Tester replays it in your browser over the chart's loaded window and recomputes as you pan; orders fill against the chart's own candles. The **Strategies** group of the starter list shows where the chart has the Strategy Tester.\n\n## When data is missing\n\nThe first `slow_len` bars are warm-up: nothing written, no orders, nothing drawn. A market whose candles stop (a resolved prediction market) leaves the last position where the tester closed it.\n\n## Customize it\n\n- **Other lengths.** `fast_len` and `slow_len` are settings; the tester replays any pair.\n- **Both directions.** Add `strategy.short(\"S\").send()` on a cross down in place of the flat exit ([Writing strategies](../strategies/writing-strategies.md)).\n- **Costs and sizing.** The five numbers in `strategy({ ... })` are the file's: change them and Run again. The tester's **Strategy settings** opens the overlay's settings, where a param changes a strategy field only when the file links it, the way the risk setting is linked into `qtyValue` in [Your first strategy](../strategies/first-strategy.md#5-tune-it-honestly); [Risk-sized reversion](strategy-risk-reversion.md) sizes each entry from its stop instead.\n- **Alert on the trades.** Once the indicator is published and on a chart, the alert dialog adds the strategy's own choices: \"Strategy order placed\", \"Strategy trade opened or closed\", \"Strategy position\" and \"Strategy equity\" ([Alerts](../functions/alerts.md)).\n\n## Run it\n\n1. In the editor's Explorer, press the **Templates** icon (\"Browse starter templates\") and pick **Moving-Average Cross** under **Strategies**.\n2. Press **Run**: the two averages, the ribbon and the cross marks draw on price, and the Strategy Tester under the chart shows the fills, the equity against buy and hold, and the trade list.\n\n## Concepts used\n\n- [Strategies overview](../strategies/overview.md) for `strategy(...)`, the order builders and where they fill\n- [Reading the tester](../strategies/reading-the-tester.md) for the numbers under the chart\n- [Styling](../presentation/styling.md) for `range` bands and colour ladders\n",{"type":14,"children":15,"data":3050,"position":3052},"root",[16,26,29,30,50,51,66,67,283,284,302,303,1920,1921,1937,1938,2009,2010,2178,2179,2287,2288,2303,2304,2342,2343,2359,2360,2393,2394,2408,2409,2756,2757,2772,2773,2900,2901,2915,2916],{"type":17,"value":18,"position":19},"comment"," source: docs/indicators/cookbook/strategy-ma-cross.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},133,132,{"type":27,"value":28},"text","\n",{"type":27,"value":28},{"type":31,"tagName":32,"properties":33,"children":34,"position":47},"element","p",{},[35],{"type":31,"tagName":36,"properties":37,"children":40,"position":41},"img",{"src":38,"alt":39},"/wrun/images/strategy-ma-cross.png","Moving-average cross strategy with ribbon, cross marks and Strategy Tester",[],{"start":42,"end":45},{"line":43,"column":21,"offset":44},5,158,{"line":43,"column":10,"offset":46},271,{"start":48,"end":49},{"line":43,"column":21,"offset":44},{"line":43,"column":10,"offset":46},{"type":27,"value":28},{"type":31,"tagName":32,"properties":52,"children":53,"position":63},{},[54],{"type":27,"value":55,"position":56},"A strategy: long when the fast average crosses above the slow one, flat when it crosses back under. The fast average (sky) and the slow average (violet) on price, a ribbon between them, amber while the fast average leads and orange while it trails, and a mark on the bar of each cross at the price where the lines met: amber for a cross up (the entry fills at the next open), orange for a cross down (the position closes at the next open). The Strategy Tester under the chart holds the fills on the candles, equity against buy and hold, net profit, win rate, profit factor, drawdown, Sharpe and the trade list.",{"start":57,"end":60},{"line":58,"column":21,"offset":59},7,273,{"line":58,"column":61,"offset":62},611,883,{"start":64,"end":65},{"line":58,"column":21,"offset":59},{"line":58,"column":61,"offset":62},{"type":27,"value":28},{"type":31,"tagName":32,"properties":68,"children":69,"position":280},{},[70,79,93,100,113,120,139,146,159,166,184,191,204,211,224,231,249,256,273],{"type":27,"value":71,"position":72},"The parts are ",{"start":73,"end":76},{"line":74,"column":21,"offset":75},9,885,{"line":74,"column":77,"offset":78},15,899,{"type":31,"tagName":80,"properties":81,"children":82,"position":90},"code",{},[83],{"type":27,"value":84,"position":85},"strategy(...)",{"start":86,"end":87},{"line":74,"column":77,"offset":78},{"line":74,"column":88,"offset":89},30,914,{"start":91,"end":92},{"line":74,"column":77,"offset":78},{"line":74,"column":88,"offset":89},{"type":27,"value":94,"position":95}," declared in the source with the order calls in ",{"start":96,"end":97},{"line":74,"column":88,"offset":89},{"line":74,"column":98,"offset":99},78,962,{"type":31,"tagName":80,"properties":101,"children":102,"position":110},{},[103],{"type":27,"value":104,"position":105},"onBar()",{"start":106,"end":107},{"line":74,"column":98,"offset":99},{"line":74,"column":108,"offset":109},87,971,{"start":111,"end":112},{"line":74,"column":98,"offset":99},{"line":74,"column":108,"offset":109},{"type":27,"value":114,"position":115}," (",{"start":116,"end":117},{"line":74,"column":108,"offset":109},{"line":74,"column":118,"offset":119},89,973,{"type":31,"tagName":121,"properties":122,"children":124,"position":134},"a",{"href":123},"../strategies/overview.md",[125],{"type":27,"value":126,"position":127},"Strategies overview",{"start":128,"end":131},{"line":74,"column":129,"offset":130},90,974,{"line":74,"column":132,"offset":133},109,993,{"start":135,"end":136},{"line":74,"column":118,"offset":119},{"line":74,"column":137,"offset":138},137,1021,{"type":27,"value":140,"position":141},"), a ",{"start":142,"end":143},{"line":74,"column":137,"offset":138},{"line":74,"column":144,"offset":145},142,1026,{"type":31,"tagName":80,"properties":147,"children":148,"position":156},{},[149],{"type":27,"value":150,"position":151},"range",{"start":152,"end":153},{"line":74,"column":144,"offset":145},{"line":74,"column":154,"offset":155},149,1033,{"start":157,"end":158},{"line":74,"column":144,"offset":145},{"line":74,"column":154,"offset":155},{"type":27,"value":160,"position":161}," between the two averages tinted by a data-only output (",{"start":162,"end":163},{"line":74,"column":154,"offset":155},{"line":74,"column":164,"offset":165},205,1089,{"type":31,"tagName":121,"properties":167,"children":169,"position":179},{"href":168},"../presentation/styling.md",[170],{"type":27,"value":171,"position":172},"Styling",{"start":173,"end":176},{"line":74,"column":174,"offset":175},206,1090,{"line":74,"column":177,"offset":178},213,1097,{"start":180,"end":181},{"line":74,"column":164,"offset":165},{"line":74,"column":182,"offset":183},242,1126,{"type":27,"value":185,"position":186},"), and two ",{"start":187,"end":188},{"line":74,"column":182,"offset":183},{"line":74,"column":189,"offset":190},253,1137,{"type":31,"tagName":80,"properties":192,"children":193,"position":201},{},[194],{"type":27,"value":195,"position":196},"shape",{"start":197,"end":198},{"line":74,"column":189,"offset":190},{"line":74,"column":199,"offset":200},260,1144,{"start":202,"end":203},{"line":74,"column":189,"offset":190},{"line":74,"column":199,"offset":200},{"type":27,"value":205,"position":206}," outputs for the cross marks. This is also the ",{"start":207,"end":208},{"line":74,"column":199,"offset":200},{"line":74,"column":209,"offset":210},307,1191,{"type":31,"tagName":80,"properties":212,"children":213,"position":221},{},[214],{"type":27,"value":215,"position":216},"strategy-ma-cross",{"start":217,"end":218},{"line":74,"column":209,"offset":210},{"line":74,"column":219,"offset":220},326,1210,{"start":222,"end":223},{"line":74,"column":209,"offset":210},{"line":74,"column":219,"offset":220},{"type":27,"value":225,"position":226}," template: the ",{"start":227,"end":228},{"line":74,"column":219,"offset":220},{"line":74,"column":229,"offset":230},341,1225,{"type":31,"tagName":232,"properties":233,"children":234,"position":244},"strong",{},[235],{"type":27,"value":236,"position":237},"Moving-Average Cross",{"start":238,"end":241},{"line":74,"column":239,"offset":240},343,1227,{"line":74,"column":242,"offset":243},363,1247,{"start":245,"end":246},{"line":74,"column":229,"offset":230},{"line":74,"column":247,"offset":248},365,1249,{"type":27,"value":250,"position":251}," card under ",{"start":252,"end":253},{"line":74,"column":247,"offset":248},{"line":74,"column":254,"offset":255},377,1261,{"type":31,"tagName":232,"properties":257,"children":258,"position":268},{},[259],{"type":27,"value":260,"position":261},"Strategies",{"start":262,"end":265},{"line":74,"column":263,"offset":264},379,1263,{"line":74,"column":266,"offset":267},389,1273,{"start":269,"end":270},{"line":74,"column":254,"offset":255},{"line":74,"column":271,"offset":272},391,1275,{"type":27,"value":274,"position":275}," in the editor's starter list, and it compiles as written.",{"start":276,"end":277},{"line":74,"column":271,"offset":272},{"line":74,"column":278,"offset":279},449,1333,{"start":281,"end":282},{"line":74,"column":21,"offset":75},{"line":74,"column":278,"offset":279},{"type":27,"value":28},{"type":31,"tagName":285,"properties":286,"children":287,"position":298},"h2",{},[288],{"type":27,"value":289,"position":290},"The wrun indicator",{"start":291,"end":295},{"line":292,"column":293,"offset":294},11,4,1338,{"line":292,"column":296,"offset":297},22,1356,{"start":299,"end":301},{"line":292,"column":21,"offset":300},1335,{"line":292,"column":296,"offset":297},{"type":27,"value":28},{"type":14,"children":304},[305],{"type":31,"tagName":306,"properties":307,"children":311,"data":-1},"pre",{"class":308,"style":309,"tabindex":310,"data-sample":215},"shiki shiki-themes github-dark github-light","--shiki-dark:#e1e4e8;--shiki-light:#24292e;--shiki-dark-bg:#24292e;--shiki-light-bg:#fff","0",[312],{"type":31,"tagName":80,"properties":313,"children":316},{"class":314},[315],"language-typescript",[317,328,329,337,338,346,347,355,356,359,360,368,369,436,437,530,531,607,608,697,698,762,763,793,794,909,910,958,959,1005,1006,1067,1068,1071,1072,1118,1119,1156,1157,1192,1193,1196,1197,1205,1206,1239,1240,1283,1284,1325,1326,1334,1335,1338,1339,1347,1348,1356,1357,1365,1366,1394,1395,1427,1428,1459,1460,1489,1490,1537,1538,1568,1569,1624,1625,1685,1686,1728,1729,1780,1781,1794,1795,1808,1809,1822,1823,1867,1868,1912,1913],{"type":31,"tagName":318,"properties":319,"children":321},"span",{"class":320},"line",[322],{"type":31,"tagName":318,"properties":323,"children":325},{"style":324},"--shiki-dark:#6A737D;--shiki-light:#6A737D",[326],{"type":27,"value":327},"// Moving-Average Cross: long when the fast average crosses above the slow one, flat when it crosses back under.",{"type":27,"value":28},{"type":31,"tagName":318,"properties":330,"children":331},{"class":320},[332],{"type":31,"tagName":318,"properties":333,"children":334},{"style":324},[335],{"type":27,"value":336},"// The trader sees both averages on price, a ribbon between them tinted by which one leads (amber while the fast",{"type":27,"value":28},{"type":31,"tagName":318,"properties":339,"children":340},{"class":320},[341],{"type":31,"tagName":318,"properties":342,"children":343},{"style":324},[344],{"type":27,"value":345},"// average is on top, orange while it trails), a mark on the bar of each cross at the price where the lines met,",{"type":27,"value":28},{"type":31,"tagName":318,"properties":348,"children":349},{"class":320},[350],{"type":31,"tagName":318,"properties":351,"children":352},{"style":324},[353],{"type":27,"value":354},"// and the Strategy Tester under the chart with the fills, the equity curve and the numbers.",{"type":27,"value":28},{"type":31,"tagName":318,"properties":357,"children":358},{"class":320},[],{"type":27,"value":28},{"type":31,"tagName":318,"properties":361,"children":362},{"class":320},[363],{"type":31,"tagName":318,"properties":364,"children":365},{"style":324},[366],{"type":27,"value":367},"// strategy({...}) makes the package a strategy: equity, sizing (50% of equity per entry), commission and slippage live here.",{"type":27,"value":28},{"type":31,"tagName":318,"properties":370,"children":371},{"class":320},[372,378,384,390,395,401,406,411,416,421,426,431],{"type":31,"tagName":318,"properties":373,"children":375},{"style":374},"--shiki-dark:#B392F0;--shiki-light:#6F42C1",[376],{"type":27,"value":377},"strategy",{"type":31,"tagName":318,"properties":379,"children":381},{"style":380},"--shiki-dark:#E1E4E8;--shiki-light:#24292E",[382],{"type":27,"value":383},"({ initialCapital: ",{"type":31,"tagName":318,"properties":385,"children":387},{"style":386},"--shiki-dark:#79B8FF;--shiki-light:#005CC5",[388],{"type":27,"value":389},"10000",{"type":31,"tagName":318,"properties":391,"children":392},{"style":380},[393],{"type":27,"value":394},", qtyType: ",{"type":31,"tagName":318,"properties":396,"children":398},{"style":397},"--shiki-dark:#9ECBFF;--shiki-light:#032F62",[399],{"type":27,"value":400},"\"percentOfEquity\"",{"type":31,"tagName":318,"properties":402,"children":403},{"style":380},[404],{"type":27,"value":405},", qtyValue: ",{"type":31,"tagName":318,"properties":407,"children":408},{"style":386},[409],{"type":27,"value":410},"50",{"type":31,"tagName":318,"properties":412,"children":413},{"style":380},[414],{"type":27,"value":415},", commissionPercent: ",{"type":31,"tagName":318,"properties":417,"children":418},{"style":386},[419],{"type":27,"value":420},"0.05",{"type":31,"tagName":318,"properties":422,"children":423},{"style":380},[424],{"type":27,"value":425},", slippageBps: ",{"type":31,"tagName":318,"properties":427,"children":428},{"style":386},[429],{"type":27,"value":430},"2",{"type":31,"tagName":318,"properties":432,"children":433},{"style":380},[434],{"type":27,"value":435}," });",{"type":27,"value":28},{"type":31,"tagName":318,"properties":438,"children":439},{"class":320},[440,445,450,455,460,465,470,475,480,485,490,495,500,505,510,515,520,525],{"type":31,"tagName":318,"properties":441,"children":442},{"style":380},[443],{"type":27,"value":444},"param.",{"type":31,"tagName":318,"properties":446,"children":447},{"style":374},[448],{"type":27,"value":449},"int",{"type":31,"tagName":318,"properties":451,"children":452},{"style":380},[453],{"type":27,"value":454},"(",{"type":31,"tagName":318,"properties":456,"children":457},{"style":397},[458],{"type":27,"value":459},"\"fast_len\"",{"type":31,"tagName":318,"properties":461,"children":462},{"style":380},[463],{"type":27,"value":464},", ",{"type":31,"tagName":318,"properties":466,"children":467},{"style":386},[468],{"type":27,"value":469},"9",{"type":31,"tagName":318,"properties":471,"children":472},{"style":380},[473],{"type":27,"value":474},", { min: ",{"type":31,"tagName":318,"properties":476,"children":477},{"style":386},[478],{"type":27,"value":479},"1",{"type":31,"tagName":318,"properties":481,"children":482},{"style":380},[483],{"type":27,"value":484},", max: ",{"type":31,"tagName":318,"properties":486,"children":487},{"style":386},[488],{"type":27,"value":489},"200",{"type":31,"tagName":318,"properties":491,"children":492},{"style":380},[493],{"type":27,"value":494},", label: ",{"type":31,"tagName":318,"properties":496,"children":497},{"style":397},[498],{"type":27,"value":499},"\"Fast length in bars\"",{"type":31,"tagName":318,"properties":501,"children":502},{"style":380},[503],{"type":27,"value":504},", row: ",{"type":31,"tagName":318,"properties":506,"children":507},{"style":397},[508],{"type":27,"value":509},"\"lengths\"",{"type":31,"tagName":318,"properties":511,"children":512},{"style":380},[513],{"type":27,"value":514},", description: ",{"type":31,"tagName":318,"properties":516,"children":517},{"style":397},[518],{"type":27,"value":519},"\"Fast average length in bars\"",{"type":31,"tagName":318,"properties":521,"children":522},{"style":380},[523],{"type":27,"value":524}," }); ",{"type":31,"tagName":318,"properties":526,"children":527},{"style":324},[528],{"type":27,"value":529},"// two whole numbers on one dialog line: rows naming the same row word sit side by side",{"type":27,"value":28},{"type":31,"tagName":318,"properties":532,"children":533},{"class":320},[534,538,542,546,551,555,560,564,568,572,577,581,586,590,594,598,603],{"type":31,"tagName":318,"properties":535,"children":536},{"style":380},[537],{"type":27,"value":444},{"type":31,"tagName":318,"properties":539,"children":540},{"style":374},[541],{"type":27,"value":449},{"type":31,"tagName":318,"properties":543,"children":544},{"style":380},[545],{"type":27,"value":454},{"type":31,"tagName":318,"properties":547,"children":548},{"style":397},[549],{"type":27,"value":550},"\"slow_len\"",{"type":31,"tagName":318,"properties":552,"children":553},{"style":380},[554],{"type":27,"value":464},{"type":31,"tagName":318,"properties":556,"children":557},{"style":386},[558],{"type":27,"value":559},"21",{"type":31,"tagName":318,"properties":561,"children":562},{"style":380},[563],{"type":27,"value":474},{"type":31,"tagName":318,"properties":565,"children":566},{"style":386},[567],{"type":27,"value":430},{"type":31,"tagName":318,"properties":569,"children":570},{"style":380},[571],{"type":27,"value":484},{"type":31,"tagName":318,"properties":573,"children":574},{"style":386},[575],{"type":27,"value":576},"400",{"type":31,"tagName":318,"properties":578,"children":579},{"style":380},[580],{"type":27,"value":494},{"type":31,"tagName":318,"properties":582,"children":583},{"style":397},[584],{"type":27,"value":585},"\"Slow length in bars\"",{"type":31,"tagName":318,"properties":587,"children":588},{"style":380},[589],{"type":27,"value":504},{"type":31,"tagName":318,"properties":591,"children":592},{"style":397},[593],{"type":27,"value":509},{"type":31,"tagName":318,"properties":595,"children":596},{"style":380},[597],{"type":27,"value":514},{"type":31,"tagName":318,"properties":599,"children":600},{"style":397},[601],{"type":27,"value":602},"\"Slow average length in bars\"",{"type":31,"tagName":318,"properties":604,"children":605},{"style":380},[606],{"type":27,"value":435},{"type":27,"value":28},{"type":31,"tagName":318,"properties":609,"children":610},{"class":320},[611,617,622,627,632,636,641,646,651,656,660,664,669,674,679,683,688,692],{"type":31,"tagName":318,"properties":612,"children":614},{"style":613},"--shiki-dark:#F97583;--shiki-light:#D73A49",[615],{"type":27,"value":616},"const",{"type":31,"tagName":318,"properties":618,"children":619},{"style":386},[620],{"type":27,"value":621}," fastLine",{"type":31,"tagName":318,"properties":623,"children":624},{"style":613},[625],{"type":27,"value":626}," =",{"type":31,"tagName":318,"properties":628,"children":629},{"style":374},[630],{"type":27,"value":631}," output",{"type":31,"tagName":318,"properties":633,"children":634},{"style":380},[635],{"type":27,"value":454},{"type":31,"tagName":318,"properties":637,"children":638},{"style":397},[639],{"type":27,"value":640},"\"fast_ma\"",{"type":31,"tagName":318,"properties":642,"children":643},{"style":380},[644],{"type":27,"value":645},", line, overlay, { color: ",{"type":31,"tagName":318,"properties":647,"children":648},{"style":397},[649],{"type":27,"value":650},"\"#38bdf8\"",{"type":31,"tagName":318,"properties":652,"children":653},{"style":380},[654],{"type":27,"value":655},", width: ",{"type":31,"tagName":318,"properties":657,"children":658},{"style":386},[659],{"type":27,"value":430},{"type":31,"tagName":318,"properties":661,"children":662},{"style":380},[663],{"type":27,"value":494},{"type":31,"tagName":318,"properties":665,"children":666},{"style":397},[667],{"type":27,"value":668},"\"Fast\"",{"type":31,"tagName":318,"properties":670,"children":671},{"style":380},[672],{"type":27,"value":673},", format: ",{"type":31,"tagName":318,"properties":675,"children":676},{"style":397},[677],{"type":27,"value":678},"\"price\"",{"type":31,"tagName":318,"properties":680,"children":681},{"style":380},[682],{"type":27,"value":514},{"type":31,"tagName":318,"properties":684,"children":685},{"style":397},[686],{"type":27,"value":687},"\"Simple moving average of the close over fast_len bars\"",{"type":31,"tagName":318,"properties":689,"children":690},{"style":380},[691],{"type":27,"value":524},{"type":31,"tagName":318,"properties":693,"children":694},{"style":324},[695],{"type":27,"value":696},"// the handle names it for the hover card",{"type":27,"value":28},{"type":31,"tagName":318,"properties":699,"children":700},{"class":320},[701,706,710,715,719,724,728,732,736,741,745,749,753,758],{"type":31,"tagName":318,"properties":702,"children":703},{"style":374},[704],{"type":27,"value":705},"output",{"type":31,"tagName":318,"properties":707,"children":708},{"style":380},[709],{"type":27,"value":454},{"type":31,"tagName":318,"properties":711,"children":712},{"style":397},[713],{"type":27,"value":714},"\"slow_ma\"",{"type":31,"tagName":318,"properties":716,"children":717},{"style":380},[718],{"type":27,"value":645},{"type":31,"tagName":318,"properties":720,"children":721},{"style":397},[722],{"type":27,"value":723},"\"#a78bfa\"",{"type":31,"tagName":318,"properties":725,"children":726},{"style":380},[727],{"type":27,"value":655},{"type":31,"tagName":318,"properties":729,"children":730},{"style":386},[731],{"type":27,"value":430},{"type":31,"tagName":318,"properties":733,"children":734},{"style":380},[735],{"type":27,"value":494},{"type":31,"tagName":318,"properties":737,"children":738},{"style":397},[739],{"type":27,"value":740},"\"Slow\"",{"type":31,"tagName":318,"properties":742,"children":743},{"style":380},[744],{"type":27,"value":673},{"type":31,"tagName":318,"properties":746,"children":747},{"style":397},[748],{"type":27,"value":678},{"type":31,"tagName":318,"properties":750,"children":751},{"style":380},[752],{"type":27,"value":514},{"type":31,"tagName":318,"properties":754,"children":755},{"style":397},[756],{"type":27,"value":757},"\"Simple moving average of the close over slow_len bars\"",{"type":31,"tagName":318,"properties":759,"children":760},{"style":380},[761],{"type":27,"value":435},{"type":27,"value":28},{"type":31,"tagName":318,"properties":764,"children":765},{"class":320},[766,770,774,779,784,789],{"type":31,"tagName":318,"properties":767,"children":768},{"style":374},[769],{"type":27,"value":705},{"type":31,"tagName":318,"properties":771,"children":772},{"style":380},[773],{"type":27,"value":454},{"type":31,"tagName":318,"properties":775,"children":776},{"style":397},[777],{"type":27,"value":778},"\"trend\"",{"type":31,"tagName":318,"properties":780,"children":781},{"style":380},[782],{"type":27,"value":783},", none, overlay, { description: ",{"type":31,"tagName":318,"properties":785,"children":786},{"style":397},[787],{"type":27,"value":788},"\"1 while the fast average is above the slow one, else 0\"",{"type":31,"tagName":318,"properties":790,"children":791},{"style":380},[792],{"type":27,"value":435},{"type":27,"value":28},{"type":31,"tagName":318,"properties":795,"children":796},{"class":320},[797,802,807,812,816,820,824,828,833,837,842,847,852,856,860,864,868,872,877,882,886,890,894,899,904],{"type":31,"tagName":318,"properties":798,"children":799},{"style":374},[800],{"type":27,"value":801},"hover",{"type":31,"tagName":318,"properties":803,"children":804},{"style":380},[805],{"type":27,"value":806},"(fastLine, [block.",{"type":31,"tagName":318,"properties":808,"children":809},{"style":374},[810],{"type":27,"value":811},"value",{"type":31,"tagName":318,"properties":813,"children":814},{"style":380},[815],{"type":27,"value":454},{"type":31,"tagName":318,"properties":817,"children":818},{"style":397},[819],{"type":27,"value":668},{"type":31,"tagName":318,"properties":821,"children":822},{"style":380},[823],{"type":27,"value":464},{"type":31,"tagName":318,"properties":825,"children":826},{"style":397},[827],{"type":27,"value":640},{"type":31,"tagName":318,"properties":829,"children":830},{"style":380},[831],{"type":27,"value":832},", { format: ",{"type":31,"tagName":318,"properties":834,"children":835},{"style":397},[836],{"type":27,"value":678},{"type":31,"tagName":318,"properties":838,"children":839},{"style":380},[840],{"type":27,"value":841}," }), block.",{"type":31,"tagName":318,"properties":843,"children":844},{"style":374},[845],{"type":27,"value":846},"rows",{"type":31,"tagName":318,"properties":848,"children":849},{"style":380},[850],{"type":27,"value":851},"([[",{"type":31,"tagName":318,"properties":853,"children":854},{"style":397},[855],{"type":27,"value":740},{"type":31,"tagName":318,"properties":857,"children":858},{"style":380},[859],{"type":27,"value":464},{"type":31,"tagName":318,"properties":861,"children":862},{"style":397},[863],{"type":27,"value":714},{"type":31,"tagName":318,"properties":865,"children":866},{"style":380},[867],{"type":27,"value":464},{"type":31,"tagName":318,"properties":869,"children":870},{"style":397},[871],{"type":27,"value":678},{"type":31,"tagName":318,"properties":873,"children":874},{"style":380},[875],{"type":27,"value":876},"], [",{"type":31,"tagName":318,"properties":878,"children":879},{"style":397},[880],{"type":27,"value":881},"\"Trend\"",{"type":31,"tagName":318,"properties":883,"children":884},{"style":380},[885],{"type":27,"value":464},{"type":31,"tagName":318,"properties":887,"children":888},{"style":397},[889],{"type":27,"value":778},{"type":31,"tagName":318,"properties":891,"children":892},{"style":380},[893],{"type":27,"value":464},{"type":31,"tagName":318,"properties":895,"children":896},{"style":397},[897],{"type":27,"value":898},"\"int\"",{"type":31,"tagName":318,"properties":900,"children":901},{"style":380},[902],{"type":27,"value":903},"]])]); ",{"type":31,"tagName":318,"properties":905,"children":906},{"style":324},[907],{"type":27,"value":908},"// the card the fast average opens under the cursor",{"type":27,"value":28},{"type":31,"tagName":318,"properties":911,"children":912},{"class":320},[913,917,921,926,931,936,940,945,949,954],{"type":31,"tagName":318,"properties":914,"children":915},{"style":374},[916],{"type":27,"value":705},{"type":31,"tagName":318,"properties":918,"children":919},{"style":380},[920],{"type":27,"value":454},{"type":31,"tagName":318,"properties":922,"children":923},{"style":397},[924],{"type":27,"value":925},"\"entry_cross\"",{"type":31,"tagName":318,"properties":927,"children":928},{"style":380},[929],{"type":27,"value":930},", shape, overlay, { color: ",{"type":31,"tagName":318,"properties":932,"children":933},{"style":397},[934],{"type":27,"value":935},"\"#f8c000\"",{"type":31,"tagName":318,"properties":937,"children":938},{"style":380},[939],{"type":27,"value":655},{"type":31,"tagName":318,"properties":941,"children":942},{"style":386},[943],{"type":27,"value":944},"6",{"type":31,"tagName":318,"properties":946,"children":947},{"style":380},[948],{"type":27,"value":514},{"type":31,"tagName":318,"properties":950,"children":951},{"style":397},[952],{"type":27,"value":953},"\"The price where the fast average crossed above the slow one; the long entry fills at the next open\"",{"type":31,"tagName":318,"properties":955,"children":956},{"style":380},[957],{"type":27,"value":435},{"type":27,"value":28},{"type":31,"tagName":318,"properties":960,"children":961},{"class":320},[962,966,970,975,979,984,988,992,996,1001],{"type":31,"tagName":318,"properties":963,"children":964},{"style":374},[965],{"type":27,"value":705},{"type":31,"tagName":318,"properties":967,"children":968},{"style":380},[969],{"type":27,"value":454},{"type":31,"tagName":318,"properties":971,"children":972},{"style":397},[973],{"type":27,"value":974},"\"exit_cross\"",{"type":31,"tagName":318,"properties":976,"children":977},{"style":380},[978],{"type":27,"value":930},{"type":31,"tagName":318,"properties":980,"children":981},{"style":397},[982],{"type":27,"value":983},"\"#f86800\"",{"type":31,"tagName":318,"properties":985,"children":986},{"style":380},[987],{"type":27,"value":655},{"type":31,"tagName":318,"properties":989,"children":990},{"style":386},[991],{"type":27,"value":944},{"type":31,"tagName":318,"properties":993,"children":994},{"style":380},[995],{"type":27,"value":514},{"type":31,"tagName":318,"properties":997,"children":998},{"style":397},[999],{"type":27,"value":1000},"\"The price where the fast average crossed below the slow one; the position closes at the next open\"",{"type":31,"tagName":318,"properties":1002,"children":1003},{"style":380},[1004],{"type":27,"value":435},{"type":27,"value":28},{"type":31,"tagName":318,"properties":1007,"children":1008},{"class":320},[1009,1013,1017,1021,1025,1029,1034,1038,1043,1048,1052,1057,1062],{"type":31,"tagName":318,"properties":1010,"children":1011},{"style":374},[1012],{"type":27,"value":150},{"type":31,"tagName":318,"properties":1014,"children":1015},{"style":380},[1016],{"type":27,"value":454},{"type":31,"tagName":318,"properties":1018,"children":1019},{"style":397},[1020],{"type":27,"value":640},{"type":31,"tagName":318,"properties":1022,"children":1023},{"style":380},[1024],{"type":27,"value":464},{"type":31,"tagName":318,"properties":1026,"children":1027},{"style":397},[1028],{"type":27,"value":714},{"type":31,"tagName":318,"properties":1030,"children":1031},{"style":380},[1032],{"type":27,"value":1033},", { color_by: ",{"type":31,"tagName":318,"properties":1035,"children":1036},{"style":397},[1037],{"type":27,"value":778},{"type":31,"tagName":318,"properties":1039,"children":1040},{"style":380},[1041],{"type":27,"value":1042},", colors: [",{"type":31,"tagName":318,"properties":1044,"children":1045},{"style":397},[1046],{"type":27,"value":1047},"\"rgba(248, 104, 0, 0.14)\"",{"type":31,"tagName":318,"properties":1049,"children":1050},{"style":380},[1051],{"type":27,"value":464},{"type":31,"tagName":318,"properties":1053,"children":1054},{"style":397},[1055],{"type":27,"value":1056},"\"rgba(248, 192, 0, 0.14)\"",{"type":31,"tagName":318,"properties":1058,"children":1059},{"style":380},[1060],{"type":27,"value":1061},"] }); ",{"type":31,"tagName":318,"properties":1063,"children":1064},{"style":324},[1065],{"type":27,"value":1066},"// the ribbon, tinted by the trend",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1069,"children":1070},{"class":320},[],{"type":27,"value":28},{"type":31,"tagName":318,"properties":1073,"children":1074},{"class":320},[1075,1080,1085,1090,1095,1100,1104,1108,1113],{"type":31,"tagName":318,"properties":1076,"children":1077},{"style":613},[1078],{"type":27,"value":1079},"let",{"type":31,"tagName":318,"properties":1081,"children":1082},{"style":380},[1083],{"type":27,"value":1084}," fastSma ",{"type":31,"tagName":318,"properties":1086,"children":1087},{"style":613},[1088],{"type":27,"value":1089},"=",{"type":31,"tagName":318,"properties":1091,"children":1092},{"style":613},[1093],{"type":27,"value":1094}," new",{"type":31,"tagName":318,"properties":1096,"children":1097},{"style":374},[1098],{"type":27,"value":1099}," Sma",{"type":31,"tagName":318,"properties":1101,"children":1102},{"style":380},[1103],{"type":27,"value":454},{"type":31,"tagName":318,"properties":1105,"children":1106},{"style":386},[1107],{"type":27,"value":469},{"type":31,"tagName":318,"properties":1109,"children":1110},{"style":380},[1111],{"type":27,"value":1112},"); ",{"type":31,"tagName":318,"properties":1114,"children":1115},{"style":324},[1116],{"type":27,"value":1117},"// onStart() rebuilds both at the chosen lengths",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1120,"children":1121},{"class":320},[1122,1126,1131,1135,1139,1143,1147,1151],{"type":31,"tagName":318,"properties":1123,"children":1124},{"style":613},[1125],{"type":27,"value":1079},{"type":31,"tagName":318,"properties":1127,"children":1128},{"style":380},[1129],{"type":27,"value":1130}," slowSma ",{"type":31,"tagName":318,"properties":1132,"children":1133},{"style":613},[1134],{"type":27,"value":1089},{"type":31,"tagName":318,"properties":1136,"children":1137},{"style":613},[1138],{"type":27,"value":1094},{"type":31,"tagName":318,"properties":1140,"children":1141},{"style":374},[1142],{"type":27,"value":1099},{"type":31,"tagName":318,"properties":1144,"children":1145},{"style":380},[1146],{"type":27,"value":454},{"type":31,"tagName":318,"properties":1148,"children":1149},{"style":386},[1150],{"type":27,"value":559},{"type":31,"tagName":318,"properties":1152,"children":1153},{"style":380},[1154],{"type":27,"value":1155},");",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1158,"children":1159},{"class":320},[1160,1164,1169,1173,1177,1182,1187],{"type":31,"tagName":318,"properties":1161,"children":1162},{"style":613},[1163],{"type":27,"value":616},{"type":31,"tagName":318,"properties":1165,"children":1166},{"style":386},[1167],{"type":27,"value":1168}," cross",{"type":31,"tagName":318,"properties":1170,"children":1171},{"style":613},[1172],{"type":27,"value":626},{"type":31,"tagName":318,"properties":1174,"children":1175},{"style":613},[1176],{"type":27,"value":1094},{"type":31,"tagName":318,"properties":1178,"children":1179},{"style":374},[1180],{"type":27,"value":1181}," Cross",{"type":31,"tagName":318,"properties":1183,"children":1184},{"style":380},[1185],{"type":27,"value":1186},"(); ",{"type":31,"tagName":318,"properties":1188,"children":1189},{"style":324},[1190],{"type":27,"value":1191},"// +1 on the bar the fast average crosses above the slow one, -1 below, 0 otherwise",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1194,"children":1195},{"class":320},[],{"type":27,"value":28},{"type":31,"tagName":318,"properties":1198,"children":1199},{"class":320},[1200],{"type":31,"tagName":318,"properties":1201,"children":1202},{"style":324},[1203],{"type":27,"value":1204},"// onStart() runs once before the first bar: read each setting (i32() = whole bars).",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1207,"children":1208},{"class":320},[1209,1214,1219,1224,1229,1234],{"type":31,"tagName":318,"properties":1210,"children":1211},{"style":613},[1212],{"type":27,"value":1213},"function",{"type":31,"tagName":318,"properties":1215,"children":1216},{"style":374},[1217],{"type":27,"value":1218}," onStart",{"type":31,"tagName":318,"properties":1220,"children":1221},{"style":380},[1222],{"type":27,"value":1223},"()",{"type":31,"tagName":318,"properties":1225,"children":1226},{"style":613},[1227],{"type":27,"value":1228},":",{"type":31,"tagName":318,"properties":1230,"children":1231},{"style":386},[1232],{"type":27,"value":1233}," void",{"type":31,"tagName":318,"properties":1235,"children":1236},{"style":380},[1237],{"type":27,"value":1238}," {",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1241,"children":1242},{"class":320},[1243,1248,1252,1256,1260,1264,1269,1273,1278],{"type":31,"tagName":318,"properties":1244,"children":1245},{"style":380},[1246],{"type":27,"value":1247},"  fastSma ",{"type":31,"tagName":318,"properties":1249,"children":1250},{"style":613},[1251],{"type":27,"value":1089},{"type":31,"tagName":318,"properties":1253,"children":1254},{"style":613},[1255],{"type":27,"value":1094},{"type":31,"tagName":318,"properties":1257,"children":1258},{"style":374},[1259],{"type":27,"value":1099},{"type":31,"tagName":318,"properties":1261,"children":1262},{"style":380},[1263],{"type":27,"value":454},{"type":31,"tagName":318,"properties":1265,"children":1266},{"style":374},[1267],{"type":27,"value":1268},"i32",{"type":31,"tagName":318,"properties":1270,"children":1271},{"style":380},[1272],{"type":27,"value":454},{"type":31,"tagName":318,"properties":1274,"children":1275},{"style":374},[1276],{"type":27,"value":1277},"p_fast_len",{"type":31,"tagName":318,"properties":1279,"children":1280},{"style":380},[1281],{"type":27,"value":1282},"()));",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1285,"children":1286},{"class":320},[1287,1292,1296,1300,1304,1308,1312,1316,1321],{"type":31,"tagName":318,"properties":1288,"children":1289},{"style":380},[1290],{"type":27,"value":1291},"  slowSma ",{"type":31,"tagName":318,"properties":1293,"children":1294},{"style":613},[1295],{"type":27,"value":1089},{"type":31,"tagName":318,"properties":1297,"children":1298},{"style":613},[1299],{"type":27,"value":1094},{"type":31,"tagName":318,"properties":1301,"children":1302},{"style":374},[1303],{"type":27,"value":1099},{"type":31,"tagName":318,"properties":1305,"children":1306},{"style":380},[1307],{"type":27,"value":454},{"type":31,"tagName":318,"properties":1309,"children":1310},{"style":374},[1311],{"type":27,"value":1268},{"type":31,"tagName":318,"properties":1313,"children":1314},{"style":380},[1315],{"type":27,"value":454},{"type":31,"tagName":318,"properties":1317,"children":1318},{"style":374},[1319],{"type":27,"value":1320},"p_slow_len",{"type":31,"tagName":318,"properties":1322,"children":1323},{"style":380},[1324],{"type":27,"value":1282},{"type":27,"value":28},{"type":31,"tagName":318,"properties":1327,"children":1328},{"class":320},[1329],{"type":31,"tagName":318,"properties":1330,"children":1331},{"style":380},[1332],{"type":27,"value":1333},"}",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1336,"children":1337},{"class":320},[],{"type":27,"value":28},{"type":31,"tagName":318,"properties":1340,"children":1341},{"class":320},[1342],{"type":31,"tagName":318,"properties":1343,"children":1344},{"style":324},[1345],{"type":27,"value":1346},"// onBar() runs once per bar: fold the close into both windows and leave while either is still warming up (nothing",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1349,"children":1350},{"class":320},[1351],{"type":31,"tagName":318,"properties":1352,"children":1353},{"style":324},[1354],{"type":27,"value":1355},"// written, no orders); then place the orders (an order fills at the next bar's open, never earlier) and write the",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1358,"children":1359},{"class":320},[1360],{"type":31,"tagName":318,"properties":1361,"children":1362},{"style":324},[1363],{"type":27,"value":1364},"// outputs. The cross marks are NaN on every bar without a cross, so nothing is drawn there.",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1367,"children":1368},{"class":320},[1369,1373,1378,1382,1386,1390],{"type":31,"tagName":318,"properties":1370,"children":1371},{"style":613},[1372],{"type":27,"value":1213},{"type":31,"tagName":318,"properties":1374,"children":1375},{"style":374},[1376],{"type":27,"value":1377}," onBar",{"type":31,"tagName":318,"properties":1379,"children":1380},{"style":380},[1381],{"type":27,"value":1223},{"type":31,"tagName":318,"properties":1383,"children":1384},{"style":613},[1385],{"type":27,"value":1228},{"type":31,"tagName":318,"properties":1387,"children":1388},{"style":386},[1389],{"type":27,"value":1233},{"type":31,"tagName":318,"properties":1391,"children":1392},{"style":380},[1393],{"type":27,"value":1238},{"type":27,"value":28},{"type":31,"tagName":318,"properties":1396,"children":1397},{"class":320},[1398,1403,1408,1412,1417,1422],{"type":31,"tagName":318,"properties":1399,"children":1400},{"style":613},[1401],{"type":27,"value":1402},"  const",{"type":31,"tagName":318,"properties":1404,"children":1405},{"style":386},[1406],{"type":27,"value":1407}," close",{"type":31,"tagName":318,"properties":1409,"children":1410},{"style":613},[1411],{"type":27,"value":626},{"type":31,"tagName":318,"properties":1413,"children":1414},{"style":380},[1415],{"type":27,"value":1416}," bar.",{"type":31,"tagName":318,"properties":1418,"children":1419},{"style":374},[1420],{"type":27,"value":1421},"close",{"type":31,"tagName":318,"properties":1423,"children":1424},{"style":380},[1425],{"type":27,"value":1426},"();",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1429,"children":1430},{"class":320},[1431,1435,1440,1444,1449,1454],{"type":31,"tagName":318,"properties":1432,"children":1433},{"style":613},[1434],{"type":27,"value":1402},{"type":31,"tagName":318,"properties":1436,"children":1437},{"style":386},[1438],{"type":27,"value":1439}," fast",{"type":31,"tagName":318,"properties":1441,"children":1442},{"style":613},[1443],{"type":27,"value":626},{"type":31,"tagName":318,"properties":1445,"children":1446},{"style":380},[1447],{"type":27,"value":1448}," fastSma.",{"type":31,"tagName":318,"properties":1450,"children":1451},{"style":374},[1452],{"type":27,"value":1453},"update",{"type":31,"tagName":318,"properties":1455,"children":1456},{"style":380},[1457],{"type":27,"value":1458},"(close);",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1461,"children":1462},{"class":320},[1463,1467,1472,1476,1481,1485],{"type":31,"tagName":318,"properties":1464,"children":1465},{"style":613},[1466],{"type":27,"value":1402},{"type":31,"tagName":318,"properties":1468,"children":1469},{"style":386},[1470],{"type":27,"value":1471}," slow",{"type":31,"tagName":318,"properties":1473,"children":1474},{"style":613},[1475],{"type":27,"value":626},{"type":31,"tagName":318,"properties":1477,"children":1478},{"style":380},[1479],{"type":27,"value":1480}," slowSma.",{"type":31,"tagName":318,"properties":1482,"children":1483},{"style":374},[1484],{"type":27,"value":1453},{"type":31,"tagName":318,"properties":1486,"children":1487},{"style":380},[1488],{"type":27,"value":1458},{"type":27,"value":28},{"type":31,"tagName":318,"properties":1491,"children":1492},{"class":320},[1493,1498,1502,1507,1512,1517,1522,1527,1532],{"type":31,"tagName":318,"properties":1494,"children":1495},{"style":613},[1496],{"type":27,"value":1497},"  if",{"type":31,"tagName":318,"properties":1499,"children":1500},{"style":380},[1501],{"type":27,"value":114},{"type":31,"tagName":318,"properties":1503,"children":1504},{"style":374},[1505],{"type":27,"value":1506},"isNaN",{"type":31,"tagName":318,"properties":1508,"children":1509},{"style":380},[1510],{"type":27,"value":1511},"(fast) ",{"type":31,"tagName":318,"properties":1513,"children":1514},{"style":613},[1515],{"type":27,"value":1516},"||",{"type":31,"tagName":318,"properties":1518,"children":1519},{"style":374},[1520],{"type":27,"value":1521}," isNaN",{"type":31,"tagName":318,"properties":1523,"children":1524},{"style":380},[1525],{"type":27,"value":1526},"(slow)) ",{"type":31,"tagName":318,"properties":1528,"children":1529},{"style":613},[1530],{"type":27,"value":1531},"return",{"type":31,"tagName":318,"properties":1533,"children":1534},{"style":380},[1535],{"type":27,"value":1536},";",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1539,"children":1540},{"class":320},[1541,1545,1550,1554,1559,1563],{"type":31,"tagName":318,"properties":1542,"children":1543},{"style":613},[1544],{"type":27,"value":1402},{"type":31,"tagName":318,"properties":1546,"children":1547},{"style":386},[1548],{"type":27,"value":1549}," crossed",{"type":31,"tagName":318,"properties":1551,"children":1552},{"style":613},[1553],{"type":27,"value":626},{"type":31,"tagName":318,"properties":1555,"children":1556},{"style":380},[1557],{"type":27,"value":1558}," cross.",{"type":31,"tagName":318,"properties":1560,"children":1561},{"style":374},[1562],{"type":27,"value":1453},{"type":31,"tagName":318,"properties":1564,"children":1565},{"style":380},[1566],{"type":27,"value":1567},"(fast, slow);",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1570,"children":1571},{"class":320},[1572,1576,1581,1585,1590,1595,1600,1605,1610,1615,1620],{"type":31,"tagName":318,"properties":1573,"children":1574},{"style":613},[1575],{"type":27,"value":1402},{"type":31,"tagName":318,"properties":1577,"children":1578},{"style":386},[1579],{"type":27,"value":1580}," trend",{"type":31,"tagName":318,"properties":1582,"children":1583},{"style":613},[1584],{"type":27,"value":626},{"type":31,"tagName":318,"properties":1586,"children":1587},{"style":380},[1588],{"type":27,"value":1589}," fast ",{"type":31,"tagName":318,"properties":1591,"children":1592},{"style":613},[1593],{"type":27,"value":1594},">",{"type":31,"tagName":318,"properties":1596,"children":1597},{"style":380},[1598],{"type":27,"value":1599}," slow ",{"type":31,"tagName":318,"properties":1601,"children":1602},{"style":613},[1603],{"type":27,"value":1604},"?",{"type":31,"tagName":318,"properties":1606,"children":1607},{"style":386},[1608],{"type":27,"value":1609}," 1.0",{"type":31,"tagName":318,"properties":1611,"children":1612},{"style":613},[1613],{"type":27,"value":1614}," :",{"type":31,"tagName":318,"properties":1616,"children":1617},{"style":386},[1618],{"type":27,"value":1619}," 0.0",{"type":31,"tagName":318,"properties":1621,"children":1622},{"style":380},[1623],{"type":27,"value":1536},{"type":27,"value":28},{"type":31,"tagName":318,"properties":1626,"children":1627},{"class":320},[1628,1632,1637,1642,1647,1652,1657,1661,1666,1671,1676,1680],{"type":31,"tagName":318,"properties":1629,"children":1630},{"style":613},[1631],{"type":27,"value":1497},{"type":31,"tagName":318,"properties":1633,"children":1634},{"style":380},[1635],{"type":27,"value":1636}," (crossed ",{"type":31,"tagName":318,"properties":1638,"children":1639},{"style":613},[1640],{"type":27,"value":1641},"==",{"type":31,"tagName":318,"properties":1643,"children":1644},{"style":386},[1645],{"type":27,"value":1646}," 1",{"type":31,"tagName":318,"properties":1648,"children":1649},{"style":380},[1650],{"type":27,"value":1651},") strategy.",{"type":31,"tagName":318,"properties":1653,"children":1654},{"style":374},[1655],{"type":27,"value":1656},"long",{"type":31,"tagName":318,"properties":1658,"children":1659},{"style":380},[1660],{"type":27,"value":454},{"type":31,"tagName":318,"properties":1662,"children":1663},{"style":397},[1664],{"type":27,"value":1665},"\"L\"",{"type":31,"tagName":318,"properties":1667,"children":1668},{"style":380},[1669],{"type":27,"value":1670},").",{"type":31,"tagName":318,"properties":1672,"children":1673},{"style":374},[1674],{"type":27,"value":1675},"send",{"type":31,"tagName":318,"properties":1677,"children":1678},{"style":380},[1679],{"type":27,"value":1186},{"type":31,"tagName":318,"properties":1681,"children":1682},{"style":324},[1683],{"type":27,"value":1684},"// a market entry under the id L, sized by the settings above",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1687,"children":1688},{"class":320},[1689,1693,1697,1701,1706,1710,1714,1719,1723],{"type":31,"tagName":318,"properties":1690,"children":1691},{"style":613},[1692],{"type":27,"value":1497},{"type":31,"tagName":318,"properties":1694,"children":1695},{"style":380},[1696],{"type":27,"value":1636},{"type":31,"tagName":318,"properties":1698,"children":1699},{"style":613},[1700],{"type":27,"value":1641},{"type":31,"tagName":318,"properties":1702,"children":1703},{"style":613},[1704],{"type":27,"value":1705}," -",{"type":31,"tagName":318,"properties":1707,"children":1708},{"style":386},[1709],{"type":27,"value":479},{"type":31,"tagName":318,"properties":1711,"children":1712},{"style":380},[1713],{"type":27,"value":1651},{"type":31,"tagName":318,"properties":1715,"children":1716},{"style":374},[1717],{"type":27,"value":1718},"closeAll",{"type":31,"tagName":318,"properties":1720,"children":1721},{"style":380},[1722],{"type":27,"value":1186},{"type":31,"tagName":318,"properties":1724,"children":1725},{"style":324},[1726],{"type":27,"value":1727},"// every open entry closes at the next open",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1730,"children":1731},{"class":320},[1732,1736,1741,1745,1750,1755,1760,1765,1770,1775],{"type":31,"tagName":318,"properties":1733,"children":1734},{"style":613},[1735],{"type":27,"value":1402},{"type":31,"tagName":318,"properties":1737,"children":1738},{"style":386},[1739],{"type":27,"value":1740}," crossPrice",{"type":31,"tagName":318,"properties":1742,"children":1743},{"style":613},[1744],{"type":27,"value":626},{"type":31,"tagName":318,"properties":1746,"children":1747},{"style":380},[1748],{"type":27,"value":1749}," (fast ",{"type":31,"tagName":318,"properties":1751,"children":1752},{"style":613},[1753],{"type":27,"value":1754},"+",{"type":31,"tagName":318,"properties":1756,"children":1757},{"style":380},[1758],{"type":27,"value":1759}," slow) ",{"type":31,"tagName":318,"properties":1761,"children":1762},{"style":613},[1763],{"type":27,"value":1764},"*",{"type":31,"tagName":318,"properties":1766,"children":1767},{"style":386},[1768],{"type":27,"value":1769}," 0.5",{"type":31,"tagName":318,"properties":1771,"children":1772},{"style":380},[1773],{"type":27,"value":1774},"; ",{"type":31,"tagName":318,"properties":1776,"children":1777},{"style":324},[1778],{"type":27,"value":1779},"// where the two averages met on this bar",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1782,"children":1783},{"class":320},[1784,1789],{"type":31,"tagName":318,"properties":1785,"children":1786},{"style":374},[1787],{"type":27,"value":1788},"  out_fast_ma",{"type":31,"tagName":318,"properties":1790,"children":1791},{"style":380},[1792],{"type":27,"value":1793},"(fast);",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1796,"children":1797},{"class":320},[1798,1803],{"type":31,"tagName":318,"properties":1799,"children":1800},{"style":374},[1801],{"type":27,"value":1802},"  out_slow_ma",{"type":31,"tagName":318,"properties":1804,"children":1805},{"style":380},[1806],{"type":27,"value":1807},"(slow);",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1810,"children":1811},{"class":320},[1812,1817],{"type":31,"tagName":318,"properties":1813,"children":1814},{"style":374},[1815],{"type":27,"value":1816},"  out_trend",{"type":31,"tagName":318,"properties":1818,"children":1819},{"style":380},[1820],{"type":27,"value":1821},"(trend);",{"type":27,"value":28},{"type":31,"tagName":318,"properties":1824,"children":1825},{"class":320},[1826,1831,1836,1840,1844,1849,1854,1858,1863],{"type":31,"tagName":318,"properties":1827,"children":1828},{"style":374},[1829],{"type":27,"value":1830},"  out_entry_cross",{"type":31,"tagName":318,"properties":1832,"children":1833},{"style":380},[1834],{"type":27,"value":1835},"(crossed ",{"type":31,"tagName":318,"properties":1837,"children":1838},{"style":613},[1839],{"type":27,"value":1641},{"type":31,"tagName":318,"properties":1841,"children":1842},{"style":386},[1843],{"type":27,"value":1646},{"type":31,"tagName":318,"properties":1845,"children":1846},{"style":613},[1847],{"type":27,"value":1848}," ?",{"type":31,"tagName":318,"properties":1850,"children":1851},{"style":380},[1852],{"type":27,"value":1853}," crossPrice ",{"type":31,"tagName":318,"properties":1855,"children":1856},{"style":613},[1857],{"type":27,"value":1228},{"type":31,"tagName":318,"properties":1859,"children":1860},{"style":386},[1861],{"type":27,"value":1862}," NaN",{"type":31,"tagName":318,"properties":1864,"children":1865},{"style":380},[1866],{"type":27,"value":1155},{"type":27,"value":28},{"type":31,"tagName":318,"properties":1869,"children":1870},{"class":320},[1871,1876,1880,1884,1888,1892,1896,1900,1904,1908],{"type":31,"tagName":318,"properties":1872,"children":1873},{"style":374},[1874],{"type":27,"value":1875},"  out_exit_cross",{"type":31,"tagName":318,"properties":1877,"children":1878},{"style":380},[1879],{"type":27,"value":1835},{"type":31,"tagName":318,"properties":1881,"children":1882},{"style":613},[1883],{"type":27,"value":1641},{"type":31,"tagName":318,"properties":1885,"children":1886},{"style":613},[1887],{"type":27,"value":1705},{"type":31,"tagName":318,"properties":1889,"children":1890},{"style":386},[1891],{"type":27,"value":479},{"type":31,"tagName":318,"properties":1893,"children":1894},{"style":613},[1895],{"type":27,"value":1848},{"type":31,"tagName":318,"properties":1897,"children":1898},{"style":380},[1899],{"type":27,"value":1853},{"type":31,"tagName":318,"properties":1901,"children":1902},{"style":613},[1903],{"type":27,"value":1228},{"type":31,"tagName":318,"properties":1905,"children":1906},{"style":386},[1907],{"type":27,"value":1862},{"type":31,"tagName":318,"properties":1909,"children":1910},{"style":380},[1911],{"type":27,"value":1155},{"type":27,"value":28},{"type":31,"tagName":318,"properties":1914,"children":1915},{"class":320},[1916],{"type":31,"tagName":318,"properties":1917,"children":1918},{"style":380},[1919],{"type":27,"value":1333},{"type":27,"value":28},{"type":31,"tagName":285,"properties":1922,"children":1923,"position":1933},{},[1924],{"type":27,"value":1925,"position":1926},"How it works",{"start":1927,"end":1930},{"line":1928,"column":293,"offset":1929},62,5104,{"line":1928,"column":1931,"offset":1932},16,5116,{"start":1934,"end":1936},{"line":1928,"column":21,"offset":1935},5101,{"line":1928,"column":1931,"offset":1932},{"type":27,"value":28},{"type":31,"tagName":32,"properties":1939,"children":1940,"position":2006},{},[1941,1959,1966,1979,1986,1999],{"type":31,"tagName":232,"properties":1942,"children":1943,"position":1954},{},[1944],{"type":27,"value":1945,"position":1946},"The file is the strategy.",{"start":1947,"end":1951},{"line":1948,"column":1949,"offset":1950},64,3,5120,{"line":1948,"column":1952,"offset":1953},28,5145,{"start":1955,"end":1957},{"line":1948,"column":21,"offset":1956},5118,{"line":1948,"column":88,"offset":1958},5147,{"type":27,"value":1960,"position":1961}," ",{"start":1962,"end":1963},{"line":1948,"column":88,"offset":1958},{"line":1948,"column":1964,"offset":1965},31,5148,{"type":31,"tagName":80,"properties":1967,"children":1968,"position":1976},{},[1969],{"type":27,"value":1970,"position":1971},"strategy({ initialCapital: 10000, qtyType: \"percentOfEquity\", qtyValue: 50, commissionPercent: 0.05, slippageBps: 2 })",{"start":1972,"end":1973},{"line":1948,"column":1964,"offset":1965},{"line":1948,"column":1974,"offset":1975},151,5268,{"start":1977,"end":1978},{"line":1948,"column":1964,"offset":1965},{"line":1948,"column":1974,"offset":1975},{"type":27,"value":1980,"position":1981}," makes the package a strategy: 10,000 starting equity, 50% of equity per entry, 0.05% commission, 2 bps slippage. The primary input is the chart's own close (",{"start":1982,"end":1983},{"line":1948,"column":1974,"offset":1975},{"line":1948,"column":1984,"offset":1985},309,5426,{"type":31,"tagName":80,"properties":1987,"children":1988,"position":1996},{},[1989],{"type":27,"value":1990,"position":1991},"bar.close()",{"start":1992,"end":1993},{"line":1948,"column":1984,"offset":1985},{"line":1948,"column":1994,"offset":1995},322,5439,{"start":1997,"end":1998},{"line":1948,"column":1984,"offset":1985},{"line":1948,"column":1994,"offset":1995},{"type":27,"value":2000,"position":2001},", no input line needed), the candles the broker fills against.",{"start":2002,"end":2003},{"line":1948,"column":1994,"offset":1995},{"line":1948,"column":2004,"offset":2005},384,5501,{"start":2007,"end":2008},{"line":1948,"column":21,"offset":1956},{"line":1948,"column":2004,"offset":2005},{"type":27,"value":28},{"type":31,"tagName":32,"properties":2011,"children":2012,"position":2175},{},[2013,2031,2037,2049,2056,2069,2076,2089,2096,2108,2115,2128,2135,2148,2155,2168],{"type":31,"tagName":232,"properties":2014,"children":2015,"position":2025},{},[2016],{"type":27,"value":2017,"position":2018},"Orders fill at the next open.",{"start":2019,"end":2022},{"line":2020,"column":1949,"offset":2021},66,5505,{"line":2020,"column":2023,"offset":2024},32,5534,{"start":2026,"end":2028},{"line":2020,"column":21,"offset":2027},5503,{"line":2020,"column":2029,"offset":2030},34,5536,{"type":27,"value":1960,"position":2032},{"start":2033,"end":2034},{"line":2020,"column":2029,"offset":2030},{"line":2020,"column":2035,"offset":2036},35,5537,{"type":31,"tagName":80,"properties":2038,"children":2039,"position":2046},{},[2040],{"type":27,"value":104,"position":2041},{"start":2042,"end":2043},{"line":2020,"column":2035,"offset":2036},{"line":2020,"column":2044,"offset":2045},44,5546,{"start":2047,"end":2048},{"line":2020,"column":2035,"offset":2036},{"line":2020,"column":2044,"offset":2045},{"type":27,"value":2050,"position":2051}," folds the close into two ",{"start":2052,"end":2053},{"line":2020,"column":2044,"offset":2045},{"line":2020,"column":2054,"offset":2055},70,5572,{"type":31,"tagName":80,"properties":2057,"children":2058,"position":2066},{},[2059],{"type":27,"value":2060,"position":2061},"Sma",{"start":2062,"end":2063},{"line":2020,"column":2054,"offset":2055},{"line":2020,"column":2064,"offset":2065},75,5577,{"start":2067,"end":2068},{"line":2020,"column":2054,"offset":2055},{"line":2020,"column":2064,"offset":2065},{"type":27,"value":2070,"position":2071}," windows (",{"start":2072,"end":2073},{"line":2020,"column":2064,"offset":2065},{"line":2020,"column":2074,"offset":2075},85,5587,{"type":31,"tagName":80,"properties":2077,"children":2078,"position":2086},{},[2079],{"type":27,"value":2080,"position":2081},"fast_len",{"start":2082,"end":2083},{"line":2020,"column":2074,"offset":2075},{"line":2020,"column":2084,"offset":2085},95,5597,{"start":2087,"end":2088},{"line":2020,"column":2074,"offset":2075},{"line":2020,"column":2084,"offset":2085},{"type":27,"value":2090,"position":2091}," 9, ",{"start":2092,"end":2093},{"line":2020,"column":2084,"offset":2085},{"line":2020,"column":2094,"offset":2095},99,5601,{"type":31,"tagName":80,"properties":2097,"children":2098,"position":2105},{},[2099],{"type":27,"value":2100,"position":2101},"slow_len",{"start":2102,"end":2103},{"line":2020,"column":2094,"offset":2095},{"line":2020,"column":132,"offset":2104},5611,{"start":2106,"end":2107},{"line":2020,"column":2094,"offset":2095},{"line":2020,"column":132,"offset":2104},{"type":27,"value":2109,"position":2110}," 21) and returns early while either is warming up (nothing written, no orders); ",{"start":2111,"end":2112},{"line":2020,"column":132,"offset":2104},{"line":2020,"column":2113,"offset":2114},189,5691,{"type":31,"tagName":80,"properties":2116,"children":2117,"position":2125},{},[2118],{"type":27,"value":2119,"position":2120},"Cross.update(fast, slow)",{"start":2121,"end":2122},{"line":2020,"column":2113,"offset":2114},{"line":2020,"column":2123,"offset":2124},215,5717,{"start":2126,"end":2127},{"line":2020,"column":2113,"offset":2114},{"line":2020,"column":2123,"offset":2124},{"type":27,"value":2129,"position":2130}," is +1 on the bar the fast average crosses above the slow one and -1 on the way back. On a cross, ",{"start":2131,"end":2132},{"line":2020,"column":2123,"offset":2124},{"line":2020,"column":2133,"offset":2134},313,5815,{"type":31,"tagName":80,"properties":2136,"children":2137,"position":2145},{},[2138],{"type":27,"value":2139,"position":2140},"strategy.long(\"L\").send()",{"start":2141,"end":2142},{"line":2020,"column":2133,"offset":2134},{"line":2020,"column":2143,"offset":2144},340,5842,{"start":2146,"end":2147},{"line":2020,"column":2133,"offset":2134},{"line":2020,"column":2143,"offset":2144},{"type":27,"value":2149,"position":2150}," places a market entry under the id L and ",{"start":2151,"end":2152},{"line":2020,"column":2143,"offset":2144},{"line":2020,"column":2153,"offset":2154},382,5884,{"type":31,"tagName":80,"properties":2156,"children":2157,"position":2165},{},[2158],{"type":27,"value":2159,"position":2160},"strategy.closeAll()",{"start":2161,"end":2162},{"line":2020,"column":2153,"offset":2154},{"line":2020,"column":2163,"offset":2164},403,5905,{"start":2166,"end":2167},{"line":2020,"column":2153,"offset":2154},{"line":2020,"column":2163,"offset":2164},{"type":27,"value":2169,"position":2170}," closes every open entry; both fill at the next bar's open, never earlier.",{"start":2171,"end":2172},{"line":2020,"column":2163,"offset":2164},{"line":2020,"column":2173,"offset":2174},477,5979,{"start":2176,"end":2177},{"line":2020,"column":21,"offset":2027},{"line":2020,"column":2173,"offset":2174},{"type":27,"value":28},{"type":31,"tagName":32,"properties":2180,"children":2181,"position":2284},{},[2182,2199,2204,2217,2224,2237,2244,2257,2264,2277],{"type":31,"tagName":232,"properties":2183,"children":2184,"position":2194},{},[2185],{"type":27,"value":2186,"position":2187},"The look is three outputs.",{"start":2188,"end":2191},{"line":2189,"column":1949,"offset":2190},68,5983,{"line":2189,"column":2192,"offset":2193},29,6009,{"start":2195,"end":2197},{"line":2189,"column":21,"offset":2196},5981,{"line":2189,"column":1964,"offset":2198},6011,{"type":27,"value":1960,"position":2200},{"start":2201,"end":2202},{"line":2189,"column":1964,"offset":2198},{"line":2189,"column":2023,"offset":2203},6012,{"type":31,"tagName":80,"properties":2205,"children":2206,"position":2214},{},[2207],{"type":27,"value":2208,"position":2209},"trend",{"start":2210,"end":2211},{"line":2189,"column":2023,"offset":2203},{"line":2189,"column":2212,"offset":2213},39,6019,{"start":2215,"end":2216},{"line":2189,"column":2023,"offset":2203},{"line":2189,"column":2212,"offset":2213},{"type":27,"value":2218,"position":2219}," (1 while the fast average is above the slow one) is data-only and drives ",{"start":2220,"end":2221},{"line":2189,"column":2212,"offset":2213},{"line":2189,"column":2222,"offset":2223},113,6093,{"type":31,"tagName":80,"properties":2225,"children":2226,"position":2234},{},[2227],{"type":27,"value":2228,"position":2229},"range(\"fast_ma\", \"slow_ma\", { color_by: \"trend\", colors: [orange, amber] })",{"start":2230,"end":2231},{"line":2189,"column":2222,"offset":2223},{"line":2189,"column":2232,"offset":2233},190,6170,{"start":2235,"end":2236},{"line":2189,"column":2222,"offset":2223},{"line":2189,"column":2232,"offset":2233},{"type":27,"value":2238,"position":2239},", the ribbon; ",{"start":2240,"end":2241},{"line":2189,"column":2232,"offset":2233},{"line":2189,"column":2242,"offset":2243},204,6184,{"type":31,"tagName":80,"properties":2245,"children":2246,"position":2254},{},[2247],{"type":27,"value":2248,"position":2249},"entry_cross",{"start":2250,"end":2251},{"line":2189,"column":2242,"offset":2243},{"line":2189,"column":2252,"offset":2253},217,6197,{"start":2255,"end":2256},{"line":2189,"column":2242,"offset":2243},{"line":2189,"column":2252,"offset":2253},{"type":27,"value":2258,"position":2259}," and ",{"start":2260,"end":2261},{"line":2189,"column":2252,"offset":2253},{"line":2189,"column":2262,"offset":2263},222,6202,{"type":31,"tagName":80,"properties":2265,"children":2266,"position":2274},{},[2267],{"type":27,"value":2268,"position":2269},"exit_cross",{"start":2270,"end":2271},{"line":2189,"column":2262,"offset":2263},{"line":2189,"column":2272,"offset":2273},234,6214,{"start":2275,"end":2276},{"line":2189,"column":2262,"offset":2263},{"line":2189,"column":2272,"offset":2273},{"type":27,"value":2278,"position":2279}," carry the price where the two averages met on a cross bar (NaN elsewhere), the two marks.",{"start":2280,"end":2281},{"line":2189,"column":2272,"offset":2273},{"line":2189,"column":2282,"offset":2283},324,6304,{"start":2285,"end":2286},{"line":2189,"column":21,"offset":2196},{"line":2189,"column":2282,"offset":2283},{"type":27,"value":28},{"type":31,"tagName":285,"properties":2289,"children":2290,"position":2299},{},[2291],{"type":27,"value":2292,"position":2293},"Where it runs",{"start":2294,"end":2296},{"line":2054,"column":293,"offset":2295},6309,{"line":2054,"column":2297,"offset":2298},17,6322,{"start":2300,"end":2302},{"line":2054,"column":21,"offset":2301},6306,{"line":2054,"column":2297,"offset":2298},{"type":27,"value":28},{"type":31,"tagName":32,"properties":2305,"children":2306,"position":2339},{},[2307,2316,2332],{"type":27,"value":2308,"position":2309},"Every market with candles: perps, spot, prediction markets, FX. The Strategy Tester replays it in your browser over the chart's loaded window and recomputes as you pan; orders fill against the chart's own candles. The ",{"start":2310,"end":2313},{"line":2311,"column":21,"offset":2312},72,6324,{"line":2311,"column":2314,"offset":2315},219,6542,{"type":31,"tagName":232,"properties":2317,"children":2318,"position":2327},{},[2319],{"type":27,"value":260,"position":2320},{"start":2321,"end":2324},{"line":2311,"column":2322,"offset":2323},221,6544,{"line":2311,"column":2325,"offset":2326},231,6554,{"start":2328,"end":2329},{"line":2311,"column":2314,"offset":2315},{"line":2311,"column":2330,"offset":2331},233,6556,{"type":27,"value":2333,"position":2334}," group of the starter list shows where the chart has the Strategy Tester.",{"start":2335,"end":2336},{"line":2311,"column":2330,"offset":2331},{"line":2311,"column":2337,"offset":2338},306,6629,{"start":2340,"end":2341},{"line":2311,"column":21,"offset":2312},{"line":2311,"column":2337,"offset":2338},{"type":27,"value":28},{"type":31,"tagName":285,"properties":2344,"children":2345,"position":2355},{},[2346],{"type":27,"value":2347,"position":2348},"When data is missing",{"start":2349,"end":2352},{"line":2350,"column":293,"offset":2351},74,6634,{"line":2350,"column":2353,"offset":2354},24,6654,{"start":2356,"end":2358},{"line":2350,"column":21,"offset":2357},6631,{"line":2350,"column":2353,"offset":2354},{"type":27,"value":28},{"type":31,"tagName":32,"properties":2361,"children":2362,"position":2390},{},[2363,2371,2383],{"type":27,"value":2364,"position":2365},"The first ",{"start":2366,"end":2369},{"line":2367,"column":21,"offset":2368},76,6656,{"line":2367,"column":292,"offset":2370},6666,{"type":31,"tagName":80,"properties":2372,"children":2373,"position":2380},{},[2374],{"type":27,"value":2100,"position":2375},{"start":2376,"end":2377},{"line":2367,"column":292,"offset":2370},{"line":2367,"column":2378,"offset":2379},21,6676,{"start":2381,"end":2382},{"line":2367,"column":292,"offset":2370},{"line":2367,"column":2378,"offset":2379},{"type":27,"value":2384,"position":2385}," bars are warm-up: nothing written, no orders, nothing drawn. A market whose candles stop (a resolved prediction market) leaves the last position where the tester closed it.",{"start":2386,"end":2387},{"line":2367,"column":2378,"offset":2379},{"line":2367,"column":2388,"offset":2389},194,6849,{"start":2391,"end":2392},{"line":2367,"column":21,"offset":2368},{"line":2367,"column":2388,"offset":2389},{"type":27,"value":28},{"type":31,"tagName":285,"properties":2395,"children":2396,"position":2404},{},[2397],{"type":27,"value":2398,"position":2399},"Customize it",{"start":2400,"end":2402},{"line":98,"column":293,"offset":2401},6854,{"line":98,"column":1931,"offset":2403},6866,{"start":2405,"end":2407},{"line":98,"column":21,"offset":2406},6851,{"line":98,"column":1931,"offset":2403},{"type":27,"value":28},{"type":31,"tagName":2410,"properties":2411,"children":2412,"position":2753},"ul",{},[2413,2414,2479,2480,2554,2555,2695,2696,2752],{"type":27,"value":28},{"type":31,"tagName":2415,"properties":2416,"children":2417,"position":2475},"li",{},[2418,2435,2440,2451,2457,2469],{"type":31,"tagName":232,"properties":2419,"children":2420,"position":2430},{},[2421],{"type":27,"value":2422,"position":2423},"Other lengths.",{"start":2424,"end":2427},{"line":2425,"column":43,"offset":2426},80,6872,{"line":2425,"column":2428,"offset":2429},19,6886,{"start":2431,"end":2433},{"line":2425,"column":1949,"offset":2432},6870,{"line":2425,"column":2378,"offset":2434},6888,{"type":27,"value":1960,"position":2436},{"start":2437,"end":2438},{"line":2425,"column":2378,"offset":2434},{"line":2425,"column":296,"offset":2439},6889,{"type":31,"tagName":80,"properties":2441,"children":2442,"position":2448},{},[2443],{"type":27,"value":2080,"position":2444},{"start":2445,"end":2446},{"line":2425,"column":296,"offset":2439},{"line":2425,"column":2023,"offset":2447},6899,{"start":2449,"end":2450},{"line":2425,"column":296,"offset":2439},{"line":2425,"column":2023,"offset":2447},{"type":27,"value":2258,"position":2452},{"start":2453,"end":2454},{"line":2425,"column":2023,"offset":2447},{"line":2425,"column":2455,"offset":2456},37,6904,{"type":31,"tagName":80,"properties":2458,"children":2459,"position":2466},{},[2460],{"type":27,"value":2100,"position":2461},{"start":2462,"end":2463},{"line":2425,"column":2455,"offset":2456},{"line":2425,"column":2464,"offset":2465},47,6914,{"start":2467,"end":2468},{"line":2425,"column":2455,"offset":2456},{"line":2425,"column":2464,"offset":2465},{"type":27,"value":2470,"position":2471}," are settings; the tester replays any pair.",{"start":2472,"end":2473},{"line":2425,"column":2464,"offset":2465},{"line":2425,"column":129,"offset":2474},6957,{"start":2476,"end":2478},{"line":2425,"column":21,"offset":2477},6868,{"line":2425,"column":129,"offset":2474},{"type":27,"value":28},{"type":31,"tagName":2415,"properties":2481,"children":2482,"position":2550},{},[2483,2500,2506,2519,2526,2544],{"type":31,"tagName":232,"properties":2484,"children":2485,"position":2494},{},[2486],{"type":27,"value":2487,"position":2488},"Both directions.",{"start":2489,"end":2492},{"line":2490,"column":43,"offset":2491},81,6962,{"line":2490,"column":2378,"offset":2493},6978,{"start":2495,"end":2497},{"line":2490,"column":1949,"offset":2496},6960,{"line":2490,"column":2498,"offset":2499},23,6980,{"type":27,"value":2501,"position":2502}," Add ",{"start":2503,"end":2504},{"line":2490,"column":2498,"offset":2499},{"line":2490,"column":1952,"offset":2505},6985,{"type":31,"tagName":80,"properties":2507,"children":2508,"position":2516},{},[2509],{"type":27,"value":2510,"position":2511},"strategy.short(\"S\").send()",{"start":2512,"end":2513},{"line":2490,"column":1952,"offset":2505},{"line":2490,"column":2514,"offset":2515},56,7013,{"start":2517,"end":2518},{"line":2490,"column":1952,"offset":2505},{"line":2490,"column":2514,"offset":2515},{"type":27,"value":2520,"position":2521}," on a cross down in place of the flat exit (",{"start":2522,"end":2523},{"line":2490,"column":2514,"offset":2515},{"line":2490,"column":2524,"offset":2525},100,7057,{"type":31,"tagName":121,"properties":2527,"children":2529,"position":2539},{"href":2528},"../strategies/writing-strategies.md",[2530],{"type":27,"value":2531,"position":2532},"Writing strategies",{"start":2533,"end":2536},{"line":2490,"column":2534,"offset":2535},101,7058,{"line":2490,"column":2537,"offset":2538},119,7076,{"start":2540,"end":2541},{"line":2490,"column":2524,"offset":2525},{"line":2490,"column":2542,"offset":2543},157,7114,{"type":27,"value":1670,"position":2545},{"start":2546,"end":2547},{"line":2490,"column":2542,"offset":2543},{"line":2490,"column":2548,"offset":2549},159,7116,{"start":2551,"end":2553},{"line":2490,"column":21,"offset":2552},6958,{"line":2490,"column":2548,"offset":2549},{"type":27,"value":28},{"type":31,"tagName":2415,"properties":2556,"children":2557,"position":2691},{},[2558,2574,2581,2593,2600,2616,2623,2636,2643,2661,2667,2684],{"type":31,"tagName":232,"properties":2559,"children":2560,"position":2569},{},[2561],{"type":27,"value":2562,"position":2563},"Costs and sizing.",{"start":2564,"end":2567},{"line":2565,"column":43,"offset":2566},82,7121,{"line":2565,"column":296,"offset":2568},7138,{"start":2570,"end":2572},{"line":2565,"column":1949,"offset":2571},7119,{"line":2565,"column":2353,"offset":2573},7140,{"type":27,"value":2575,"position":2576}," The five numbers in ",{"start":2577,"end":2578},{"line":2565,"column":2353,"offset":2573},{"line":2565,"column":2579,"offset":2580},45,7161,{"type":31,"tagName":80,"properties":2582,"children":2583,"position":2590},{},[2584],{"type":27,"value":2585,"position":2586},"strategy({ ... })",{"start":2587,"end":2588},{"line":2565,"column":2579,"offset":2580},{"line":2565,"column":1948,"offset":2589},7180,{"start":2591,"end":2592},{"line":2565,"column":2579,"offset":2580},{"line":2565,"column":1948,"offset":2589},{"type":27,"value":2594,"position":2595}," are the file's: change them and Run again. The tester's ",{"start":2596,"end":2597},{"line":2565,"column":1948,"offset":2589},{"line":2565,"column":2598,"offset":2599},121,7237,{"type":31,"tagName":232,"properties":2601,"children":2602,"position":2612},{},[2603],{"type":27,"value":2604,"position":2605},"Strategy settings",{"start":2606,"end":2609},{"line":2565,"column":2607,"offset":2608},123,7239,{"line":2565,"column":2610,"offset":2611},140,7256,{"start":2613,"end":2614},{"line":2565,"column":2598,"offset":2599},{"line":2565,"column":144,"offset":2615},7258,{"type":27,"value":2617,"position":2618}," opens the overlay's settings, where a param changes a strategy field only when the file links it, the way the risk setting is linked into ",{"start":2619,"end":2620},{"line":2565,"column":144,"offset":2615},{"line":2565,"column":2621,"offset":2622},281,7397,{"type":31,"tagName":80,"properties":2624,"children":2625,"position":2633},{},[2626],{"type":27,"value":2627,"position":2628},"qtyValue",{"start":2629,"end":2630},{"line":2565,"column":2621,"offset":2622},{"line":2565,"column":2631,"offset":2632},291,7407,{"start":2634,"end":2635},{"line":2565,"column":2621,"offset":2622},{"line":2565,"column":2631,"offset":2632},{"type":27,"value":2637,"position":2638}," in ",{"start":2639,"end":2640},{"line":2565,"column":2631,"offset":2632},{"line":2565,"column":2641,"offset":2642},295,7411,{"type":31,"tagName":121,"properties":2644,"children":2646,"position":2656},{"href":2645},"../strategies/first-strategy.md#5-tune-it-honestly",[2647],{"type":27,"value":2648,"position":2649},"Your first strategy",{"start":2650,"end":2653},{"line":2565,"column":2651,"offset":2652},296,7412,{"line":2565,"column":2654,"offset":2655},315,7431,{"start":2657,"end":2658},{"line":2565,"column":2641,"offset":2642},{"line":2565,"column":2659,"offset":2660},368,7484,{"type":27,"value":1774,"position":2662},{"start":2663,"end":2664},{"line":2565,"column":2659,"offset":2660},{"line":2565,"column":2665,"offset":2666},370,7486,{"type":31,"tagName":121,"properties":2668,"children":2670,"position":2679},{"href":2669},"strategy-risk-reversion.md",[2671],{"type":27,"value":2672,"position":2673},"Risk-sized reversion",{"start":2674,"end":2677},{"line":2565,"column":2675,"offset":2676},371,7487,{"line":2565,"column":271,"offset":2678},7507,{"start":2680,"end":2681},{"line":2565,"column":2665,"offset":2666},{"line":2565,"column":2682,"offset":2683},420,7536,{"type":27,"value":2685,"position":2686}," sizes each entry from its stop instead.",{"start":2687,"end":2688},{"line":2565,"column":2682,"offset":2683},{"line":2565,"column":2689,"offset":2690},460,7576,{"start":2692,"end":2694},{"line":2565,"column":21,"offset":2693},7117,{"line":2565,"column":2689,"offset":2690},{"type":27,"value":28},{"type":31,"tagName":2415,"properties":2697,"children":2698,"position":2748},{},[2699,2717,2724,2742],{"type":31,"tagName":232,"properties":2700,"children":2701,"position":2711},{},[2702],{"type":27,"value":2703,"position":2704},"Alert on the trades.",{"start":2705,"end":2708},{"line":2706,"column":43,"offset":2707},83,7581,{"line":2706,"column":2709,"offset":2710},25,7601,{"start":2712,"end":2714},{"line":2706,"column":1949,"offset":2713},7579,{"line":2706,"column":2715,"offset":2716},27,7603,{"type":27,"value":2718,"position":2719}," Once the indicator is published and on a chart, the alert dialog adds the strategy's own choices: \"Strategy order placed\", \"Strategy trade opened or closed\", \"Strategy position\" and \"Strategy equity\" (",{"start":2720,"end":2721},{"line":2706,"column":2715,"offset":2716},{"line":2706,"column":2722,"offset":2723},229,7805,{"type":31,"tagName":121,"properties":2725,"children":2727,"position":2737},{"href":2726},"../functions/alerts.md",[2728],{"type":27,"value":2729,"position":2730},"Alerts",{"start":2731,"end":2734},{"line":2706,"column":2732,"offset":2733},230,7806,{"line":2706,"column":2735,"offset":2736},236,7812,{"start":2738,"end":2739},{"line":2706,"column":2722,"offset":2723},{"line":2706,"column":2740,"offset":2741},261,7837,{"type":27,"value":1670,"position":2743},{"start":2744,"end":2745},{"line":2706,"column":2740,"offset":2741},{"line":2706,"column":2746,"offset":2747},263,7839,{"start":2749,"end":2751},{"line":2706,"column":21,"offset":2750},7577,{"line":2706,"column":2746,"offset":2747},{"type":27,"value":28},{"start":2754,"end":2755},{"line":2425,"column":21,"offset":2477},{"line":2706,"column":2746,"offset":2747},{"type":27,"value":28},{"type":31,"tagName":285,"properties":2758,"children":2759,"position":2768},{},[2760],{"type":27,"value":2761,"position":2762},"Run it",{"start":2763,"end":2765},{"line":2074,"column":293,"offset":2764},7844,{"line":2074,"column":2766,"offset":2767},10,7850,{"start":2769,"end":2771},{"line":2074,"column":21,"offset":2770},7841,{"line":2074,"column":2766,"offset":2767},{"type":27,"value":28},{"type":31,"tagName":2774,"properties":2775,"children":2776,"position":2897},"ol",{},[2777,2778,2858,2859,2896],{"type":27,"value":28},{"type":31,"tagName":2415,"properties":2779,"children":2780,"position":2854},{},[2781,2789,2806,2813,2826,2833,2847],{"type":27,"value":2782,"position":2783},"In the editor's Explorer, press the ",{"start":2784,"end":2786},{"line":108,"column":293,"offset":2785},7855,{"line":108,"column":2787,"offset":2788},40,7891,{"type":31,"tagName":232,"properties":2790,"children":2791,"position":2801},{},[2792],{"type":27,"value":2793,"position":2794},"Templates",{"start":2795,"end":2798},{"line":108,"column":2796,"offset":2797},42,7893,{"line":108,"column":2799,"offset":2800},51,7902,{"start":2802,"end":2803},{"line":108,"column":2787,"offset":2788},{"line":108,"column":2804,"offset":2805},53,7904,{"type":27,"value":2807,"position":2808}," icon (\"Browse starter templates\") and pick ",{"start":2809,"end":2810},{"line":108,"column":2804,"offset":2805},{"line":108,"column":2811,"offset":2812},97,7948,{"type":31,"tagName":232,"properties":2814,"children":2815,"position":2822},{},[2816],{"type":27,"value":236,"position":2817},{"start":2818,"end":2820},{"line":108,"column":2094,"offset":2819},7950,{"line":108,"column":2537,"offset":2821},7970,{"start":2823,"end":2824},{"line":108,"column":2811,"offset":2812},{"line":108,"column":2598,"offset":2825},7972,{"type":27,"value":2827,"position":2828}," under ",{"start":2829,"end":2830},{"line":108,"column":2598,"offset":2825},{"line":108,"column":2831,"offset":2832},128,7979,{"type":31,"tagName":232,"properties":2834,"children":2835,"position":2843},{},[2836],{"type":27,"value":260,"position":2837},{"start":2838,"end":2841},{"line":108,"column":2839,"offset":2840},130,7981,{"line":108,"column":2610,"offset":2842},7991,{"start":2844,"end":2845},{"line":108,"column":2831,"offset":2832},{"line":108,"column":144,"offset":2846},7993,{"type":27,"value":2848,"position":2849},".",{"start":2850,"end":2851},{"line":108,"column":144,"offset":2846},{"line":108,"column":2852,"offset":2853},143,7994,{"start":2855,"end":2857},{"line":108,"column":21,"offset":2856},7852,{"line":108,"column":2852,"offset":2853},{"type":27,"value":28},{"type":31,"tagName":2415,"properties":2860,"children":2861,"position":2892},{},[2862,2870,2885],{"type":27,"value":2863,"position":2864},"Press ",{"start":2865,"end":2868},{"line":2866,"column":293,"offset":2867},88,7998,{"line":2866,"column":2766,"offset":2869},8004,{"type":31,"tagName":232,"properties":2871,"children":2872,"position":2881},{},[2873],{"type":27,"value":2874,"position":2875},"Run",{"start":2876,"end":2879},{"line":2866,"column":2877,"offset":2878},12,8006,{"line":2866,"column":77,"offset":2880},8009,{"start":2882,"end":2883},{"line":2866,"column":2766,"offset":2869},{"line":2866,"column":2297,"offset":2884},8011,{"type":27,"value":2886,"position":2887},": the two averages, the ribbon and the cross marks draw on price, and the Strategy Tester under the chart shows the fills, the equity against buy and hold, and the trade list.",{"start":2888,"end":2889},{"line":2866,"column":2297,"offset":2884},{"line":2866,"column":2890,"offset":2891},192,8186,{"start":2893,"end":2895},{"line":2866,"column":21,"offset":2894},7995,{"line":2866,"column":2890,"offset":2891},{"type":27,"value":28},{"start":2898,"end":2899},{"line":108,"column":21,"offset":2856},{"line":2866,"column":2890,"offset":2891},{"type":27,"value":28},{"type":31,"tagName":285,"properties":2902,"children":2903,"position":2911},{},[2904],{"type":27,"value":2905,"position":2906},"Concepts used",{"start":2907,"end":2909},{"line":129,"column":293,"offset":2908},8191,{"line":129,"column":2297,"offset":2910},8204,{"start":2912,"end":2914},{"line":129,"column":21,"offset":2913},8188,{"line":129,"column":2297,"offset":2910},{"type":27,"value":28},{"type":31,"tagName":2410,"properties":2917,"children":2918,"position":3047},{},[2919,2920,2967,2968,2999,3000,3046],{"type":27,"value":28},{"type":31,"tagName":2415,"properties":2921,"children":2922,"position":2963},{},[2923,2938,2944,2956],{"type":31,"tagName":121,"properties":2924,"children":2925,"position":2933},{"href":123},[2926],{"type":27,"value":126,"position":2927},{"start":2928,"end":2931},{"line":2929,"column":293,"offset":2930},92,8209,{"line":2929,"column":2498,"offset":2932},8228,{"start":2934,"end":2936},{"line":2929,"column":1949,"offset":2935},8208,{"line":2929,"column":2799,"offset":2937},8256,{"type":27,"value":2939,"position":2940}," for ",{"start":2941,"end":2942},{"line":2929,"column":2799,"offset":2937},{"line":2929,"column":2514,"offset":2943},8261,{"type":31,"tagName":80,"properties":2945,"children":2946,"position":2953},{},[2947],{"type":27,"value":84,"position":2948},{"start":2949,"end":2950},{"line":2929,"column":2514,"offset":2943},{"line":2929,"column":2951,"offset":2952},71,8276,{"start":2954,"end":2955},{"line":2929,"column":2514,"offset":2943},{"line":2929,"column":2951,"offset":2952},{"type":27,"value":2957,"position":2958},", the order builders and where they fill",{"start":2959,"end":2960},{"line":2929,"column":2951,"offset":2952},{"line":2929,"column":2961,"offset":2962},111,8316,{"start":2964,"end":2966},{"line":2929,"column":21,"offset":2965},8206,{"line":2929,"column":2961,"offset":2962},{"type":27,"value":28},{"type":31,"tagName":2415,"properties":2969,"children":2970,"position":2995},{},[2971,2989],{"type":31,"tagName":121,"properties":2972,"children":2974,"position":2983},{"href":2973},"../strategies/reading-the-tester.md",[2975],{"type":27,"value":2976,"position":2977},"Reading the tester",{"start":2978,"end":2981},{"line":2979,"column":293,"offset":2980},93,8320,{"line":2979,"column":296,"offset":2982},8338,{"start":2984,"end":2986},{"line":2979,"column":1949,"offset":2985},8319,{"line":2979,"column":2987,"offset":2988},60,8376,{"type":27,"value":2990,"position":2991}," for the numbers under the chart",{"start":2992,"end":2993},{"line":2979,"column":2987,"offset":2988},{"line":2979,"column":2929,"offset":2994},8408,{"start":2996,"end":2998},{"line":2979,"column":21,"offset":2997},8317,{"line":2979,"column":2929,"offset":2994},{"type":27,"value":28},{"type":31,"tagName":2415,"properties":3001,"children":3002,"position":3042},{},[3003,3018,3023,3035],{"type":31,"tagName":121,"properties":3004,"children":3005,"position":3013},{"href":168},[3006],{"type":27,"value":171,"position":3007},{"start":3008,"end":3011},{"line":3009,"column":293,"offset":3010},94,8412,{"line":3009,"column":292,"offset":3012},8419,{"start":3014,"end":3016},{"line":3009,"column":1949,"offset":3015},8411,{"line":3009,"column":2787,"offset":3017},8448,{"type":27,"value":2939,"position":3019},{"start":3020,"end":3021},{"line":3009,"column":2787,"offset":3017},{"line":3009,"column":2579,"offset":3022},8453,{"type":31,"tagName":80,"properties":3024,"children":3025,"position":3032},{},[3026],{"type":27,"value":150,"position":3027},{"start":3028,"end":3029},{"line":3009,"column":2579,"offset":3022},{"line":3009,"column":3030,"offset":3031},52,8460,{"start":3033,"end":3034},{"line":3009,"column":2579,"offset":3022},{"line":3009,"column":3030,"offset":3031},{"type":27,"value":3036,"position":3037}," bands and colour ladders",{"start":3038,"end":3039},{"line":3009,"column":3030,"offset":3031},{"line":3009,"column":3040,"offset":3041},77,8485,{"start":3043,"end":3045},{"line":3009,"column":21,"offset":3044},8409,{"line":3009,"column":3040,"offset":3041},{"type":27,"value":28},{"start":3048,"end":3049},{"line":2929,"column":21,"offset":2965},{"line":3009,"column":3040,"offset":3041},{"quirksMode":3051},false,{"start":3053,"end":3054},{"line":21,"column":21,"offset":22},{"line":2084,"column":21,"offset":3055},8486,1791265176851]