python基金定投策略

基金定投代码策略

import tushare as ts
import xlrd
import pandas as pd

import matplotlib.pyplot as plt
ts.set_token('***********************')
pro = ts.pro_api()
JJ=input('基金:')
df = pro.fund_nav(ts_code=JJ)

df.sort_values(by=['end_date'],inplace=True)#按时间排序从小到大
df = df.reset_index(drop=True)#index重新标记
df['交易时间'] = pd.to_datetime(df['end_date'],format='%Y-%m-%d')
df=df[['交易时间','unit_nav']]#只选日期,和净值
df=df[df['交易时间']>='2019-03-13']
df=df[df['交易时间']<='2020-03-13']
df["每次投入资金"]=30
df["累计投入资金"]=df["每次投入资金"].cumsum()
c_rate=0.002
df["每次数量"]=df["每次投入资金"]/df['unit_nav']*(1-c_rate)
df["累计数量"]=df["每次数量"].cumsum()
df["盈亏"]=df["累计数量"]*df['unit_nav']-df["累计投入资金"]
df["30天移动平均值"]=(df['unit_nav'].rolling(30).mean())
#"累计投入资金","平均持有成本"

df=df[['交易时间','unit_nav',"累计投入资金","盈亏","30天移动平均值"]]
print(df.iloc[-1])
#print(df.tail())
exit()
dfplot=df.copy()
dfplot.index=dfplot["交易时间"]

#path = "C://Users//fuxingyu//Desktop//%s.xlsx" % ('007491')
#df.to_excel(path)

dfplot[['unit_nav',"30天移动平均值"]].plot(title=JJ)
dfplot[["盈亏"]].plot(title=JJ)
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
plt.show()

你可能感兴趣的:(python)