#!/usr/bin/env python # coding: utf-8 # In[1]: import sys sys.path.insert(0, "../../") from pyecharts import online online() # 演示必要的准备代码,使用该库时不需重复此单元格命令 # In[2]: import xalpha as xa import pandas as pd # # 多基金投资系统的管理 # ### 开放系统 # In[3]: path='../../tests/demo.csv' read = xa.record(path) # 依旧先读取交易单的 csv 文件 # In[4]: sysopen = xa.mul(status=read.status) # 基金投资组合既可以由一系列单个基金的交易类生成, 也可以直接依据给定的交易单一次性生成,这里采取后者 # In[5]: sysopen.combsummary().sort_values(by="基金现值",ascending=False) # 先看一下今日投资组合概述 # In[6]: sysopen.xirrrate() # 最重要的总是先问一下系统的整体收益年化如何 # 需要注意由于QDII基金的净值会延迟两天,因此包含 QDII 基金投资的 xirrrate 计算,必须指定日期,最晚为前天,默认的昨天计算会报错 # In[7]: sysopen.v_positions('2018-06-01') # 可视化指定日期的仓位分布 # In[8]: sysopen.v_positions_history() # 基金组合就像一条河流。。。 # In[9]: sysopen.v_tradevolume(bar_category_gap='75%',freq='W') # 整体交易情况一览, 以周为柱形图单位 # In[10]: sysopen.totcftable # 基金组合的合并现金流量表 # In[8]: ev=sysopen.evaluation(start='2018-01-01') # 还可以生成关于投资基金的 evaluate 类,以便对投资的基金本身进行分析 # In[9]: ev.v_correlation(end='2018-08-01') #可以通过热力图来查看不同基金净值走势的相关性 # ### 封闭系统 # 我们也可以研究一个封闭系统的组合投资,此时需要货币基金提供资金出入的功能,这样的系统净值更容易定义 # 可以应用之前研究指数和基金时使用过的量化方法。 # In[11]: sysopen.fundtradeobj # In[10]: # 这次我们使用基金交易类作为初始化参数 sysclose = xa.mulfix(*sysopen.fundtradeobj, totmoney=5000) # totmoney 表示封闭系统初始的总钱数 # 若不设置 cashobj 选项,则默认为 cashobj = cashinfo(interest=0.0001, start='2012-01-01') # In[21]: sysclose.unitvalue('2018-07-04') # 封闭的基金投资组合整体就像一个单一基金交易类,有净值数据 # In[15]: sysclose.combsummary('2018-03-09') # 投资组合的分项纵览 # In[16]: sysclose.bcmkset(xa.indexinfo('0000905')) # 设置比较基准,开始对此封闭的基金投资系统进行量化评估 # In[17]: sysclose.v_netvalue() # In[18]: sysclose.alpha(),sysclose.beta(),sysclose.sharpe() # In[19]: sysclose.max_drawdown() # 系统的最大回撤 # In[20]: sysclose.riskfree # 进行量化计算中使用的无风险年化利率的参考值, 可在设置 benchmark 时调整该值