美文网首页
为明天回测做准备

为明天回测做准备

作者: 黄yy家的jby | 来源:发表于2019-12-22 20:51 被阅读0次

    1,仓位一个表,收盘价一个表,计算权益端的资金

    df_close = pd.read_excel('close.xlsx',index_col='日期')
    df_pos = pd.read_excel('pos.xlsx',index_col='日期')
    
    # numpy转 dataframe
    b = np.array(df_close)* np.array(df_pos)
    c = pd.DataFrame(b.sum(axis=1),columns=['net_value'],index=df_pos.index)
    
    # 直接用dataframe的乘法也行,只是我记成了pd.dot,应该用pd.mul
    d = df_close.mul(df_pos).sum(axis=1)
    

    顺便普及一下dataframe加减乘除pd.add, pd.sub, pd.mul, pd.div
    2,时间问题:月末最后一个工作日,季度末最后一个工作日

    import pandas.tseries.offsets as pto
    
    b = (df_close.index + pto.BQuarterEnd()).unique()
    c = (df_close.index + pto.BMonthEnd()).unique()
    

    pandas.tseries.offsets的介绍
    3,链接数据库
    sql导出到excel,再用python读...
    不然python链接数据库
    现在问题:a,不知道怎么连接数据库
    b,不知道表在哪
    明天去了看一下,解决掉这个问题


    跟预想的差不多,给出仓位再根据仓位进行历史回测。
    保密协议,就不能直接放代码了。
    放部分思路吧

    • 1-时间
      存放time_list中
      最后一个pass
      然后取t0-t1时间区间作为index
    • 2-数据库取close
      这里需要注意输入和输出的格式问题,
      数据库中师兄修改输入日期为数值格式,输出也为数值格式
    • 3,建仓
      这里有个逐渐建仓的环节,
      stocks = j / n_period * total * 0.8
      stocks每天分配 j/n_period的资金
      这样就可以保证期末是80%的仓位
    • 4,计算收益
      建仓时候我是用开盘价,然后当天收盘价计算建仓的收益
      非建仓期,用后复权股价,计算得到的收益率,按照仓位对应分配加总
    • 5,要注意什么时候更新数值

    相关文章

      网友评论

          本文标题:为明天回测做准备

          本文链接:https://www.haomeiwen.com/subject/onfanctx.html