为明天回测做准备

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,要注意什么时候更新数值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容