当前位置 博文首页 > LY的博客:joinquant场外基金每日定投收益计算
code='000311.OF'
s_date= '2017-01-01'
e_date='2021-02-26'
def get_return_aip_luyang(code, s_date, e_date):
#改写成每日定投
info = 'unit_net_value' # unit_net_value: 基金单位净值
df = get_extras(info, code, start_date=s_date, end_date=e_date) # 获取传入基金指定时间段内 单位净值列表
info = 'adj_net_value' # 场外基金的复权净值
df['adj'] = get_extras(info, code, start_date=s_date, end_date=e_date)
# 记录e_date的价格
e_date_price = df['adj'][-1]
list_dates = df.index.tolist()
df['wkday'] = [list_dates[x].isoweekday() for x in range(len(list_dates))]
df = df[df['wkday'] .isin([1,2,3,4,5])]
capital = 200 # 单次定投金额
open_commission=0.0015 # 手续费,取蚂蚁金服手续费率
df['capital'] = capital
df['quant_adj'] = round(df['capital']/(1+open_commission)/df['adj'], 3) # 按“复权净值”计算的份额
df['total_qnt_adj'] = df.quant_adj.cumsum() # 按“复权净值”计算的份额
#坏在这里了
#df['sum_qnt_3weeks'] = df['quant_adj'].rolling(10).sum() # 计算10天定投累加份额
df['期数']=list(range(1,len(df)+1))
#现值收益
df['当期总值'] =df['total_qnt_adj']*df['adj']
df['当期盈利']=df['当期总值']-200*df['期数']
df['累计收益率']=round(df['当期盈利']/(200*df['期数']),4)*100
#df['mean_price_3weeks'] = round(capital*10/df['sum_qnt_3weeks'], 3) # 计算10天定投的平均成本
pd.set_option('display.max_columns', None)
from IPython.display import display
display(df)
df.to_csv('auto_inv_plan_new.csv', mode='w', encoding='utf_8_sig')
get_return_aip_luyang('000311.OF', '2015-05-01', '2021-02-26')
?
cs