在量化交易领域,大部分文章聚焦于利用各种 Python 库获取股票数据以及交易策略的回测。然而,对于账户查询、订单提交与查询等实际操作环节却鲜有提及。实际上,部分券商已经支持股票的 API 交易接入,这为量化交易的落地实施提供了有力支持。本文将深入探讨如何通过券商 API 接口进行数据获取以及订单执行,引导大家开启量化交易的新篇章。
获取股票数据有多种方法,市面上也有许多免费且好用的第三方 Python 库。但从稳定性和准确性角度来看,券商官方的数据更具优势。这些第三方库虽然能满足大部分分析需求,但在关键的交易时刻,其数据的即时性和准确性可能不如券商官方。因此,本文主要介绍官方数据的获取方式。
云端接入
本地接入
我们可以使用 get_full_tick
函数来获取实时全量数据。例如:
def get_full_tick(stock_codes):
# 这里是与券商 API 接口交互的代码,具体实现因券商而异
pass
stock_list = ['000001.SZ', '600519.SH']
full_tick_data = get_full_tick(stock_list)
print(full_tick_data)
该函数的参数是股票代码的列表,一次查询的股票数量不宜过多。如果一次查询几千支股票,且网络带宽有限,可能需要 1 分钟以上才能获取到数据。返回的数据是 dict 格式,包含了每支股票的详细信息,如时间戳、最新价、开盘价、最高价、最低价、成交量等。
{
'600519.SH': {
'timetag': '20240830 11:29:58',
'lastPrice': 1437.96,
'open': 1413,
'high': 1444.66,
'low': 1405,
'lastClose': 1413.3,
'amount': 2609109400,
'volume': 18263,
'pvolume': 1826345,
'stockStatus': 0,
'openInt': 13,
'settlementPrice': 0,
'lastSettlementPrice': 0,
'askPrice': [1437.96, 1438, 1438.5, 0, 0],
'bidPrice': [1437.23, 1437.18, 1437.15, 0, 0],
'askVol': [10, 16, 5, 0, 0],
'bidVol': [1, 2, 1, 0, 0]
},
'000001.SZ': {
'timetag': '20240830 11:30:00',
'lastPrice': 10.25,
'open': 10.11,
'high': 10.26,
'low': 10.11,
'lastClose': 10.13,
'amount': 834121300,
'volume': 819209,
'pvolume': 81920851,
'stockStatus': 0,
'openInt': 14,
'settlementPrice': 0,
'lastSettlementPrice': 0,
'askPrice': [10.25, 10.26, 10.27, 0, 0],
'bidPrice': [10.24, 10.23, 10.22, 0, 0],
'askVol': [4193, 6667, 6274, 0, 0],
'bidVol': [1051, 2263, 2667, 0, 0]
}
}
对于历史数据的获取,可以使用 get_market_data
函数。例如:
def get_market_data(fields, stock_codes, frequency, start_date, end_date):
# 与券商 API 接口交互获取历史数据的代码
pass
fields = ['open', 'high', 'low', 'close']
stock_codes = ['000001.SZ', '600519.SH']
frequency = '1m'
start_date = '20240830'
end_date = '20240830'
historical_data = get_market_data(fields, stock_codes, frequency, start_date, end_date)
该函数的参数包括所需的数据字段(如开盘价、最高价、最低价、收盘价)、股票代码列表、数据频率(如 1 分钟)、起始日期和结束日期。返回的数据是字典格式,字典的键值是 Pandas 的 dataframe,方便后续进行数据分析和处理。
交易和查账的接口需要向特定券商申请。如今,个人账户的小散户也有机会低门槛接入,资金量在 10 万 8 万甚至 3 万 2 万就可以开通,但必须经过严格合规的报备流程。不同券商的接入方式有所差异,有的券商支持云端接入,有的则支持在本地 Python 环境中进行数据获取、查账和订单提交。
通过券商 API 接口进行量化交易,能够实现从数据获取到订单执行的全流程自动化。本文详细介绍了数据获取的方法,包括实时全量数据和历史数据的获取。在后续的文章中,将为大家演示如何提交订单到交易所,即报单操作。
如果你对股票量化程序化自动交易 API 接口感兴趣,欢迎开通券商接口量化权限,开启量化交易之旅。请查看:《程序化交易权限开通》,如有任何相关问题,欢迎留言讨论或私信交流。