You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 16:00:28