多策略风险收益对比

昨天使用streamlit更新的gui,效果确实不错,比起纯用wxpython开发要省了不是一星半点的工作量,而且功能强大,更别提pyqt5了——功能虽强,但要做好这个界面,更得花费不少心思——而我们核心是要做出真正可以实盘使用的策略,gui只是方便我们做策略的工具,不可本末倒置。

关于疫情,无论是班级群,公司群,朋友圈,都陆续爆阳了,好像多多少少都有点症状,可能无症状的同学自己还不知道吧。现在核酸混管基本不可用的,到处都混,早上还去做了一个,明天能否得到结果未知,全凭运气了。

都是早晚的事,面对这样一个群体事件——战略上藐视,战术上重视,而不是反过来。战略上,这就是一个流感,不用担心到无法正常生活与工作;战术上,戴好口罩,勤洗手,保持距离,如此而已。能不得就不得,能少得就少得,但心态要放松,积极乐观。

今天继续streamlit,昨天是可以把多个指数进行风险收益分析,今天把回测结果纳入进来做对比分析。

回测的结果保存在data/hdf5/bkt_results.h5里。

图片

使用pd把keys读出来,就是各个策略的名字。

@staticmethod
def get_bkt_results():
    with pd.HDFStore(DATA_DIR_HDF5_BKT_RESULTS.resolve()) as store:
        keys = [k.replace('/', '') for k in store.keys()]
    return keys

这样策略与多个基准可以搁在一起进行比较,风险,收益分析,这个很重要。但很多量化平台其实都做不到,通过只能指定一个benchmark。

正股债平衡策略的话,我即想跟股票指数比,与想跑债券指数比,这样才能看得出投资组合的优势嘛。


st.sidebar.header('请选择策略')
stras = st.sidebar.multiselect('请选择策略:', options=Logic.get_bkt_results(), default=Logic.get_bkt_results())
indexes = Logic.get_index_list()
df_returns = DataUtils.load_returns2(symbols)
df_stras = DataUtils.load_strategy_returns(stras)
df_returns = pd.concat([df_returns, df_stras], axis=1)
df_returns.dropna(inplace=True)
df_returns = df_returns[df_returns.index >= date_start]
df_returns = df_returns[df_returns.index <= date_end]
df_equity = (1 + df_returns).cumprod()

图片

不得不多说一句,streamlit真的很赞,面向数据驱动与机器学习类的应用,非常省事,而且功能强大。要知道无论是wxpython还是web,要写一个时间日期控件,非常麻烦,更别提这个多选的下拉框——在streamlit里是内置的,而且不用绑定事件,streamlit是流式执行。

下一步的重点,就是把风险平价与因子模型要有机融合在一起,然后再看行业轮动增强收益。

昨天还有朋友问我,有没有适合私募的,可以复利积累的模型,我现在就在探索和强化这个,昨天我们说了,10%年化,回撤控制在10%以内的模型我们已经有了,现在要努力“双15”或者“双20%”的模型。

代码及数据请前往星球——量化专栏下载。

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/104194
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 7 月 29 日
下一篇 2024 年 7 月 29 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注