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