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

如何在request.security_lower_tf函数中使用strategy.opentrades获取开仓价

在request.security_lower_tf()中获取策略最近未平仓订单开仓价的解决方案

核心问题在于strategy.opentrades.entry_price()属于策略上下文专属函数,只能在当前策略运行的主时间周期中调用,无法直接在跨时间周期的request.security_lower_tf()请求内使用——跨周期请求的是独立的低周期数据环境,不共享主周期的策略持仓上下文。

解决思路是先在主周期中计算并持久化存储目标开仓价,再将该值传递到低周期请求中:

步骤1:主周期中存储最近开仓价

使用var关键字定义变量,确保值不会随K线周期重置:

// 主时间周期内持久化存储最近未平仓订单的开仓价
var float main_entry_price = na
// 仅当有未平仓订单时更新值
if strategy.opentrades > 0
    main_entry_price := strategy.opentrades.entry_price(strategy.opentrades - 1)

步骤2:跨低周期请求时传递该值

将主周期存储的开仓价与低周期数据一起请求:

// 请求15分钟低周期的收盘价,同时传入主周期的开仓价
lower_tf_result = request.security_lower_tf(syminfo.tickerid, "15", [close, main_entry_price])

// 解析返回结果
lower_tf_close = lower_tf_result[0]
lower_tf_available_entry_price = lower_tf_result[1]

关键注意事项

  • 必须用var声明存储开仓价的变量,否则每个主周期K线都会重置变量值,导致传递到低周期的数值异常。
  • 添加strategy.opentrades > 0的判断,避免在无持仓时赋值无效的na值。

内容的提问来源于stack exchange,提问作者Castle

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 13:42:37