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

Pine Script开发TradingView多周期K线形态扫描器技术咨询

TradingView多周期K线形态扫描表格能力说明

TradingView原生支持你需要的、以指定时间周期为列的形态识别结果展示,通过Pine Script内置的多周期数据接口和表格组件即可实现,不需要第三方工具。

核心能力对应说明

  • 多周期数据拉取:使用内置request.security()函数,可以同时获取周线、日线、小时线、分钟线等任意指定周期的K线开、高、低、收数据,所有计算可以在当前图表窗口完成,不需要手动切换周期。
  • 自定义表格渲染:使用table.new()、table.cell()系列函数可以自由定制表格结构,你可以把需要扫描的各个时间周期设为独立列,每列对应展示该周期下是否命中目标形态、形态类型等信息,表格支持固定在图表任意位置,随行情实时更新。
  • 全市场扫描支持:如果需要扫描全市场标的而不仅是当前图表品种,可以把脚本部署到TradingView的选股器(Screener)模块运行,直接批量筛选所有符合形态条件的标的。

规则实现注意事项

你给出的规则里有两处表述偏差,实现时需要注意:

  • Rally candle定义:你列的两条规则实际是指有明确方向的趋势K线均为Rally candle,即收盘价高于开盘价的绿色上涨K、收盘价低于开盘价的红色下跌K都属于Rally candle范畴。
  • Doji candle定义:按Investopedia标准,Doji的核心特征是实体极短(开盘价与收盘价差值极小,通常实体长度占整根K线振幅的比例低于5%~10%),并非“带有明显实体”,判定时和K线涨跌颜色无关。

对应两类形态的判定逻辑可以按如下规则逐周期独立计算:

  1. 第一类形态
    • 看跌信号:前一根K线为绿色上涨Rally candle,当前K线符合Doji判定标准
    • 看涨信号:前一根K线为红色下跌Rally candle,当前K线符合Doji判定标准
  2. 第二类形态
    • 看跌信号:前一根K线为绿色上涨Rally candle,当前K线为红色下跌回调(pull back)candle,且当前K线开盘价未超过前一根绿色Rally candle的50%回撤位(即前一根Rally的开盘价+波幅*0.5位置)
    • 看涨信号:前一根K线为红色下跌Rally candle,当前K线为绿色上涨回调(pull back)candle,且当前K线收盘价未超过前一根红色Rally candle的50%回撤位(即前一根Rally的收盘价+波幅*0.5位置)

核心实现代码片段

// 定义需要扫描的目标周期,可自行增删
target_tfs = array.new_string("W", "D", "240", "60", "15", "5")
// 初始化结果表格:固定在右上角,列数=周期数+1列说明列,行数=表头+2类形态共3行
res_table = table.new(position.top_right, array.size(target_tfs)+1, 3, border_width=1, bg_color=color.new(color.gray, 90))

if barstate.islast
    // 填充首列表头
    table.cell(res_table, 0, 0, "周期", text_color=color.white)
    table.cell(res_table, 0, 1, "第一类形态", text_color=color.white)
    table.cell(res_table, 0, 2, "第二类形态", text_color=color.white)
    // 遍历每个周期计算形态结果并填充表格
    for i = 0 to array.size(target_tfs)-1
        tf = array.get(target_tfs, i)
        // 拉取对应周期的K线数据、形态判定布尔值
        [tf_o, tf_h, tf_l, tf_c, p1_hit, p2_hit] = request.security(syminfo.tickerid, tf, [open, high, low, close, pattern1_flag, pattern2_flag])
        // 填充周期表头
        table.cell(res_table, i+1, 0, tf, text_color=color.white)
        // 填充形态结果,命中标对应颜色,未命中标灰色
        table.cell(res_table, i+1, 1, p1_hit ? "命中" : "无", text_color = p1_hit ? color.yellow : color.gray)
        table.cell(res_table, i+1, 2, p2_hit ? "命中" : "无", text_color = p2_hit ? color.orange : color.gray)

使用限制说明

免费版TradingView对单脚本内request.security()的调用次数有上限,如果需要同时扫描的周期数量超过6个,建议升级到基础版及以上订阅,避免触发调用次数限制报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 06:42:18