如何获取并绘制100只及以上股票的RSI数据?突破request.security限制
获取100+股票RSI数据的Pine Script解决方案
问题背景
我创建了名为RSI Bitmap的指标,旨在为用户提供更直观的视角。目前使用request.security函数时,最多仅能获取40只股票的RSI数据。

如何突破限制获取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
相关产品推荐
相关产品推荐

