如何在TakeProfit Indie的@sec_context中跨K线保留状态?
如何在TakeProfit Indie的@sec_context中跨K线保留状态?
我太懂你从Pine Script转TakeProfit Indie的纠结了——Pine里的var用得顺手得很,换到Indie里想在@sec_context里保住up1_htf、dn1_htf这类MutSeriesF值,确实得找对路子。
其实在Indie里,有个和Pine var几乎等效的方法,就是用persistent关键字声明变量,专门用来让值在整个指标运行周期里保持住,不会因为HTF K线切换或者脚本重新执行就被重置。
举个实际写法的例子:
// 先在@sec_context外面声明持久化的变量 persistent MutSeriesF up1_htf; persistent MutSeriesF dn1_htf; // 然后在高时间周期的上下文里处理数据 @sec_context("D") void handle_daily_data() { // 这里可以根据HTF的数据更新up1_htf和dn1_htf的值 // 比如计算趋势线、高低点之类的逻辑 up1_htf = ...; // 你的计算逻辑 dn1_htf = ...; // 你的计算逻辑 }
这样一来,每次@sec_context触发(也就是HTF K线更新时),up1_htf和dn1_htf都会保留上一次HTF bar计算后的数值,不会被重新初始化,完全符合你要的跨K线保留状态的需求。
另外补充个小细节:如果你是在@sec_context的回调函数内部声明persistent变量,记得要确保它的作用域能覆盖到你需要使用这些值的地方,不过一般放在上下文外面会更稳妥,方便其他地方也能访问到这些持久化的HTF数据。
备注:内容来源于stack exchange,提问作者neuepsae
相关产品推荐
相关产品推荐

