Python 调用 TradingView-Screener 实现多维度选股策略
在量化投资中,如何从海量市场数据里快速筛出符合策略的标的?TradingView-Screener 通过程序化方式连接其强大的筛选引擎,提供了毫秒级响应与灵活的条件组合能力。它支持 50+ 技术指标、250+ 数据列和 67 个全球市场的筛选,无论是量化策略开发还是实时市场监控,都能通过直观的 API 接口高效获取与分析。
盘前涨幅监控
早盘往往需要快速捕捉机会,手动检查多个数据源效率太低。使用这个工具可以实现自动化监控,直接基于 Query API 自定义筛选条件。
首先引入核心类库,主要涉及查询对象和列定义:
from tradingview_screener import Query, Column
接着构建盘前涨幅筛选器,设定涨幅、成交量及市值范围:
pre_market_query = (
Query()
.select('name', 'close', 'change', 'volume', 'market_cap_basic')
.where(
Column('change') > 3, # 涨幅超过 3%
Column('volume') > 500000, # 成交量大于 50 万
Column('market_cap_basic').between(1000000000, 10000000000) # 市值 10 亿 -100 亿
)
.order_by('change', ascending=False)
.limit(20)
)
执行查询并打印结果:
total_count, results = pre_market_query.get_scanner_data()
print(f"发现{total_count}个符合条件的标的")
print(results[['ticker', 'name', 'change']])
这套逻辑适用于日内交易前的热点捕捉,不过要注意盘前流动性可能不足,建议结合开盘后的实际成交情况做二次确认。
技术指标多因子筛选
构建基于多技术指标的策略时,传统方式需手动计算各指标值,本工具可直接调用 TradingView 的内置结果。这里演示如何组合 RSI 超卖、MACD 金叉及成交量放大条件。
technical_query = (
Query()
.select('name', 'close', , , , )
.where(
Column() < ,
Column().crosses_above(Column()),
Column() > Column() *
)
.set_markets(, )
.limit()
)

