使用 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 的许可证号,需要替换为有效的许可证号才能正常运行。

猜你喜欢

转载自blog.csdn.net/Everly_/article/details/133138331