如何优化获取每日首根5分钟K线OHLC的代码以减少security函数调用
你当前的实现累计调用了5次security函数(外层1次+自定义函数内4次),存在大量冗余调用,完全可以压缩到仅1次调用即可实现相同效果,优化方案如下:
优化后代码
is_newbar(res) => change(time(res)) != 0 // 仅调用1次security即可获取每日首根5分钟K线的OHLC数据 // Pine Script v5版本建议使用request.security替代security [fopen_1, fhigh_1, flow_1, fclose_1] = security(syminfo.tickerid, "5", [ valuewhen(is_newbar("D"), open, 0), valuewhen(is_newbar("D"), high, 0), valuewhen(is_newbar("D"), low, 0), valuewhen(is_newbar("D"), close, 0) ] )
优化说明
- 去掉了嵌套的冗余
security调用,所有5分钟周期的计算逻辑都放在单次security的上下文内完成 - 利用
security支持多返回值的特性,将4个价格的计算结果放在数组中一次性返回,无需为每个价格单独请求周期数据 - 逻辑与原实现完全一致,返回结果无差异,同时大幅降低了算力消耗,避免了多次跨周期调用可能出现的同步偏差问题
内容的提问来源于stack exchange,提问作者CVR
相关产品推荐
相关产品推荐

