{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import sys\n", "\n", "sys.path.insert(0, \"../../\")\n", "# 演示必要的准备代码,使用该库时不需重复此单元格命令" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import xalpha as xa\n", "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "本文将分析大陆公募基金市场中和石油商品相关的基金,考察其相关性和可替代性" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "hb = xa.fundinfo(\"162411\") # 华宝油气\n", "gf = xa.fundinfo(\"162719\") # 广发石油\n", "ha = xa.fundinfo(\"160416\") # 华安石油\n", "nf = xa.fundinfo(\"501018\") # 南方原油\n", "yfd = xa.fundinfo(\"161129\") # 易方达原油\n", "js = xa.fundinfo(\"160723\") # 嘉实原油" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "oilcomp = xa.evaluate(hb, gf, ha, nf, yfd, js)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "
\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "oilcomp.v_correlation()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "观察上述的相关系数图,可以看到高关联的基金自动分成两个区。三个跟踪原油期货的基金关联极高。同时三个在美股为主跟踪石油产业企业股票指数的基金(对应指数不同)关联极高。另一方面,两者之间关联并没有特别高。像经常宣传和原油价格走势关联很高的华宝油气,其关联系数也只有 0.67 左右,并不是很高。这种跟踪意义不大,下面不同基金的净值图将这个问题表现的更明显。\n", "如果非想持有石油股票指数来减少原油期货换仓损失的话,华安石油相比华宝油气具有更高的关联性,相关系数在 0.73 左右,高于另两个石油股票基金。" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "
\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "oilcomp.v_netvalue()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "可以看到三个追踪原油期货的基金,走势几乎完全一致,在两年多的时间中产生的误差很有限。\n", "奇怪的是,在这段区间石油价格有所回升,同时美股一直运行在牛市,但主力在美股的石油企业的股票走势还比不上原油价格本身,尤其是华宝油气表现极差。也就是说,美股里这些企业估值在不断走低,对应了大家的夕阳产业预期。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* 华宝油气:0.15+1.28, 标普石油天然气上游股票指数\n", "* 华安石油: 0.12+1.28, 标普全球石油指数\n", "* 广发石油: 0.39 亿,规模低于清盘线,请谨慎申购, 0.12+1.3, 道琼斯美国石油开发与生产指数\n", "\n", "* 易方达原油: 0.12+1.25,标普高盛原油商品指数\n", "* 南方原油: 0.12+1.28, 60%WTI原油价格收益率 + 40%BRENT原油价格收益率\n", "* 嘉实原油: 0.12+1.28,100%WTI原油价格收益率" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "华宝标普油气上游股票 0.31330039728004055\n", "广发道琼斯石油指数人民币A 0.23449795919975377\n", "华安标普全球石油指数 0.1684688810075437\n", "南方原油A 0.23465224682648175\n", "易方达原油A类人民币 0.2244510474007535\n", "嘉实原油(QDII-LOF) 0.22860537822326174\n" ] } ], "source": [ "for fund in oilcomp.fundobjs:\n", " print(fund.name, fund.algorithm_volatility())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "大多数人投资石油基金并不是为了长期价值投资,而是为了做波段,因此波动率越高越好。由此可以看出,华宝油气是波动最大的。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "我们现在研究下原油基金的换仓损耗到底有多高,首先爬取过去一年的 WTI 原油期货价格日线数据" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "import requests\n", "import datetime as dt" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [], "source": [ "r = requests.get(\n", " \"https://cn.investing.com/common/modules/js_instrument_chart/api/data.php?pair_id=8849&pair_id_for_news=8849&chart_type=area&pair_interval=86400&candle_count=120&events=yes&volume_series=yes&period=1-year\",\n", " headers={\n", " \"User-Agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36\",\n", " \"Referer\": \"https://cn.investing.com/commodities/crude-oil\",\n", " \"Host\": \"cn.investing.com\",\n", " \"X-Requested-With\": \"XMLHttpRequest\",\n", " },\n", ")" ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "collapsed": true }, "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", "
datenetvalue
02018-08-2468.72
12018-08-2768.87
22018-08-2868.53
32018-08-2969.51
42018-08-3070.25
52018-08-3169.80
62018-09-0269.92
72018-09-0370.12
82018-09-0469.87
92018-09-0568.72
102018-09-0667.77
112018-09-0767.75
122018-09-1067.54
132018-09-1169.25
142018-09-1270.37
152018-09-1368.59
162018-09-1468.99
172018-09-1768.91
182018-09-1869.85
192018-09-1971.12
202018-09-2070.80
212018-09-2170.78
222018-09-2472.08
232018-09-2572.28
242018-09-2671.57
252018-09-2772.12
262018-09-2873.25
272018-10-0175.30
282018-10-0275.23
292018-10-0376.41
.........
2342019-07-1559.58
2352019-07-1657.62
2362019-07-1756.78
2372019-07-1855.30
2382019-07-1955.63
2392019-07-2256.22
2402019-07-2356.77
2412019-07-2455.88
2422019-07-2556.02
2432019-07-2656.20
2442019-07-2956.87
2452019-07-3058.05
2462019-07-3158.58
2472019-08-0153.95
2482019-08-0255.66
2492019-08-0554.69
2502019-08-0653.63
2512019-08-0751.09
2522019-08-0852.54
2532019-08-0954.50
2542019-08-1254.93
2552019-08-1357.10
2562019-08-1455.23
2572019-08-1554.47
2582019-08-1654.87
2592019-08-1956.21
2602019-08-2056.34
2612019-08-2155.68
2622019-08-2255.35
2632019-08-2353.95
\n", "

264 rows × 2 columns

\n", "
" ], "text/plain": [ " date netvalue\n", "0 2018-08-24 68.72\n", "1 2018-08-27 68.87\n", "2 2018-08-28 68.53\n", "3 2018-08-29 69.51\n", "4 2018-08-30 70.25\n", "5 2018-08-31 69.80\n", "6 2018-09-02 69.92\n", "7 2018-09-03 70.12\n", "8 2018-09-04 69.87\n", "9 2018-09-05 68.72\n", "10 2018-09-06 67.77\n", "11 2018-09-07 67.75\n", "12 2018-09-10 67.54\n", "13 2018-09-11 69.25\n", "14 2018-09-12 70.37\n", "15 2018-09-13 68.59\n", "16 2018-09-14 68.99\n", "17 2018-09-17 68.91\n", "18 2018-09-18 69.85\n", "19 2018-09-19 71.12\n", "20 2018-09-20 70.80\n", "21 2018-09-21 70.78\n", "22 2018-09-24 72.08\n", "23 2018-09-25 72.28\n", "24 2018-09-26 71.57\n", "25 2018-09-27 72.12\n", "26 2018-09-28 73.25\n", "27 2018-10-01 75.30\n", "28 2018-10-02 75.23\n", "29 2018-10-03 76.41\n", ".. ... ...\n", "234 2019-07-15 59.58\n", "235 2019-07-16 57.62\n", "236 2019-07-17 56.78\n", "237 2019-07-18 55.30\n", "238 2019-07-19 55.63\n", "239 2019-07-22 56.22\n", "240 2019-07-23 56.77\n", "241 2019-07-24 55.88\n", "242 2019-07-25 56.02\n", "243 2019-07-26 56.20\n", "244 2019-07-29 56.87\n", "245 2019-07-30 58.05\n", "246 2019-07-31 58.58\n", "247 2019-08-01 53.95\n", "248 2019-08-02 55.66\n", "249 2019-08-05 54.69\n", "250 2019-08-06 53.63\n", "251 2019-08-07 51.09\n", "252 2019-08-08 52.54\n", "253 2019-08-09 54.50\n", "254 2019-08-12 54.93\n", "255 2019-08-13 57.10\n", "256 2019-08-14 55.23\n", "257 2019-08-15 54.47\n", "258 2019-08-16 54.87\n", "259 2019-08-19 56.21\n", "260 2019-08-20 56.34\n", "261 2019-08-21 55.68\n", "262 2019-08-22 55.35\n", "263 2019-08-23 53.95\n", "\n", "[264 rows x 2 columns]" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tz_utc = dt.timezone(dt.timedelta(hours=0))\n", "date = []\n", "netvalue = []\n", "for line in r.json()[\"candles\"]:\n", " date.append(dt.datetime.fromtimestamp(line[0] / 1000, tz_utc).replace(tzinfo=None))\n", " netvalue.append(line[1])\n", "df = pd.DataFrame(data={\"date\": date, \"netvalue\": netvalue})\n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "我们还需要额外爬取人民币美元汇率数据用于比较" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [], "source": [ "r = requests.get(\n", " \"https://cn.investing.com/common/modules/js_instrument_chart/api/data.php?pair_id=2111&pair_id_for_news=2111&chart_type=area&pair_interval=86400&candle_count=120&events=yes&volume_series=yes&period=1-year\",\n", " headers={\n", " \"User-Agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36\",\n", " \"Referer\": \"https://cn.investing.com/commodities/currencies/usd-cny\",\n", " \"Host\": \"cn.investing.com\",\n", " \"X-Requested-With\": \"XMLHttpRequest\",\n", " },\n", ")" ] }, { "cell_type": "code", "execution_count": 82, "metadata": { "collapsed": true }, "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", "
datenetvalue
02018-08-246.8070
12018-08-276.8156
22018-08-286.8030
32018-08-296.8213
42018-08-306.8445
52018-08-316.8315
62018-09-036.8228
72018-09-046.8442
82018-09-056.8305
92018-09-066.8355
102018-09-076.8438
112018-09-106.8556
122018-09-116.8730
132018-09-126.8606
142018-09-136.8448
152018-09-146.8690
162018-09-176.8570
172018-09-186.8616
182018-09-196.8483
192018-09-206.8468
202018-09-216.8571
212018-09-246.8571
222018-09-256.8665
232018-09-266.8786
242018-09-276.8902
252018-09-286.8689
262018-10-016.8689
272018-10-026.8689
282018-10-036.8689
292018-10-046.8689
.........
2312019-07-156.8777
2322019-07-166.8762
2332019-07-176.8736
2342019-07-186.8800
2352019-07-196.8822
2362019-07-226.8811
2372019-07-236.8792
2382019-07-246.8725
2392019-07-256.8726
2402019-07-266.8792
2412019-07-296.8934
2422019-07-306.8845
2432019-07-316.8841
2442019-08-016.8986
2452019-08-026.9405
2462019-08-057.0508
2472019-08-067.0264
2482019-08-077.0602
2492019-08-087.0451
2502019-08-097.0624
2512019-08-127.0582
2522019-08-137.0435
2532019-08-147.0244
2542019-08-157.0340
2552019-08-167.0428
2562019-08-197.0507
2572019-08-207.0605
2582019-08-217.0632
2592019-08-227.0836
2602019-08-237.0960
\n", "

261 rows × 2 columns

\n", "
" ], "text/plain": [ " date netvalue\n", "0 2018-08-24 6.8070\n", "1 2018-08-27 6.8156\n", "2 2018-08-28 6.8030\n", "3 2018-08-29 6.8213\n", "4 2018-08-30 6.8445\n", "5 2018-08-31 6.8315\n", "6 2018-09-03 6.8228\n", "7 2018-09-04 6.8442\n", "8 2018-09-05 6.8305\n", "9 2018-09-06 6.8355\n", "10 2018-09-07 6.8438\n", "11 2018-09-10 6.8556\n", "12 2018-09-11 6.8730\n", "13 2018-09-12 6.8606\n", "14 2018-09-13 6.8448\n", "15 2018-09-14 6.8690\n", "16 2018-09-17 6.8570\n", "17 2018-09-18 6.8616\n", "18 2018-09-19 6.8483\n", "19 2018-09-20 6.8468\n", "20 2018-09-21 6.8571\n", "21 2018-09-24 6.8571\n", "22 2018-09-25 6.8665\n", "23 2018-09-26 6.8786\n", "24 2018-09-27 6.8902\n", "25 2018-09-28 6.8689\n", "26 2018-10-01 6.8689\n", "27 2018-10-02 6.8689\n", "28 2018-10-03 6.8689\n", "29 2018-10-04 6.8689\n", ".. ... ...\n", "231 2019-07-15 6.8777\n", "232 2019-07-16 6.8762\n", "233 2019-07-17 6.8736\n", "234 2019-07-18 6.8800\n", "235 2019-07-19 6.8822\n", "236 2019-07-22 6.8811\n", "237 2019-07-23 6.8792\n", "238 2019-07-24 6.8725\n", "239 2019-07-25 6.8726\n", "240 2019-07-26 6.8792\n", "241 2019-07-29 6.8934\n", "242 2019-07-30 6.8845\n", "243 2019-07-31 6.8841\n", "244 2019-08-01 6.8986\n", "245 2019-08-02 6.9405\n", "246 2019-08-05 7.0508\n", "247 2019-08-06 7.0264\n", "248 2019-08-07 7.0602\n", "249 2019-08-08 7.0451\n", "250 2019-08-09 7.0624\n", "251 2019-08-12 7.0582\n", "252 2019-08-13 7.0435\n", "253 2019-08-14 7.0244\n", "254 2019-08-15 7.0340\n", "255 2019-08-16 7.0428\n", "256 2019-08-19 7.0507\n", "257 2019-08-20 7.0605\n", "258 2019-08-21 7.0632\n", "259 2019-08-22 7.0836\n", "260 2019-08-23 7.0960\n", "\n", "[261 rows x 2 columns]" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tz_utc = dt.timezone(dt.timedelta(hours=0))\n", "date = []\n", "netvalue = []\n", "for line in r.json()[\"candles\"]:\n", " date.append(dt.datetime.fromtimestamp(line[0] / 1000, tz_utc).replace(tzinfo=None))\n", " netvalue.append(line[1])\n", "usdf = pd.DataFrame(data={\"date\": date, \"netvalue\": netvalue})\n", "usdf" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.8381712364505961" ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.iloc[-2].netvalue * usdf.iloc[-2].netvalue / df.iloc[0].netvalue / usdf.iloc[\n", " 0\n", "].netvalue # 一年真实的油价变化(人民币计价)" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.8154402005603893" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fund = js\n", "float(fund.price[fund.price[\"date\"] == \"2019-08-22\"].netvalue) / float(\n", " fund.price[fund.price[\"date\"] == \"2018-08-24\"].netvalue\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "一年大约落后跟踪基准 2.7%, 考虑到嘉实原油一年 1.28% 的管理费,大约还会跑输 1.5% 左右。特别是,这一年,美元走强,基金又有一定现金份额来抵消石油价格下降,因此真实跑输大于 1.5%。其中大部分没意外,都是期货换仓的损失。所以粗略估计,每年的持仓额外成本在 1 到 2 个百分点。\n", "\n", "由于另两个原油基准宣称的基准略有不同,以下列出仅供参考:" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.8271919660100425" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fund = yfd\n", "float(fund.price[fund.price[\"date\"] == \"2019-08-22\"].netvalue) / float(\n", " fund.price[fund.price[\"date\"] == \"2018-08-24\"].netvalue\n", ")" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.8347042694868781" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fund = nf\n", "float(fund.price[fund.price[\"date\"] == \"2019-08-22\"].netvalue) / float(\n", " fund.price[fund.price[\"date\"] == \"2018-08-24\"].netvalue\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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 }