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

如何获取并绘制100只及以上股票的RSI数据?突破request.security限制

获取100+股票RSI数据的Pine Script解决方案

问题背景

我创建了名为RSI Bitmap的指标,旨在为用户提供更直观的视角。目前使用request.security函数时,最多仅能获取40只股票的RSI数据。

RSI Bitmap指标

如何突破限制获取100只及以上股票的RSI数据?


可行方案

  • 分批请求+本地缓存
    Pine Script对单根K线内的request.security调用数量限制为40次,你可以将目标股票列表拆分为多组(如3组:40+40+20),通过不同的K线状态条件触发不同批次的请求,并用var类型数组缓存已获取的RSI数据,避免重复请求。示例代码片段:

    // 定义目标股票列表(需自行替换为你的股票代码)
    var string[] targetSyms = array.new_string(100, "NASDAQ:AAPL") // 示例填充
    var float[] rsiData = array.new_float(100)
    
    // 第一批次:前40只,偶数K线触发
    if barstate.islast and bar_index % 2 == 0
        for i = 0 to 39
            currentSym = array.get(targetSyms, i)
            rsiVal = request.security(currentSym, timeframe.period, ta.rsi(close, 14))
            array.set(rsiData, i, rsiVal)
    
    // 第二批次:中间40只,奇数K线触发
    if barstate.islast and bar_index % 2 == 1
        for i = 40 to 79
            currentSym = array.get(targetSyms, i)
            rsiVal = request.security(currentSym, timeframe.period, ta.rsi(close, 14))
            array.set(rsiData, i, rsiVal)
    
    // 第三批次:最后20只,每5根K线触发一次
    if barstate.islast and bar_index % 5 == 0
        for i = 80 to 99
            currentSym = array.get(targetSyms, i)
            rsiVal = request.security(currentSym, timeframe.period, ta.rsi(close, 14))
            array.set(rsiData, i, rsiVal)
    
  • 外部数据预计算导入
    如果实时分批请求的延迟无法接受,可以用Python、JavaScript等工具调用第三方行情API批量计算所有目标股票的RSI,将结果保存为CSV文件后,通过TradingView的「导入自定义数据」功能上传,再在指标中直接读取这些预计算好的数据。

  • 结合自选列表的批量遍历
    若你的股票来自TradingView自选列表,可通过syminfo.watchlist获取列表内容,但仍需搭配分批请求逻辑,严格控制单K线内的请求数量不超过40次。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 00:21:30