In [1]:
import sys

sys.path.insert(0, "../../")
from pyecharts import online

online()
#  演示必要的准备代码,使用该库时不需重复此单元格命令
In [2]:
import xalpha as xa
import pandas as pd

ETF拯救世界的指数投资计划

In [3]:
path = "../../tests/etf.csv"
read = xa.record(path, skiprows=1)
# 读取E大的发车记录,该记录采取且慢的发车记录,但由于早期有些仓位是按点数不定时买入的,可能买入时点与E大和且慢记录稍有出入
In [4]:
sysopen = xa.mulfix(status=read.status, totmoney=150 * 1000)
In [5]:
sysopen.combsummary()
Out[5]:
基金名称 基金代码 当日净值 单位成本 持有份额 基金现值 基金总申购 历史最大占用 基金持有成本 基金分红与赎回 换手率 基金收益总额 投资收益率
0 华夏上证50ETF联接A 001051 0.851000 0.7060 11206.23 9536.50 9000.00 8000.00 7911.17 1088.83 0.207906 1625.33 20.3166
1 华夏恒生ETF联接 000071 1.490300 0.8942 6852.82 10212.76 9000.00 9000.00 6127.61 2872.39 0.223119 4085.15 45.3906
2 华安标普石油指数 160416 1.100000 0.8720 1146.73 1261.40 1000.00 1000.00 1000.00 0.00 0.175312 261.40 26.1400
3 广发养老指数A 000968 0.951300 0.9715 8234.85 7833.81 8000.00 8000.00 8000.00 0.00 0.196026 -166.19 -2.0774
4 华夏中证500ETF联接 001052 0.550000 0.6135 9779.61 5378.79 6000.00 6000.00 6000.00 0.00 0.203456 -621.21 -10.3535
5 广发中证环保ETF联接A 001064 0.572100 0.7175 11149.05 6378.37 8000.00 8000.00 8000.00 0.00 0.217780 -1621.63 -20.2704
6 华夏沪深300ETF联接A 000051 1.119000 0.9662 1035.03 1158.20 1000.00 1000.00 1000.00 0.00 0.226427 158.20 15.8200
7 南方原油 501018 1.233500 0.0000 0.00 0.00 1000.00 1000.00 -94.26 1094.26 0.514404 94.26 9.4260
8 华安德国30(DAX)联接 000614 1.174000 1.0945 1827.26 2145.20 2000.00 2000.00 2000.00 0.00 0.260714 145.20 7.2600
9 博时信用债纯债债券A 050027 1.076000 1.0289 1849.63 1990.20 2000.00 1964.21 1903.17 96.83 0.313219 87.03 4.4308
10 广发医药卫生联接A 001180 0.812600 0.7934 11344.23 9218.32 9000.00 9000.00 9000.00 0.00 0.306208 218.32 2.4258
11 富国中证红利指数增强 100032 1.027000 1.0429 9274.34 9524.75 11000.00 9671.79 9671.79 1328.21 0.390310 -147.04 -1.5203
12 广发中债7-10年国开债指数A 003376 0.998000 0.8963 3184.84 3178.47 6000.00 6000.00 2854.52 3145.48 0.509478 323.95 5.3992
13 华宝标普油气上游股票 162411 0.697000 0.5475 3653.21 2546.29 2000.00 2000.00 2000.00 0.00 0.378631 546.29 27.3145
14 建信中证500指数增强A 000478 1.948200 2.3362 4708.47 9173.04 11000.00 11000.00 11000.00 0.00 0.385835 -1826.96 -16.6087
15 易方达创业板ETF联接A 110026 1.581200 1.8858 530.29 838.49 1000.00 1000.00 1000.00 0.00 0.445122 -161.51 -16.1510
16 广发创业板ETF联接A 003765 0.867000 0.9612 1040.42 902.04 1000.00 1000.00 1000.00 0.00 0.481530 -97.96 -9.7960
17 华夏海外收益债券A 001061 1.247000 1.2129 3297.78 4112.33 4000.00 4000.00 4000.00 0.00 0.501374 112.33 2.8083
18 华安黄金易ETF联接A 000216 0.979100 1.0296 971.23 950.93 1000.00 1000.00 1000.00 0.00 0.572100 -49.07 -4.9070
19 广发纯债债券A 270048 1.202000 1.1549 1687.15 2027.95 2000.00 1992.44 1948.57 51.43 0.622196 79.38 3.9841
20 易方达证券公司分级 502010 0.790800 0.9443 3176.89 2512.28 3000.00 3000.00 3000.00 0.00 0.751029 -487.72 -16.2573
21 广发中证传媒ETF联接A 004752 0.763600 0.9262 4318.73 3297.78 4000.00 4000.00 4000.00 0.00 0.881643 -702.22 -17.5555
22 富国量化沪深300 100038 1.671000 1.6982 1766.60 2951.99 3000.00 3000.00 3000.00 0.00 2.433333 -48.01 -1.6003
23 广发中证全指金融地产联接A 001469 0.875300 0.9044 2211.40 1935.64 2000.00 2000.00 2000.00 0.00 2.991803 -64.36 -3.2180
24 兴全可转债混合 340001 1.024400 1.0050 995.02 1019.30 1000.00 1000.00 1000.00 0.00 3.258929 19.30 1.9300
25 富国中证500 161017 1.929000 1.9519 512.31 988.25 1000.00 1000.00 1000.00 0.00 14.038462 -11.75 -1.1750
26 广发中证500ETF联接C 002903 0.877200 0.8407 1189.48 1043.41 1000.00 1000.00 1000.00 0.00 22.812500 43.41 4.3410
27 货币基金 mf 1.273397 1.0073 49317.98 62801.35 152039.31 149000.00 49677.34 102361.97 0.281480 13124.01 8.8081
28 总计 total NaN NaN NaN 164917.84 262039.31 150000.00 149999.91 112039.40 0.164860 14917.93 9.9453
In [7]:
sysopen.v_positions()  # 仓位比例
Out[7]:
In [8]:
sysopen.bcmkset(xa.indexinfo("0000300"), start="2015-09-01")
In [9]:
sysopen.v_netvalue()
Out[9]:
In [10]:
sysopen.max_drawdown()
Out[10]:
(Timestamp('2018-01-24 00:00:00'),
 Timestamp('2018-08-06 00:00:00'),
 -0.0721818298973396)
In [11]:
sysopen.algorithm_volatility()
Out[11]:
0.040025785136265236
In [12]:
sysopen.sharpe()  # 和且慢差距较大,是因为选取的无风险利率不同,而现在组合收益特别接近该值造成的
Out[12]:
-0.07676051798959628
In [14]:
sysopen.xirrrate("2018-08-09")  # 基于现金流计算的标准年化收益率
Out[14]:
0.03253466309936915
In [20]:
sysnomf = xa.mul(*sysopen.fundtradeobj[:-2])
In [22]:
sysnomf.v_tradevolume(freq="M")  # E大每月的买入数量和节奏
Out[22]:
In [23]:
sysnomf.xirrrate("2018-08-09")  # 去掉货币基金部分投资的年化收益
Out[23]:
0.018350130931254528