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