QMT中的股票筛选器:实时扫描全市场满足条件的股票
发布时间:12小时前阅读:9

对于需要从全市场快速筛选股票的量化策略,QMT提供了高效的扫描机制。本文介绍如何在QMT中实现实时股票筛选,并触发交易。
方法一:使用get_stock_list_in_sector获取全市场股票列表,然后在handle_bar中循环计算指标。但全市场4000多只股票,循环计算会非常慢,不适用于分钟级策略。适合日线级别,每日盘后筛选,次日开盘交易。
示例:每日盘后筛选MACD金叉的股票。
`python
def after_trading(context):
stocks = get_stock_list_in_sector('沪深A股')
signal_stocks = []
for stock in stocks:
prices = history_bars(stock, 30, '1d', 'close')
if len(prices) < 26:
continue
dif, dea, bar = talib.MACD(prices)
if dif[-1] > dea[-1] and dif[-2] <= dea[-2]:
signal_stocks.append(stock)
context.buy_list = signal_stocks
`
然后次日开盘买入context.buy_list中的股票。
方法二:使用QMT的条件选股功能。QMT内置了选股引擎,可以在交易时间内实时扫描满足条件的股票,并自动下单。但需要编写选股公式,相对复杂。推荐使用get_indicator函数获取实时指标。
方法三:利用subscribe_quote订阅所有股票?不可行,带宽和性能不允许。更好的方式是先通过盘后筛选缩小候选池(如100只),然后在盘中只监控这些候选池。
对于高频选股,可以使用QMT的run_time函数设置定时任务,例如每5分钟扫描一次。但扫描范围依然要有限。
性能优化技巧:
- 使用pandas向量化计算代替循环。
- 将计算量大的指标预计算后存储,盘中直接读取。
- 使用多进程(QMT环境可能限制)。
实时选股策略示例:当某只股票涨幅超过5%且成交量放大时,追涨买入。这需要在盘中实时监控全市场,对性能要求高。建议缩小范围至活跃股票池(如成交额前500)。
国金证券的QMT提供高效的选股接口,10万资金即可开通。量化社群中有高性能选股框架,利用C扩展加速。同时,两融全线上办理,选股策略可以结合融资。实时选股是量化交易的高级应用,需要平衡精度和速度。
温馨提示:投资有风险,选择需谨慎。


问一问

+微信
分享该文章
