diff --git a/docs/tensorforce-VPG-test.png b/docs/tensorforce-VPG-test.png new file mode 100644 index 0000000..25bca90 Binary files /dev/null and b/docs/tensorforce-VPG-test.png differ diff --git a/readme.md b/readme.md index fc3be61..eea326e 100644 --- a/readme.md +++ b/readme.md @@ -21,6 +21,8 @@ License: AGPLv3 I have not managed to overfit to the training data or generalise to the test data. So far there have been poor results. I have not yet tried hyperparameter optimisation so it could be that parameter tweaking will allow the model to fit. +![](docs/tensorforce-VPG-test.png) + # Installing - `git clone $REPO` diff --git a/tensorforce-VPG.ipynb b/tensorforce-VPG.ipynb index 9d808fd..9c61e4f 100644 --- a/tensorforce-VPG.ipynb +++ b/tensorforce-VPG.ipynb @@ -1103,18 +1103,19 @@ "ExecuteTime": { "end_time": "2017-07-19T00:09:54.262405Z", "start_time": "2017-07-19T08:09:54.226639+08:00" - } + }, + "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", - "execution_count": 103, + "execution_count": 118, "metadata": { "ExecuteTime": { - "end_time": "2017-07-19T00:12:31.618216Z", - "start_time": "2017-07-19T08:11:11.960245+08:00" + "end_time": "2017-07-19T00:44:57.722645Z", + "start_time": "2017-07-19T08:43:41.157149+08:00" } }, "outputs": [ @@ -1123,7 +1124,7 @@ "output_type": "stream", "text": [ "INFO:gym.envs.registration:Making new env: CartPole-v0\n", - "[2017-07-19 08:11:12,136] Making new env: CartPole-v0\n" + "[2017-07-19 08:43:41,316] Making new env: CartPole-v0\n" ] }, { @@ -1138,34 +1139,34 @@ "output_type": "stream", "text": [ "INFO:tensorflow:Restoring parameters from ./outputs/tensorforce-VPG/tensorforce-VPG_20170717_04-42-55.model\n", - "[2017-07-19 08:11:12,145] Restoring parameters from ./outputs/tensorforce-VPG/tensorforce-VPG_20170717_04-42-55.model\n" + "[2017-07-19 08:43:41,321] Restoring parameters from ./outputs/tensorforce-VPG/tensorforce-VPG_20170717_04-42-55.model\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "APV (Accumulated portfolio value): \t 20.01\n", - "SR (Sharpe ratio): \t 599.91\n", - "MDD (max drawdown): \t-18.22%\n", + "APV (Accumulated portfolio value): \t 22.95\n", + "SR (Sharpe ratio): \t 621.32\n", + "MDD (max drawdown): \t-20.81%\n", "\n" ] }, { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 103, + "execution_count": 118, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\nRK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1198,12 +1199,14 @@ "\n", "s=sharpe(df.rate_of_return+1)\n", "mdd=MDD(df.rate_of_return+1)\n", - "print('APV (Accumulated portfolio value): \\t{: 2.2f}'.format(df.portfolio_value.iloc[-1]))\n", + "apv=df.portfolio_value.iloc[-1]\n", + "print('APV (Accumulated portfolio value): \\t{: 2.2f}'.format(apv))\n", "print('SR (Sharpe ratio): \\t{: 2.2f}'.format( s))\n", "print('MDD (max drawdown): \\t{: 2.2%}'.format( mdd))\n", "print('')\n", "\n", "# show one run vs average market performance\n", + "plt.title('test MDD={}, Sharpe={}, APV={}'.format(mdd,s,apv))\n", "df.portfolio_value.plot()\n", "df.mean_market_returns.cumprod().plot(label='mean market performance')\n", "plt.legend()" @@ -1214,8 +1217,8 @@ "execution_count": null, "metadata": { "ExecuteTime": { - "end_time": "2017-07-19T00:29:25.147844Z", - "start_time": "2017-07-19T08:29:25.086489+08:00" + "end_time": "2017-07-19T00:48:39.193976Z", + "start_time": "2017-07-19T08:48:39.154752+08:00" } }, "outputs": [], @@ -1337,11 +1340,29 @@ }, { "cell_type": "code", - "execution_count": 106, + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 119, "metadata": { "ExecuteTime": { - "end_time": "2017-07-19T00:20:04.645322Z", - "start_time": "2017-07-19T08:12:36.061586+08:00" + "end_time": "2017-07-19T00:45:49.630427Z", + "start_time": "2017-07-19T08:44:57.725816+08:00" } }, "outputs": [ @@ -1350,7 +1371,7 @@ "output_type": "stream", "text": [ "INFO:gym.envs.registration:Making new env: CartPole-v0\n", - "[2017-07-19 08:12:36,358] Making new env: CartPole-v0\n" + "[2017-07-19 08:44:58,031] Making new env: CartPole-v0\n" ] }, { @@ -1365,38 +1386,30 @@ "output_type": "stream", "text": [ "INFO:tensorflow:Restoring parameters from ./outputs/tensorforce-VPG/tensorforce-VPG_20170717_04-42-55.model\n", - "[2017-07-19 08:12:36,364] Restoring parameters from ./outputs/tensorforce-VPG/tensorforce-VPG_20170717_04-42-55.model\n" + "[2017-07-19 08:44:58,036] Restoring parameters from ./outputs/tensorforce-VPG/tensorforce-VPG_20170717_04-42-55.model\n" ] }, { - "name": "stdout", - "output_type": "stream", - "text": [ - "APV (Accumulated portfolio value): \t 55083.66\n", - "SR (Sharpe ratio): \t 1010.75\n", - "MDD (max drawdown): \t-13.01%\n", - "\n" + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0mrunner\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mRunner\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0magent\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0magent\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menvironment\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0menvironment\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 19\u001b[0m runner.run(\n\u001b[0;32m---> 20\u001b[0;31m episodes=1, max_timesteps=steps, episode_finished=EpisodeFinished(10))\n\u001b[0m\u001b[1;32m 21\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 22\u001b[0m \u001b[0mdf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0menv\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minfos\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/media/isisilon/Data/linuxOpt/tensorforce/tensorforce/execution/runner.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, episodes, max_timesteps, episode_finished)\u001b[0m\n\u001b[1;32m 139\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 140\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 141\u001b[0;31m \u001b[0mstate\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreward\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mterminal\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0menvironment\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexecute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maction\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maction\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 142\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 143\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0magent\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobserve\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreward\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mreward\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mterminal\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mterminal\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/media/isisilon/Data/linuxOpt/tensorforce/tensorforce/environments/openai_gym.py\u001b[0m in \u001b[0;36mexecute\u001b[0;34m(self, action)\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgym\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maction_space\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgym\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mspaces\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mBox\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0maction\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0maction\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;31m# some gym environments expect a list (f.i. Pendulum-v0)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 67\u001b[0;31m \u001b[0mstate\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreward\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mterminal\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgym\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maction\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 68\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mstate\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreward\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mterminal\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36mstep\u001b[0;34m(self, action)\u001b[0m\n\u001b[1;32m 17\u001b[0m \u001b[0maction\u001b[0m \u001b[0;34m/=\u001b[0m \u001b[0maction\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 19\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maction\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m/home/isisilon/.pyenv/versions/3.6.0/envs/jupyter3/lib/python3.6/site-packages/gym/core.py\u001b[0m in \u001b[0;36mstep\u001b[0;34m(self, action)\u001b[0m\n\u001b[1;32m 94\u001b[0m \u001b[0minfo\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mdict\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mcontains\u001b[0m \u001b[0mauxiliary\u001b[0m \u001b[0mdiagnostic\u001b[0m \u001b[0minformation\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mhelpful\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mdebugging\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0msometimes\u001b[0m \u001b[0mlearning\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 95\u001b[0m \"\"\"\n\u001b[0;32m---> 96\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_step\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maction\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 97\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 98\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mreset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/media/isisilon/Data/My_Documents/Documents/eclipse-workspace/rl_keras_finance/rl-portfolio-management/src/environments/portfolio.py\u001b[0m in \u001b[0;36m_step\u001b[0;34m(self, action)\u001b[0m\n\u001b[1;32m 226\u001b[0m np.sum(weights), 1.0, 3, err_msg='weights should sum to 1. action=\"%s\"' % weights)\n\u001b[1;32m 227\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 228\u001b[0;31m \u001b[0mobservation\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdone1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msrc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_step\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 229\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 230\u001b[0m \u001b[0my1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mobservation\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;31m# relative price vector (open/close)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/media/isisilon/Data/My_Documents/Documents/eclipse-workspace/rl_keras_finance/rl-portfolio-management/src/environments/portfolio.py\u001b[0m in \u001b[0;36m_step\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 51\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 52\u001b[0m \u001b[0;31m# convert to matrix (window, assets, prices)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 53\u001b[0;31m \u001b[0mobs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mdata_window\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0masset\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_matrix\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0masset\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masset_names\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 54\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 55\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstep\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/media/isisilon/Data/My_Documents/Documents/eclipse-workspace/rl_keras_finance/rl-portfolio-management/src/environments/portfolio.py\u001b[0m in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 51\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 52\u001b[0m \u001b[0;31m# convert to matrix (window, assets, prices)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 53\u001b[0;31m \u001b[0mobs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mdata_window\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0masset\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_matrix\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0masset\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masset_names\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 54\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 55\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstep\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/home/isisilon/.pyenv/versions/3.6.0/envs/jupyter3/lib/python3.6/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 1960\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_frame\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1961\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mis_mi_columns\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1962\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_multilevel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1963\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1964\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_column\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/home/isisilon/.pyenv/versions/3.6.0/envs/jupyter3/lib/python3.6/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m_getitem_multilevel\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 2014\u001b[0m \u001b[0mnew_values\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mloc\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2015\u001b[0m result = self._constructor(new_values, index=self.index,\n\u001b[0;32m-> 2016\u001b[0;31m columns=result_columns)\n\u001b[0m\u001b[1;32m 2017\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__finalize__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2018\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/home/isisilon/.pyenv/versions/3.6.0/envs/jupyter3/lib/python3.6/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, data, index, columns, dtype, copy)\u001b[0m\n\u001b[1;32m 304\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 305\u001b[0m mgr = self._init_ndarray(data, index, columns, dtype=dtype,\n\u001b[0;32m--> 306\u001b[0;31m copy=copy)\n\u001b[0m\u001b[1;32m 307\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mlist\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtypes\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mGeneratorType\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 308\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtypes\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mGeneratorType\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/home/isisilon/.pyenv/versions/3.6.0/envs/jupyter3/lib/python3.6/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m_init_ndarray\u001b[0;34m(self, values, index, columns, dtype, copy)\u001b[0m\n\u001b[1;32m 414\u001b[0m \u001b[0;31m# input must be a ndarray, list, Series, index\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 415\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 416\u001b[0;31m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSeries\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 417\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcolumns\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 418\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mvalues\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 106, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAe8AAAFhCAYAAABZMyJlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8VNX9//HXvTPJZLKxhQAJiRECJkEJiyIurZZa69dW\n0foVqfZHqbRqrbhUUau04gJIQVtX3FpB1PYrxb2KtaIWl1IokSgICGFRQggBQgiZLDP3/v4YGBgS\nkskyM5nwfvrgkZk75975zHDlnXPuvecatm3biIiISMwwo12AiIiItI7CW0REJMYovEVERGKMwltE\nRCTGKLxFRERijMJbREQkxjijXUBrlJaWhmW7GRkZYdt2OMVa3bFWL8RmzRCbdavmyFDNkdPeujMy\nMo76mnreIiIiMUbhLSIiEmMU3iIiIjFG4S0iIhJjFN4iIiIxRuEtIiISYxTeIiIiMUbhLSIiEmNi\napKWzqa+vp5Zs2axfft2kpKSuOGGG+jfv3+0yxIRkS5OPe92+Pvf/47b7ebxxx9n8uTJPPTQQ9Eu\nSUREjgFdpudtLXwW+78ft2ndUocDn8/XaLkx8gzMS3921PU2b97MqaeeCkB2djZbt25t0/uLiIi0\nhnre7ZCbm8unn36KbdusWbOGioqKJn8JEBERCYVlWVz0/BoeXfDPZtt1mZ63eenPoJlecnPaOnn8\n+eefz9atW7n++us58cQTGTx4MA6Ho001iIiIeKprsA2Td43+zGimXZcJ72hYu3YtI0aM4Fe/+hXr\n1q1jx44d0S5JRESOAQrvdujfvz/33HMPzz//PMnJyUyZMiXaJYmISIzx+XyBUVvbtkNaR+HdDt26\ndeOBBx6IdhkiIhKj9uysYOI/Khgfv50fX/odLMsKaT2dsCYiIhIlxcUbAfhrfT8AbJ/CW0REJKZY\ntsJbRESkUzMMI+i5bYV2zFvhLSIiEiU799YEPf9v0fqQ1lN4i4iIRMlzNX0Djz37a3h0V8+Q1lN4\ni4iIdALjXw19im2FdxSsWrWKjRv9Zxi+8sor/PSnP2XJkiVNtp03bx6vv/46GzZsYP78+WGrqays\njGuvvTZs2xcRkY6j67yj4O2332bMmDEMHDiQpUuXctdddzFgwIBm18nNzSU3NzdCFYqISGfWZcL7\n2ZXlfLK1qk3rOhyb8fm8jZafnp3Kz0akH3W9xYsX89FHH1FTU8PevXuZMGECSUlJ/OlPfyI+Pp5u\n3bpx6623smHDBp588kni4uIYOXIk//nPf/jqq6/48ssvWb9+PbNnz+Z3v/sdS5cuZcmSJTgcDoYO\nHcrVV18deK/PPvuM119/nd/97ne8++67LFq0iKSkJNLT07n55ptxOhv/Ve7du5frr7+eefPmYRgG\nDz30ECNGjCAlJYXnnnsOy7LweDxMnTqVuLi4wHrjx4/nueeeIz4+nqeeeors7GzOO+88nn76aYqL\ni7Esi0svvZSzzz67Td+3iIi0T0jh/corr7BixQq8Xi/f//73KSgo4LHHHsMwDLKyspg0aRKmabJw\n4UJWrlyJw+Fg4sSJ5ObmUlZWFnLbWFRbW8ucOXOorKzk2muvxTAMHn74YXr37s3f/vY3FixYwGmn\nnUZ9fT1z584FYPv27YwZM4ZRo0ZRVFTEr3/9azweD++//z6PPvooDoeDu+66i08//bTR++3du5d5\n8+bx9NNPk5uby5133skbb7zBxRdf3Khtt27dGDBgAMXFxeTn51NUVMR1113HG2+8wR133EFaWhrP\nP/88H374Ieecc06zn3PZsmVs376dRx55hPr6eq699lpOPvlkkpOTO+aLFBGRkLUY3qtXr2bdunXc\ne++91NfX8/rrrzN//nzGjx/PkCFDeOqpp1ixYgVpaWmsWbOGGTNmsGvXLh544AFmzpzZqrbt8bMR\n6c32kpvT1ruKARQWFmKaJj179iQhIQHLsujdu3fgtWeeeYbTTjuNrKysZrezdetWCgoKAj3ok046\nic2bNzdqt337dnJyckhMTARg6NChrFix4qjb/eEPf8g777zD7t27OeOMM3A4HKSlpfHII4/gdrup\nqKjgxBNPPOr6B+fZLSkpYf369dx4440AeL1eysrKYvaXLhGRWNbiCWurVq0iOzubOXPmMGvWLEaO\nHElJSQkFBQUADB8+nOLiYtauXUthYSGGYZCWlobP56OqqqpVbWPR+vX+a/J2795NXV0dDQ0N7Nq1\nC/B/d/379wfANA991YZhNJq/Njs7my+//BKfz4dt2xQXFwfWPVy/fv3YsmULHo+n0Xs0ZcSIEWzY\nsIG3336b888/H4AHHniA2267jdtvv51evXo1mgg/Pj6eXbt2Yds2GzZsCNQ3bNgw/vjHP/Lggw/y\nne98h4yMjFZ9VyIi0jFa7HlXVVVRUVHB7bffTnl5ObNmzcK27cCsMG63m5qaGjweDykpKYH1Di4H\nQm6bmprabC3hDIu2bLt79+5UV1fzm9/8hn379nHvvffidDq57777MAyDbt26MXPmTL766ivcbnfg\nPU477TSeffZZCgsLcblc9O7dm4EDB/LVV1/x61//GsuyGDlyJOPGjePRRx+lW7du9OrVC7fbTX5+\nPjfddBO33XYbpmmSnZ3NNddcg8vlOmqdP/zhD/nkk0845ZRTALjooou4+eabcbvdpKWl4fF4SE9P\nJz4+noyMDK655hqmTp1KZmYm6enpdO/enYsvvpgNGzZwyy23UFNTwznnnNOmXncsBn4s1gyxWbdq\njgzVHDkt1722Tds17BbuP/bCCy+QmprKBRdcAMCUKVPYvn07zz//PADLly+nuLiYfv360dDQwNix\nYwG49dZbmTp1KrfeeitPPPFESG1bCu+2Dm23pK3D5osXL2br1q1cddVVYaiqZe0Z7o+GWKsXYrNm\niM26VXNkqObICaXusS8cPbyXTxlz1NdaHDbPy8vjs88+w7Ztdu/eTW1tLSeeeCKrV68GoKioiPz8\nfPLy8li1ahWWZVFRUYFt26SmppKTkxNyW2mbHTt2cOONNzb68+yzz0a7NBERCYMWh81HjhzJl19+\nyR133IFlWUyaNIn09HSefPJJvF4vmZmZjB49GtM0ycvLY+rUqdi2zaRJkwCYMGFCyG1jzXnnnRft\nEgDo06cPf/zjH6NdhoiIREiLw+adSWcbNo+2WKs71uqF2KwZYrNu1RwZqjlyojpsLiIiIp2LwltE\nRCQKjrxkuDUU3iIiIlGg8JaQtebuYTt27OCTTz7psPf++uuvmTBhQrtn0xMR6RLaccaZwluOqqio\niC+++KLDtvff//6X0aNH85vf/KbDtikiEqva0/PuMncVW/OZh9Kv69u0rsO5H5+38V3FMrLiKRjm\nPup6ixcv5pNPPqG+vp5du3ZxySWX8PHHH7Np0yauueYazjzzTD744AMWLlyIaZqcdNJJXHXVVezc\nuZM//OEPgfUmTZrEmWeeyaRJkygsLGTjxo0YhsF9990XdOOPefPmsW3bNvbu3UtVVRUTJ07k9ddf\n55tvvuH222+noKCAp59+mnXr1lFVVcXAgQO57bbbmDdvHqtXr8bj8TBlyhQAfD4fs2bNIicnh8sv\nv5yXX36Z9957D8Mw+M53vsNFF13Eiy++SF1dHUOGDOGMM84I1HH55ZeTn59PaWkpOTk5TJkyhZqa\n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\n+vVkZ2dHqxQREZGYErWe96hRoyguLmbq1KnYts21114brVJERERiStTC2zRNrrrqqmi9vYiISMyK\n2rC5iIiItI3CW0REJMYovEVERGKMwltERCTGKLxFRERijMJbREQkxii8RUREYozCW0REJMYYdqj3\nghQREZFOQT1vERGRGKPwFhERiTEKbxERkRij8BYREYkxCm8REZEYo/AWERGJMQpvERGRGHNMhXd5\neTlz5sxh2rRp/Pa3v+WZZ57B4/E02baiooIVK1ZEuMKjmzZtGtu2bYt2Ga3y2muvcdVVV1FfXx/t\nUlqlue/6V7/6Vaf5PNqfIytW92fQPh0Jkd6nj5nwrq+vZ9asWYwdO5Zp06Zx7733kpuby0MPPdRk\n+y+++IJ169ZFuMquZenSpZx++ul88skn0S6ly9H+HHnan8NL+3TrOKNdQKSsXLmSgoICBg0aFFh2\n9tln8+6777J9+3aeeOIJvF4vLpeL66+/nldffZW6ujpOOOEETj755ChWfsi+ffu4//77aWhooLKy\nkssuu4xRo0Zxyy23UFBQwJYtWzAMg1tvvZXExMSo1rp69Wr69OnDueeeyyOPPMLZZ5/NtGnTyMjI\noLS0FNu2uemmm9i2bRsvvPACTqeTc845h29/+9tRrfughQsXUlBQwLnnnsu2bdt4+umnmTZtWrTL\nCtD+HFmxvj+D9ulIiOQ+fcyE944dO+jTp0+j5b179+b222/npptuYtiwYaxYsYItW7Zw0UUXsW3b\ntk6zUwBs3ryZCy64gCFDhrBu3TpeeuklRo0ahcfj4YwzzuDKK6/k4YcfpqioiDPOOCOqtb733nt8\n97vfJSMjA6fTyVdffQXACSecwFVXXcU777zDyy+/zKmnnkpDQwMzZsyIar2xRvtzZGl/Dj/t061z\nzIR3z5492bBhQ6PlO3bsoL6+nsGDBwMEdoQPPvggkuU1qba2FqfTidPp/2vKy8vj1VdfZcmSJRiG\ngc/nC7Q9/vjjAejVqxcNDQ1Rqfeg6upqioqKqKqq4u2336ampobFixcDcOKJJwL+f/QOHq/q169f\n1Go96Mjv+nCdcfp/7c+RE4v7M2ifjoRo7tPHzDHvU045heLi4qCd47333iMlJYURI0YEli9dupS3\n334bwzCivoM/+uijrF27Fsuy2Lt3L/Pnz+ess85i8uTJDBkyJOr1Hc3SpUsZM2YMU6dO5c4772TG\njBkUFxdTVVVFSUkJAGvXrqV///4AmGb0d8Mjv+vs7GwqKysB2LRpU5Sra0z7c+TE4v4M2qcjIZr7\n9DHT805ISOC2225j/vz5VFdX4/P5yM7O5oYbbmDfvn089dRTvPzyy7hcLiZPnszOnTt5+eWXOf74\n46M2ZHfBBRfw7LPPAjB69GgyMzNZsGABr776Kj179mTfvn1RqaslS5Ys4brrrgs8d7lcnHrqqbz3\n3nt88MEHvPnmmyQkJHDdddexdevWKFZ6yJHf9Zlnnskf/vAH1qxZw4ABA6JcXWPanyMnFvdn0D4d\nCdHcp3VLUImYadOm8Ytf/ILMzMxolyLSbtqfJZo6x/iOiIiIhEw9bxERkRijnreIiEiMOWZOWIsV\nXq+XuXPnsnPnThoaGrjkkkvo378/jz32GIZhkJWVxaRJkwJntJaVlTF79mweeOABwH9Zyw033EBW\nVhYAo0aN4vzzz4/a55FjW3v359raWp555hnKy8vxer1ceeWV5ObmRvMjyTGuvfv0vHnz2Lx5MwCV\nlZUkJSUxffr0Vteh8O5kli5dSkpKCpMnT6a6upopU6aQk5PD+PHjGTJkCE899RQrVqxg1KhR/Otf\n/+Ktt96iqqoqsH5JSUlgMgCRaGvv/vz666+TlZXFddddx5YtW9iyZYvCW6Kqvfv0xIkTAf8vAb/7\n3e+4+uqr21SHhs07mdNOO43LLrsM8E+k4HA4KCkpoaCgAIDhw4dTXFwMQFJSUqPpDUtKSigpKeGu\nu+7iwQcfZM+ePRGtX+Rw7d2fV61ahdPpZPr06SxatIjCwsKI1i9ypPbu0wctXryYoUOHkp2d3aY6\nFN6dTEJCAm63G4/Hw4MPPsj48eMBMAwDALfbTU1NDQAjR44kISEhaP3MzEzGjRvH3XffzSmnnMKf\n//znyH4AkcO0d3/et28f+/fv584772TkyJEsWLAgsh9A5Ajt3afB3+t+9913ufDCC9tch8K7E6qo\nqODuu+/mW9/6FmeeeWZgpwDweDwkJSUddd0TTzwxMGXjqFGjAsdWRKKlPftzSkpKYDrMkSNHsnHj\nxrDXK9KS9uzTAMXFxeTn57fr5iQK706msrKS6dOnc8UVVzBmzBgAcnJyWL16NQBFRUXk5+cfdf0n\nnniCf//73wB8/vnngfl0RaKhvfvzCSecwMqVKwH48ssvAydiikRLe/dp8P/bPHz48HbVoRPWOplX\nXnmF6upqFi1axKJFiwD/CQ7PPvssXq+XzMxMRo8efdT1r7jiCubOncs//vEPXC4X11xzTaRKF2mk\nvfvzj370I5544gnuvPNOnE4nv/rVryJVukiT2rtPA5SWlnLWWWe1qw5N0iIiIhJjNGwuIiISYxTe\nIiIiMUbhLSIiEmMU3iIiIjFG4S0iIhJjFN4ix4iNGzcGbo4QiqqqKsaNGxfGikSkrRTeIseIgQMH\ncvPNN0e7DBHpAJqkReQYsXr1av785z8zYMAA3G43X3/9NRUVFWRmZnLjjTeSkJDAsmXL+Otf/0p8\nfDwDBw4MWn/JkiW888472LZNSkoKV155Jf369eO+++5jwIAB/OQnP6G4uJjHH3+c+++/n+7du0fp\nk4p0fep5ixyDNm3axB133MEf/vAH9uzZw6effkplZSVz587l5ptvZtasWfTu3TvQfs2aNXz44Yfc\nc889/P73v+fCCy9kzpw5mKbJ5MmT+fDDD1m+fDlz587l+uuvV3CLhJl63iLHoMLCQuLi4gDIysqi\nurqatWvXkp2dTf/+/QH43ve+x1/+8hcAVq5cSVlZGVOnTg1so7q6murqanr06MHVV1/N7NmzufTS\nSwO3RhSR8FF4ixyD4uPjA48Nw8C27cDPg0zz0MCcZVl861vf4ic/+Ung+Z49ewJ3T/rmm2/o1q0b\nGzZsiNAnEDm2adhcRADIz8/nm2++CdxG9oMPPgi8NnToUD7++GP27NkDwLvvvss999wDwIYNG3jr\nrbe4//77qamp4a233op06SLHHPW8RQSA1NRUrr/+eh555BGcTmfQbQ2HDRvG2LFjue+++zAMA7fb\nzS233EJtbS0PPfQQV155JT179uTaa6/ljjvuID8/X7ejFQkj3VVMREQkxmjYXEREJMYovEVERGKM\nwltERCTGKLxFRERijMJbREQkxii8RUREYozCW0REJMb8f13Pw/cVF70DAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ @@ -1431,9 +1444,9 @@ "print('SR (Sharpe ratio): \\t{: 2.2f}'.format( s))\n", "print('MDD (max drawdown): \\t{: 2.2%}'.format( mdd))\n", "print('')\n", - "df.portfolio_value.plot(label=str(i))\n", "\n", "# show one run vs average market performance\n", + "plt.title('train')\n", "df.portfolio_value.plot()\n", "df.mean_market_returns.cumprod().plot(label='mean market performance')\n", "plt.legend()"