当前位置 博文首页 > LY的博客:joinquant场外基金每日定投收益计算

    LY的博客:joinquant场外基金每日定投收益计算

    作者:[db:作者] 时间:2021-08-02 12:39

    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
    下一篇:没有了