{ "nbformat_minor": 2, "cells": [ { "execution_count": 2, "cell_type": "code", "metadata": {}, "outputs": [], "source": "#!pip install lxml\n#!pip install --upgrade beautifulsoup4\n#!pip install --version tushare==1.0.5" }, { "execution_count": 1, "cell_type": "code", "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "1.0.5\n" } ], "source": "import tushare as ts\n\nprint(ts.__version__)" }, { "execution_count": 2, "cell_type": "code", "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stderr", "text": "/usr/local/src/conda3_runtime/home/envs/DSX-Python35-Spark/lib/python3.5/site-packages/statsmodels/compat/pandas.py:56: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead.\n from pandas.core import datetools\n" } ], "source": "import pandas as pd\nimport numpy as np\nimport statsmodels.api as sm #\u7edf\u8ba1\u8fd0\u7b97\nimport scipy.stats as scs #\u79d1\u5b66\u8ba1\u7b97\nimport matplotlib.pyplot as plt #\u7ed8\u56fe\n%matplotlib inline\nfrom IPython.core.pylabtools import figsize" }, { "source": "## 1. \u8bfb\u5165\u6570\u636e\u5c55\u73b0\u8d70\u52bf", "cell_type": "markdown", "metadata": {} }, { "source": "### 1.1 \u9009\u62e9\u4e2a\u80a1\n\u5b9e\u9645\u6295\u8d44\u4e2d\uff0c\u4e2a\u80a1\u9009\u62e9\u6709\u591a\u79cd\u65b9\u6cd5\uff0c\u4f1a\u6839\u636e\u677f\u5757\u3001\u4e2a\u80a1\u7ee9\u6548\u3001\u6295\u8d44\u4eba\u504f\u597d\u3001\u4fe1\u606f\u62ab\u9732\u7b49\u591a\u65b9\u9762\u8fdb\u884c\u6311\u9009\u3002\u4e00\u822c\u65e2\u8003\u8651\u5b9a\u91cf\u56e0\u7d20\uff0c\u4e5f\u8003\u8651\u5b9a\u6027\u56e0\u7d20\uff0c\u7ecf\u5e38\u8fd8\u4f1a\u4f9d\u636e\u6295\u8d44\u4e2d\u7684\u7ecf\u9a8c\u6cd5\u5219\u3002

\n\u8fd9\u91cc\uff0c\u7531\u4e8e\u7bc7\u5e45\u95ee\u9898\uff0c\u968f\u673a\u9009\u62e9\u4e86\u4e00\u4e9b\u4e2a\u80a1\uff0c\u5e76\u672a\u7ecf\u8fc7\u8ba4\u771f\u7b5b\u67e5\u3002", "cell_type": "markdown", "metadata": {} }, { "execution_count": 3, "cell_type": "code", "metadata": {}, "outputs": [], "source": "stocks = [['meidi','000333','\u7f8e\u7684\u96c6\u56e2'], \n ['icbc','601398','\u5de5\u5546\u94f6\u884c'], \n ['5liang','000858','\u4e94\u7cae\u6db2'],\n ['pingan','601318', '\u4e2d\u56fd\u5e73\u5b89']\n ]" }, { "source": "### 1.2 \u4e2a\u80a1\u7684\u5386\u53f2\u6570\u636e\u83b7\u53d6\n\u4f7f\u7528\u5de5\u5177\u4ece\u4e92\u8054\u7f51\u83b7\u53d6\u6bcf\u4e2a\u4e2a\u80a1\u5b9e\u65f6\u6570\u636e\uff0c\u4f7f\u7528\u6bcf\u65e5\u65e5\u7ec8\u4ef7\u683c\u3002", "cell_type": "markdown", "metadata": {} }, { "execution_count": 5, "cell_type": "code", "metadata": {}, "outputs": [], "source": "# \u6caa\u6df1300\nstart_dt = '2017-01-01'\nhis_hs300 = ts.get_hist_data('hs300',start=start_dt)\ndf = his_hs300.filter(['close']).rename(columns={'close':'hs300'})\n\nreturn_label = []\nfor stock in stocks:\n hs_data = ts.get_hist_data(stock[1], start=start_dt)\n df = df.join(hs_data.filter(['close']).rename(columns={'close':stock[0]}))\n return_label.append(stock[0])" }, { "execution_count": 6, "cell_type": "code", "metadata": {}, "outputs": [ { "execution_count": 6, "metadata": {}, "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
hs300meidiicbc5liangpingan
date
2018-03-164056.4259.696.3776.8770.50
2018-03-154096.1661.416.4678.0070.50
2018-03-144073.3460.406.4475.5568.80
2018-03-134091.2561.066.5074.6169.45
2018-03-124127.6760.736.4576.1571.11
\n
", "text/plain": " hs300 meidi icbc 5liang pingan\ndate \n2018-03-16 4056.42 59.69 6.37 76.87 70.50\n2018-03-15 4096.16 61.41 6.46 78.00 70.50\n2018-03-14 4073.34 60.40 6.44 75.55 68.80\n2018-03-13 4091.25 61.06 6.50 74.61 69.45\n2018-03-12 4127.67 60.73 6.45 76.15 71.11" }, "output_type": "execute_result" } ], "source": "df.head()" }, { "source": "### 1.3 \u5bf9\u4e2a\u80a1\u4ef7\u683c\u8d8b\u52bf\u53ef\u89c6\u5316\u5c55\u73b0\n\u8bbe\u7f6e\u6570\u636e\u96c6\u683c\u5f0f\uff0c\u5e76\u628a\u4ef7\u683c\u5f52\u4e00\u4ee5\u89c2\u5bdf\u4e2a\u80a1\u8d8b\u52bf\uff0c\u5e76\u4f7f\u7528\u6caa\u6df1300\u6307\u6570\u5bf9\u7167\u3002", "cell_type": "markdown", "metadata": {} }, { "execution_count": 7, "cell_type": "code", "metadata": {}, "outputs": [], "source": "data = df" }, { "execution_count": 8, "cell_type": "code", "metadata": {}, "outputs": [], "source": "data.index = pd.to_datetime(data.index, format='%Y-%m-%d', infer_datetime_format=True)" }, { "execution_count": 9, "cell_type": "code", "metadata": {}, "outputs": [], "source": "data = data.sort_index()" }, { "execution_count": 43, "cell_type": "code", "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "2.1.0\n" } ], "source": "import matplotlib;print(matplotlib.__version__)" }, { "execution_count": 44, "cell_type": "code", "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stderr", "text": "/usr/local/src/conda3_runtime/home/envs/DSX-Python35-Spark/lib/python3.5/site-packages/matplotlib/cbook/deprecation.py:106: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance. In a future version, a new instance will always be created and returned. Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.\n warnings.warn(message, mplDeprecation, stacklevel=1)\n" }, { "output_type": "display_data", "data": { "image/png": "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\n2Mbt9PL9exkc+KmQrauyyPq5hPFnpBHT10xVM0IvAg8bf7UzOOYpKACvN1jKuDEMffvhPeabAIDf\nYQ+WdggfNap2flznCH239+ib8sTbix07dgR/z5s3j927dwN1i5ZJKUlISCA7Oxu/38/OnTuD+154\n4QW2bdvGwYMHueGGG4Lj3bG4kUJxPAi0/6fdhw8jx9TGliuKqonpY27TOaWUuDMziT7//HaxEeCH\njw6ye20uO7/RWhIaw/WcfFp/sveWNiv0Nd8qpCtE6ANZOMYBTYeWjEn98Nvt+Oz2YOcqAJ/Nji7w\n2TSgdm2poYHaWh1Btxf6zsBoNHLmmWfidDp55plngkJ/LAaDgauuuopp06YxdepUjEYjAJMnT2bW\nrFnMmjWrM81WKDoVKWVwcY/r0CF8Dk9wX/nRqjYLva+kBL/d3q4eff6B2ji8OdrE6deOwmjSExFp\norK4osljRbgWugn16INZQc159P36AeDNz0cfUqrcHyL8oQ+L8JNOasntHDdK6NFCNo8G+lECwbaC\n69atC459F6hKd/3113PTTTexceNGXg/E2V555ZV65/wupIrdd921op1C0Qz+qio8BUcxpafhq6gI\nVph0ZezHY6sVeleVt7FTNEnlihX4yjXhbS+h97h9lOU7mHBWGinDYkkZHotOp30TMUebWuDRay9b\n/SExesePGzD07RsU8sYwJtW8yC0gLETofXYbxj6a9x7q0XfUO4ljUULfSp5//nk++eQT3G43b775\nZlebo1B0KEXPPU/pG2+gj4sLClfY8OE4d+3Cn1ccnNcWofccPUrunXcFP7fXYqmSXDtSQp+0KAac\nVDcGbo404XX7cTu9mMIblj8RfBnr0n673TjWryfq7LObDccaAw8C26pVWGfWVn/x2x3oBmsxel10\ntGbL1CltuLu20euFfs6cOcE0yZZw1113cddddzU/UaHoAXgKCtDHx2NKS6MqkGUWc+klHH3kUSp3\n/IK2lAZcVZ4mztIwFcuWBbeFyYQxqWlvuaXUZOklDLDW22eJNgHgKHdh6tew/NV42TUevXPfPvwO\nB5aQpkONUVOErfz9D4i56KJgdUu/zYbOagG0d3dDf1iPzmJpzW0dF902HeR43+J3Z3ryvSl6Fn6b\nDWP/FGL+p3aRkHniJEzp6VRmZCGkD73wt8mjd+6u7eRmSktD6PXtYnPRERthFgORcceERVw2Yr64\n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\nvWEYRoLz/yDtLzSLgNjUAAAAAElFTkSuQmCC\n", "text/plain": "" }, "metadata": {} } ], "source": "from matplotlib.font_manager import FontProperties\nfrom matplotlib.dates import DateFormatter\n#myfont = FontProperties(fname='../datasets/simsun.ttc', size=14) \n\nplt.plot(data.index, data/data.ix[0]*100)\nax = plt.subplot(111)\nleg = plt.legend(data.columns, loc=\"upper left\", prop={'size': 8})\n#leg.get_title().set_fontproperties(myfont)\n#pd.Series(list(leg.get_texts())).apply(lambda t: t.set_fontproperties(myfont))\n\n#plt.title(u'\u80a1\u7968\u8d70\u52bf\u56fe', fontproperties=myfont)\nplt.title('Price Trend')\n#ax.axes.set_xticklabels(data.index, rotation=45, size=8)\n#ax.xaxis.set_major_formatter(DateFormatter(\"%Y-%m-%d\"))\nplt.show()" }, { "source": "## 2. \u8ba1\u7b97\u4e2a\u80a1\u6536\u76ca\u7387\u548c\u6807\u51c6\u5dee", "cell_type": "markdown", "metadata": { "collapsed": true } }, { "source": "### 2.1 \u8ba1\u7b97\u4e2a\u80a1\u5bf9\u6570\u6536\u76ca\u7387\n\u5728\u6295\u8d44\u5b66\u4e2d\uff0c\u4e00\u822c\u662f\u5bf9\u4ef7\u683c\u53d6\u81ea\u7136\u5bf9\u6570\u540e\u518d\u8ba1\u7b97\u6536\u76ca\u7387\u3002\u8fd9\u6837\u505a\u4e00\u822c\u662f\u57fa\u4e8e\u51e0\u79cd\u8003\u8651\uff1a\n\n\u7b80\u4fbf\u8d77\u89c1\uff0c\u8fd9\u91cc\u76f4\u63a5\u4f7f\u7528\u65e5\u5bf9\u6570\u6536\u76ca\u7387\uff0c\u4e0d\u8003\u8651\u5206\u7ea2\u3001\u914d\u80a1\u7b49\u56e0\u7d20", "cell_type": "markdown", "metadata": {} }, { "execution_count": 45, "cell_type": "code", "metadata": {}, "outputs": [], "source": "log_return = np.log(data) - np.log(data.shift(1))" }, { "execution_count": 46, "cell_type": "code", "metadata": {}, "outputs": [ { "execution_count": 46, "metadata": {}, "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
hs300meidiicbc5liangpingan
date
2017-01-03NaNNaNNaNNaNNaN
2017-01-040.0077730.0240890.0000000.035151-0.000841
2017-01-05-0.000154-0.0047040.0022550.0008350.002242
2017-01-06-0.005992-0.0101560.0000000.004720-0.008150
2017-01-090.004836-0.0047750.0044940.009649-0.000564
2017-01-10-0.001675-0.0023960.0000000.001371-0.005379
2017-01-11-0.007103-0.0200770.002240-0.0176900.000000
2017-01-12-0.005075-0.0140850.000000-0.007277-0.000568
2017-01-130.0006900.0007090.0044640.0025250.009891
2017-01-16-0.0001390.0010630.013275-0.0067470.017561
2017-01-170.0020800.023094-0.0044050.008707-0.005820
2017-01-180.0039040.0079240.0000000.0327360.006372
2017-01-19-0.003023-0.0127790.000000-0.002710-0.004428
2017-01-200.0076600.015520-0.0022100.0016270.005808
2017-01-230.002736-0.0089380.0022100.012653-0.001656
\n
", "text/plain": " hs300 meidi icbc 5liang pingan\ndate \n2017-01-03 NaN NaN NaN NaN NaN\n2017-01-04 0.007773 0.024089 0.000000 0.035151 -0.000841\n2017-01-05 -0.000154 -0.004704 0.002255 0.000835 0.002242\n2017-01-06 -0.005992 -0.010156 0.000000 0.004720 -0.008150\n2017-01-09 0.004836 -0.004775 0.004494 0.009649 -0.000564\n2017-01-10 -0.001675 -0.002396 0.000000 0.001371 -0.005379\n2017-01-11 -0.007103 -0.020077 0.002240 -0.017690 0.000000\n2017-01-12 -0.005075 -0.014085 0.000000 -0.007277 -0.000568\n2017-01-13 0.000690 0.000709 0.004464 0.002525 0.009891\n2017-01-16 -0.000139 0.001063 0.013275 -0.006747 0.017561\n2017-01-17 0.002080 0.023094 -0.004405 0.008707 -0.005820\n2017-01-18 0.003904 0.007924 0.000000 0.032736 0.006372\n2017-01-19 -0.003023 -0.012779 0.000000 -0.002710 -0.004428\n2017-01-20 0.007660 0.015520 -0.002210 0.001627 0.005808\n2017-01-23 0.002736 -0.008938 0.002210 0.012653 -0.001656" }, "output_type": "execute_result" } ], "source": "log_return.head(15)" }, { "execution_count": 47, "cell_type": "code", "metadata": {}, "outputs": [], "source": "log_return = log_return.dropna()" }, { "source": "### 2.2 \u8ba1\u7b97\u65b9\u5dee\u53ca\u4e2a\u80a1\u95f4\u7684\u534f\u65b9\u5dee\n\u8fd9\u91cc\uff0c\u7b80\u5355\u4f7f\u7528\u6caa\u6df1300\u6307\u6570\u4f5c\u4e3a\u5e02\u573a\u7ec4\u5408\uff0c\u8ba1\u7b97\u4e2a\u80a1$\\beta$\u7cfb\u6570\n$$ \\beta_s = \\frac{Cov(r_s,r_{hs})}{\\sigma_{hs}^{2}} $$\n", "cell_type": "markdown", "metadata": {} }, { "execution_count": 48, "cell_type": "code", "metadata": {}, "outputs": [], "source": "mycov = log_return.cov()\nmyvar = log_return.var()\nmybeta = mycov['hs300']/myvar['hs300']" }, { "source": "\u89c2\u5bdf\u4e2a\u80a1\uff0c\u5176\u4e2d\u201c\u5de5\u5546\u94f6\u884c\u201d\u98ce\u9669\u76f8\u5bf9\u80a1\u6307\u8f83\u4f4e\uff0c\u800c\u201c\u4e94\u7cae\u6db2\u201d\u98ce\u9669\u76f8\u5bf9\u8f83\u9ad8", "cell_type": "markdown", "metadata": {} }, { "execution_count": 49, "cell_type": "code", "metadata": {}, "outputs": [ { "execution_count": 49, "metadata": {}, "data": { "text/plain": "icbc 0.486842\nhs300 1.000000\npingan 1.514898\nmeidi 1.533954\n5liang 1.596449\nName: hs300, dtype: float64" }, "output_type": "execute_result" } ], "source": "mybeta.sort_values()" }, { "source": "### 2.3 \u53ef\u89c6\u5316\u6536\u76ca\u7387\u5206\u5e03\n\u4f7f\u7528\u76f4\u65b9\u56fe\u968f\u673a\u89c2\u5bdf\u5bf9\u6570\u6536\u76ca\u7387\u5206\u5e03", "cell_type": "markdown", "metadata": {} }, { "execution_count": 50, "cell_type": "code", "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "image/png": "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\n+973Ps466yz22GOPUvOpPGW8d+p9v0iqaUWf/cgjjzB//nxWrVo1bNtrr72WT3/607ziFa9g7Nix\nXHTRRbzxjW8EYMmSJZx33nkAfOpTn2LBggUALF++nPe85z385je/4ZhjjuGLX/yio8Ealp9Bnavt\niuFWuuWWW9hpp52G3HfJJZdtM2/TAAAa5UlEQVQ0OY0kabQOP/xwjjvuOCKClStX8va3v53777+f\nX/7yl5x77rn09vYSERxwwAEcd9xxTJo0idNPP53Fixczb948jjnmGG688UaOPrrcol9S+3CaRJ0O\nPfTQzZeSPv300+np6WHPPffknHP+eCrPWbNmcc4557D//vuz9957c//99wPQ39/PEUccwf77788H\nPvABXvOa1/CLX/yiJb+HJHWDF154gfe///3sueeeHHnkkfzmN7/hH//xH9ljjz3YZ599OOWUUwDY\nfvvtN4/qPvvss5uXb7rpJo444ggmT57MpEmTOOKII7jxxhtZu3YtTz/9NAcddBARwV/+5V/yve99\nr2W/p6TGsxguRARHHnkkBxxwAIsXL37Ztn/7t39Lb28vK1eu5D/+4z9YuXLl5n077bQTK1as4PTT\nT+fCCy8E4Nxzz+Wwww5jxYoVnHjiiTz66KMN/V0kqdutWbOGM844g/vuu4+JEyfyne98h/PPP5+7\n7rqLlStXcvHFF29ue80117Dbbrtx7LHHctlllwHw+OOP8+pXv3pzmxkzZvD444/z+OOPM2PGjJds\nl9S9LIYL//mf/8mKFSu44YYb+Kd/+id++MMfbrHtVVddxf77789+++3Hfffdx09/+tPN+9761rcC\ncMABB/DII48AcNttt20epTjqqKOYNGlS434RSaqA2bNnM3fuXOCP/e0+++zDO9/5Tr7xjW8wduwf\nZwGeeOKJ3H///Xzve9/j05/+NFA7X/BgEbHF7ZK6l8VwYZdddgFg2rRpnHjiifzkJz8Zst3PfvYz\nLrzwQpYtW8bKlSs59thjX3S+yW222QaAMWPGsHHjRmDoTleStPU29bXwx/72+9//PmeccQbLly/n\ngAMO2NwHb3LIIYfw0EMP8Ytf/IIZM2bw2GOPbd7X19fHLrvswowZM+jr63vJdkndy2KY2jyyX//6\n15uXb775Zvbaa68h2z799NNst9127Ljjjqxbt44bbhj+yM83vvGNXHXVVQDcfPPNPPnkk+WFlyTx\n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\n", "text/plain": "" }, "metadata": {} } ], "source": "figsize(12, 8)\n\nax = plt.subplot(221)\nplt.hist(log_return[u'pingan'], bins=16, alpha=0.85,\n label=u\"pingan\", color=\"#A60628\")\n#plt.hist(log_return, bins = 10, figsize = (9,6))\nleg = plt.legend(loc=\"upper left\")\n#pd.Series(list(leg.get_texts())).apply(lambda t: t.set_fontproperties(myfont))\n\nax = plt.subplot(222)\nplt.hist(log_return[u'icbc'], bins=16, alpha=0.85,\n label=u\"icbc\", color=\"#A60628\")\n#plt.hist(log_return, bins = 10, figsize = (9,6))\nleg = plt.legend(loc=\"upper left\")\n#pd.Series(list(leg.get_texts())).apply(lambda t: t.set_fontproperties(myfont))\n\nax = plt.subplot(223)\nplt.hist(log_return[u'5liang'], bins=16, alpha=0.85,\n label=u\"5liang\", color=\"#A60628\")\n#plt.hist(log_return, bins = 10, figsize = (9,6))\nleg = plt.legend(loc=\"upper left\")\n#pd.Series(list(leg.get_texts())).apply(lambda t: t.set_fontproperties(myfont))\n\nax = plt.subplot(224)\nplt.hist(log_return[u'hs300'], bins=16, alpha=0.85,\n label=u\"hs300\", color=\"#A60628\")\n#plt.hist(log_return, bins = 10, figsize = (9,6))\nleg = plt.legend(loc=\"upper left\")\n#pd.Series(list(leg.get_texts())).apply(lambda t: t.set_fontproperties(myfont))\n" }, { "source": "## 3. \u8fdb\u884c\u7ec4\u5408\u4f18\u5316", "cell_type": "markdown", "metadata": {} }, { "source": "### 3.1 \u6295\u8d44\u6a21\u578b\u80cc\u666f\n

\u98ce\u9669\u8d44\u4ea7\u7684\u6295\u8d44\u6709\u4e24\u4e2a\u4e3b\u8981\u56e0\u7d20\uff1a\u9884\u671f\u6536\u76ca\u548c\u98ce\u9669\uff0c\u800c\u5e73\u8861\u6536\u76ca\u4e0e\u98ce\u9669\u7684\u5173\u7cfb\u662f\u6295\u8d44\u7ec4\u5408\u8003\u8651\u7684\u6838\u5fc3\u4e4b\u4e00\uff0c\u5982\u4f55\u914d\u7f6e\u4e2a\u80a1\u6210\u4e3a\u7ec4\u5408\u4f18\u5316\u7684\u91cd\u70b9\u3002

\n

\u8fd9\u91cc\u7684\u6295\u8d44\u7ec4\u5408\u4f18\u5316\u6a21\u578b\u57fa\u4e8e\u9a6c\u79d1\u7ef4\u5179\u7684\u5747\u503c-\u65b9\u5dee\u6a21\u578b\u3002\u6b64\u6a21\u578b\u662f\u5728\u6709\u6548\u5e02\u573a\u5047\u8bbe\u4e0b\uff0c\u7406\u6027\u6295\u8d44\u7684\u65b9\u6cd5\uff0c\u5b83\u901a\u8fc7\u6784\u5efa\u6709\u6548\u6295\u8d44\u7ec4\u5408\u6765\u5206\u6563\u975e\u7cfb\u7edf\u98ce\u9669\uff0c\u5e76\u901a\u8fc7\u6536\u76ca\u3001\u6536\u76ca\u65b9\u5dee\u3001\u6536\u76ca\u95f4\u7684\u534f\u65b9\u5dee\u63ed\u793a\u4e86\u80a1\u7968\u6295\u8d44\u6536\u76ca\u548c\u98ce\u9669\u6210\u6b63\u6bd4\u5173\u7cfb\u3002

\n

\u5747\u503c-\u65b9\u5dee\u6a21\u578b\u7684\u6570\u5b66\u8868\u8fbe\uff1a

\n

\u5047\u8bbe\u4e00\u4e2a$n$\u652f\u80a1\u7968\u7684\u6295\u8d44\u7ec4\u5408\uff0c\u6bcf\u652f\u80a1\u7968\u7684\u6536\u76ca\u7387\u4e3a$R_i$\uff0c$w_j$\u4e3a\u8be5\u4e2a\u80a1\u5728\u7ec4\u5408\u4e2d\u8d44\u91d1\u5360\u6bd4\uff0c\u5219\u7ec4\u5408\u7684\u6536\u76ca\u7387$\\overline{R_p}$ \u4e3a\uff1a

\n$$ \\overline{R_p} = \\sum_{j=1}^n{w_j*R_j} $$\n

\u7ec4\u5408\u7684\u98ce\u9669\u8861\u91cf-\u6807\u51c6\u5dee$\\overline{\\sigma_p}$\u4e3a\uff1a

\n$$ \\overline{\\sigma_p} = \\sqrt{\\sum_{i=1}^{n}{\\sum_{j=1}^n{w_i*w_j*\\sigma_{ij}}}} $$\n

\u5176\u4e2d\uff0c$\\sigma_{ij}$\u4e3a\u4e2a\u80a1i\u4e0e\u4e2a\u80a1j\u7684\u534f\u65b9\u5dee\u3002

\n

\u4ee5\u4e0a\u5f0f\u5b50\u4e5f\u53ef\u4ee5\u5199\u4e3a$\\overline{\\sigma_p}^2 = W^T\\Sigma W$\uff0c\u5176\u4e2dW\u662f\u4e2a\u80a1\u8d44\u91d1\u5360\u6bd4\u7684\u5411\u91cf\uff0c$\\Sigma$\u662f\u534f\u65b9\u5dee\u77e9\u9635\u3002

\n

\u5747\u503c-\u65b9\u5dee\u6a21\u578b\u5c31\u662f\u8981\u505a\u5230\u6700\u5927\u5316\u6536\u76ca\uff0c\u6700\u5c0f\u5316\u98ce\u9669\uff0c\u56e0\u6b64\u53ef\u4ee5\u8868\u793a\u4e3a\uff1a

\n$$ \\begin{cases}\nmin& \\overline{\\sigma_p}^2 = W^T\\Sigma W \\\\\nmax& \\overline{R_p} = W^T * R \\\\\ns.t.& \\sum_{i=1}^n{w_i} = 1\n\\end{cases}$$\n\u8fd9\u662f\u4e00\u4e2a\u51f8\u4f18\u5316\u95ee\u9898\uff0c\u7ed9\u5b9a\u9884\u671f\u6536\u76ca\u7387$\\overline{R_p}$\u6211\u4eec\u53ef\u4ee5\u5199\u6210\u4e8c\u6b21\u89c4\u5212\u6a21\u578b\uff1a\n$$ min\\qquad \\overline{\\sigma_p}^2 = W^T\\Sigma W $$\n$$ s.t. \\qquad \\begin{cases}\n& W^TR \\geqslant \\overline{R_p} \\\\\n& w_i \\geqslant 0 \\\\\n& w_i \\leqslant 1 \\\\\n& \\sum_{i=1}^n{w_i} = 1 \\\\\n& ...\n\\end{cases}\n$$", "cell_type": "markdown", "metadata": {} }, { "source": "\u51f8\u4f18\u5316\u7b97\u6cd5\u6211\u4eec\u4f7f\u7528CPLEX\u6765\u89e3\u51b3\u3002", "cell_type": "markdown", "metadata": { "collapsed": true } }, { "execution_count": 51, "cell_type": "code", "metadata": {}, "outputs": [ { "execution_count": 51, "metadata": {}, "data": { "text/plain": "['meidi', 'icbc', '5liang', 'pingan']" }, "output_type": "execute_result" } ], "source": "return_label" }, { "execution_count": 52, "cell_type": "code", "metadata": {}, "outputs": [], "source": "returns = log_return[return_label]" }, { "execution_count": 53, "cell_type": "code", "metadata": {}, "outputs": [], "source": "returns.columns = return_label\nsec = return_label" }, { "source": "### 3.2 \u51c6\u5907\u8c03\u7528cplex\u670d\u52a1", "cell_type": "markdown", "metadata": {} }, { "source": "\u5728DO Optimization\u670d\u52a1\u4e2d\u67e5\u770b\u670d\u52a1\u51ed\u8bc1\uff0c\u590d\u5236url\u548cclient_id\u7684\u503c\u5206\u522b\u5230\u4e0b\u9762SVC_URL\u548cSVC_KEY\u53d8\u91cf\u8d4b\u503c\u57df\u3002", "cell_type": "markdown", "metadata": {} }, { "execution_count": 55, "cell_type": "code", "metadata": {}, "outputs": [], "source": "# The code was removed by DSX for sharing.\nSVC_URL = \"\"\nSVC_KEY = \"\"" }, { "execution_count": 56, "cell_type": "code", "metadata": {}, "outputs": [], "source": "import sys\ntry:\n import docplex.mp\nexcept:\n if hasattr(sys, 'real_prefix'):\n #we are in a virtual env.\n !pip install docplex\n else:\n !pip install --user docplex" }, { "execution_count": 57, "cell_type": "code", "metadata": {}, "outputs": [], "source": "from docplex.mp.advmodel import AdvModel as Model" }, { "execution_count": 58, "cell_type": "code", "metadata": {}, "outputs": [], "source": "df_s = pd.DataFrame(columns=['stock', 'return'])\ndf_s['stock'] = return_label\ndf_s['return'] = log_return[return_label].mean().values" }, { "execution_count": 59, "cell_type": "code", "metadata": {}, "outputs": [], "source": "df_s.set_index(['stock'], inplace=True)" }, { "source": "### 3.3 \u8ba1\u7b97\u534f\u65b9\u5dee\u77e9\u9635", "cell_type": "markdown", "metadata": {} }, { "execution_count": 60, "cell_type": "code", "metadata": {}, "outputs": [], "source": "dfv = pd.DataFrame(np.cov(np.asmatrix(returns).transpose()), index = sec, columns=sec)" }, { "execution_count": 61, "cell_type": "code", "metadata": {}, "outputs": [ { "execution_count": 61, "metadata": {}, "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
meidiicbc5liangpingan
meidi0.0003890.0000260.0002600.000147
icbc0.0000260.0001640.0000140.000068
5liang0.0002600.0000140.0004690.000157
pingan0.0001470.0000680.0001570.000311
\n
", "text/plain": " meidi icbc 5liang pingan\nmeidi 0.000389 0.000026 0.000260 0.000147\nicbc 0.000026 0.000164 0.000014 0.000068\n5liang 0.000260 0.000014 0.000469 0.000157\npingan 0.000147 0.000068 0.000157 0.000311" }, "output_type": "execute_result" } ], "source": "# \u534f\u65b9\u5dee\u77e9\u9635\ndfv" }, { "source": "### 3.4 \u5b9a\u4e49\u51f8\u4f18\u5316\u6a21\u578b\uff1a\n", "cell_type": "markdown", "metadata": {} }, { "execution_count": 62, "cell_type": "code", "metadata": {}, "outputs": [], "source": "def init_model(df_secs, target):\n sec = df_secs.index\n mdl = Model(name='portfolio_miqp')\n df_secs['frac'] = mdl.continuous_var_list(sec, name='frac', ub=1)\n # max fraction\n # every stock fraction must great than 0\n frac_max = 0.95\n for row in df_secs.itertuples():\n mdl.add_constraint(row.frac <= frac_max)\n mdl.add_constraint(row.frac >= 0.0)\n\n # sum of fractions equal 100%\n mdl.add_constraint(mdl.sum(df_secs.frac) == 1);\n # north america constraint:\n # - add a 1-0 column equal to 1 \n # compute the scalar product of frac variables and the 1-0 'is_na' column and set a minimum\n # mdl.add_constraint(mdl.dot(df_secs.frac, df_secs.is_na) >= .4);\n\n # again we use scalar product to compute compound return rate\n # keep the expression to use as a kpi.\n actual_return = mdl.dot(df_secs.frac, df_secs['return'])\n mdl.add_kpi(actual_return, 'ROI')\n\n # KPIs\n fracs = df_secs.frac\n variance = mdl.sum(float(dfv[sec1][sec2]) * fracs[sec1] * fracs[sec2] for sec1 in sec for sec2 in sec)\n mdl.add_kpi(variance, 'Variance')\n\n # finally the objective\n mdl.minimize(variance)\n target_return = target # return data is expressed in percents\n # keep the constraint for later use (more on this later)\n ct_return = mdl.add_constraint(actual_return >= target_return);\n return mdl, ct_return, variance" }, { "execution_count": 63, "cell_type": "code", "metadata": {}, "outputs": [ { "execution_count": 63, "metadata": {}, "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
return
stock
icbc0.001244
pingan0.002332
meidi0.002458
5liang0.002728
\n
", "text/plain": " return\nstock \nicbc 0.001244\npingan 0.002332\nmeidi 0.002458\n5liang 0.002728" }, "output_type": "execute_result" } ], "source": "df_s.sort_values(\"return\")" }, { "source": "### 3.5 \u7ed9\u5b9a\u9884\u671f\u6536\u76ca\u7387\uff0c\u5faa\u73af\u8c03\u7528cplex\u8ba1\u7b97\u6700\u4f4e\u98ce\u9669\uff0c\u5e76\u53ef\u89c6\u5316\u6709\u6548\u524d\u6cbf\u66f2\u7ebf", "cell_type": "markdown", "metadata": {} }, { "execution_count": 64, "cell_type": "code", "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "- for a target return of: 0.0014219158464130618, variance=0.00011688\n- for a target return of: 0.001481276053748206, variance=0.00011688\n- for a target return of: 0.0015406362610833502, variance=0.00011688\n- for a target return of: 0.0015999964684184943, variance=0.00011688\n- for a target return of: 0.0016593566757536387, variance=0.00011688\n- for a target return of: 0.001718716883088783, variance=0.00011691\n- for a target return of: 0.0017780770904239271, variance=0.00011794\n- for a target return of: 0.0018374372977590712, variance=0.00012045\n- for a target return of: 0.0018967975050942156, variance=0.00012445\n- for a target return of: 0.0019561577124293595, variance=0.00012994\n- for a target return of: 0.002015517919764504, variance=0.00013691\n- for a target return of: 0.002074878127099648, variance=0.00014536\n- for a target return of: 0.0021342383344347925, variance=0.00015530\n- for a target return of: 0.002193598541769937, variance=0.00016673\n- for a target return of: 0.0022529587491050807, variance=0.00017964\n- for a target return of: 0.002312318956440225, variance=0.00019403\n- for a target return of: 0.002371679163775369, variance=0.00020991\n- for a target return of: 0.0024310393711105133, variance=0.00022728\n- for a target return of: 0.0024903995784456576, variance=0.00024613\n- for a target return of: 0.002549759785780802, variance=0.00027372\n- for a target return of: 0.0026091199931159463, variance=0.00032005\n" } ], "source": "max_r = np.max(df_s['return'])\nmin_r = np.min(df_s['return'])\ninterval = (max_r - min_r) / 25.0\nvariances = []\nmdl, ct_s, var = init_model(df_s, (min_r+max_r)/2.0)\ntarget_r = []\nfor i in range(3, 24):\n target = i*interval + min_r;\n #print(target)\n target_r.append(target)\n ct_s.rhs = target\n cur_s = mdl.solve(url=SVC_URL, key=SVC_KEY)\n assert cur_s # solve is OK\n cur_variance = var.solution_value\n print('- for a target return of: {0}, variance={1:.8f}'.format(target, cur_variance))\n variances.append(cur_variance**0.5)" }, { "execution_count": 65, "cell_type": "code", "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAucAAAHwCAYAAAAFPMF2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3Xd8VFX6x/HPk1AkFMWCChKCHRAV\nDYiKZa249oZoVKxYcNG1rcqKbVl/Khbswto3iCggqLj2XgkIKmABpQkivZeU5/fHGcwQUgbMzE35\nvl+vvCb33HPvPDegfOfk3HPN3RERERERkeilRV2AiIiIiIgECuciIiIiIlWEwrmIiIiISBWhcC4i\nIiIiUkUonIuIiIiIVBEK5yIiIiIiVYTCuYjIn2RmmWa23MzSo65FRESqN4VzEalVzOxNM7u9lPYT\nzew3M6uzsed09xnu3sjdCyunyqrHzCbGPoAsN7NCM1sdt31TBPX8ZmZdytnf1cyKYvUtM7PJZpaz\nEecfYmb/rJxqRUQSp3AuIrXNM8A5ZmYl2s8Bct29YGNOtilhvjpy93axDyCNgI+BK9Ztu/u/N+Zc\nKfyZ/RyrtwlwI/CMmbVOxRvXlr8XIlL5FM5FpLZ5BdgSOGhdg5k1BY4DnottH2tmX5vZUjObaWa3\nxvXNMjM3swvNbAbwXlxbnVif82MjtcvM7GczuyTu+EPNbJaZXWNmv5vZHDM7P25/AzO718ymm9kS\nM/vEzBrE9nU2s8/MbLGZTTCzQ0u7QDO7wcxeLtE2wMwejH1/XqyuZWb2y8aMKJfFzHY3sw/MbKGZ\nzTOzZ82scdz+38zsWjObCCyNtXWKXccyMxtsZsPjR6vN7GQz+yZ2vR+bWdtY+0tAM+Ct2Mh47/Jq\n8+AVYBWwR9z59zCz98xsUezP66RYe2/gVODm2PlfMrPNYn/GO8Qd/8foemykfoqZ3Wxmc4HH4tpu\niv1Mfq2Mn7WI1GwK5yJSq7j7KmAocG5cczfge3efENteEdu/BXAscNm64BbnEKANcHQpb/M7Iew3\nAc4H7jezfeL2bwdsDrQALgQeiX1AAOgP7AscQPgQcT1QZGYtgNeBf8XarwWGmdk2pbz/C8BfzawJ\ngIW58N2AwWbWEHgQOMbdG8feZ3wp59gUt8eurT2wG9CnxP4zgCOBrcxsM8IHpceApsAo4Ph1Hc2s\nM/Ao4ee3FfA88IqZ1XH30wk/46NiI/cPlleUmaWZ2elAY2BqrK0J8DbwJLA14c/7KTPbOXa+YcAd\nsfOfnuD1ZwF1gZbAug8MrQADmgNXAI+bWaMEzycitZDCuYjURs8Cp68bkSYEs2fX7XT3D9z9W3cv\ncvdvCGH3kBLnuNXdV8TC/nrc/XV3nxobsf0QeIu4kXogH7jd3fPdfTSwHNjNzNKAC4Ar3f1Xdy90\n98/cfQ1wNjDa3UfH6nobyAP+Wsr7TwfGAes+UBwGrHT3L2LbRcAeZtbA3ee4+8REf3Blcffv3f09\nd1/r7r8BD7Dhz+x+d58d+5kdDKx298fdvcDdhwAT4vpeAjzs7mNjP4eBQH3CB5dEtTazxYQR8xeA\ny919UmzfycB37p4bO/8Y4FXCiPmmWkMI9Gvj/l6sBO6M/VmPABzY+U+8h4jUcArnIlLruPsnwDzg\nRDPbEegIDF6338z2M7P3Y1MRlgCXEkZX480s6/xmdoyZfRGb4rGYEKDjj19QYm77SqBRrM9mxEZ3\nS2hF+ECxeN0X0AXYvowyBgNnxr4/a931ufsKwgj2pcAcM3vdzHYv61oSZWbNY9M/fjWzpcB/KP9n\n1hyYVc7+VsBNJa53G8JvGxL1i7tvQfgtxUDCh5T48x9c4vynUvbPMxG/uXt+ibZ57l4Ut73uz1pE\npFQK5yJSWz1HGDE/B3jL3efG7RtMmGbR0t03Bx4nTE2I56Wd1MzqE6ZE9Ae2jYXD0aUcX5r5wGpg\np1L2zQSed/ct4r4auvv/lXGul4BDY3OkTybuw4e7v+nuRxKC6PfAoARqq8g9hOlAe7h7E+Aiyv+Z\nzQF2KLG/Zdz3M4G+Ja43w92Hl3Kucrn7auBqYH8z6xp3/rdKnL+Ru19VxvnXEn7jkRHXtl051yci\nskkUzkWktnoOOAK4mLgpLTGNgYXuvtrMOhFGnhNVjzD9Yh5QYGbHAEclcmBshPUp4L7YSHS6me0f\nC/z/BY43s6Nj7ZtZuLm0ZMBdd655wAfA04QR5MkAZratmZ0Qm3u+hjClpjKWgGwcO9dSM8skhOHy\nfAQ0MLOeZlbHzLoBe8XtHwj8zcyyLWgUq3tdOJ4L7JhocbGA/gBwS6zpFaCDmZ1hZnXNrJ6FG253\nLe38sT+bb4Gc2M//eGD/RN9fRCRRCuciUiu5+zTgM6AhYZQ83uXA7Wa2DOhLuIE00fMuI9wMOBRY\nRAj2Jc9fnmsJIXAMsBC4C0hz95nAicBNhOA/E7iO8v8/PpjwAWRwXFsacA0wO3b+QwjXi5kdZGbL\nN6LWeH0J02yWACMIvz0oU2xO9inA3wg/p5OANwkfGHD3Twk/xyeAxcCPhJ/lutHpfkC/2JSUKxKs\ncSDQxsyOdPdFhJt5zyeM4s8m3GxbN65vx9j5h8TariBMCVpE+G3Eawm+r4hIwsxdv4UTEZHomdkE\n4P/c/YWoaxERiYpGzkVEJBJm9hczaxabVtKTMNf+7ajrEhGJkp5gJiIiUWkHvEi4yXIKcIq7z4+2\nJBGRaGlai4iIiIhIFaFpLSIiIiIiVYTCuYiIiIhIFVGr55xvvfXWnpWVFXUZIiIiIlLDjR07dr67\nb1NRv6SG89iT2AYA6cB/Sj7JLvZgjeeAfYEFwBmxtYcxsxuBCwkPx+jt7m+aWctY/+2AImCguw+I\n9d+b8BS/zYAC4HJ3/6q8+rKyssjLy6ukqxURERERKZ2ZTU+kX9KmtZhZOvAIcAzQFjjTzNqW6HYh\nsMjddwbuJzxsg1i/7oQ7+bsCj8bOVwBc4+5tgM5Ar7hz3g3c5u57Ex6GcXeyrk1EREREJBmSOee8\nEzDF3X9297XAEMLT7eKdSPFjs18GDjczi7UPcfc17v4LYYmtTu4+x93HwR9P4ZsMtIgd70CT2Peb\nE572JiIiIiJSbSRzWksLwuOl15kF7FdWH3cvMLMlwFax9i9KHNsi/kAzywI6AF/Gmq4C3jSz/oQP\nHQdUxkWIiIiIiKRKMkfOrZS2kouql9Wn3GPNrBEwDLjK3ZfGmi8D/u7uLYG/A0+WWpRZTzPLM7O8\nefPmVXAJIiIiIiKpk8xwPgtoGbe9AxtONfmjj5nVIUxHWVjesWZWlxDMc919eFyfHsC67ZcI02o2\n4O4D3T3b3bO32abCG2ZFRERERFImmeF8DLCLmbU2s3qEGzxHlegzihCqAU4D3vPwyNJRQHczq29m\nrYFdgK9i89GfBCa7+30lzjUbOCT2/WHAT5V+RSIiIiIiSZS0OeexOeRXAG8SllJ8yt0nmtntQJ67\njyIE7efNbAphxLx77NiJZjYUmERYoaWXuxeaWRfgHOBbMxsfe6ub3H00cDEwIDYCvxromaxrExER\nERFJBgsD1bVTdna2a51zEREREUk2Mxvr7tkV9UvmtBYREREREdkICuciIiIiIlWEwrmIiIiISBWh\ncC4iIiIiUkUonIuIiIiIVBEK5yIiIiIiVYTCuYiIiIhIFaFwLiIiIiJSRSici4iIiIhUEQrnIiIi\nIlIzLVkC7dqF12pC4VxEREREaqbXXoNJk+D116OuJGEK5yIiIiJSMz377Pqv1UCdqAsQEREREakU\nw4fDBx8Ub3/0UXj98EPo3bu4/dBD4ZRTUllZwhTORURERKRmyM+Hxx6jqKCAQqDuuvY1a+Chh8L3\ndepAly4RFVgxTWsRERERkRph8dFHc//VV7NrnTrcUafEGHSDBrDjjjBhAnTrFk2BCVA4FxEREZFq\n7dtvv+WSSy6hdevWjJk5k+dff53biorW77R2LYwbB23bRlNkghTORURERKTayc/P5+WXX+bQQw+l\na9eutGjRgkmTJjF48GD2X7MGa9gwTGFJTw+vGRnw8cdRl10hhXMRERERqTZ+//13/vWvf9G6dWse\nfPBBLr/8cqZNm0bfvn3ZfvvtQ6fnnoPly6FDB/jss/C6fHlor+IUzkVERESkSnN3vvzyS8455xx2\n2203pk+fzuuvv85HH31Et27dqFu37voH/PQT9O0Ln38OnTqF1759Q3sVZ+4edQ2Ryc7O9ry8vKjL\nEBEREZFSrF69mhdffJGHH36YBQsW0KtXL84//3y23HLLqEvbaGY21t2zK+qnpRRFREREpMqZNm0a\n++23H/vssw+33norXbt2JT09Peqykk7hXEREREQAWLRoEXPm/Ehh4VogmtkV6en12Hbbndlhhx34\n+uuvad68eSR1REXhXERERERYsWIFM2eOoXXrzahfv15kdaxdm8/PP4+hbt0Da10wB4VzEREREQGW\nL19O06ZFNG7cMNI66tWry9Zbr2T58mU0adIk0lqioNVaRERERAR3J61EMszKOp727c9g773PIjv7\nHADOO+9WXn75HQAuuugOJk36udJrSUsL9dRGGjkXERERkTK9//4TbL31FqXu+89/bk5xNTWfRs5F\nREREZJMcemhP8vImAXDZZXeSnX0O7dp145ZbnvijT1bW8dxyyxPss08O7dufwfffTwNg3rxFHHnk\n5eyzTw6XXNKPVq2OY/78xVFcRpWicC4iIiIipTIzjjqqF/vuezYDBw4vt2+/fpeTl/c833zzAh9+\nOJZvvil+4M/WW2/OuHG5XHbZafTv/zwAt902kMMO68i4cbmcfPJfmDHjt6ReS3WhaS0iIiIiUqpP\n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\ngg==\n", "text/plain": "" }, "metadata": {} } ], "source": "plt.plot( variances, target_r, 'bo-')\nplt.scatter(np.sqrt(myvar[1:]), df_s['return'], 100, c='red', marker=\"*\")\nfor label, x, y in zip(return_label, np.sqrt(myvar[1:]), df_s['return']):\n plt.annotate(\n label,\n xy=(x, y), xytext=(-20, -20),\n textcoords='offset points', ha='right', va='bottom',\n bbox=dict(boxstyle='round,pad=0.2', fc='yellow', alpha=0.2),\n arrowprops=dict(arrowstyle = '-', connectionstyle='arc3,rad=0'))\nplt.title('Variance vs. Target Return')\nplt.ylabel('target return (in %)')\nplt.xlabel('std')\nplt.show()" }, { "source": "### 3.6\u771f\u5b9e\u8ba1\u7b97\u5e0c\u671b\u6295\u8d44\u6536\u76ca\u4e0b\u7684\u914d\u7f6e", "cell_type": "markdown", "metadata": {} }, { "execution_count": 67, "cell_type": "code", "metadata": { "scrolled": true }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "target: 0.002 variance: 0.000168\n* model portfolio_miqp solved with objective = 0.000\n* KPI: ROI = 0.002\n* KPI: Variance = 0.000\n-- fraction allocated in: meidi : 19.6676%\n-- fraction allocated in: icbc : 23.7154%\n-- fraction allocated in: 5liang : 25.5651%\n-- fraction allocated in: pingan : 31.0519%\n" } ], "source": "ct_s.rhs = 0.0022\ncur_s = mdl.solve(url=SVC_URL, key=SVC_KEY)\nassert cur_s # solve is OK\ncur_variance = var.solution_value\nprint(\"target: {0} variance: {1:.6f}\".format(ct_s.rhs, cur_variance))\nmdl.report()\nall_fracs = {}\nfor row in df_s.itertuples():\n pct = 100 * row.frac.solution_value\n all_fracs[row[0]] = pct\n print('-- fraction allocated in: {0:<12}: {1:.4f}%'.format(row[0], pct))\n" }, { "source": "### 3.7 \u56fe\u5f62\u5316\u5c55\u73b0\u4e2a\u80a1\u914d\u7f6e", "cell_type": "markdown", "metadata": {} }, { "execution_count": 68, "cell_type": "code", "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "image/png": "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\n7WALD9P2gz3b/9ynbw0IJRn8vX0B/tjALFXtE5EWoCR4rmfAcknAuixCYoFsRiRRl+gCFgALzvz+\ngbMKk1wCnAPE3FYWuk3Ab4BbapubnkzjfvYSkTmq+iRwHvAYcOoQ1nsKv8vhN/gfoNvEgLVBGJ8A\n7J3qgs3wWZeFGbW7v7H0udrmpk8Ak/FbXvcDntuq0qoP+BN+0E2qbW76VJrDGPwrhdQFXQxVwLVD\nXO+LwJdF5Gn8/58tweO3A4eLyLP4/2cjPvzOpI4d9mbSomm/2qnAPOBE4F2EMOVnCJ4BbgH+r7a5\naaeDm+kgInHgL6p64AjWLQO6VFVF5FzgPFU9PcUlmhSxQDZp17RfrQCHAO/GD+hjgTKnRQ2uD3gB\nv2vgMeDxNPQLD8koA/lY4Of4g3ibgYtU9ZWUFmhSxgLZhK5pv9oi/NH/bQE9C/cXQt0KPIl/OvNj\nwD/t5A0TNgtk41zTfrV5wFRg+na3GcG/lSnc3Tpg+YDba/hdEUtqm5uyud/bZAALZBN5TfvV1uAH\ncxz/0KyC4JY/4P72P/fiHyu9Fn/uiLXAamv1miizQDbGmIiww96MMSYiLJCNMSYiLJCNMSYiLJCN\nMSYiLJCNMSYiLJCNMSYiLJCNMSYiLJCNMSYiLJCNMSYiLJCNMSYiLJCNMSYiLJCNMSYiLJCNMSYi\nLJCNMSYiLJCNMSYiLJCNMSYiLJCNMSYiLJCNMSYiLJCNMSYiLJCNMSYiLJCNMSYiLJCNMSYiLJCN\nMSYiLJCNMSYiLJCNMSYiLJCNMSYiLJCNMSYiLJCNMSYiLJCNMSYiLJCNMSYiLJCNMSYi/h+GmRFR\ne2PHJQAAAABJRU5ErkJggg==\n", "text/plain": "" }, "metadata": {} } ], "source": "%matplotlib inline\nimport matplotlib.pyplot as plt\n\ndef display_pie(pie_values, pie_labels, colors=None,title=''):\n plt.axis(\"equal\")\n plt.pie(pie_values, labels=pie_labels, colors=colors, autopct=\"%1.1f%%\")\n plt.title(title)\n plt.show()\n\ndisplay_pie( [t for t in all_fracs.values()], all_fracs.keys(),title='Allocated Fractions')" }, { "source": "\n## \u4f5c\u8005\n\n\u674e\u82f1\u4f1f liyingw@cn.ibm.com\n", "cell_type": "markdown", "metadata": {} }, { "execution_count": null, "cell_type": "code", "metadata": {}, "outputs": [], "source": "" } ], "metadata": { "kernelspec": { "display_name": "Python 3.5 with Spark 2.1", "name": "python3-spark21", "language": "python" }, "language_info": { "mimetype": "text/x-python", "nbconvert_exporter": "python", "version": "3.5.4", "name": "python", "file_extension": ".py", "pygments_lexer": "ipython3", "codemirror_mode": { "version": 3, "name": "ipython" } } }, "nbformat": 4 }