在上一篇文章中,我们已经学会了如何获取单只股票的日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落地辅助策略代写服务
需要的朋友欢迎联系 ~~~
著作权归文章作者所有。