[{"data":1,"prerenderedAt":2950},["ShallowReactive",2],{"kscript:core-concepts/user-functions":3},{"slug":4,"filePath":5,"frontmatter":6,"rawMarkdown":9,"tree":10},"core-concepts/user-functions","core-concepts/user-functions.md",{"title":7,"description":8},"User-Defined Functions","Learn how to create custom, reusable functions in kScript v2 using the func keyword for modular and maintainable code.","---\ntitle: User-Defined Functions\ndescription: >-\n  Learn how to create custom, reusable functions in kScript v2 using the func\n  keyword for modular and maintainable code.\n---\n\n\u003Cdiv class=\"flex gap-3 mb-6\">\n  \u003Cspan class=\"inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-purple-50 text-purple-600 text-sm font-medium\">\n    Advanced\n  \u003C/span>\n  \u003Cspan class=\"inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-gray-100 text-gray-600 text-sm font-medium\">\n    10 min read\n  \u003C/span>\n\u003C/div>\n\n## Overview\n\nkScript v2 introduces user-defined functions, allowing you to encapsulate logic into reusable modules. Functions can accept both `var` and `timeseries` arguments, support both positional and named parameter calling (kwargs), and must follow specific scoping rules.\n\n| Feature                | Description                             |\n| ---------------------- | --------------------------------------- |\n| `func`                 | Keyword used to define functions        |\n| Infinite Possibilities | Create any custom logic you need        |\n| Global Scope Required  | Functions must be declared at top level |\n\n## Function Declaration\n\n### Basic Syntax\n\n```javascript title=\"Function Declaration Syntax\" lines wrap\nfunc functionName(parameter1, parameter2) {\n  // Function body\n  return result\n}\n```\n\n### Kwargs Support\n\nUser-defined functions support both positional and named parameter calling conventions:\n\n```javascript title=\"Function Call Formats\" lines wrap\n// Function definition\nfunc calculate(base, multiplier, offset) {\n  return base * multiplier + offset\n}\n\n// Positional calling\nvar result1 = calculate(10, 2, 5)  // Returns 25\n\n// Named parameter calling (kwargs)\nvar result2 = calculate(base=10, multiplier=2, offset=5)  // Returns 25\nvar result3 = calculate(offset=5, base=10, multiplier=2)  // Returns 25\n```\n\n### Syntax Details\n\n**Function Name:**\nMust follow standard identifier rules (letters, numbers, underscore). Cannot start with a number.\n\n**Parameters:**\nCan accept `var` and `timeseries` arguments. Parameter types are inferred from usage. Support both positional and named parameter calling (kwargs).\n\n**Return Statement:**\nFunctions must explicitly return a value. The return type is inferred from the returned expression.\n\n## Function Examples\n\n### Simple Calculation\n\nBasic mathematical operations with error handling:\n\n```javascript title=\"Safe Division Function\" lines wrap\nfunc safeDiv(a, b) {\n  return b == 0 ? 0 : a / b\n}\n\n// Usage\nvar result = safeDiv(a=10, b=2)  // Returns 5\nvar safe = safeDiv(a=10, b=0)    // Returns 0\n```\n\n### Average of Two Values\n\n```javascript lines wrap\nfunc calculateAverage(a, b) {\n  return (a + b) / 2\n}\n\n// Usage\nvar avg = calculateAverage(close[0], close[1])\n```\n\n### Custom Indicator Logic\n\n```javascript lines wrap\nfunc isGreenCandle(openPrice, closePrice) {\n  return closePrice > openPrice\n}\n\nfunc isBullishEngulfing(prevOpen, prevClose, currOpen, currClose) {\n  var prevWasRed = prevClose \u003C prevOpen\n  var currIsGreen = currClose > currOpen\n  var engulfs = currOpen \u003C prevClose && currClose > prevOpen\n  return prevWasRed && currIsGreen && engulfs\n}\n\n// Usage\ntimeseries ohlcv = ohlcv(symbol=currentSymbol, exchange=currentExchange)\nvar bullish = isBullishEngulfing(\n  prevOpen=ohlcv.open[1],\n  prevClose=ohlcv.close[1],\n  currOpen=ohlcv.open[0],\n  currClose=ohlcv.close[0]\n)\n```\n\n## Constraints and Rules\n\n### No Timeseries Declarations Inside Functions\n\nFunctions cannot declare new `timeseries` inside their body. All timeseries must be declared in global scope.\n\n```javascript lines wrap\n// Invalid\nfunc bad() {\n  timeseries ts = ohlcv(...)  // Error!\n}\n\n// Valid - pass timeseries as parameter\nfunc good(ts) {\n  return ts.close[0]\n}\n```\n\n### Global Scope Only\n\nFunctions must be declared in global scope, not inside loops, conditionals, or other functions.\n\n```javascript lines wrap\n// Invalid\nif (condition) {\n  func bad() {...}  // Error!\n}\n\n// Valid\nfunc good() {...}\n\nif (condition) {\n  var result = good()  // OK to call\n}\n```\n\n### Parameter Types\n\nFunctions can accept `var` and `timeseries` arguments. Types are inferred from how parameters are used.\n\n```javascript lines wrap\n// Valid - accepts both var and timeseries\nfunc processData(varParam, tsParam) {\n  var current = tsParam[0]  // Treats tsParam as timeseries\n  return varParam + current\n}\n```\n\n### Return Requirement\n\nAll functions must have an explicit return statement. The return type is inferred from the expression.\n\n```javascript lines wrap\n// Valid\nfunc add(a, b) {\n  return a + b  // Required\n}\n\n// Invalid - no return\nfunc noReturn(a, b) {\n  var sum = a + b  // Missing return!\n}\n```\n\n## Best Practices\n\n\u003Ctable data-view=\"cards\" data-layout=\"stack\">\u003Ctbody>\n\u003Ctr>\u003Ctd>Keep Functions Focused\u003C/td>\u003Ctd>\u003Cp>Each function should do one thing well:\u003C/p>\u003Cpre>\u003Ccode class=\"language-javascript\">// Good - single responsibility\nfunc calculateRSIColor(rsiValue) {\n  return rsiValue > 70 ? 0 : (rsiValue &lt; 30 ? 1 : 2)\n}\n\n// Avoid - doing too much\nfunc calculateAndPlotRSI(...) {\n// Don't mix calculation with plotting\n}\u003C/code>\u003C/pre>\u003C/td>\u003Ctd>\u003C/td>\u003C/tr>\n\n\u003Ctr>\u003Ctd>Use Descriptive Names\u003C/td>\u003Ctd>\u003Cp>Function names should clearly indicate what they do:\u003C/p>\u003Cpre>\u003Ccode class=\"language-javascript\">// Good\nfunc isOverbought(rsiValue) { return rsiValue > 70 }\nfunc calculatePercentChange(oldValue, newValue) {...}\n\n// Avoid\nfunc calc(a, b) {...}\nfunc check(x) {...}\u003C/code>\u003C/pre>\u003C/td>\u003Ctd>\u003C/td>\u003C/tr>\n\n\u003Ctr>\u003Ctd>Document with kwargs\u003C/td>\u003Ctd>\u003Cp>Using named parameters makes function calls self-documenting:\u003C/p>\u003Cpre>\u003Ccode class=\"language-javascript\">// Self-documenting call\nvar signal = isBullishEngulfing(\n  prevOpen=ohlcv.open[1],\n  prevClose=ohlcv.close[1],\n  currOpen=ohlcv.open[0],\n  currClose=ohlcv.close[0]\n)\u003C/code>\u003C/pre>\u003C/td>\u003Ctd>\u003C/td>\u003C/tr>\n\u003C/tbody>\u003C/table>\n",{"type":11,"children":12,"data":2943,"position":2945},"root",[13,100,101,118,119,175,177,360,361,377,378,395,396,464,465,482,483,498,499,799,800,816,817,848,849,913,914,944,945,961,962,979,980,994,995,1206,1207,1223,1224,1346,1347,1364,1365,1783,1784,1800,1801,1818,1819,1852,1853,1990,1991,2007,2008,2023,2024,2183,2184,2200,2201,2250,2251,2351,2352,2368,2369,2384,2385,2523,2524,2540,2541,2544,2545,2548,2549],{"type":14,"tagName":15,"properties":16,"children":21,"position":95},"element","div",{"className":17},[18,19,20],"flex","gap-3","mb-6",[22,34,63,69,88],{"type":23,"value":24,"position":25},"text","\n  ",{"start":26,"end":30},{"line":27,"column":28,"offset":29},1,30,29,{"line":31,"column":32,"offset":33},2,3,32,{"type":14,"tagName":35,"properties":36,"children":48,"position":58},"span",{"className":37},[38,39,40,41,42,43,44,45,46,47],"inline-flex","items-center","gap-1.5","px-3","py-1","rounded-full","bg-purple-50","text-purple-600","text-sm","font-medium",[49],{"type":23,"value":50,"position":51},"\n    Advanced\n  ",{"start":52,"end":55},{"line":31,"column":53,"offset":54},122,151,{"line":56,"column":32,"offset":57},4,167,{"start":59,"end":60},{"line":31,"column":32,"offset":33},{"line":56,"column":61,"offset":62},10,174,{"type":23,"value":24,"position":64},{"start":65,"end":66},{"line":56,"column":61,"offset":62},{"line":67,"column":32,"offset":68},5,177,{"type":14,"tagName":35,"properties":70,"children":74,"position":84},{"className":71},[38,39,40,41,42,43,72,73,46,47],"bg-gray-100","text-gray-600",[75],{"type":23,"value":76,"position":77},"\n    10 min read\n  ",{"start":78,"end":81},{"line":67,"column":79,"offset":80},119,293,{"line":82,"column":32,"offset":83},7,312,{"start":85,"end":86},{"line":67,"column":32,"offset":68},{"line":82,"column":61,"offset":87},319,{"type":23,"value":89,"position":90},"\n",{"start":91,"end":92},{"line":82,"column":61,"offset":87},{"line":93,"column":27,"offset":94},8,320,{"start":96,"end":98},{"line":27,"column":27,"offset":97},0,{"line":93,"column":82,"offset":99},326,{"type":23,"value":89},{"type":14,"tagName":102,"properties":103,"children":105,"position":114},"h2",{"id":104},"overview",[106],{"type":23,"value":107,"position":108},"Overview",{"start":109,"end":111},{"line":61,"column":56,"offset":110},331,{"line":61,"column":112,"offset":113},12,339,{"start":115,"end":117},{"line":61,"column":27,"offset":116},328,{"line":61,"column":112,"offset":113},{"type":23,"value":89},{"type":14,"tagName":120,"properties":121,"children":122,"position":172},"p",{},[123,131,145,152,165],{"type":23,"value":124,"position":125},"kScript v2 introduces user-defined functions, allowing you to encapsulate logic into reusable modules. Functions can accept both ",{"start":126,"end":128},{"line":112,"column":27,"offset":127},341,{"line":112,"column":129,"offset":130},130,470,{"type":14,"tagName":132,"properties":133,"children":134,"position":142},"code",{},[135],{"type":23,"value":136,"position":137},"var",{"start":138,"end":139},{"line":112,"column":129,"offset":130},{"line":112,"column":140,"offset":141},135,475,{"start":143,"end":144},{"line":112,"column":129,"offset":130},{"line":112,"column":140,"offset":141},{"type":23,"value":146,"position":147}," and ",{"start":148,"end":149},{"line":112,"column":140,"offset":141},{"line":112,"column":150,"offset":151},140,480,{"type":14,"tagName":132,"properties":153,"children":154,"position":162},{},[155],{"type":23,"value":156,"position":157},"timeseries",{"start":158,"end":159},{"line":112,"column":150,"offset":151},{"line":112,"column":160,"offset":161},152,492,{"start":163,"end":164},{"line":112,"column":150,"offset":151},{"line":112,"column":160,"offset":161},{"type":23,"value":166,"position":167}," arguments, support both positional and named parameter calling (kwargs), and must follow specific scoping rules.",{"start":168,"end":169},{"line":112,"column":160,"offset":161},{"line":112,"column":170,"offset":171},265,605,{"start":173,"end":174},{"line":112,"column":27,"offset":127},{"line":112,"column":170,"offset":171},{"type":23,"value":176},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":14,"tagName":178,"properties":179,"children":180,"position":357},"table",{},[181,230],{"type":14,"tagName":182,"properties":183,"children":184,"position":227},"thead",{},[185],{"type":14,"tagName":186,"properties":187,"children":188,"position":224},"tr",{},[189,207],{"type":14,"tagName":190,"properties":191,"children":192,"position":201},"th",{},[193],{"type":23,"value":194,"position":195},"Feature",{"start":196,"end":199},{"line":197,"column":32,"offset":198},14,609,{"line":197,"column":61,"offset":200},616,{"start":202,"end":204},{"line":197,"column":27,"offset":203},607,{"line":197,"column":205,"offset":206},26,632,{"type":14,"tagName":190,"properties":208,"children":209,"position":219},{},[210],{"type":23,"value":211,"position":212},"Description",{"start":213,"end":216},{"line":197,"column":214,"offset":215},28,634,{"line":197,"column":217,"offset":218},39,645,{"start":220,"end":221},{"line":197,"column":205,"offset":206},{"line":197,"column":222,"offset":223},69,675,{"start":225,"end":226},{"line":197,"column":27,"offset":203},{"line":197,"column":222,"offset":223},{"start":228,"end":229},{"line":197,"column":27,"offset":203},{"line":197,"column":222,"offset":223},{"type":14,"tagName":231,"properties":232,"children":233,"position":354},"tbody",{},[234,279,316],{"type":14,"tagName":186,"properties":235,"children":236,"position":276},{},[237,261],{"type":14,"tagName":238,"properties":239,"children":240,"position":256},"td",{},[241],{"type":14,"tagName":132,"properties":242,"children":243,"position":253},{},[244],{"type":23,"value":245,"position":246},"func",{"start":247,"end":250},{"line":248,"column":32,"offset":249},16,747,{"line":248,"column":251,"offset":252},9,753,{"start":254,"end":255},{"line":248,"column":32,"offset":249},{"line":248,"column":251,"offset":252},{"start":257,"end":259},{"line":248,"column":27,"offset":258},745,{"line":248,"column":205,"offset":260},770,{"type":14,"tagName":238,"properties":262,"children":263,"position":272},{},[264],{"type":23,"value":265,"position":266},"Keyword used to define functions",{"start":267,"end":269},{"line":248,"column":214,"offset":268},772,{"line":248,"column":270,"offset":271},60,804,{"start":273,"end":274},{"line":248,"column":205,"offset":260},{"line":248,"column":222,"offset":275},813,{"start":277,"end":278},{"line":248,"column":27,"offset":258},{"line":248,"column":222,"offset":275},{"type":14,"tagName":186,"properties":280,"children":281,"position":313},{},[282,299],{"type":14,"tagName":238,"properties":283,"children":284,"position":294},{},[285],{"type":23,"value":286,"position":287},"Infinite Possibilities",{"start":288,"end":291},{"line":289,"column":32,"offset":290},17,816,{"line":289,"column":292,"offset":293},25,838,{"start":295,"end":297},{"line":289,"column":27,"offset":296},814,{"line":289,"column":205,"offset":298},839,{"type":14,"tagName":238,"properties":300,"children":301,"position":309},{},[302],{"type":23,"value":303,"position":304},"Create any custom logic you need",{"start":305,"end":307},{"line":289,"column":214,"offset":306},841,{"line":289,"column":270,"offset":308},873,{"start":310,"end":311},{"line":289,"column":205,"offset":298},{"line":289,"column":222,"offset":312},882,{"start":314,"end":315},{"line":289,"column":27,"offset":296},{"line":289,"column":222,"offset":312},{"type":14,"tagName":186,"properties":317,"children":318,"position":351},{},[319,336],{"type":14,"tagName":238,"properties":320,"children":321,"position":331},{},[322],{"type":23,"value":323,"position":324},"Global Scope Required",{"start":325,"end":328},{"line":326,"column":32,"offset":327},18,885,{"line":326,"column":329,"offset":330},24,906,{"start":332,"end":334},{"line":326,"column":27,"offset":333},883,{"line":326,"column":205,"offset":335},908,{"type":14,"tagName":238,"properties":337,"children":338,"position":347},{},[339],{"type":23,"value":340,"position":341},"Functions must be declared at top level",{"start":342,"end":344},{"line":326,"column":214,"offset":343},910,{"line":326,"column":345,"offset":346},67,949,{"start":348,"end":349},{"line":326,"column":205,"offset":335},{"line":326,"column":222,"offset":350},951,{"start":352,"end":353},{"line":326,"column":27,"offset":333},{"line":326,"column":222,"offset":350},{"start":355,"end":356},{"line":248,"column":27,"offset":258},{"line":326,"column":222,"offset":350},{"start":358,"end":359},{"line":197,"column":27,"offset":203},{"line":326,"column":222,"offset":350},{"type":23,"value":89},{"type":14,"tagName":102,"properties":362,"children":364,"position":373},{"id":363},"function-declaration",[365],{"type":23,"value":366,"position":367},"Function Declaration",{"start":368,"end":371},{"line":369,"column":56,"offset":370},20,956,{"line":369,"column":329,"offset":372},976,{"start":374,"end":376},{"line":369,"column":27,"offset":375},953,{"line":369,"column":329,"offset":372},{"type":23,"value":89},{"type":14,"tagName":379,"properties":380,"children":382,"position":391},"h3",{"id":381},"basic-syntax",[383],{"type":23,"value":384,"position":385},"Basic Syntax",{"start":386,"end":389},{"line":387,"column":67,"offset":388},22,982,{"line":387,"column":289,"offset":390},994,{"start":392,"end":394},{"line":387,"column":27,"offset":393},978,{"line":387,"column":289,"offset":390},{"type":23,"value":89},{"type":11,"children":397},[398],{"type":14,"tagName":399,"properties":400,"children":405,"data":-1},"pre",{"class":401,"style":402,"tabindex":403,"title":404},"shiki shiki-themes github-dark github-light","--shiki-dark:#e1e4e8;--shiki-light:#24292e;--shiki-dark-bg:#24292e;--shiki-light-bg:#fff","0","Function Declaration Syntax",[406],{"type":14,"tagName":132,"properties":407,"children":408},{},[409,430,431,440,441,455,456],{"type":14,"tagName":35,"properties":410,"children":412},{"class":411},"line",[413,419,425],{"type":14,"tagName":35,"properties":414,"children":416},{"style":415},"--shiki-dark:#E1E4E8;--shiki-light:#24292E",[417],{"type":23,"value":418},"func ",{"type":14,"tagName":35,"properties":420,"children":422},{"style":421},"--shiki-dark:#B392F0;--shiki-light:#6F42C1",[423],{"type":23,"value":424},"functionName",{"type":14,"tagName":35,"properties":426,"children":427},{"style":415},[428],{"type":23,"value":429},"(parameter1, parameter2) {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":432,"children":433},{"class":411},[434],{"type":14,"tagName":35,"properties":435,"children":437},{"style":436},"--shiki-dark:#6A737D;--shiki-light:#6A737D",[438],{"type":23,"value":439},"  // Function body",{"type":23,"value":89},{"type":14,"tagName":35,"properties":442,"children":443},{"class":411},[444,450],{"type":14,"tagName":35,"properties":445,"children":447},{"style":446},"--shiki-dark:#F97583;--shiki-light:#D73A49",[448],{"type":23,"value":449},"  return",{"type":14,"tagName":35,"properties":451,"children":452},{"style":415},[453],{"type":23,"value":454}," result",{"type":23,"value":89},{"type":14,"tagName":35,"properties":457,"children":458},{"class":411},[459],{"type":14,"tagName":35,"properties":460,"children":461},{"style":415},[462],{"type":23,"value":463},"}",{"type":23,"value":89},{"type":14,"tagName":379,"properties":466,"children":468,"position":478},{"id":467},"kwargs-support",[469],{"type":23,"value":470,"position":471},"Kwargs Support",{"start":472,"end":475},{"line":473,"column":67,"offset":474},31,1147,{"line":473,"column":476,"offset":477},19,1161,{"start":479,"end":481},{"line":473,"column":27,"offset":480},1143,{"line":473,"column":476,"offset":477},{"type":23,"value":89},{"type":14,"tagName":120,"properties":484,"children":485,"position":495},{},[486],{"type":23,"value":487,"position":488},"User-defined functions support both positional and named parameter calling conventions:",{"start":489,"end":492},{"line":490,"column":27,"offset":491},33,1163,{"line":490,"column":493,"offset":494},88,1250,{"start":496,"end":497},{"line":490,"column":27,"offset":491},{"line":490,"column":493,"offset":494},{"type":23,"value":89},{"type":11,"children":500},[501],{"type":14,"tagName":399,"properties":502,"children":504,"data":-1},{"class":401,"style":402,"tabindex":403,"title":503},"Function Call Formats",[505],{"type":14,"tagName":132,"properties":506,"children":507},{},[508,516,517,534,535,567,568,575,576,579,580,588,589,651,652,655,656,664,665,732,733],{"type":14,"tagName":35,"properties":509,"children":510},{"class":411},[511],{"type":14,"tagName":35,"properties":512,"children":513},{"style":436},[514],{"type":23,"value":515},"// Function definition",{"type":23,"value":89},{"type":14,"tagName":35,"properties":518,"children":519},{"class":411},[520,524,529],{"type":14,"tagName":35,"properties":521,"children":522},{"style":415},[523],{"type":23,"value":418},{"type":14,"tagName":35,"properties":525,"children":526},{"style":421},[527],{"type":23,"value":528},"calculate",{"type":14,"tagName":35,"properties":530,"children":531},{"style":415},[532],{"type":23,"value":533},"(base, multiplier, offset) {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":536,"children":537},{"class":411},[538,542,547,552,557,562],{"type":14,"tagName":35,"properties":539,"children":540},{"style":446},[541],{"type":23,"value":449},{"type":14,"tagName":35,"properties":543,"children":544},{"style":415},[545],{"type":23,"value":546}," base ",{"type":14,"tagName":35,"properties":548,"children":549},{"style":446},[550],{"type":23,"value":551},"*",{"type":14,"tagName":35,"properties":553,"children":554},{"style":415},[555],{"type":23,"value":556}," multiplier ",{"type":14,"tagName":35,"properties":558,"children":559},{"style":446},[560],{"type":23,"value":561},"+",{"type":14,"tagName":35,"properties":563,"children":564},{"style":415},[565],{"type":23,"value":566}," offset",{"type":23,"value":89},{"type":14,"tagName":35,"properties":569,"children":570},{"class":411},[571],{"type":14,"tagName":35,"properties":572,"children":573},{"style":415},[574],{"type":23,"value":463},{"type":23,"value":89},{"type":14,"tagName":35,"properties":577,"children":578},{"class":411},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":581,"children":582},{"class":411},[583],{"type":14,"tagName":35,"properties":584,"children":585},{"style":436},[586],{"type":23,"value":587},"// Positional calling",{"type":23,"value":89},{"type":14,"tagName":35,"properties":590,"children":591},{"class":411},[592,596,601,606,611,616,622,627,632,636,641,646],{"type":14,"tagName":35,"properties":593,"children":594},{"style":446},[595],{"type":23,"value":136},{"type":14,"tagName":35,"properties":597,"children":598},{"style":415},[599],{"type":23,"value":600}," result1 ",{"type":14,"tagName":35,"properties":602,"children":603},{"style":446},[604],{"type":23,"value":605},"=",{"type":14,"tagName":35,"properties":607,"children":608},{"style":421},[609],{"type":23,"value":610}," calculate",{"type":14,"tagName":35,"properties":612,"children":613},{"style":415},[614],{"type":23,"value":615},"(",{"type":14,"tagName":35,"properties":617,"children":619},{"style":618},"--shiki-dark:#79B8FF;--shiki-light:#005CC5",[620],{"type":23,"value":621},"10",{"type":14,"tagName":35,"properties":623,"children":624},{"style":415},[625],{"type":23,"value":626},", ",{"type":14,"tagName":35,"properties":628,"children":629},{"style":618},[630],{"type":23,"value":631},"2",{"type":14,"tagName":35,"properties":633,"children":634},{"style":415},[635],{"type":23,"value":626},{"type":14,"tagName":35,"properties":637,"children":638},{"style":618},[639],{"type":23,"value":640},"5",{"type":14,"tagName":35,"properties":642,"children":643},{"style":415},[644],{"type":23,"value":645},")  ",{"type":14,"tagName":35,"properties":647,"children":648},{"style":436},[649],{"type":23,"value":650},"// Returns 25",{"type":23,"value":89},{"type":14,"tagName":35,"properties":653,"children":654},{"class":411},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":657,"children":658},{"class":411},[659],{"type":14,"tagName":35,"properties":660,"children":661},{"style":436},[662],{"type":23,"value":663},"// Named parameter calling (kwargs)",{"type":23,"value":89},{"type":14,"tagName":35,"properties":666,"children":667},{"class":411},[668,672,677,681,685,690,694,698,703,707,711,716,720,724,728],{"type":14,"tagName":35,"properties":669,"children":670},{"style":446},[671],{"type":23,"value":136},{"type":14,"tagName":35,"properties":673,"children":674},{"style":415},[675],{"type":23,"value":676}," result2 ",{"type":14,"tagName":35,"properties":678,"children":679},{"style":446},[680],{"type":23,"value":605},{"type":14,"tagName":35,"properties":682,"children":683},{"style":421},[684],{"type":23,"value":610},{"type":14,"tagName":35,"properties":686,"children":687},{"style":415},[688],{"type":23,"value":689},"(base",{"type":14,"tagName":35,"properties":691,"children":692},{"style":446},[693],{"type":23,"value":605},{"type":14,"tagName":35,"properties":695,"children":696},{"style":618},[697],{"type":23,"value":621},{"type":14,"tagName":35,"properties":699,"children":700},{"style":415},[701],{"type":23,"value":702},", multiplier",{"type":14,"tagName":35,"properties":704,"children":705},{"style":446},[706],{"type":23,"value":605},{"type":14,"tagName":35,"properties":708,"children":709},{"style":618},[710],{"type":23,"value":631},{"type":14,"tagName":35,"properties":712,"children":713},{"style":415},[714],{"type":23,"value":715},", offset",{"type":14,"tagName":35,"properties":717,"children":718},{"style":446},[719],{"type":23,"value":605},{"type":14,"tagName":35,"properties":721,"children":722},{"style":618},[723],{"type":23,"value":640},{"type":14,"tagName":35,"properties":725,"children":726},{"style":415},[727],{"type":23,"value":645},{"type":14,"tagName":35,"properties":729,"children":730},{"style":436},[731],{"type":23,"value":650},{"type":23,"value":89},{"type":14,"tagName":35,"properties":734,"children":735},{"class":411},[736,740,745,749,753,758,762,766,771,775,779,783,787,791,795],{"type":14,"tagName":35,"properties":737,"children":738},{"style":446},[739],{"type":23,"value":136},{"type":14,"tagName":35,"properties":741,"children":742},{"style":415},[743],{"type":23,"value":744}," result3 ",{"type":14,"tagName":35,"properties":746,"children":747},{"style":446},[748],{"type":23,"value":605},{"type":14,"tagName":35,"properties":750,"children":751},{"style":421},[752],{"type":23,"value":610},{"type":14,"tagName":35,"properties":754,"children":755},{"style":415},[756],{"type":23,"value":757},"(offset",{"type":14,"tagName":35,"properties":759,"children":760},{"style":446},[761],{"type":23,"value":605},{"type":14,"tagName":35,"properties":763,"children":764},{"style":618},[765],{"type":23,"value":640},{"type":14,"tagName":35,"properties":767,"children":768},{"style":415},[769],{"type":23,"value":770},", base",{"type":14,"tagName":35,"properties":772,"children":773},{"style":446},[774],{"type":23,"value":605},{"type":14,"tagName":35,"properties":776,"children":777},{"style":618},[778],{"type":23,"value":621},{"type":14,"tagName":35,"properties":780,"children":781},{"style":415},[782],{"type":23,"value":702},{"type":14,"tagName":35,"properties":784,"children":785},{"style":446},[786],{"type":23,"value":605},{"type":14,"tagName":35,"properties":788,"children":789},{"style":618},[790],{"type":23,"value":631},{"type":14,"tagName":35,"properties":792,"children":793},{"style":415},[794],{"type":23,"value":645},{"type":14,"tagName":35,"properties":796,"children":797},{"style":436},[798],{"type":23,"value":650},{"type":23,"value":89},{"type":14,"tagName":379,"properties":801,"children":803,"position":812},{"id":802},"syntax-details",[804],{"type":23,"value":805,"position":806},"Syntax Details",{"start":807,"end":810},{"line":808,"column":67,"offset":809},49,1673,{"line":808,"column":476,"offset":811},1687,{"start":813,"end":815},{"line":808,"column":27,"offset":814},1669,{"line":808,"column":476,"offset":811},{"type":23,"value":89},{"type":14,"tagName":120,"properties":818,"children":819,"position":845},{},[820,837],{"type":14,"tagName":821,"properties":822,"children":823,"position":832},"strong",{},[824],{"type":23,"value":825,"position":826},"Function Name:",{"start":827,"end":830},{"line":828,"column":32,"offset":829},51,1691,{"line":828,"column":289,"offset":831},1705,{"start":833,"end":835},{"line":828,"column":27,"offset":834},1689,{"line":828,"column":476,"offset":836},1707,{"type":23,"value":838,"position":839},"\nMust follow standard identifier rules (letters, numbers, underscore). Cannot start with a number.",{"start":840,"end":841},{"line":828,"column":476,"offset":836},{"line":842,"column":843,"offset":844},52,98,1805,{"start":846,"end":847},{"line":828,"column":27,"offset":834},{"line":842,"column":843,"offset":844},{"type":23,"value":89},{"type":14,"tagName":120,"properties":850,"children":851,"position":910},{},[852,868,875,886,891,903],{"type":14,"tagName":821,"properties":853,"children":854,"position":863},{},[855],{"type":23,"value":856,"position":857},"Parameters:",{"start":858,"end":861},{"line":859,"column":32,"offset":860},54,1809,{"line":859,"column":197,"offset":862},1820,{"start":864,"end":866},{"line":859,"column":27,"offset":865},1807,{"line":859,"column":248,"offset":867},1822,{"type":23,"value":869,"position":870},"\nCan accept ",{"start":871,"end":872},{"line":859,"column":248,"offset":867},{"line":873,"column":112,"offset":874},55,1834,{"type":14,"tagName":132,"properties":876,"children":877,"position":883},{},[878],{"type":23,"value":136,"position":879},{"start":880,"end":881},{"line":873,"column":112,"offset":874},{"line":873,"column":289,"offset":882},1839,{"start":884,"end":885},{"line":873,"column":112,"offset":874},{"line":873,"column":289,"offset":882},{"type":23,"value":146,"position":887},{"start":888,"end":889},{"line":873,"column":289,"offset":882},{"line":873,"column":387,"offset":890},1844,{"type":14,"tagName":132,"properties":892,"children":893,"position":900},{},[894],{"type":23,"value":156,"position":895},{"start":896,"end":897},{"line":873,"column":387,"offset":890},{"line":873,"column":898,"offset":899},34,1856,{"start":901,"end":902},{"line":873,"column":387,"offset":890},{"line":873,"column":898,"offset":899},{"type":23,"value":904,"position":905}," arguments. Parameter types are inferred from usage. Support both positional and named parameter calling (kwargs).",{"start":906,"end":907},{"line":873,"column":898,"offset":899},{"line":873,"column":908,"offset":909},148,1970,{"start":911,"end":912},{"line":859,"column":27,"offset":865},{"line":873,"column":908,"offset":909},{"type":23,"value":89},{"type":14,"tagName":120,"properties":915,"children":916,"position":941},{},[917,933],{"type":14,"tagName":821,"properties":918,"children":919,"position":928},{},[920],{"type":23,"value":921,"position":922},"Return Statement:",{"start":923,"end":926},{"line":924,"column":32,"offset":925},57,1974,{"line":924,"column":369,"offset":927},1991,{"start":929,"end":931},{"line":924,"column":27,"offset":930},1972,{"line":924,"column":387,"offset":932},1993,{"type":23,"value":934,"position":935},"\nFunctions must explicitly return a value. The return type is inferred from the returned expression.",{"start":936,"end":937},{"line":924,"column":387,"offset":932},{"line":938,"column":939,"offset":940},58,100,2093,{"start":942,"end":943},{"line":924,"column":27,"offset":930},{"line":938,"column":939,"offset":940},{"type":23,"value":89},{"type":14,"tagName":102,"properties":946,"children":948,"position":957},{"id":947},"function-examples",[949],{"type":23,"value":950,"position":951},"Function Examples",{"start":952,"end":954},{"line":270,"column":56,"offset":953},2098,{"line":270,"column":955,"offset":956},21,2115,{"start":958,"end":960},{"line":270,"column":27,"offset":959},2095,{"line":270,"column":955,"offset":956},{"type":23,"value":89},{"type":14,"tagName":379,"properties":963,"children":965,"position":975},{"id":964},"simple-calculation",[966],{"type":23,"value":967,"position":968},"Simple Calculation",{"start":969,"end":972},{"line":970,"column":67,"offset":971},62,2121,{"line":970,"column":973,"offset":974},23,2139,{"start":976,"end":978},{"line":970,"column":27,"offset":977},2117,{"line":970,"column":973,"offset":974},{"type":23,"value":89},{"type":14,"tagName":120,"properties":981,"children":982,"position":991},{},[983],{"type":23,"value":984,"position":985},"Basic mathematical operations with error handling:",{"start":986,"end":989},{"line":987,"column":27,"offset":988},64,2141,{"line":987,"column":828,"offset":990},2191,{"start":992,"end":993},{"line":987,"column":27,"offset":988},{"line":987,"column":828,"offset":990},{"type":23,"value":89},{"type":11,"children":996},[997],{"type":14,"tagName":399,"properties":998,"children":1000,"data":-1},{"class":401,"style":402,"tabindex":403,"title":999},"Safe Division Function",[1001],{"type":14,"tagName":132,"properties":1002,"children":1003},{},[1004,1021,1022,1073,1074,1081,1082,1085,1086,1094,1095,1151,1152],{"type":14,"tagName":35,"properties":1005,"children":1006},{"class":411},[1007,1011,1016],{"type":14,"tagName":35,"properties":1008,"children":1009},{"style":415},[1010],{"type":23,"value":418},{"type":14,"tagName":35,"properties":1012,"children":1013},{"style":421},[1014],{"type":23,"value":1015},"safeDiv",{"type":14,"tagName":35,"properties":1017,"children":1018},{"style":415},[1019],{"type":23,"value":1020},"(a, b) {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1023,"children":1024},{"class":411},[1025,1029,1034,1039,1044,1049,1053,1058,1063,1068],{"type":14,"tagName":35,"properties":1026,"children":1027},{"style":446},[1028],{"type":23,"value":449},{"type":14,"tagName":35,"properties":1030,"children":1031},{"style":415},[1032],{"type":23,"value":1033}," b ",{"type":14,"tagName":35,"properties":1035,"children":1036},{"style":446},[1037],{"type":23,"value":1038},"==",{"type":14,"tagName":35,"properties":1040,"children":1041},{"style":618},[1042],{"type":23,"value":1043}," 0",{"type":14,"tagName":35,"properties":1045,"children":1046},{"style":446},[1047],{"type":23,"value":1048}," ?",{"type":14,"tagName":35,"properties":1050,"children":1051},{"style":618},[1052],{"type":23,"value":1043},{"type":14,"tagName":35,"properties":1054,"children":1055},{"style":446},[1056],{"type":23,"value":1057}," :",{"type":14,"tagName":35,"properties":1059,"children":1060},{"style":415},[1061],{"type":23,"value":1062}," a ",{"type":14,"tagName":35,"properties":1064,"children":1065},{"style":446},[1066],{"type":23,"value":1067},"/",{"type":14,"tagName":35,"properties":1069,"children":1070},{"style":415},[1071],{"type":23,"value":1072}," b",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1075,"children":1076},{"class":411},[1077],{"type":14,"tagName":35,"properties":1078,"children":1079},{"style":415},[1080],{"type":23,"value":463},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1083,"children":1084},{"class":411},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":1087,"children":1088},{"class":411},[1089],{"type":14,"tagName":35,"properties":1090,"children":1091},{"style":436},[1092],{"type":23,"value":1093},"// Usage",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1096,"children":1097},{"class":411},[1098,1102,1107,1111,1116,1121,1125,1129,1134,1138,1142,1146],{"type":14,"tagName":35,"properties":1099,"children":1100},{"style":446},[1101],{"type":23,"value":136},{"type":14,"tagName":35,"properties":1103,"children":1104},{"style":415},[1105],{"type":23,"value":1106}," result ",{"type":14,"tagName":35,"properties":1108,"children":1109},{"style":446},[1110],{"type":23,"value":605},{"type":14,"tagName":35,"properties":1112,"children":1113},{"style":421},[1114],{"type":23,"value":1115}," safeDiv",{"type":14,"tagName":35,"properties":1117,"children":1118},{"style":415},[1119],{"type":23,"value":1120},"(a",{"type":14,"tagName":35,"properties":1122,"children":1123},{"style":446},[1124],{"type":23,"value":605},{"type":14,"tagName":35,"properties":1126,"children":1127},{"style":618},[1128],{"type":23,"value":621},{"type":14,"tagName":35,"properties":1130,"children":1131},{"style":415},[1132],{"type":23,"value":1133},", b",{"type":14,"tagName":35,"properties":1135,"children":1136},{"style":446},[1137],{"type":23,"value":605},{"type":14,"tagName":35,"properties":1139,"children":1140},{"style":618},[1141],{"type":23,"value":631},{"type":14,"tagName":35,"properties":1143,"children":1144},{"style":415},[1145],{"type":23,"value":645},{"type":14,"tagName":35,"properties":1147,"children":1148},{"style":436},[1149],{"type":23,"value":1150},"// Returns 5",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1153,"children":1154},{"class":411},[1155,1159,1164,1168,1172,1176,1180,1184,1188,1192,1196,1201],{"type":14,"tagName":35,"properties":1156,"children":1157},{"style":446},[1158],{"type":23,"value":136},{"type":14,"tagName":35,"properties":1160,"children":1161},{"style":415},[1162],{"type":23,"value":1163}," safe ",{"type":14,"tagName":35,"properties":1165,"children":1166},{"style":446},[1167],{"type":23,"value":605},{"type":14,"tagName":35,"properties":1169,"children":1170},{"style":421},[1171],{"type":23,"value":1115},{"type":14,"tagName":35,"properties":1173,"children":1174},{"style":415},[1175],{"type":23,"value":1120},{"type":14,"tagName":35,"properties":1177,"children":1178},{"style":446},[1179],{"type":23,"value":605},{"type":14,"tagName":35,"properties":1181,"children":1182},{"style":618},[1183],{"type":23,"value":621},{"type":14,"tagName":35,"properties":1185,"children":1186},{"style":415},[1187],{"type":23,"value":1133},{"type":14,"tagName":35,"properties":1189,"children":1190},{"style":446},[1191],{"type":23,"value":605},{"type":14,"tagName":35,"properties":1193,"children":1194},{"style":618},[1195],{"type":23,"value":403},{"type":14,"tagName":35,"properties":1197,"children":1198},{"style":415},[1199],{"type":23,"value":1200},")    ",{"type":14,"tagName":35,"properties":1202,"children":1203},{"style":436},[1204],{"type":23,"value":1205},"// Returns 0",{"type":23,"value":89},{"type":14,"tagName":379,"properties":1208,"children":1210,"position":1219},{"id":1209},"average-of-two-values",[1211],{"type":23,"value":1212,"position":1213},"Average of Two Values",{"start":1214,"end":1217},{"line":1215,"column":67,"offset":1216},76,2411,{"line":1215,"column":205,"offset":1218},2432,{"start":1220,"end":1222},{"line":1215,"column":27,"offset":1221},2407,{"line":1215,"column":205,"offset":1218},{"type":23,"value":89},{"type":11,"children":1225},[1226],{"type":14,"tagName":399,"properties":1227,"children":1229,"data":-1},{"class":401,"style":402,"tabindex":403,"title":1228},"lines wrap",[1230],{"type":14,"tagName":132,"properties":1231,"children":1232},{},[1233,1249,1250,1280,1281,1288,1289,1292,1293,1300,1301],{"type":14,"tagName":35,"properties":1234,"children":1235},{"class":411},[1236,1240,1245],{"type":14,"tagName":35,"properties":1237,"children":1238},{"style":415},[1239],{"type":23,"value":418},{"type":14,"tagName":35,"properties":1241,"children":1242},{"style":421},[1243],{"type":23,"value":1244},"calculateAverage",{"type":14,"tagName":35,"properties":1246,"children":1247},{"style":415},[1248],{"type":23,"value":1020},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1251,"children":1252},{"class":411},[1253,1257,1262,1266,1271,1275],{"type":14,"tagName":35,"properties":1254,"children":1255},{"style":446},[1256],{"type":23,"value":449},{"type":14,"tagName":35,"properties":1258,"children":1259},{"style":415},[1260],{"type":23,"value":1261}," (a ",{"type":14,"tagName":35,"properties":1263,"children":1264},{"style":446},[1265],{"type":23,"value":561},{"type":14,"tagName":35,"properties":1267,"children":1268},{"style":415},[1269],{"type":23,"value":1270}," b) ",{"type":14,"tagName":35,"properties":1272,"children":1273},{"style":446},[1274],{"type":23,"value":1067},{"type":14,"tagName":35,"properties":1276,"children":1277},{"style":618},[1278],{"type":23,"value":1279}," 2",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1282,"children":1283},{"class":411},[1284],{"type":14,"tagName":35,"properties":1285,"children":1286},{"style":415},[1287],{"type":23,"value":463},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1290,"children":1291},{"class":411},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":1294,"children":1295},{"class":411},[1296],{"type":14,"tagName":35,"properties":1297,"children":1298},{"style":436},[1299],{"type":23,"value":1093},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1302,"children":1303},{"class":411},[1304,1308,1313,1317,1322,1327,1331,1336,1341],{"type":14,"tagName":35,"properties":1305,"children":1306},{"style":446},[1307],{"type":23,"value":136},{"type":14,"tagName":35,"properties":1309,"children":1310},{"style":415},[1311],{"type":23,"value":1312}," avg ",{"type":14,"tagName":35,"properties":1314,"children":1315},{"style":446},[1316],{"type":23,"value":605},{"type":14,"tagName":35,"properties":1318,"children":1319},{"style":421},[1320],{"type":23,"value":1321}," calculateAverage",{"type":14,"tagName":35,"properties":1323,"children":1324},{"style":415},[1325],{"type":23,"value":1326},"(close[",{"type":14,"tagName":35,"properties":1328,"children":1329},{"style":618},[1330],{"type":23,"value":403},{"type":14,"tagName":35,"properties":1332,"children":1333},{"style":415},[1334],{"type":23,"value":1335},"], close[",{"type":14,"tagName":35,"properties":1337,"children":1338},{"style":618},[1339],{"type":23,"value":1340},"1",{"type":14,"tagName":35,"properties":1342,"children":1343},{"style":415},[1344],{"type":23,"value":1345},"])",{"type":23,"value":89},{"type":14,"tagName":379,"properties":1348,"children":1350,"position":1360},{"id":1349},"custom-indicator-logic",[1351],{"type":23,"value":1352,"position":1353},"Custom Indicator Logic",{"start":1354,"end":1357},{"line":1355,"column":67,"offset":1356},87,2578,{"line":1355,"column":1358,"offset":1359},27,2600,{"start":1361,"end":1363},{"line":1355,"column":27,"offset":1362},2574,{"line":1355,"column":1358,"offset":1359},{"type":23,"value":89},{"type":11,"children":1366},[1367],{"type":14,"tagName":399,"properties":1368,"children":1369,"data":-1},{"class":401,"style":402,"tabindex":403,"title":1228},[1370],{"type":14,"tagName":132,"properties":1371,"children":1372},{},[1373,1390,1391,1413,1414,1421,1422,1425,1426,1443,1444,1476,1477,1507,1508,1554,1555,1583,1584,1591,1592,1595,1596,1603,1604,1644,1645,1670,1671,1697,1698,1723,1724,1748,1749,1774,1775],{"type":14,"tagName":35,"properties":1374,"children":1375},{"class":411},[1376,1380,1385],{"type":14,"tagName":35,"properties":1377,"children":1378},{"style":415},[1379],{"type":23,"value":418},{"type":14,"tagName":35,"properties":1381,"children":1382},{"style":421},[1383],{"type":23,"value":1384},"isGreenCandle",{"type":14,"tagName":35,"properties":1386,"children":1387},{"style":415},[1388],{"type":23,"value":1389},"(openPrice, closePrice) {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1392,"children":1393},{"class":411},[1394,1398,1403,1408],{"type":14,"tagName":35,"properties":1395,"children":1396},{"style":446},[1397],{"type":23,"value":449},{"type":14,"tagName":35,"properties":1399,"children":1400},{"style":415},[1401],{"type":23,"value":1402}," closePrice ",{"type":14,"tagName":35,"properties":1404,"children":1405},{"style":446},[1406],{"type":23,"value":1407},">",{"type":14,"tagName":35,"properties":1409,"children":1410},{"style":415},[1411],{"type":23,"value":1412}," openPrice",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1415,"children":1416},{"class":411},[1417],{"type":14,"tagName":35,"properties":1418,"children":1419},{"style":415},[1420],{"type":23,"value":463},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1423,"children":1424},{"class":411},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":1427,"children":1428},{"class":411},[1429,1433,1438],{"type":14,"tagName":35,"properties":1430,"children":1431},{"style":415},[1432],{"type":23,"value":418},{"type":14,"tagName":35,"properties":1434,"children":1435},{"style":421},[1436],{"type":23,"value":1437},"isBullishEngulfing",{"type":14,"tagName":35,"properties":1439,"children":1440},{"style":415},[1441],{"type":23,"value":1442},"(prevOpen, prevClose, currOpen, currClose) {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1445,"children":1446},{"class":411},[1447,1452,1457,1461,1466,1471],{"type":14,"tagName":35,"properties":1448,"children":1449},{"style":446},[1450],{"type":23,"value":1451},"  var",{"type":14,"tagName":35,"properties":1453,"children":1454},{"style":415},[1455],{"type":23,"value":1456}," prevWasRed ",{"type":14,"tagName":35,"properties":1458,"children":1459},{"style":446},[1460],{"type":23,"value":605},{"type":14,"tagName":35,"properties":1462,"children":1463},{"style":415},[1464],{"type":23,"value":1465}," prevClose ",{"type":14,"tagName":35,"properties":1467,"children":1468},{"style":446},[1469],{"type":23,"value":1470},"\u003C",{"type":14,"tagName":35,"properties":1472,"children":1473},{"style":415},[1474],{"type":23,"value":1475}," prevOpen",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1478,"children":1479},{"class":411},[1480,1484,1489,1493,1498,1502],{"type":14,"tagName":35,"properties":1481,"children":1482},{"style":446},[1483],{"type":23,"value":1451},{"type":14,"tagName":35,"properties":1485,"children":1486},{"style":415},[1487],{"type":23,"value":1488}," currIsGreen ",{"type":14,"tagName":35,"properties":1490,"children":1491},{"style":446},[1492],{"type":23,"value":605},{"type":14,"tagName":35,"properties":1494,"children":1495},{"style":415},[1496],{"type":23,"value":1497}," currClose ",{"type":14,"tagName":35,"properties":1499,"children":1500},{"style":446},[1501],{"type":23,"value":1407},{"type":14,"tagName":35,"properties":1503,"children":1504},{"style":415},[1505],{"type":23,"value":1506}," currOpen",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1509,"children":1510},{"class":411},[1511,1515,1520,1524,1529,1533,1537,1542,1546,1550],{"type":14,"tagName":35,"properties":1512,"children":1513},{"style":446},[1514],{"type":23,"value":1451},{"type":14,"tagName":35,"properties":1516,"children":1517},{"style":415},[1518],{"type":23,"value":1519}," engulfs ",{"type":14,"tagName":35,"properties":1521,"children":1522},{"style":446},[1523],{"type":23,"value":605},{"type":14,"tagName":35,"properties":1525,"children":1526},{"style":415},[1527],{"type":23,"value":1528}," currOpen ",{"type":14,"tagName":35,"properties":1530,"children":1531},{"style":446},[1532],{"type":23,"value":1470},{"type":14,"tagName":35,"properties":1534,"children":1535},{"style":415},[1536],{"type":23,"value":1465},{"type":14,"tagName":35,"properties":1538,"children":1539},{"style":446},[1540],{"type":23,"value":1541},"&&",{"type":14,"tagName":35,"properties":1543,"children":1544},{"style":415},[1545],{"type":23,"value":1497},{"type":14,"tagName":35,"properties":1547,"children":1548},{"style":446},[1549],{"type":23,"value":1407},{"type":14,"tagName":35,"properties":1551,"children":1552},{"style":415},[1553],{"type":23,"value":1475},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1556,"children":1557},{"class":411},[1558,1562,1566,1570,1574,1578],{"type":14,"tagName":35,"properties":1559,"children":1560},{"style":446},[1561],{"type":23,"value":449},{"type":14,"tagName":35,"properties":1563,"children":1564},{"style":415},[1565],{"type":23,"value":1456},{"type":14,"tagName":35,"properties":1567,"children":1568},{"style":446},[1569],{"type":23,"value":1541},{"type":14,"tagName":35,"properties":1571,"children":1572},{"style":415},[1573],{"type":23,"value":1488},{"type":14,"tagName":35,"properties":1575,"children":1576},{"style":446},[1577],{"type":23,"value":1541},{"type":14,"tagName":35,"properties":1579,"children":1580},{"style":415},[1581],{"type":23,"value":1582}," engulfs",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1585,"children":1586},{"class":411},[1587],{"type":14,"tagName":35,"properties":1588,"children":1589},{"style":415},[1590],{"type":23,"value":463},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1593,"children":1594},{"class":411},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":1597,"children":1598},{"class":411},[1599],{"type":14,"tagName":35,"properties":1600,"children":1601},{"style":436},[1602],{"type":23,"value":1093},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1605,"children":1606},{"class":411},[1607,1612,1616,1621,1626,1630,1635,1639],{"type":14,"tagName":35,"properties":1608,"children":1609},{"style":415},[1610],{"type":23,"value":1611},"timeseries ohlcv ",{"type":14,"tagName":35,"properties":1613,"children":1614},{"style":446},[1615],{"type":23,"value":605},{"type":14,"tagName":35,"properties":1617,"children":1618},{"style":421},[1619],{"type":23,"value":1620}," ohlcv",{"type":14,"tagName":35,"properties":1622,"children":1623},{"style":415},[1624],{"type":23,"value":1625},"(symbol",{"type":14,"tagName":35,"properties":1627,"children":1628},{"style":446},[1629],{"type":23,"value":605},{"type":14,"tagName":35,"properties":1631,"children":1632},{"style":415},[1633],{"type":23,"value":1634},"currentSymbol, exchange",{"type":14,"tagName":35,"properties":1636,"children":1637},{"style":446},[1638],{"type":23,"value":605},{"type":14,"tagName":35,"properties":1640,"children":1641},{"style":415},[1642],{"type":23,"value":1643},"currentExchange)",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1646,"children":1647},{"class":411},[1648,1652,1657,1661,1666],{"type":14,"tagName":35,"properties":1649,"children":1650},{"style":446},[1651],{"type":23,"value":136},{"type":14,"tagName":35,"properties":1653,"children":1654},{"style":415},[1655],{"type":23,"value":1656}," bullish ",{"type":14,"tagName":35,"properties":1658,"children":1659},{"style":446},[1660],{"type":23,"value":605},{"type":14,"tagName":35,"properties":1662,"children":1663},{"style":421},[1664],{"type":23,"value":1665}," isBullishEngulfing",{"type":14,"tagName":35,"properties":1667,"children":1668},{"style":415},[1669],{"type":23,"value":615},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1672,"children":1673},{"class":411},[1674,1679,1683,1688,1692],{"type":14,"tagName":35,"properties":1675,"children":1676},{"style":415},[1677],{"type":23,"value":1678},"  prevOpen",{"type":14,"tagName":35,"properties":1680,"children":1681},{"style":446},[1682],{"type":23,"value":605},{"type":14,"tagName":35,"properties":1684,"children":1685},{"style":415},[1686],{"type":23,"value":1687},"ohlcv.open[",{"type":14,"tagName":35,"properties":1689,"children":1690},{"style":618},[1691],{"type":23,"value":1340},{"type":14,"tagName":35,"properties":1693,"children":1694},{"style":415},[1695],{"type":23,"value":1696},"],",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1699,"children":1700},{"class":411},[1701,1706,1710,1715,1719],{"type":14,"tagName":35,"properties":1702,"children":1703},{"style":415},[1704],{"type":23,"value":1705},"  prevClose",{"type":14,"tagName":35,"properties":1707,"children":1708},{"style":446},[1709],{"type":23,"value":605},{"type":14,"tagName":35,"properties":1711,"children":1712},{"style":415},[1713],{"type":23,"value":1714},"ohlcv.close[",{"type":14,"tagName":35,"properties":1716,"children":1717},{"style":618},[1718],{"type":23,"value":1340},{"type":14,"tagName":35,"properties":1720,"children":1721},{"style":415},[1722],{"type":23,"value":1696},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1725,"children":1726},{"class":411},[1727,1732,1736,1740,1744],{"type":14,"tagName":35,"properties":1728,"children":1729},{"style":415},[1730],{"type":23,"value":1731},"  currOpen",{"type":14,"tagName":35,"properties":1733,"children":1734},{"style":446},[1735],{"type":23,"value":605},{"type":14,"tagName":35,"properties":1737,"children":1738},{"style":415},[1739],{"type":23,"value":1687},{"type":14,"tagName":35,"properties":1741,"children":1742},{"style":618},[1743],{"type":23,"value":403},{"type":14,"tagName":35,"properties":1745,"children":1746},{"style":415},[1747],{"type":23,"value":1696},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1750,"children":1751},{"class":411},[1752,1757,1761,1765,1769],{"type":14,"tagName":35,"properties":1753,"children":1754},{"style":415},[1755],{"type":23,"value":1756},"  currClose",{"type":14,"tagName":35,"properties":1758,"children":1759},{"style":446},[1760],{"type":23,"value":605},{"type":14,"tagName":35,"properties":1762,"children":1763},{"style":415},[1764],{"type":23,"value":1714},{"type":14,"tagName":35,"properties":1766,"children":1767},{"style":618},[1768],{"type":23,"value":403},{"type":14,"tagName":35,"properties":1770,"children":1771},{"style":415},[1772],{"type":23,"value":1773},"]",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1776,"children":1777},{"class":411},[1778],{"type":14,"tagName":35,"properties":1779,"children":1780},{"style":415},[1781],{"type":23,"value":1782},")",{"type":23,"value":89},{"type":14,"tagName":102,"properties":1785,"children":1787,"position":1796},{"id":1786},"constraints-and-rules",[1788],{"type":23,"value":1789,"position":1790},"Constraints and Rules",{"start":1791,"end":1794},{"line":1792,"column":56,"offset":1793},111,3198,{"line":1792,"column":292,"offset":1795},3219,{"start":1797,"end":1799},{"line":1792,"column":27,"offset":1798},3195,{"line":1792,"column":292,"offset":1795},{"type":23,"value":89},{"type":14,"tagName":379,"properties":1802,"children":1804,"position":1814},{"id":1803},"no-timeseries-declarations-inside-functions",[1805],{"type":23,"value":1806,"position":1807},"No Timeseries Declarations Inside Functions",{"start":1808,"end":1811},{"line":1809,"column":67,"offset":1810},113,3225,{"line":1809,"column":1812,"offset":1813},48,3268,{"start":1815,"end":1817},{"line":1809,"column":27,"offset":1816},3221,{"line":1809,"column":1812,"offset":1813},{"type":23,"value":89},{"type":14,"tagName":120,"properties":1820,"children":1821,"position":1849},{},[1822,1830,1842],{"type":23,"value":1823,"position":1824},"Functions cannot declare new ",{"start":1825,"end":1828},{"line":1826,"column":27,"offset":1827},115,3270,{"line":1826,"column":28,"offset":1829},3299,{"type":14,"tagName":132,"properties":1831,"children":1832,"position":1839},{},[1833],{"type":23,"value":156,"position":1834},{"start":1835,"end":1836},{"line":1826,"column":28,"offset":1829},{"line":1826,"column":1837,"offset":1838},42,3311,{"start":1840,"end":1841},{"line":1826,"column":28,"offset":1829},{"line":1826,"column":1837,"offset":1838},{"type":23,"value":1843,"position":1844}," inside their body. All timeseries must be declared in global scope.",{"start":1845,"end":1846},{"line":1826,"column":1837,"offset":1838},{"line":1826,"column":1847,"offset":1848},110,3379,{"start":1850,"end":1851},{"line":1826,"column":27,"offset":1827},{"line":1826,"column":1847,"offset":1848},{"type":23,"value":89},{"type":11,"children":1854},[1855],{"type":14,"tagName":399,"properties":1856,"children":1857,"data":-1},{"class":401,"style":402,"tabindex":403,"title":1228},[1858],{"type":14,"tagName":132,"properties":1859,"children":1860},{},[1861,1869,1870,1887,1888,1922,1923,1930,1931,1934,1935,1943,1944,1961,1962,1982,1983],{"type":14,"tagName":35,"properties":1862,"children":1863},{"class":411},[1864],{"type":14,"tagName":35,"properties":1865,"children":1866},{"style":436},[1867],{"type":23,"value":1868},"// Invalid",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1871,"children":1872},{"class":411},[1873,1877,1882],{"type":14,"tagName":35,"properties":1874,"children":1875},{"style":415},[1876],{"type":23,"value":418},{"type":14,"tagName":35,"properties":1878,"children":1879},{"style":421},[1880],{"type":23,"value":1881},"bad",{"type":14,"tagName":35,"properties":1883,"children":1884},{"style":415},[1885],{"type":23,"value":1886},"() {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1889,"children":1890},{"class":411},[1891,1896,1900,1904,1908,1913,1917],{"type":14,"tagName":35,"properties":1892,"children":1893},{"style":415},[1894],{"type":23,"value":1895},"  timeseries ts ",{"type":14,"tagName":35,"properties":1897,"children":1898},{"style":446},[1899],{"type":23,"value":605},{"type":14,"tagName":35,"properties":1901,"children":1902},{"style":421},[1903],{"type":23,"value":1620},{"type":14,"tagName":35,"properties":1905,"children":1906},{"style":415},[1907],{"type":23,"value":615},{"type":14,"tagName":35,"properties":1909,"children":1910},{"style":446},[1911],{"type":23,"value":1912},"...",{"type":14,"tagName":35,"properties":1914,"children":1915},{"style":415},[1916],{"type":23,"value":645},{"type":14,"tagName":35,"properties":1918,"children":1919},{"style":436},[1920],{"type":23,"value":1921},"// Error!",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1924,"children":1925},{"class":411},[1926],{"type":14,"tagName":35,"properties":1927,"children":1928},{"style":415},[1929],{"type":23,"value":463},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1932,"children":1933},{"class":411},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":1936,"children":1937},{"class":411},[1938],{"type":14,"tagName":35,"properties":1939,"children":1940},{"style":436},[1941],{"type":23,"value":1942},"// Valid - pass timeseries as parameter",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1945,"children":1946},{"class":411},[1947,1951,1956],{"type":14,"tagName":35,"properties":1948,"children":1949},{"style":415},[1950],{"type":23,"value":418},{"type":14,"tagName":35,"properties":1952,"children":1953},{"style":421},[1954],{"type":23,"value":1955},"good",{"type":14,"tagName":35,"properties":1957,"children":1958},{"style":415},[1959],{"type":23,"value":1960},"(ts) {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":1963,"children":1964},{"class":411},[1965,1969,1974,1978],{"type":14,"tagName":35,"properties":1966,"children":1967},{"style":446},[1968],{"type":23,"value":449},{"type":14,"tagName":35,"properties":1970,"children":1971},{"style":415},[1972],{"type":23,"value":1973}," ts.close[",{"type":14,"tagName":35,"properties":1975,"children":1976},{"style":618},[1977],{"type":23,"value":403},{"type":14,"tagName":35,"properties":1979,"children":1980},{"style":415},[1981],{"type":23,"value":1773},{"type":23,"value":89},{"type":14,"tagName":35,"properties":1984,"children":1985},{"class":411},[1986],{"type":14,"tagName":35,"properties":1987,"children":1988},{"style":415},[1989],{"type":23,"value":463},{"type":23,"value":89},{"type":14,"tagName":379,"properties":1992,"children":1994,"position":2003},{"id":1993},"global-scope-only",[1995],{"type":23,"value":1996,"position":1997},"Global Scope Only",{"start":1998,"end":2001},{"line":1999,"column":67,"offset":2000},129,3561,{"line":1999,"column":387,"offset":2002},3578,{"start":2004,"end":2006},{"line":1999,"column":27,"offset":2005},3557,{"line":1999,"column":387,"offset":2002},{"type":23,"value":89},{"type":14,"tagName":120,"properties":2009,"children":2010,"position":2020},{},[2011],{"type":23,"value":2012,"position":2013},"Functions must be declared in global scope, not inside loops, conditionals, or other functions.",{"start":2014,"end":2017},{"line":2015,"column":27,"offset":2016},131,3580,{"line":2015,"column":2018,"offset":2019},96,3675,{"start":2021,"end":2022},{"line":2015,"column":27,"offset":2016},{"line":2015,"column":2018,"offset":2019},{"type":23,"value":89},{"type":11,"children":2025},[2026],{"type":14,"tagName":399,"properties":2027,"children":2028,"data":-1},{"class":401,"style":402,"tabindex":403,"title":1228},[2029],{"type":14,"tagName":132,"properties":2030,"children":2031},{},[2032,2039,2040,2053,2054,2083,2084,2091,2092,2095,2096,2104,2105,2128,2129,2132,2133,2144,2145,2175,2176],{"type":14,"tagName":35,"properties":2033,"children":2034},{"class":411},[2035],{"type":14,"tagName":35,"properties":2036,"children":2037},{"style":436},[2038],{"type":23,"value":1868},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2041,"children":2042},{"class":411},[2043,2048],{"type":14,"tagName":35,"properties":2044,"children":2045},{"style":446},[2046],{"type":23,"value":2047},"if",{"type":14,"tagName":35,"properties":2049,"children":2050},{"style":415},[2051],{"type":23,"value":2052}," (condition) {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2055,"children":2056},{"class":411},[2057,2062,2066,2070,2074,2079],{"type":14,"tagName":35,"properties":2058,"children":2059},{"style":415},[2060],{"type":23,"value":2061},"  func ",{"type":14,"tagName":35,"properties":2063,"children":2064},{"style":421},[2065],{"type":23,"value":1881},{"type":14,"tagName":35,"properties":2067,"children":2068},{"style":415},[2069],{"type":23,"value":1886},{"type":14,"tagName":35,"properties":2071,"children":2072},{"style":446},[2073],{"type":23,"value":1912},{"type":14,"tagName":35,"properties":2075,"children":2076},{"style":415},[2077],{"type":23,"value":2078},"}  ",{"type":14,"tagName":35,"properties":2080,"children":2081},{"style":436},[2082],{"type":23,"value":1921},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2085,"children":2086},{"class":411},[2087],{"type":14,"tagName":35,"properties":2088,"children":2089},{"style":415},[2090],{"type":23,"value":463},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2093,"children":2094},{"class":411},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":2097,"children":2098},{"class":411},[2099],{"type":14,"tagName":35,"properties":2100,"children":2101},{"style":436},[2102],{"type":23,"value":2103},"// Valid",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2106,"children":2107},{"class":411},[2108,2112,2116,2120,2124],{"type":14,"tagName":35,"properties":2109,"children":2110},{"style":415},[2111],{"type":23,"value":418},{"type":14,"tagName":35,"properties":2113,"children":2114},{"style":421},[2115],{"type":23,"value":1955},{"type":14,"tagName":35,"properties":2117,"children":2118},{"style":415},[2119],{"type":23,"value":1886},{"type":14,"tagName":35,"properties":2121,"children":2122},{"style":446},[2123],{"type":23,"value":1912},{"type":14,"tagName":35,"properties":2125,"children":2126},{"style":415},[2127],{"type":23,"value":463},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2130,"children":2131},{"class":411},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":2134,"children":2135},{"class":411},[2136,2140],{"type":14,"tagName":35,"properties":2137,"children":2138},{"style":446},[2139],{"type":23,"value":2047},{"type":14,"tagName":35,"properties":2141,"children":2142},{"style":415},[2143],{"type":23,"value":2052},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2146,"children":2147},{"class":411},[2148,2152,2156,2160,2165,2170],{"type":14,"tagName":35,"properties":2149,"children":2150},{"style":446},[2151],{"type":23,"value":1451},{"type":14,"tagName":35,"properties":2153,"children":2154},{"style":415},[2155],{"type":23,"value":1106},{"type":14,"tagName":35,"properties":2157,"children":2158},{"style":446},[2159],{"type":23,"value":605},{"type":14,"tagName":35,"properties":2161,"children":2162},{"style":421},[2163],{"type":23,"value":2164}," good",{"type":14,"tagName":35,"properties":2166,"children":2167},{"style":415},[2168],{"type":23,"value":2169},"()  ",{"type":14,"tagName":35,"properties":2171,"children":2172},{"style":436},[2173],{"type":23,"value":2174},"// OK to call",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2177,"children":2178},{"class":411},[2179],{"type":14,"tagName":35,"properties":2180,"children":2181},{"style":415},[2182],{"type":23,"value":463},{"type":23,"value":89},{"type":14,"tagName":379,"properties":2185,"children":2187,"position":2196},{"id":2186},"parameter-types",[2188],{"type":23,"value":2189,"position":2190},"Parameter Types",{"start":2191,"end":2194},{"line":2192,"column":67,"offset":2193},147,3856,{"line":2192,"column":369,"offset":2195},3871,{"start":2197,"end":2199},{"line":2192,"column":27,"offset":2198},3852,{"line":2192,"column":369,"offset":2195},{"type":23,"value":89},{"type":14,"tagName":120,"properties":2202,"children":2203,"position":2247},{},[2204,2212,2223,2228,2240],{"type":23,"value":2205,"position":2206},"Functions can accept ",{"start":2207,"end":2210},{"line":2208,"column":27,"offset":2209},149,3873,{"line":2208,"column":387,"offset":2211},3894,{"type":14,"tagName":132,"properties":2213,"children":2214,"position":2220},{},[2215],{"type":23,"value":136,"position":2216},{"start":2217,"end":2218},{"line":2208,"column":387,"offset":2211},{"line":2208,"column":1358,"offset":2219},3899,{"start":2221,"end":2222},{"line":2208,"column":387,"offset":2211},{"line":2208,"column":1358,"offset":2219},{"type":23,"value":146,"position":2224},{"start":2225,"end":2226},{"line":2208,"column":1358,"offset":2219},{"line":2208,"column":33,"offset":2227},3904,{"type":14,"tagName":132,"properties":2229,"children":2230,"position":2237},{},[2231],{"type":23,"value":156,"position":2232},{"start":2233,"end":2234},{"line":2208,"column":33,"offset":2227},{"line":2208,"column":2235,"offset":2236},44,3916,{"start":2238,"end":2239},{"line":2208,"column":33,"offset":2227},{"line":2208,"column":2235,"offset":2236},{"type":23,"value":2241,"position":2242}," arguments. Types are inferred from how parameters are used.",{"start":2243,"end":2244},{"line":2208,"column":2235,"offset":2236},{"line":2208,"column":2245,"offset":2246},104,3976,{"start":2248,"end":2249},{"line":2208,"column":27,"offset":2209},{"line":2208,"column":2245,"offset":2246},{"type":23,"value":89},{"type":11,"children":2252},[2253],{"type":14,"tagName":399,"properties":2254,"children":2255,"data":-1},{"class":401,"style":402,"tabindex":403,"title":1228},[2256],{"type":14,"tagName":132,"properties":2257,"children":2258},{},[2259,2267,2268,2285,2286,2321,2322,2343,2344],{"type":14,"tagName":35,"properties":2260,"children":2261},{"class":411},[2262],{"type":14,"tagName":35,"properties":2263,"children":2264},{"style":436},[2265],{"type":23,"value":2266},"// Valid - accepts both var and timeseries",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2269,"children":2270},{"class":411},[2271,2275,2280],{"type":14,"tagName":35,"properties":2272,"children":2273},{"style":415},[2274],{"type":23,"value":418},{"type":14,"tagName":35,"properties":2276,"children":2277},{"style":421},[2278],{"type":23,"value":2279},"processData",{"type":14,"tagName":35,"properties":2281,"children":2282},{"style":415},[2283],{"type":23,"value":2284},"(varParam, tsParam) {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2287,"children":2288},{"class":411},[2289,2293,2298,2302,2307,2311,2316],{"type":14,"tagName":35,"properties":2290,"children":2291},{"style":446},[2292],{"type":23,"value":1451},{"type":14,"tagName":35,"properties":2294,"children":2295},{"style":415},[2296],{"type":23,"value":2297}," current ",{"type":14,"tagName":35,"properties":2299,"children":2300},{"style":446},[2301],{"type":23,"value":605},{"type":14,"tagName":35,"properties":2303,"children":2304},{"style":415},[2305],{"type":23,"value":2306}," tsParam[",{"type":14,"tagName":35,"properties":2308,"children":2309},{"style":618},[2310],{"type":23,"value":403},{"type":14,"tagName":35,"properties":2312,"children":2313},{"style":415},[2314],{"type":23,"value":2315},"]  ",{"type":14,"tagName":35,"properties":2317,"children":2318},{"style":436},[2319],{"type":23,"value":2320},"// Treats tsParam as timeseries",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2323,"children":2324},{"class":411},[2325,2329,2334,2338],{"type":14,"tagName":35,"properties":2326,"children":2327},{"style":446},[2328],{"type":23,"value":449},{"type":14,"tagName":35,"properties":2330,"children":2331},{"style":415},[2332],{"type":23,"value":2333}," varParam ",{"type":14,"tagName":35,"properties":2335,"children":2336},{"style":446},[2337],{"type":23,"value":561},{"type":14,"tagName":35,"properties":2339,"children":2340},{"style":415},[2341],{"type":23,"value":2342}," current",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2345,"children":2346},{"class":411},[2347],{"type":14,"tagName":35,"properties":2348,"children":2349},{"style":415},[2350],{"type":23,"value":463},{"type":23,"value":89},{"type":14,"tagName":379,"properties":2353,"children":2355,"position":2364},{"id":2354},"return-requirement",[2356],{"type":23,"value":2357,"position":2358},"Return Requirement",{"start":2359,"end":2362},{"line":2360,"column":67,"offset":2361},159,4183,{"line":2360,"column":973,"offset":2363},4201,{"start":2365,"end":2367},{"line":2360,"column":27,"offset":2366},4179,{"line":2360,"column":973,"offset":2363},{"type":23,"value":89},{"type":14,"tagName":120,"properties":2370,"children":2371,"position":2381},{},[2372],{"type":23,"value":2373,"position":2374},"All functions must have an explicit return statement. The return type is inferred from the expression.",{"start":2375,"end":2378},{"line":2376,"column":27,"offset":2377},161,4203,{"line":2376,"column":2379,"offset":2380},103,4305,{"start":2382,"end":2383},{"line":2376,"column":27,"offset":2377},{"line":2376,"column":2379,"offset":2380},{"type":23,"value":89},{"type":11,"children":2386},[2387],{"type":14,"tagName":399,"properties":2388,"children":2389,"data":-1},{"class":401,"style":402,"tabindex":403,"title":1228},[2390],{"type":14,"tagName":132,"properties":2391,"children":2392},{},[2393,2400,2401,2417,2418,2443,2444,2451,2452,2455,2456,2464,2465,2481,2482,2515,2516],{"type":14,"tagName":35,"properties":2394,"children":2395},{"class":411},[2396],{"type":14,"tagName":35,"properties":2397,"children":2398},{"style":436},[2399],{"type":23,"value":2103},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2402,"children":2403},{"class":411},[2404,2408,2413],{"type":14,"tagName":35,"properties":2405,"children":2406},{"style":415},[2407],{"type":23,"value":418},{"type":14,"tagName":35,"properties":2409,"children":2410},{"style":421},[2411],{"type":23,"value":2412},"add",{"type":14,"tagName":35,"properties":2414,"children":2415},{"style":415},[2416],{"type":23,"value":1020},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2419,"children":2420},{"class":411},[2421,2425,2429,2433,2438],{"type":14,"tagName":35,"properties":2422,"children":2423},{"style":446},[2424],{"type":23,"value":449},{"type":14,"tagName":35,"properties":2426,"children":2427},{"style":415},[2428],{"type":23,"value":1062},{"type":14,"tagName":35,"properties":2430,"children":2431},{"style":446},[2432],{"type":23,"value":561},{"type":14,"tagName":35,"properties":2434,"children":2435},{"style":415},[2436],{"type":23,"value":2437}," b  ",{"type":14,"tagName":35,"properties":2439,"children":2440},{"style":436},[2441],{"type":23,"value":2442},"// Required",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2445,"children":2446},{"class":411},[2447],{"type":14,"tagName":35,"properties":2448,"children":2449},{"style":415},[2450],{"type":23,"value":463},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2453,"children":2454},{"class":411},[],{"type":23,"value":89},{"type":14,"tagName":35,"properties":2457,"children":2458},{"class":411},[2459],{"type":14,"tagName":35,"properties":2460,"children":2461},{"style":436},[2462],{"type":23,"value":2463},"// Invalid - no return",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2466,"children":2467},{"class":411},[2468,2472,2477],{"type":14,"tagName":35,"properties":2469,"children":2470},{"style":415},[2471],{"type":23,"value":418},{"type":14,"tagName":35,"properties":2473,"children":2474},{"style":421},[2475],{"type":23,"value":2476},"noReturn",{"type":14,"tagName":35,"properties":2478,"children":2479},{"style":415},[2480],{"type":23,"value":1020},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2483,"children":2484},{"class":411},[2485,2489,2494,2498,2502,2506,2510],{"type":14,"tagName":35,"properties":2486,"children":2487},{"style":446},[2488],{"type":23,"value":1451},{"type":14,"tagName":35,"properties":2490,"children":2491},{"style":415},[2492],{"type":23,"value":2493}," sum ",{"type":14,"tagName":35,"properties":2495,"children":2496},{"style":446},[2497],{"type":23,"value":605},{"type":14,"tagName":35,"properties":2499,"children":2500},{"style":415},[2501],{"type":23,"value":1062},{"type":14,"tagName":35,"properties":2503,"children":2504},{"style":446},[2505],{"type":23,"value":561},{"type":14,"tagName":35,"properties":2507,"children":2508},{"style":415},[2509],{"type":23,"value":2437},{"type":14,"tagName":35,"properties":2511,"children":2512},{"style":436},[2513],{"type":23,"value":2514},"// Missing return!",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2517,"children":2518},{"class":411},[2519],{"type":14,"tagName":35,"properties":2520,"children":2521},{"style":415},[2522],{"type":23,"value":463},{"type":23,"value":89},{"type":14,"tagName":102,"properties":2525,"children":2527,"position":2536},{"id":2526},"best-practices",[2528],{"type":23,"value":2529,"position":2530},"Best Practices",{"start":2531,"end":2534},{"line":2532,"column":56,"offset":2533},175,4482,{"line":2532,"column":326,"offset":2535},4496,{"start":2537,"end":2539},{"line":2532,"column":27,"offset":2538},4479,{"line":2532,"column":326,"offset":2535},{"type":23,"value":89},{"type":14,"tagName":120,"properties":2542,"children":2543},{},[],{"type":23,"value":89},{"type":14,"tagName":120,"properties":2546,"children":2547},{},[],{"type":23,"value":89},{"type":14,"tagName":2550,"properties":2551,"children":2553},"cardgrid",{"dataLayout":2552},"stack",[2554,2684,2781],{"type":14,"tagName":2555,"properties":2556,"children":2559},"card",{"title":2557,"href":2558},"Keep Functions Focused","",[2560,2573],{"type":14,"tagName":120,"properties":2561,"children":2562,"position":2565},{},[2563],{"type":23,"value":2564},"Each function should do one thing well:",{"start":2566,"end":2570},{"line":2567,"column":2568,"offset":2569},178,40,4590,{"line":2567,"column":2571,"offset":2572},86,4636,{"type":11,"children":2574},[2575],{"type":14,"tagName":399,"properties":2576,"children":2577,"data":-1},{"class":401,"style":402,"tabindex":403},[2578],{"type":14,"tagName":132,"properties":2579,"children":2580},{},[2581,2589,2590,2607,2608,2676,2677],{"type":14,"tagName":35,"properties":2582,"children":2583},{"class":411},[2584],{"type":14,"tagName":35,"properties":2585,"children":2586},{"style":436},[2587],{"type":23,"value":2588},"// Good - single responsibility",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2591,"children":2592},{"class":411},[2593,2597,2602],{"type":14,"tagName":35,"properties":2594,"children":2595},{"style":415},[2596],{"type":23,"value":418},{"type":14,"tagName":35,"properties":2598,"children":2599},{"style":421},[2600],{"type":23,"value":2601},"calculateRSIColor",{"type":14,"tagName":35,"properties":2603,"children":2604},{"style":415},[2605],{"type":23,"value":2606},"(rsiValue) {",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2609,"children":2610},{"class":411},[2611,2615,2620,2624,2629,2633,2637,2641,2646,2650,2655,2659,2664,2668,2672],{"type":14,"tagName":35,"properties":2612,"children":2613},{"style":446},[2614],{"type":23,"value":449},{"type":14,"tagName":35,"properties":2616,"children":2617},{"style":415},[2618],{"type":23,"value":2619}," rsiValue ",{"type":14,"tagName":35,"properties":2621,"children":2622},{"style":446},[2623],{"type":23,"value":1407},{"type":14,"tagName":35,"properties":2625,"children":2626},{"style":618},[2627],{"type":23,"value":2628}," 70",{"type":14,"tagName":35,"properties":2630,"children":2631},{"style":446},[2632],{"type":23,"value":1048},{"type":14,"tagName":35,"properties":2634,"children":2635},{"style":618},[2636],{"type":23,"value":1043},{"type":14,"tagName":35,"properties":2638,"children":2639},{"style":446},[2640],{"type":23,"value":1057},{"type":14,"tagName":35,"properties":2642,"children":2643},{"style":415},[2644],{"type":23,"value":2645}," (rsiValue ",{"type":14,"tagName":35,"properties":2647,"children":2648},{"style":446},[2649],{"type":23,"value":1470},{"type":14,"tagName":35,"properties":2651,"children":2652},{"style":618},[2653],{"type":23,"value":2654}," 30",{"type":14,"tagName":35,"properties":2656,"children":2657},{"style":446},[2658],{"type":23,"value":1048},{"type":14,"tagName":35,"properties":2660,"children":2661},{"style":618},[2662],{"type":23,"value":2663}," 1",{"type":14,"tagName":35,"properties":2665,"children":2666},{"style":446},[2667],{"type":23,"value":1057},{"type":14,"tagName":35,"properties":2669,"children":2670},{"style":618},[2671],{"type":23,"value":1279},{"type":14,"tagName":35,"properties":2673,"children":2674},{"style":415},[2675],{"type":23,"value":1782},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2678,"children":2679},{"class":411},[2680],{"type":14,"tagName":35,"properties":2681,"children":2682},{"style":415},[2683],{"type":23,"value":463},{"type":14,"tagName":2555,"properties":2685,"children":2687},{"title":2686,"href":2558},"Use Descriptive Names",[2688,2699],{"type":14,"tagName":120,"properties":2689,"children":2690,"position":2693},{},[2691],{"type":23,"value":2692},"Function names should clearly indicate what they do:",{"start":2694,"end":2697},{"line":2695,"column":217,"offset":2696},188,4971,{"line":2695,"column":843,"offset":2698},5030,{"type":11,"children":2700},[2701],{"type":14,"tagName":399,"properties":2702,"children":2703,"data":-1},{"class":401,"style":402,"tabindex":403},[2704],{"type":14,"tagName":132,"properties":2705,"children":2706},{},[2707,2715,2716,2755,2756],{"type":14,"tagName":35,"properties":2708,"children":2709},{"class":411},[2710],{"type":14,"tagName":35,"properties":2711,"children":2712},{"style":436},[2713],{"type":23,"value":2714},"// Good",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2717,"children":2718},{"class":411},[2719,2723,2728,2733,2738,2742,2746,2750],{"type":14,"tagName":35,"properties":2720,"children":2721},{"style":415},[2722],{"type":23,"value":418},{"type":14,"tagName":35,"properties":2724,"children":2725},{"style":421},[2726],{"type":23,"value":2727},"isOverbought",{"type":14,"tagName":35,"properties":2729,"children":2730},{"style":415},[2731],{"type":23,"value":2732},"(rsiValue) { ",{"type":14,"tagName":35,"properties":2734,"children":2735},{"style":446},[2736],{"type":23,"value":2737},"return",{"type":14,"tagName":35,"properties":2739,"children":2740},{"style":415},[2741],{"type":23,"value":2619},{"type":14,"tagName":35,"properties":2743,"children":2744},{"style":446},[2745],{"type":23,"value":1407},{"type":14,"tagName":35,"properties":2747,"children":2748},{"style":618},[2749],{"type":23,"value":2628},{"type":14,"tagName":35,"properties":2751,"children":2752},{"style":415},[2753],{"type":23,"value":2754}," }",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2757,"children":2758},{"class":411},[2759,2763,2768,2773,2777],{"type":14,"tagName":35,"properties":2760,"children":2761},{"style":415},[2762],{"type":23,"value":418},{"type":14,"tagName":35,"properties":2764,"children":2765},{"style":421},[2766],{"type":23,"value":2767},"calculatePercentChange",{"type":14,"tagName":35,"properties":2769,"children":2770},{"style":415},[2771],{"type":23,"value":2772},"(oldValue, newValue) {",{"type":14,"tagName":35,"properties":2774,"children":2775},{"style":446},[2776],{"type":23,"value":1912},{"type":14,"tagName":35,"properties":2778,"children":2779},{"style":415},[2780],{"type":23,"value":463},{"type":14,"tagName":2555,"properties":2782,"children":2784},{"title":2783,"href":2558},"Document with kwargs",[2785,2798],{"type":14,"tagName":120,"properties":2786,"children":2787,"position":2790},{},[2788],{"type":23,"value":2789},"Using named parameters makes function calls self-documenting:",{"start":2791,"end":2795},{"line":2792,"column":2793,"offset":2794},196,38,5306,{"line":2792,"column":2796,"offset":2797},106,5374,{"type":11,"children":2799},[2800],{"type":14,"tagName":399,"properties":2801,"children":2802,"data":-1},{"class":401,"style":402,"tabindex":403},[2803],{"type":14,"tagName":132,"properties":2804,"children":2805},{},[2806,2814,2815,2839,2840,2863,2864,2887,2888,2911,2912,2935,2936],{"type":14,"tagName":35,"properties":2807,"children":2808},{"class":411},[2809],{"type":14,"tagName":35,"properties":2810,"children":2811},{"style":436},[2812],{"type":23,"value":2813},"// Self-documenting call",{"type":23,"value":89},{"type":14,"tagName":35,"properties":2816,"children":2817},{"class":411},[2818,2822,2827,2831,2835],{"type":14,"tagName":35,"properties":2819,"children":2820},{"style":446},[2821],{"type":23,"value":136},{"type":14,"tagName":35,"properties":2823,"children":2824},{"style":415},[2825],{"type":23,"value":2826}," signal ",{"type":14,"tagName":35,"properties":2828,"children":2829},{"style":446},[2830],{"type":23,"value":605},{"type":14,"tagName":35,"properties":2832,"children":2833},{"style":421},[2834],{"type":23,"value":1665},{"type":14,"tagName":35,"properties":2836,"children":2837},{"style":415},[2838],{"type":23,"value":615},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2841,"children":2842},{"class":411},[2843,2847,2851,2855,2859],{"type":14,"tagName":35,"properties":2844,"children":2845},{"style":415},[2846],{"type":23,"value":1678},{"type":14,"tagName":35,"properties":2848,"children":2849},{"style":446},[2850],{"type":23,"value":605},{"type":14,"tagName":35,"properties":2852,"children":2853},{"style":415},[2854],{"type":23,"value":1687},{"type":14,"tagName":35,"properties":2856,"children":2857},{"style":618},[2858],{"type":23,"value":1340},{"type":14,"tagName":35,"properties":2860,"children":2861},{"style":415},[2862],{"type":23,"value":1696},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2865,"children":2866},{"class":411},[2867,2871,2875,2879,2883],{"type":14,"tagName":35,"properties":2868,"children":2869},{"style":415},[2870],{"type":23,"value":1705},{"type":14,"tagName":35,"properties":2872,"children":2873},{"style":446},[2874],{"type":23,"value":605},{"type":14,"tagName":35,"properties":2876,"children":2877},{"style":415},[2878],{"type":23,"value":1714},{"type":14,"tagName":35,"properties":2880,"children":2881},{"style":618},[2882],{"type":23,"value":1340},{"type":14,"tagName":35,"properties":2884,"children":2885},{"style":415},[2886],{"type":23,"value":1696},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2889,"children":2890},{"class":411},[2891,2895,2899,2903,2907],{"type":14,"tagName":35,"properties":2892,"children":2893},{"style":415},[2894],{"type":23,"value":1731},{"type":14,"tagName":35,"properties":2896,"children":2897},{"style":446},[2898],{"type":23,"value":605},{"type":14,"tagName":35,"properties":2900,"children":2901},{"style":415},[2902],{"type":23,"value":1687},{"type":14,"tagName":35,"properties":2904,"children":2905},{"style":618},[2906],{"type":23,"value":403},{"type":14,"tagName":35,"properties":2908,"children":2909},{"style":415},[2910],{"type":23,"value":1696},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2913,"children":2914},{"class":411},[2915,2919,2923,2927,2931],{"type":14,"tagName":35,"properties":2916,"children":2917},{"style":415},[2918],{"type":23,"value":1756},{"type":14,"tagName":35,"properties":2920,"children":2921},{"style":446},[2922],{"type":23,"value":605},{"type":14,"tagName":35,"properties":2924,"children":2925},{"style":415},[2926],{"type":23,"value":1714},{"type":14,"tagName":35,"properties":2928,"children":2929},{"style":618},[2930],{"type":23,"value":403},{"type":14,"tagName":35,"properties":2932,"children":2933},{"style":415},[2934],{"type":23,"value":1773},{"type":23,"value":89},{"type":14,"tagName":35,"properties":2937,"children":2938},{"class":411},[2939],{"type":14,"tagName":35,"properties":2940,"children":2941},{"style":415},[2942],{"type":23,"value":1782},{"quirksMode":2944},false,{"start":2946,"end":2947},{"line":27,"column":27,"offset":97},{"line":2948,"column":27,"offset":2949},204,5629,1781011072741]