带你详细了解miniQMT的xtdata模块 (第五篇) 如何同时获取多只股票和分钟线数据?

QUANT 2025-12-17 14:03:48 29 举报

在上一篇文章中,我们已经学会了如何获取单只股票的日K线数据,但真正的量化分析

往往需要同时观察多只股票,或者研究比“天”更短时间内的价格波动。今天,我们就来学习两个进阶技巧:
如何一次性获取多只股票的数据,以及如何获取分钟级别的K线数据。

一招通吃:同时获取多只股票数据

每次只能获取一只股票的数据,效率太低了

好在 get_market_data 指令早就为我们考虑到了这一点!我们只需要在 stock_list 参数里,多放几只股票的代码

简单来说,就是把一只股票变成一个股票列表!

实战演练:同时获取“平安银行”和“贵州茅台”
让我们看看如何同时获取“平安银行” (000001.SZ) 和“贵州茅台” (600519.SH) 在2024年第一个交易日的日K线数据。

代码如下:

from xtquant import xtdata
import pandas as pd
 
client = xtdata.get_client()
 
# 这次我们在stock_list里放入两只股票的代码
stock_list = ["000001.SZ", "600519.SH"]
start_time = "20240102"
end_time = "20240102"
 
# 指令还是一样的指令,只是参数变了
data = xtdata.get_market_data(stock_list=stock_list, 
                                period="1d", 
                                start_time=start_time, 
                                end_time=end_time)
 
# 因为返回的是一个字典,我们可以用循环来分别查看每只股票的数据
for stock_code in stock_list:
    if stock_code in data:
        stock_data = pd.DataFrame(data[stock_code])
        print(f"\n--- 成功获取 {stock_code} 的数据 ---")
        print(stock_data)
    else:
        print(f"未能获取到 {stock_code} 的数据。")

运行代码后,你会看到程序分别打印出了两只股票的数据表格。xtdata返回的数据是一个字典

深入微观:获取分钟线数据
日K线反映了一天内的价格博弈,但对于短线交易或者日内策略来说,

我们需要更微观的数据。xtdata同样可以满足这个需求,我们只需要改变 period 参数即可

• '1d' 代表 日K线
• '1m' 代表 1分钟K线
• '5m' 代表 5分钟K线

实战演练:获取“平安银行”的1分钟K线
让我们来获取“平安银行”在2025年12月15日至12月12日的1分钟K线数据。

代码如下:

from xtquant import xtdata
import pandas as pd

# 首先需要下载1分钟数据
xtdata.download_history_data("000001.SZ", period="1m", start_time="20251215", end_time="20251216")

# 然后获取数据
data = xtdata.get_market_data_ex([], ["000001.SZ"], period="1m",
                                start_time="20251215", end_time="20251216")

# 获取指定股票的数据
if "000001.SZ" in data:
    stock_data = data["000001.SZ"]
    print("成功获取 000001.SZ 的1分钟K线数据:")
    print(stock_data.head())  # 打印前5条数据看看
else:
    print("未能获取到 000001.SZ 的数据")


这个代码我们会看到 time 字段变得非常密集,每一条数据都代表一分钟内的价格变化。这为我们进行更精细的策略研究提供参考~


QMT/miniQMT免费申请

QMT免费领取学习案例

QMT落地辅助策略代写服务

需要的朋友欢迎联系 ~~~



尊重知识,尊重市场 1

著作权归文章作者所有。

最新回复 ( 0 )
发新帖
0
DEPRECATED: addslashes(): Passing null to parameter #1 ($string) of type string is deprecated (/data/user/htdocs/xiunophp/xiunophp.min.php:48)