在腾讯元宝中,开启‘编程‘模块,输入下面的提示词,即可自动生成纯H5前端资产配置组合回测功能,效果还是不错的,可参见资产组合回测工具
请做一个前端H5程序,用于计算上传的多个产品或指数,并进行配置组合构建后的业绩表现,需求描述如下:
1、可以上传一个或多个产品或指数的数据文件。文件格式是csv,文件的第一行是标题行,第二行开始是数据。文件中包括三列:ts_code (产品代码)、trade_date(日期)、close(收盘价)。其中产品代码是10位以内的字符串、日期是YYYYMMDD格式字符串、收盘价是数值,含小数;需要注意的是,不同的产品,收盘价可能是净值类数据,如1.0001,也有可能是指数的收盘价,如3923.43。文件中以产品代码和日期为主键,数据按日期升序排序。注意:不同的产品文件,可能存在某些日期数据彼此缺失的情况,这时需要取共有的日期数据进行计算。比如文件1有20240101的数据,而文件2中并没有这一天的数据,这种情况下该日期数据就舍弃。当上传一个产品文件时,相当于以单个产品构建资产配置组合。请注意文件上传功能的实现,确保点击上传按钮可以选择文件,并正常上传数据文件。
2、上传的文件之后,可以对每个上传的产品文件设置一个产品名称、以及对应的配置比例,如第一个产品文件,设置名称A,比例30%,第二个产品文件,设置名称B,比例50%,第三个产品文件,设置名称C,比例20%。命名产品的时候,需要把命名产品对应的原文件名称带出。所有组合文件的配置比例加总必须等于100%。并可以设置初始投资金额(默认为100万)。这个投资金额就会按配置比例,分别投资于各项资产上。配置比例设置的地方,允许用户直接输入配置比例,配置当个产品比例时不联动其它产品的比例。最终只需要校验用户在各个产品的配置比例上输入之和是100%就可以了。
注意:为了减少页面的空间占用,上传文件后,不用反显出各个文件,只要在配置产品名称的区域中显示出对应的上传文件的文件名就好。
3、然后可以设置组合的再平衡方式,有三种:不平衡、季平衡、年平衡。默认选择 不平衡。不平衡,是指初次按配置比例投资后,不再调整各项资产的比例,按各资产(产品)的净值增长持有至最后;所谓季平衡,是指每隔一个季度(可以简单按90个交易日计),将配置各产品所获得的总资产按原始的配置比例再重新配置至各个产品;年平衡,是指每隔一个自然年平衡一次(可以简单按251个交易日计)
4、设置好配置产品名称、配置比例、再平衡方式后, 页面提供一个【一键计算】按钮。点击按钮后开始进行数据处理,并计算配置组合的相关数据,页面展示以下内容:
1) 需要对各产品文件进行净值归一处理,并且需要对齐开始日期,从所有产品文件的共同最早日期开始,比如 A产品文件日期从2021013开始,B产品文件从20220212开始,那么配置组合的开始日期就需要从20220212开始。并且以这一天开始,对各产品的收盘价数据做净值归一处理。
2) 数据处理后,开始按各产品的配置比例和再平衡方式,计算配置组合的业务表现数据,包括:从起始日期至最近日期的累计收益率、区间年化收益率、夏普比率、波动率、卡玛比率、索提诺比率、期间最大回撤、最大回撤修复天数、近1年收益率、近1年最大回撤、近3年收益率、近3年最大回撤。注意:区间年化收益率是指整个组合从日期区间的开始日至日期区间的结束日,以这一段时间为区间来计算的年化收益率。比如累计收益率是25%,整个日期区间范围是2.5年,则期间年化收益率为(1+0.25)^(1/2.5)-1,为9.37%。最大回撤修复天数,是指期间内的最大一次回撤,资产从开始回撤之日算起,直至资产恢复至回撤之前,整个回撤从开始到修复完成所所经历完整天数。收益相关字段,数值大于等于0时,用红色,小于0时用绿色;回撤相关字段,用绿色;其它字段,用黑色。
3) 在业绩指标区域下方,绘制两个走势图:组合总资产的走势图,以及组合动态回撤的走势图。两个走势图上下排列,不要使用tab。横轴以周为颗粒度单位。
4) 在业绩指标区域上方,提供一个日期范围选择控件,默认是初次计算整个完整区间的日期范围。用户可以手工修改日期范围,重新修改日期范围后,应该按新的日期区间的起点和终点,重新计算产品组合的各项指标数据,及绘制图表。
5) 在走势图区域下方,绘制一个各产品相关性分析的图表展示区域。以二维表格的方式,展示各产品之间的业绩相关性系数。相关性系数数值也应该随着日期范围联动。