我们首先需要获取股票数据。
代码IDE选择:PyCharm
计算机环境:MacOS
一、获取股票数据的三种方式
二、获取股票数据
这里选定的是使用JoinQuant平台提供的免费接口(有时间范围限制),简单整理如下。
使用前需要先申请权限并初始化授权:
from jqdatasdk import * auth('', '') # 账号是申请时所填写的手机号
获取所有A股股票列表
def get_stock_list(): """ 获取所有A股股票列表 上海证券交易所.XSHG 深圳证券交易所.XSHE :return: stock_list """ stock_list = list(get_all_securities(['stock']).index) return stock_list
获取单个股票行情数据
def get_single_price(code, time_freq, start_date=None, end_date=None): """ 获取单个股票行情数据 :param code: :param time_freq: :param start_date: :param end_date: :return: """ # 如果start_date=None,默认为从上市日期开始 if start_date is None: start_date = get_security_info(code).start_date if end_date is None: end_date = datetime.datetime.today() # 获取行情数据 data = get_price(code, start_date=start_date, end_date=end_date, frequency=time_freq, panel=False) return data
将数据转换为指定周期:通过resample函数
def transfer_price_freq(data, time_freq): """ 将数据转换为指定周期:开盘价(周期第1天)、收盘价(周期最后1天)、最高价(周期内)、最低价(周期内) :param data: :param time_freq: :return: """ df_trans = pd.DataFrame() df_trans['open'] = data['open'].resample(time_freq).first() df_trans['close'] = data['close'].resample(time_freq).last() df_trans['high'] = data['high'].resample(time_freq).max() df_trans['low'] = data['low'].resample(time_freq).min() return df_trans
获取单个股票财务指标
def get_single_finance(code, date, statDate): """ 获取单个股票财务指标 :param code: :param date: :param statDate: :return: """ data = get_fundamentals(query(indicator).filter(indicator.code == code), date=date, statDate=statDate) # 获取财务指标数据 return data
获取单个股票估值指标
def get_single_valuation(code, date, statDate): """ 获取单个股票估值指标 :param code: :param date: :param statDate: :return: """ data = get_fundamentals(query(valuation).filter(valuation.code == code), date=date, statDate=statDate) # 获取财务指标数据 return data
标签:实战,code,return,Python,param,--,date,freq,data From: https://www.cnblogs.com/mazhiyong/p/18118814