关键性python数据包的安装
pip3 install tushare
import tushare as ts股票代码为code参数,start为收集该股票数据的开始日期df = ts.get_k_data(code=‘600519‘, start=‘2000-01-01‘)接下来的步骤由各人所需决定,详情可以看上一篇关于pandas中数据的操作。小案列如下:假如我从2010年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,我的收益如何?
import pandas as pd
from pandas import Series, DataFrame
import numpy as np
import tushare as ts
# 使用tushare包获取某股票的历史行情数据
df = ts.get_k_data(code=‘600519‘, start=‘2010-01-01‘)
df.to_csv(‘./600519.csv‘)
# 读取文件数据
data = pd.read_csv(‘./600519.csv‘, index_col=‘date‘, parse_dates=[‘date‘])
data.drop(labels=‘Unnamed: 0‘, axis=1, inplace=True)
price_last = data[‘open‘][-1] # 最后一天的开盘价格
df = data[‘2010‘:‘2019‘] # 剔除首尾无用的数据
# Pandas提供了resample函数用便捷的方式对时间序列进行重彩样,根据时间粒度的变大或者变小分为降采样和升采样
df_monthly = df.resample(‘M‘).first() # 获取每个月第一个交易日的开盘价格
df_yearly = df.resample(‘Y‘).last()[:-1] # 去除最后一年
cost_money = 0 # 初始资金
hold = 0 # 每年持有的股票
for year in range(2010, 2020):
cost_money -= df_monthly.loc[str(year)][‘open‘].sum() * 100
hold += len(df_monthly[str(year)]["open"]) * 100
if year != 2019:
cost_money += df_yearly.loc[str(year)]["close"][0] * hold
hold = 0 # 每年持有的股票
cost_money += hold * price_last
print(cost_money)
原文地址:https://www.cnblogs.com/caiwenjun/p/11779033.html