用AkShare获取沪深京A股分钟级K线数据

前面已经讲解了如何通过AkShare获取实时K线数据和沪深京A股历史数据。但是在现实做策略回测的过程,经常会用到分钟级数据计算买卖点。下面我们讲讲如何用AkShare获取沪深京A股分钟级K线数据。
一、用东财接口获取实时行情数据
描述:东方财富网-沪深京 A 股-实时行情数据;
接口:stock_zh_a_spot_em;
目标地址:
行情中心:国内快捷全面的股票、基金、期货、美股、港股、外汇、黄金、债券行情系统_东方财富网
限量:单次返回所有沪深京 A 股上市公司的实时行情数据;
输出参数:
用AkShare获取沪深京A股分钟级K线数据
文章图片

二、通过新浪财经接口获取分时数据
描述:新浪财经-沪深京 A 股股票或者指数的分时数据,目前可以获取 1, 5, 15, 30, 60 分钟的数据频率, 可以指定是否复权。
目标地址:
贵州茅台(600519)股票股价,行情,新闻,财报数据_新浪财经_新浪网
接口:stock_zh_a_minute
限量:单次返回指定股票或指数的指定频率的最近交易日的历史分时行情数据,单次最多可返回20000条数据。
输入参数:

名称
类型
描述
symbol
str
symbol='sh000300'; 同日频率数据接口
period
str
period='1'; 获取 1, 5, 15, 30, 60 分钟的数据频率
adjust
str
adjust=""; 默认为空: 返回不复权的数据; qfq: 返回前复权后的数据; hfq: 返回后复权后的数据;
输出参数:
用AkShare获取沪深京A股分钟级K线数据
文章图片

三、获取沪深京A股分钟级历史股票数据
1)代码示例
import os
import time
import pandas as pd
import akshare as ak
import warnings
from datetime import timedelta, datetime
warnings.filterwarnings("ignore")
pd.set_option('max_rows', None)
pd.set_option('max_columns', None)
pd.set_option('expand_frame_repr', False)
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
# 输入参数
adj="hfq" # 复权类型:None未复权 qfq前复权 hfq后复权
period = "1" # 周期可选:1, 5, 15, 30, 60 分钟的数据频率。
# 利用东财实时行情数据接口获取所有股票代码接口
df=ak.stock_zh_a_spot_em()
code_list=df[['序号','代码','名称']].values
# 创建文件存储路径
def create_path():
global path
path = os.path.join(".","all_stock_candle","stock")
# 保存数据
if not os.path.exists(path) :
# os.mkdir(path)# 可以建一级文件夹
os.makedirs(path)# 可以建多级文件夹
file_name = ak_code + ".csv"
return os.path.join(path,file_name)
# 获取近5天股票的1分钟数据
for i, ak_code,ak_name in code_list:
if ak_code.startswith('6') == True:
ak_code = 'sh'+ak_code
elif ak_code.startswith('8') == True:
ak_code = 'bj'+ak_code
else:
ak_code = 'sz'+ak_code
print(i, ak_code, ak_name)
try:
# 利用新浪财经接口获取20000条分钟级股票数据
df= ak.stock_zh_a_minute(symbol=ak_code, period=period, adjust=adj)
except Exception as e:
print(e)
continue
df['股票代码'] = ak_code
df['股票名称'] = ak_name
df.rename(columns={'day': '交易日期','open': '开盘价', 'high': '最高价',
'low': '最低价', 'close': '收盘价','volume':'成交量'}, inplace=True)
df = df[['交易日期', '股票代码', '股票名称', '开盘价', '最高价', '最低价', '收盘价', '成交量']]
df.sort_values(by=['交易日期'],ascending=True,inplace=True)
df.reset_index(drop=True, inplace=True)
path=create_path()
df.to_csv(path, index=False, mode='w',encoding='gbk')
time.sleep(2)
2)输出示例
用AkShare获取沪深京A股分钟级K线数据
文章图片

3)文件存储示例:
用AkShare获取沪深京A股分钟级K线数据
文章图片

4)文档示例
用AkShare获取沪深京A股分钟级K线数据
文章图片




【用AkShare获取沪深京A股分钟级K线数据】

    推荐阅读