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

如何为Pine Script的f_crossed_under函数添加时间框架功能

在Pine Script中为支撑位突破函数添加时间框架功能

要给你的f_crossed_under()函数添加时间框架功能,核心是用Pine Script的request.security()函数获取指定时间框架下的收盘价数据,而非直接使用当前图表时间框架的数据。以下是修改后的完整实现:

f_crossed_under(string tf) =>
    ret = false
    // 获取指定时间框架的收盘价(当前及前一根K线)
    tf_close = request.security(syminfo.tickerid, tf, close)
    tf_close_prev = request.security(syminfo.tickerid, tf, close[1])
    
    // 仅当支撑位数组不为空时执行判断
    array_size = array.size(sr_up_level)
    if array_size > 0
        for x = 0 to array_size - 1
            float mid = math.round_to_mintick((array.get(sr_up_level, x) + array.get(sr_dn_level, x)) / 2)
            // 使用指定时间框架的收盘价判断下穿条件
            if tf_close_prev >= mid and tf_close < mid
                ret := true
                break // 找到匹配项后提前退出循环优化性能
    ret

关键修改说明:

  • 新增时间框架参数:函数定义加入string tf参数,调用时可传入如"D"(日线)、"4H"(4小时)等Pine Script支持的时间框架字符串。
  • 获取跨时间框架数据:通过request.security()获取目标时间框架的当前收盘价tf_close和前一根K线收盘价tf_close_prev,确保判断逻辑基于指定时间框架的行情。
  • 优化循环逻辑:先判断数组长度再执行循环,避免不必要的计算;找到匹配条件后用break退出循环提升效率。
  • 修复原函数逻辑问题:原函数中ret在循环内赋值后直接返回,会导致仅检查第一个支撑位就终止,修改为找到匹配项后标记ret为true并提前退出,确保遍历所有支撑位的逻辑正确。

使用示例:

调用函数时传入目标时间框架即可,比如判断日线级别支撑位下穿:

alertcondition(f_crossed_under("D"), title="日线支撑位下穿", message="价格已下穿日线级别支撑位")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 10:05:23