[{"data":1,"prerenderedAt":718},["ShallowReactive",2],{"indicators:functions/strategy-functions":3},{"slug":4,"filePath":5,"frontmatter":6,"rawMarkdown":11,"tree":12},"functions/strategy-functions","functions/strategy-functions.md",{"title":7,"description":8,"order":9,"section":10},"Strategy functions","In Indicators this is the strategy({ ... }) declaration from ./gen/strategy beside the outputs (the engine's own setting names: capital, quantity, commission…",30,"functions","---\ntitle: \"Strategy functions\"\ndescription: \"In Indicators this is the strategy({ ... }) declaration from ./gen/strategy beside the outputs (the engine's own setting names: capital, quantity, commission…\"\norder: 30\nsection: \"functions\"\n---\n\n\u003C!-- source: docs/indicators/functions/strategy-functions.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit -->\n\n# Strategy functions\n\nIn Indicators this is the `strategy({ ... })` declaration from `./gen/strategy` beside the outputs (the engine's own setting names: capital, quantity, commission, slippage, perps margin), the order builders in `finalize()` (`strategy.long(id)` / `strategy.short(id)` with `.qty()`, `.limit()`, `.stop()`, `.oca()` and `.send()`; `strategy.exit(id)` with `.from()`, `.stop()`, `.limit()`, `.trail()`; `strategy.close(id)`, `strategy.closeAll()`, `strategy.cancel(id)`, `strategy.cancelAll()`), and the position getters valid in `state()` and `finalize()` (`strategy.positionSize()`, `strategy.positionAvgPrice()`, `strategy.equity()`, `strategy.openProfit()`, `strategy.netProfit()`, the trade counts, `strategy.maxDrawdown()`): the same broker the kScript (legacy) engine runs, driven by the host, with `om backtest run \u003Cpackage>` and the Strategy Tester replaying the trade list from the same bars, params and sheet.\n\nNearest form: [Strategies overview](../strategies/overview.md) is the model, [Writing strategies](../strategies/writing-strategies.md) the API page, [Your first strategy](../strategies/first-strategy.md) the worked port.\n\nOne rule differs from kScript: orders are placed in `finalize()` only, and the getters read the position after the bar's fills. A watch's money step is the other lane, for a rule over a published output rather than a strategy in the file.\n",{"type":13,"children":14,"data":711,"position":713},"root",[15,25,28,29,586,587,676,677],{"type":16,"value":17,"position":18},"comment"," source: docs/indicators/functions/strategy-functions.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit ",{"start":19,"end":22},{"line":20,"column":20,"offset":21},1,0,{"line":20,"column":23,"offset":24},135,134,{"type":26,"value":27},"text","\n",{"type":26,"value":27},{"type":30,"tagName":31,"properties":32,"children":33,"position":583},"element","p",{},[34,43,57,64,77,84,97,104,117,124,137,144,157,164,177,183,196,202,215,222,235,242,255,261,274,280,292,298,310,316,329,334,347,353,366,372,385,391,404,411,424,430,442,447,460,466,479,485,498,504,517,523,536,543,556,563,576],{"type":26,"value":35,"position":36},"In Indicators this is the ",{"start":37,"end":40},{"line":38,"column":20,"offset":39},5,158,{"line":38,"column":41,"offset":42},27,184,{"type":30,"tagName":44,"properties":45,"children":46,"position":54},"code",{},[47],{"type":26,"value":48,"position":49},"strategy({ ... })",{"start":50,"end":51},{"line":38,"column":41,"offset":42},{"line":38,"column":52,"offset":53},46,203,{"start":55,"end":56},{"line":38,"column":41,"offset":42},{"line":38,"column":52,"offset":53},{"type":26,"value":58,"position":59}," declaration from ",{"start":60,"end":61},{"line":38,"column":52,"offset":53},{"line":38,"column":62,"offset":63},64,221,{"type":30,"tagName":44,"properties":65,"children":66,"position":74},{},[67],{"type":26,"value":68,"position":69},"./gen/strategy",{"start":70,"end":71},{"line":38,"column":62,"offset":63},{"line":38,"column":72,"offset":73},80,237,{"start":75,"end":76},{"line":38,"column":62,"offset":63},{"line":38,"column":72,"offset":73},{"type":26,"value":78,"position":79}," beside the outputs (the engine's own setting names: capital, quantity, commission, slippage, perps margin), the order builders in ",{"start":80,"end":81},{"line":38,"column":72,"offset":73},{"line":38,"column":82,"offset":83},211,368,{"type":30,"tagName":44,"properties":85,"children":86,"position":94},{},[87],{"type":26,"value":88,"position":89},"finalize()",{"start":90,"end":91},{"line":38,"column":82,"offset":83},{"line":38,"column":92,"offset":93},223,380,{"start":95,"end":96},{"line":38,"column":82,"offset":83},{"line":38,"column":92,"offset":93},{"type":26,"value":98,"position":99}," (",{"start":100,"end":101},{"line":38,"column":92,"offset":93},{"line":38,"column":102,"offset":103},225,382,{"type":30,"tagName":44,"properties":105,"children":106,"position":114},{},[107],{"type":26,"value":108,"position":109},"strategy.long(id)",{"start":110,"end":111},{"line":38,"column":102,"offset":103},{"line":38,"column":112,"offset":113},244,401,{"start":115,"end":116},{"line":38,"column":102,"offset":103},{"line":38,"column":112,"offset":113},{"type":26,"value":118,"position":119}," / ",{"start":120,"end":121},{"line":38,"column":112,"offset":113},{"line":38,"column":122,"offset":123},247,404,{"type":30,"tagName":44,"properties":125,"children":126,"position":134},{},[127],{"type":26,"value":128,"position":129},"strategy.short(id)",{"start":130,"end":131},{"line":38,"column":122,"offset":123},{"line":38,"column":132,"offset":133},267,424,{"start":135,"end":136},{"line":38,"column":122,"offset":123},{"line":38,"column":132,"offset":133},{"type":26,"value":138,"position":139}," with ",{"start":140,"end":141},{"line":38,"column":132,"offset":133},{"line":38,"column":142,"offset":143},273,430,{"type":30,"tagName":44,"properties":145,"children":146,"position":154},{},[147],{"type":26,"value":148,"position":149},".qty()",{"start":150,"end":151},{"line":38,"column":142,"offset":143},{"line":38,"column":152,"offset":153},281,438,{"start":155,"end":156},{"line":38,"column":142,"offset":143},{"line":38,"column":152,"offset":153},{"type":26,"value":158,"position":159},", ",{"start":160,"end":161},{"line":38,"column":152,"offset":153},{"line":38,"column":162,"offset":163},283,440,{"type":30,"tagName":44,"properties":165,"children":166,"position":174},{},[167],{"type":26,"value":168,"position":169},".limit()",{"start":170,"end":171},{"line":38,"column":162,"offset":163},{"line":38,"column":172,"offset":173},293,450,{"start":175,"end":176},{"line":38,"column":162,"offset":163},{"line":38,"column":172,"offset":173},{"type":26,"value":158,"position":178},{"start":179,"end":180},{"line":38,"column":172,"offset":173},{"line":38,"column":181,"offset":182},295,452,{"type":30,"tagName":44,"properties":184,"children":185,"position":193},{},[186],{"type":26,"value":187,"position":188},".stop()",{"start":189,"end":190},{"line":38,"column":181,"offset":182},{"line":38,"column":191,"offset":192},304,461,{"start":194,"end":195},{"line":38,"column":181,"offset":182},{"line":38,"column":191,"offset":192},{"type":26,"value":158,"position":197},{"start":198,"end":199},{"line":38,"column":191,"offset":192},{"line":38,"column":200,"offset":201},306,463,{"type":30,"tagName":44,"properties":203,"children":204,"position":212},{},[205],{"type":26,"value":206,"position":207},".oca()",{"start":208,"end":209},{"line":38,"column":200,"offset":201},{"line":38,"column":210,"offset":211},314,471,{"start":213,"end":214},{"line":38,"column":200,"offset":201},{"line":38,"column":210,"offset":211},{"type":26,"value":216,"position":217}," and ",{"start":218,"end":219},{"line":38,"column":210,"offset":211},{"line":38,"column":220,"offset":221},319,476,{"type":30,"tagName":44,"properties":223,"children":224,"position":232},{},[225],{"type":26,"value":226,"position":227},".send()",{"start":228,"end":229},{"line":38,"column":220,"offset":221},{"line":38,"column":230,"offset":231},328,485,{"start":233,"end":234},{"line":38,"column":220,"offset":221},{"line":38,"column":230,"offset":231},{"type":26,"value":236,"position":237},"; ",{"start":238,"end":239},{"line":38,"column":230,"offset":231},{"line":38,"column":240,"offset":241},330,487,{"type":30,"tagName":44,"properties":243,"children":244,"position":252},{},[245],{"type":26,"value":246,"position":247},"strategy.exit(id)",{"start":248,"end":249},{"line":38,"column":240,"offset":241},{"line":38,"column":250,"offset":251},349,506,{"start":253,"end":254},{"line":38,"column":240,"offset":241},{"line":38,"column":250,"offset":251},{"type":26,"value":138,"position":256},{"start":257,"end":258},{"line":38,"column":250,"offset":251},{"line":38,"column":259,"offset":260},355,512,{"type":30,"tagName":44,"properties":262,"children":263,"position":271},{},[264],{"type":26,"value":265,"position":266},".from()",{"start":267,"end":268},{"line":38,"column":259,"offset":260},{"line":38,"column":269,"offset":270},364,521,{"start":272,"end":273},{"line":38,"column":259,"offset":260},{"line":38,"column":269,"offset":270},{"type":26,"value":158,"position":275},{"start":276,"end":277},{"line":38,"column":269,"offset":270},{"line":38,"column":278,"offset":279},366,523,{"type":30,"tagName":44,"properties":281,"children":282,"position":289},{},[283],{"type":26,"value":187,"position":284},{"start":285,"end":286},{"line":38,"column":278,"offset":279},{"line":38,"column":287,"offset":288},375,532,{"start":290,"end":291},{"line":38,"column":278,"offset":279},{"line":38,"column":287,"offset":288},{"type":26,"value":158,"position":293},{"start":294,"end":295},{"line":38,"column":287,"offset":288},{"line":38,"column":296,"offset":297},377,534,{"type":30,"tagName":44,"properties":299,"children":300,"position":307},{},[301],{"type":26,"value":168,"position":302},{"start":303,"end":304},{"line":38,"column":296,"offset":297},{"line":38,"column":305,"offset":306},387,544,{"start":308,"end":309},{"line":38,"column":296,"offset":297},{"line":38,"column":305,"offset":306},{"type":26,"value":158,"position":311},{"start":312,"end":313},{"line":38,"column":305,"offset":306},{"line":38,"column":314,"offset":315},389,546,{"type":30,"tagName":44,"properties":317,"children":318,"position":326},{},[319],{"type":26,"value":320,"position":321},".trail()",{"start":322,"end":323},{"line":38,"column":314,"offset":315},{"line":38,"column":324,"offset":325},399,556,{"start":327,"end":328},{"line":38,"column":314,"offset":315},{"line":38,"column":324,"offset":325},{"type":26,"value":236,"position":330},{"start":331,"end":332},{"line":38,"column":324,"offset":325},{"line":38,"column":113,"offset":333},558,{"type":30,"tagName":44,"properties":335,"children":336,"position":344},{},[337],{"type":26,"value":338,"position":339},"strategy.close(id)",{"start":340,"end":341},{"line":38,"column":113,"offset":333},{"line":38,"column":342,"offset":343},421,578,{"start":345,"end":346},{"line":38,"column":113,"offset":333},{"line":38,"column":342,"offset":343},{"type":26,"value":158,"position":348},{"start":349,"end":350},{"line":38,"column":342,"offset":343},{"line":38,"column":351,"offset":352},423,580,{"type":30,"tagName":44,"properties":354,"children":355,"position":363},{},[356],{"type":26,"value":357,"position":358},"strategy.closeAll()",{"start":359,"end":360},{"line":38,"column":351,"offset":352},{"line":38,"column":361,"offset":362},444,601,{"start":364,"end":365},{"line":38,"column":351,"offset":352},{"line":38,"column":361,"offset":362},{"type":26,"value":158,"position":367},{"start":368,"end":369},{"line":38,"column":361,"offset":362},{"line":38,"column":370,"offset":371},446,603,{"type":30,"tagName":44,"properties":373,"children":374,"position":382},{},[375],{"type":26,"value":376,"position":377},"strategy.cancel(id)",{"start":378,"end":379},{"line":38,"column":370,"offset":371},{"line":38,"column":380,"offset":381},467,624,{"start":383,"end":384},{"line":38,"column":370,"offset":371},{"line":38,"column":380,"offset":381},{"type":26,"value":158,"position":386},{"start":387,"end":388},{"line":38,"column":380,"offset":381},{"line":38,"column":389,"offset":390},469,626,{"type":30,"tagName":44,"properties":392,"children":393,"position":401},{},[394],{"type":26,"value":395,"position":396},"strategy.cancelAll()",{"start":397,"end":398},{"line":38,"column":389,"offset":390},{"line":38,"column":399,"offset":400},491,648,{"start":402,"end":403},{"line":38,"column":389,"offset":390},{"line":38,"column":399,"offset":400},{"type":26,"value":405,"position":406},"), and the position getters valid in ",{"start":407,"end":408},{"line":38,"column":399,"offset":400},{"line":38,"column":409,"offset":410},528,685,{"type":30,"tagName":44,"properties":412,"children":413,"position":421},{},[414],{"type":26,"value":415,"position":416},"state()",{"start":417,"end":418},{"line":38,"column":409,"offset":410},{"line":38,"column":419,"offset":420},537,694,{"start":422,"end":423},{"line":38,"column":409,"offset":410},{"line":38,"column":419,"offset":420},{"type":26,"value":216,"position":425},{"start":426,"end":427},{"line":38,"column":419,"offset":420},{"line":38,"column":428,"offset":429},542,699,{"type":30,"tagName":44,"properties":431,"children":432,"position":439},{},[433],{"type":26,"value":88,"position":434},{"start":435,"end":436},{"line":38,"column":428,"offset":429},{"line":38,"column":437,"offset":438},554,711,{"start":440,"end":441},{"line":38,"column":428,"offset":429},{"line":38,"column":437,"offset":438},{"type":26,"value":98,"position":443},{"start":444,"end":445},{"line":38,"column":437,"offset":438},{"line":38,"column":325,"offset":446},713,{"type":30,"tagName":44,"properties":448,"children":449,"position":457},{},[450],{"type":26,"value":451,"position":452},"strategy.positionSize()",{"start":453,"end":454},{"line":38,"column":325,"offset":446},{"line":38,"column":455,"offset":456},581,738,{"start":458,"end":459},{"line":38,"column":325,"offset":446},{"line":38,"column":455,"offset":456},{"type":26,"value":158,"position":461},{"start":462,"end":463},{"line":38,"column":455,"offset":456},{"line":38,"column":464,"offset":465},583,740,{"type":30,"tagName":44,"properties":467,"children":468,"position":476},{},[469],{"type":26,"value":470,"position":471},"strategy.positionAvgPrice()",{"start":472,"end":473},{"line":38,"column":464,"offset":465},{"line":38,"column":474,"offset":475},612,769,{"start":477,"end":478},{"line":38,"column":464,"offset":465},{"line":38,"column":474,"offset":475},{"type":26,"value":158,"position":480},{"start":481,"end":482},{"line":38,"column":474,"offset":475},{"line":38,"column":483,"offset":484},614,771,{"type":30,"tagName":44,"properties":486,"children":487,"position":495},{},[488],{"type":26,"value":489,"position":490},"strategy.equity()",{"start":491,"end":492},{"line":38,"column":483,"offset":484},{"line":38,"column":493,"offset":494},633,790,{"start":496,"end":497},{"line":38,"column":483,"offset":484},{"line":38,"column":493,"offset":494},{"type":26,"value":158,"position":499},{"start":500,"end":501},{"line":38,"column":493,"offset":494},{"line":38,"column":502,"offset":503},635,792,{"type":30,"tagName":44,"properties":505,"children":506,"position":514},{},[507],{"type":26,"value":508,"position":509},"strategy.openProfit()",{"start":510,"end":511},{"line":38,"column":502,"offset":503},{"line":38,"column":512,"offset":513},658,815,{"start":515,"end":516},{"line":38,"column":502,"offset":503},{"line":38,"column":512,"offset":513},{"type":26,"value":158,"position":518},{"start":519,"end":520},{"line":38,"column":512,"offset":513},{"line":38,"column":521,"offset":522},660,817,{"type":30,"tagName":44,"properties":524,"children":525,"position":533},{},[526],{"type":26,"value":527,"position":528},"strategy.netProfit()",{"start":529,"end":530},{"line":38,"column":521,"offset":522},{"line":38,"column":531,"offset":532},682,839,{"start":534,"end":535},{"line":38,"column":521,"offset":522},{"line":38,"column":531,"offset":532},{"type":26,"value":537,"position":538},", the trade counts, ",{"start":539,"end":540},{"line":38,"column":531,"offset":532},{"line":38,"column":541,"offset":542},702,859,{"type":30,"tagName":44,"properties":544,"children":545,"position":553},{},[546],{"type":26,"value":547,"position":548},"strategy.maxDrawdown()",{"start":549,"end":550},{"line":38,"column":541,"offset":542},{"line":38,"column":551,"offset":552},726,883,{"start":554,"end":555},{"line":38,"column":541,"offset":542},{"line":38,"column":551,"offset":552},{"type":26,"value":557,"position":558},"): the same broker the kScript (legacy) engine runs, driven by the host, with ",{"start":559,"end":560},{"line":38,"column":551,"offset":552},{"line":38,"column":561,"offset":562},804,961,{"type":30,"tagName":44,"properties":564,"children":565,"position":573},{},[566],{"type":26,"value":567,"position":568},"om backtest run \u003Cpackage>",{"start":569,"end":570},{"line":38,"column":561,"offset":562},{"line":38,"column":571,"offset":572},831,988,{"start":574,"end":575},{"line":38,"column":561,"offset":562},{"line":38,"column":571,"offset":572},{"type":26,"value":577,"position":578}," and the Strategy Tester replaying the trade list from the same bars, params and sheet.",{"start":579,"end":580},{"line":38,"column":571,"offset":572},{"line":38,"column":581,"offset":582},918,1075,{"start":584,"end":585},{"line":38,"column":20,"offset":39},{"line":38,"column":581,"offset":582},{"type":26,"value":27},{"type":30,"tagName":31,"properties":588,"children":589,"position":673},{},[590,599,618,625,642,649,667],{"type":26,"value":591,"position":592},"Nearest form: ",{"start":593,"end":596},{"line":594,"column":20,"offset":595},7,1077,{"line":594,"column":597,"offset":598},15,1091,{"type":30,"tagName":600,"properties":601,"children":603,"position":613},"a",{"href":602},"../strategies/overview.md",[604],{"type":26,"value":605,"position":606},"Strategies overview",{"start":607,"end":610},{"line":594,"column":608,"offset":609},16,1092,{"line":594,"column":611,"offset":612},35,1111,{"start":614,"end":615},{"line":594,"column":597,"offset":598},{"line":594,"column":616,"offset":617},63,1139,{"type":26,"value":619,"position":620}," is the model, ",{"start":621,"end":622},{"line":594,"column":616,"offset":617},{"line":594,"column":623,"offset":624},78,1154,{"type":30,"tagName":600,"properties":626,"children":628,"position":638},{"href":627},"../strategies/writing-strategies.md",[629],{"type":26,"value":630,"position":631},"Writing strategies",{"start":632,"end":635},{"line":594,"column":633,"offset":634},79,1155,{"line":594,"column":636,"offset":637},97,1173,{"start":639,"end":640},{"line":594,"column":623,"offset":624},{"line":594,"column":23,"offset":641},1211,{"type":26,"value":643,"position":644}," the API page, ",{"start":645,"end":646},{"line":594,"column":23,"offset":641},{"line":594,"column":647,"offset":648},150,1226,{"type":30,"tagName":600,"properties":650,"children":652,"position":662},{"href":651},"../strategies/first-strategy.md",[653],{"type":26,"value":654,"position":655},"Your first strategy",{"start":656,"end":659},{"line":594,"column":657,"offset":658},151,1227,{"line":594,"column":660,"offset":661},170,1246,{"start":663,"end":664},{"line":594,"column":647,"offset":648},{"line":594,"column":665,"offset":666},204,1280,{"type":26,"value":668,"position":669}," the worked port.",{"start":670,"end":671},{"line":594,"column":665,"offset":666},{"line":594,"column":63,"offset":672},1297,{"start":674,"end":675},{"line":594,"column":20,"offset":595},{"line":594,"column":63,"offset":672},{"type":26,"value":27},{"type":30,"tagName":31,"properties":678,"children":679,"position":708},{},[680,689,701],{"type":26,"value":681,"position":682},"One rule differs from kScript: orders are placed in ",{"start":683,"end":686},{"line":684,"column":20,"offset":685},9,1299,{"line":684,"column":687,"offset":688},53,1351,{"type":30,"tagName":44,"properties":690,"children":691,"position":698},{},[692],{"type":26,"value":88,"position":693},{"start":694,"end":695},{"line":684,"column":687,"offset":688},{"line":684,"column":696,"offset":697},65,1363,{"start":699,"end":700},{"line":684,"column":687,"offset":688},{"line":684,"column":696,"offset":697},{"type":26,"value":702,"position":703}," only, and the getters read the position after the bar's fills. A watch's money step is the other lane, for a rule over a published output rather than a strategy in the file.",{"start":704,"end":705},{"line":684,"column":696,"offset":697},{"line":684,"column":706,"offset":707},239,1537,{"start":709,"end":710},{"line":684,"column":20,"offset":685},{"line":684,"column":706,"offset":707},{"quirksMode":712},false,{"start":714,"end":715},{"line":20,"column":20,"offset":21},{"line":716,"column":20,"offset":717},10,1538,1790157148046]