【推荐】使用Python获取股票历史数据,助力量化分析与策略回测-python所有股票新闻资讯
使用 Python 获取股票历史技术数据
本文介绍如何使用 Python 获取股票历史技术数据,以便进行量化分析或策略回测。
我们使用麦蕊数据提供的数据,其中包括技术指标。以下是两个自定义函数,一个用于将 JSON 转换为 DataFrame 格式,另一个用于获取数据。
第一个自定义函数是处理 JSON 的函数,它将 JSON 转换为 DataFrame 格式,以便更好地进行数据处理和分析。
第二个自定义函数是获取数据的函数,它可以根据输入的股票代码获取相应的历史技术数据。该函数可以根据需要进行修改,以满足不同的数据获取需求。
通过使用这两个自定义函数,我们可以轻松地获取历史技术数据,并进行量化分析或策略回测。这将有助于我们更好地理解市场趋势,制定更有效的投资策略。
需要修改的地方有两个,一个是填写自己的许可证,另一个是在调用自定义函数时,输入要获取股票的代码。这些修改将使代码能够适应不同的情况和需求。
代码
import requests
import pandas as pd
licence = '替换成你的licence'
def json_to_df(url):
"""
将json格式转换为DataFrame格式
"""
response = requests.get(url)
data = response.json()
df = pd.DataFrame(data)
return df
def get_stock_data(code):
"""
通过股票代码获取历史数据,包括分时交易、kdj、macd、ma和boll
"""
url_fs = f'http://api.mairui.club/hszbl/fsjy/{code}/dq/{licence}'
url_kdj = f'http://api.mairui.club/hszbl/kdj/{code}/dq/{licence}'
url_macd = f'http://api.mairui.club/hszbl/macd/{code}/dq/{licence}'
url_ma = f'http://api.mairui.club/hszbl/ma/{code}/dq/{licence}'
url_boll = f'http://api.mairui.club/hszbl/boll/{code}/dq/{licence}'
# 获取数据并转换为DataFrame格式
df_fs = json_to_df(url_fs)
df_kdj = json_to_df(url_kdj)
df_macd = json_to_df(url_macd)
df_ma = json_to_df(url_ma)
df_boll = json_to_df(url_boll)
"""
倒序,即当前日期放在前面
df_fs = json_to_df(url_fs).iloc[::-1].reset_index(drop=True)
df_kdj = json_to_df(url_kdj).iloc[::-1].reset_index(drop=True)
df_macd = json_to_df(url_macd).iloc[::-1].reset_index(drop=True)
df_ma = json_to_df(url_ma).iloc[::-1].reset_index(drop=True)
df_boll = json_to_df(url_boll).iloc[::-1].reset_index(drop=True)
"""
# 将数据合并到一个数据框中
df = pd.concat([df_fs, df_kdj, df_macd, df_ma, df_boll], axis=1)
# 返回df
return df
# 填入代码和将数据保存的名称,将数据保存为csv文件
get_stock_data('000001').to_csv('数据.csv', index=False, encoding='utf-8-sig')
代码解释说明
该代码主要是从指定的 API 获取股票数据,然后将分时交易、KDJ、MACD、MA 和 BOLL 的数据合并到一个 DataFrame 中,并将结果保存为 CSV 文件。
首先,定义了一个 json_to_df 函数,用于将 API 返回的 JSON 格式数据转换为 DataFrame 格式。然后,定义了一个 get_stock_data 函数,该函数通过股票代码获取历史数据。在该函数中,使用了 json_to_df 函数获取分时交易、KDJ、MACD、MA 和 BOLL 的数据,并使用 pd.concat 将它们合并到一个 DataFrame 中。最后,使用 to_csv 将结果保存为 CSV 文件。
值得注意的是,该代码中的 licence 变量是用于访问 API 的许可证号,需要替换为有效的许可证号才能正常运行。