代码拉取完成,页面将自动刷新
同步操作将从 Dylan Yang/股票量化回测系统 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
from fileRW import ReadFile
import pandas as pd
class StockInfo:
stock_ID = ''
all_data = dict()
def __init__(self, stock_id):
'''
给定股票代码,构造该股票的实例,可获取股票的各项因子数据。
:param stock_id: 股票代码
'''
self.stock_ID = stock_id
rf = ReadFile()
self.all_data = rf.read_pickle()
def get_all_info_of_one_stack(self, start_date='2010-01-04', end_date='2019-12-31'):
'''
获取单个股票在给定时间段内的全部信息
:param start_date: 开始日期
:param end_date: 结束日期
:return: DataFrame 一行是一天,一列是一个因子。
'''
days = list(self.all_data.keys())
start_index = 0
end_index = len(days) - 1
# 考虑start_date和end_date不是交易日的情况
for i in range(len(days)):
if days[i] >= start_date:
start_index = i
break
for i in range(len(days)):
if days[i] <= end_date:
end_index = i
days = days[start_index: end_index + 1]
data = pd.DataFrame(columns=list(self.all_data["2010-01-04"].columns),
index=days)
for i in list(days):
# print(self.all_data[i].loc[self.stock_ID])
data.loc[i] = self.all_data[i].loc[self.stock_ID]
# print(data.head())
return data
def get_close_price(self, start_date='2010-01-04', end_date='2019-12-31'):
'''
获取单个股票在给定时间段内的每日收盘价,类似的也可以仿照得到其他信息。
:param start_date: 开始时间
:param end_date: 结束时间
:return: 每日收盘价的Series
'''
data = self.get_all_info_of_one_stack(start_date, end_date)
close_prices = data.loc[:, 'close']
return close_prices
def get_open_price(self):
'''
如果需要用到该函数,直接仿照 get_close_price() 来写即可。
:return:
'''
pass
# 调用举例
if __name__ == '__main__':
si = StockInfo('600150.XSHG')
data = si.get_all_info_of_one_stack(start_date='2010-01-17', end_date='2011-06-12')
# data就是一个指定股票的DataFrame,一行是一天,一列是一个因子。
close_prices = si.get_close_price()
# close_prices 是一个Series,为日期到收盘价的映射
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。