news 2026/8/6 0:21:25

TradingView-Screener全流程指南:用Python构建专业股票筛选系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TradingView-Screener全流程指南:用Python构建专业股票筛选系统

TradingView-Screener全流程指南:用Python构建专业股票筛选系统

【免费下载链接】TradingView-ScreenerA package that lets you create TradingView screeners in Python项目地址: https://gitcode.com/gh_mirrors/tr/TradingView-Screener

在量化投资领域,快速精准地筛选股票数据是制定有效策略的核心前提。TradingView-Screener作为一款专注于股票数据筛选的Python工具,通过程序化接口让开发者能够轻松访问全球金融市场数据,实现从基础条件筛选到复杂策略构建的全流程量化分析。本文将带你从零开始掌握这款工具的使用方法,解锁高效股票数据筛选的实战技能。

零基础入门:环境搭建与核心概念

5分钟环境部署指南

TradingView-Screener支持两种主流安装方式,满足不同开发场景需求:

# 使用pip快速安装 pip install tradingview-screener # 或通过源码安装 git clone https://gitcode.com/gh_mirrors/tr/TradingView-Screener cd TradingView-Screener poetry install

安装完成后,通过简单导入即可开始使用:

from tradingview_screener import Query # 创建基础查询对象 query = Query() # 获取市场数据 total_count, data = query.get_scanner_data() print(f"获取到 {total_count} 条市场数据")

核心模块快速认知

该工具的核心功能分布在四个关键模块中:

  • 查询构建引擎src/tradingview_screener/query.py:提供查询创建、条件组合和数据获取的核心功能
  • 筛选条件定义src/tradingview_screener/column.py:定义股票数据列和比较运算逻辑
  • 数据模型管理src/tradingview_screener/models.py:规范数据结构和交互格式
  • 辅助功能集src/tradingview_screener/util.py:提供数据格式化等实用工具函数

核心功能解析:从基础筛选到高级查询

快速筛选:3行代码实现股票初筛 🔍

使用TradingView-Screener进行基础筛选只需简单三步:创建查询对象、设置筛选条件、获取结果数据:

from tradingview_screener import Query from tradingview_screener.column import Column as col # 创建筛选条件:价格>50,成交量>100万 query = Query().select('name', 'close', 'volume').where( col('close') > 50, col('volume') > 1_000_000 ) # 获取并查看结果 _, df = query.get_scanner_data() print(df.head())

多条件逻辑组合:构建复杂筛选策略 📊

通过And()Or()函数可以构建任意复杂度的逻辑条件,实现精准股票筛选:

from tradingview_screener.query import And, Or # 创建多条件组合查询 query = Query().select('name', 'close', 'EMA5', 'EMA20').where2( And( Or( col('type') == 'stock', col('type') == 'fund' ), col('close') > col('EMA20') # 收盘价高于20日均线 ) )

市场定位:聚焦目标投资区域

工具支持全球67个国家和地区的市场数据筛选,通过set_markets()方法轻松切换目标市场:

# 筛选亚洲市场科技股 query = ( Query() .select('name', 'close', 'market', 'sector') .set_markets('asia') .where(col('sector') == 'Technology') )

实战案例:构建实用量化筛选工具

指数成分股筛选器

创建一个纳斯达克100指数成分股筛选工具,按市值排序并导出结果:

# 筛选纳斯达克100成分股并按市值排序 nasdaq_query = ( Query() .select('name', 'close', 'market_cap_basic', 'sector') .set_index('SYML:NASDAQ;NDX') # 纳斯达克100指数 .order_by('market_cap_basic', ascending=False) ) _, df = nasdaq_query.get_scanner_data() # 保存结果到CSV df.to_csv('nasdaq_100_components.csv', index=False)

均值回归策略信号生成

基于价格与均线的偏离度生成交易信号,辅助投资决策:

def generate_mean_reversion_signals(data): """生成均值回归策略信号""" data['MA20'] = data['close'].rolling(20).mean() data['deviation'] = (data['close'] - data['MA20']) / data['MA20'] * 100 # 低于均线2%买入,高于均线2%卖出 data['signal'] = 0 data.loc[data['deviation'] < -2, 'signal'] = 1 data.loc[data['deviation'] > 2, 'signal'] = -1 return data # 获取股票数据并生成信号 _, df = Query().select('close').set_tickers('NASDAQ:AAPL').get_scanner_data() signals = generate_mean_reversion_signals(df) print(signals[['close', 'MA20', 'signal']].tail(10))

效率提升技巧:高级应用与性能优化

分页查询:处理大规模数据集

当筛选结果较大时,使用分页查询可以显著提升性能并避免请求限制:

def fetch_all_data(query, page_size=100): """分页获取所有数据""" all_data = [] offset = 0 while True: _, df = query.offset(offset).limit(page_size).get_scanner_data() if len(df) == 0: break all_data.append(df) offset += page_size return pd.concat(all_data, ignore_index=True)

多线程并行查询:加速多市场数据获取

利用多线程并行获取不同市场数据,大幅减少总体等待时间:

import concurrent.futures def fetch_market(market): """获取单个市场数据""" return Query().select('name', 'close').set_markets(market).limit(50).get_scanner_data()[1] # 并行获取全球主要市场数据 markets = ['america', 'europe', 'asia', 'japan'] with concurrent.futures.ThreadPoolExecutor() as executor: results = list(executor.map(fetch_market, markets))

场景拓展:从数据筛选到策略实现

TradingView-Screener不仅是数据筛选工具,更是量化策略开发的基础平台。通过与其他量化工具集成,可以构建完整的投资决策系统:

  • 技术指标扩展:结合TA-Lib库计算更多专业技术指标
  • 机器学习集成:将筛选数据输入ML模型进行股价预测
  • 实时监控系统:定期执行筛选并发送异常信号通知
  • 回测框架构建:基于历史数据验证策略有效性

通过本文介绍的方法,你已经掌握了使用TradingView-Screener进行股票数据筛选的核心技能。无论是简单的条件筛选还是复杂的策略构建,这款工具都能为你提供高效可靠的数据支持,帮助你在量化投资的道路上稳步前行。

【免费下载链接】TradingView-ScreenerA package that lets you create TradingView screeners in Python项目地址: https://gitcode.com/gh_mirrors/tr/TradingView-Screener

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/21 6:31:25

IDM激活与试用重置完全指南:从原理到实践

IDM激活与试用重置完全指南&#xff1a;从原理到实践 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script 用户痛点与解决方案价值 Internet Download Manager&#…

作者头像 李华
网站建设 2026/7/21 8:41:47

3大核心优势掌握Balena Etcher:面向开发者的开源系统部署工具

3大核心优势掌握Balena Etcher&#xff1a;面向开发者的开源系统部署工具 【免费下载链接】etcher Flash OS images to SD cards & USB drives, safely and easily. 项目地址: https://gitcode.com/GitHub_Trending/et/etcher Balena Etcher是一款开源的跨平台镜像烧…

作者头像 李华
网站建设 2026/7/21 6:31:42

光影加载异常完全解决方案:PrismLauncher开源工具优化指南

光影加载异常完全解决方案&#xff1a;PrismLauncher开源工具优化指南 【免费下载链接】PrismLauncher A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once (Fork of MultiMC) 项目地址: https://gitcode.com/g…

作者头像 李华