Created
January 30, 2013 18:37
-
-
Save twiecki/4675556 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"metadata": { | |
"name": "zipline nyc algo" | |
}, | |
"nbformat": 3, | |
"nbformat_minor": 0, | |
"worksheets": [ | |
{ | |
"cells": [ | |
{ | |
"cell_type": "heading", | |
"level": 1, | |
"metadata": {}, | |
"source": [ | |
"Zipline tutorial" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"import pandas\n", | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"plt.figsize(10,5)\n", | |
"\n", | |
"colors = ('r', 'g', 'c', 'y', 'b', 'm', 'w', 'k')" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 1 | |
}, | |
{ | |
"cell_type": "raw", | |
"metadata": {}, | |
"source": [ | |
"Loading in data from stocks Apple. Good source of data hard to come by but yahoo is one source." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"from zipline.utils.factory import load_from_yahoo\n", | |
"\n", | |
"data = load_from_yahoo(stocks=['AAPL', 'PEP', 'KO']); data.save('talk_px.dat')" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"AAPL\n", | |
"PEP" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"\n", | |
"KO" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"\n", | |
"SPX" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"\n" | |
] | |
} | |
], | |
"prompt_number": 2 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"data.head()" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>AAPL</th>\n", | |
" <th>KO</th>\n", | |
" <th>PEP</th>\n", | |
" <th>SPX</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Date</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <td><strong>1993-01-04 00:00:00+00:00</strong></td>\n", | |
" <td> 58.25</td>\n", | |
" <td> 42.00</td>\n", | |
" <td> 41.12</td>\n", | |
" <td> 435.38</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td><strong>1993-01-05 00:00:00+00:00</strong></td>\n", | |
" <td> 59.25</td>\n", | |
" <td> 41.13</td>\n", | |
" <td> 40.75</td>\n", | |
" <td> 434.34</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td><strong>1993-01-06 00:00:00+00:00</strong></td>\n", | |
" <td> 61.75</td>\n", | |
" <td> 41.38</td>\n", | |
" <td> 40.12</td>\n", | |
" <td> 434.52</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td><strong>1993-01-07 00:00:00+00:00</strong></td>\n", | |
" <td> 61.00</td>\n", | |
" <td> 40.63</td>\n", | |
" <td> 39.00</td>\n", | |
" <td> 430.73</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td><strong>1993-01-08 00:00:00+00:00</strong></td>\n", | |
" <td> 62.25</td>\n", | |
" <td> 40.25</td>\n", | |
" <td> 39.62</td>\n", | |
" <td> 429.05</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"output_type": "pyout", | |
"prompt_number": 3, | |
"text": [ | |
" AAPL KO PEP SPX\n", | |
"Date \n", | |
"1993-01-04 00:00:00+00:00 58.25 42.00 41.12 435.38\n", | |
"1993-01-05 00:00:00+00:00 59.25 41.13 40.75 434.34\n", | |
"1993-01-06 00:00:00+00:00 61.75 41.38 40.12 434.52\n", | |
"1993-01-07 00:00:00+00:00 61.00 40.63 39.00 430.73\n", | |
"1993-01-08 00:00:00+00:00 62.25 40.25 39.62 429.05" | |
] | |
} | |
], | |
"prompt_number": 3 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"data['AAPL'].plot()" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "pyout", | |
"prompt_number": 4, | |
"text": [ | |
"<matplotlib.axes.AxesSubplot at 0x9ba4bec>" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"png": "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\n/end27FjO8OgQZLIzpwJLFtWfo9S48Z6r1liYmLxpduADGcYgVHrJbwh7r/+VYbdR42S7RdflClG\nNFrP0MSJlq+LipLPmLISmCFDLJd9MpmkXjI62va4u3eXW21KBY2WRCUny5Ceo2UA7uYN59tRrIly\nPsMN51Wp4ryeqDNnpNtbu4Ju6FDg44+tfyBt3iz/Bg/Wf5DPni1/qC4vTxI0bSV2QJ+DZc0aOXaH\nDva1OScHxYsCv/qq/o2zpO+/l2GssDCpZXC3m2+2HELwdg0ayFCkVhelzTPVr599vZREjsjP13ub\nNm6UwnLzXlxtgltt+Eyj9YRb+6L01VeWk8iaK2/h8ZL+9Cf5UrZpk+V+8yt7L1zw3ILCRsKeKOcz\nXE9UYKDzeqLq1ZOaIq1e5/PPZcK65cst6xHMx5EzMmQh3vnzpT6gvJ4o7QPsscekN8S8e/7BB/WZ\nuytaBNic+ULMr7xS/nO1eiDtm6S9jDR+riWj1asDR45ITVT16pKE7thhjOkPjHS+zXk67p9/Btau\nBVaulO277y49DK59zpSsO9LKB6zViT78sD5dQUl33mlf3Bs36m06dUqGEM1XK/ClBMrT57syWBPl\nfIZLopzVEzVzptzOmydTFcycKcNzo0dLcrR8uf7coiJJtFq2lCSqWjVJjJYuLf8Y3bsD2dlSi9Ow\noeUlxrfdJrdpafIBaesvxuLF8i3S1uJ6e75xGt3MmTIcqdWdHDki3/zfflu+jRO5wvbtctuqVdnP\n0eZ5K5kUtWwpt0eOlH+MqCipCwSkTrK88gVrTCZJ8pYskS+fzZvb93pyDvZEOZ/hkihnFZaPH6/f\nz8oCxo6Vb25a/UBmpv74qlWJqFFDErhvvin70mBrataUrvbevWXyvKtXZW4VbW4XLVkLDKz4lyM7\nWy5tvnSp7GE8ZzLa+PlTT0lh/LffJmL0aKBuXT0JdcfVhZ5mtPOtcVXchYUy5UdF6teX+Z7q1i37\nOZGRcluyx0frmTKfcNOaY8ekLlApfd1Ie+Pu2bP0VCq+yJd/zlkT5XwG+Gi3VLKw/OhR+9/j0CG5\njYmRIbUOHeSPZGCgJFSvvmo5bJaTI39M9+6VCTTz8uw/ZvXqUgO1YoXUKwHSA6X1ZhUVVbzQ54ED\nUhuxZYv9xyfbhYXJxKVBQXoNirbQK5Gt/vIXuZjBfBjfmosX5SKI8txyS9lDykOGVPx6Xxpuo7Kx\nJ8r5DJlEaT1ROTnyrWrFCvveQ1tbedUquZS9Vy/Lx2vXlitRtHmH9u+PQ0gIkJIi20lJjrW9VSu5\nsk7Tv7/UQrRvL4XY5SVHu3ZJofYtt7hvyRujjp+bx22+jM/FizL8CkiRrTZDvb/g+XaeK1f0JVve\nfbfs4ffPP5decPPlispiPp2KublzJZGyF8+372FNlPMZLokyLyzXliLQxvrteY/nnpOeoGeflVm1\nzdWuLcuFdO4sV+C9+qp0p990k3yQOTr54pgx0tu0ebMsDfPCC7K/bl3g3/+Wy5rL0q6dtFm7gofc\n4/nnpbfz9tulh+rGG2X/iy/K1Zwll5oh5zp/HnjnHU+3wnbHj0tv9v798jOzYIHM/fT889af/9RT\ncvvww+5rI/ku9kQ5n+GSKPOeqH379D9qa9fKzL0V1UudOiXDck88UfZEkNrl7WFhMn8LkFi8Btvu\n3fb3fGm05KtZM5lG4YYb5FgrVkgiePx4+ZfT79/v3iTKqOPn5nFrU0Row3oNG0pP5K5dcnWSvcPJ\nv/8uExV6I2883ytWABMmuPYYzop782b5ojV5slxx17EjEB8vj5nXRmnLMG3ZIr2bkZGeuQDEG8+3\nO/hy3KyJcj7DJVHmheUrVkiBeJ068mHVo0fFV8xpQ2HlrTjevLkkPL16AatXy4y82vPr1JGrUxyh\nXRIcFqbvM5mk9sZkkg/To0dl2FCr2yrJkRowqjytxykjA2jRQq6WatvW/tnMR46U5WfKOr9kyZtn\nwf7jD1nPTjNlitzOng3MmiXTmNSrJz2W2oUgu3fLZ4nJpA/haWUCRBVhT5TzGS6JCg6WK9yKiqTI\nu08fy8JN7XLh8l5/xx0ym3ZZunSRDzvtg2/VqrhKtxvQr8Arqwfs6FH5w3zLLdJblZMj+82XbTAv\neHc1o46fW4s7OFj+/d//yXbPnnKuzNfrq8ixY/qsz+ZTaHgLbzzf7kii7I27oEA+Z5Ytk2QpKkqm\nGDCfouDwYT1JmjZNJtdt1ar04ukpKZ4bovfG8+0Ovhw3a6Kcz6SU+/JSk8kENx7OqpMn9QnmAPmB\nMpmAe++VmqFJk6QOYfx4YN260q9v0ULmOmnRouJjKaUPtblDybX4HnhA9uXkSIHzmTMyXMC13Nwv\nPV2u4GzYUP8Q27ABuO8+Gaopb44fjXaF1PjxwIwZMm9Ys2aua/OaNdJD68tXZn33nfToFBZ6zzQT\nJT8TGjWSme2Tk6VnqkYNYNw4ywtQAgL0n5svvpAvVKmpwDPPuLXp5OMaNJBSAvO/gZ6Uni5f/u+5\nx9MtKVuFeYtyIzcfzqqiIqXk40ip2bNl3+zZSu3dq9Tly/pjgFJffVX69bfeqlRysn3HXL9+faXb\nbSvz9pv/++MPpQ4cUOroUbc1xa1xexNb4y4s1M/PhAlKzZypP/b990otWmR5vgClWrZU6r339Nft\n3+/ctmtSU+X9t2+X7Y8+UqppU6Vyc8t+jTee7xUrJI60NNcdw964//c/y9/Nw4flNjxcqTNnrL/m\n2DH9+d7CG8+3O/hy3A0aKHXihOOvd1bs164p9fvv3vczbU1FeYuXfDdzH+1b9bffypItgNy2aiXf\nAH/+WWYDv/VWWWMuPl4mudTk5Xl3ncWpU3Ll3pdfynbTprLETGysxOWJdfDIuoAAuRigSxdg+nSZ\nvmLBApkfaOJEICFBZr+/eFEmSgWk+PiJJ4BFi2T7ww9d0zZtAWWtRvD116UOq3t3uQCjoEB6TrQi\nZ2+lTQ3gTTVkZ87I+c3Olh5ibfLK7t3LnjDzxhvlz4120QqRI2rWtJx2xVPatpV/mowM21+bl6ev\nUeoV3JTMKaW8oyfKVrt2WX5bPHRI9kdGKpWR4dm22eL0aaVuv93TrSBbmfeQAkqFhir1zDP69sCB\nSrVvrz8/KUl/bO1a+79djholrytp40bpIYuJUapfP6WaN1fqyBE5zpNP6sesU0dumzWrXNyutnix\ntPOjjyS2oiLPtufKFaX+/nel3n7bcn+dOtLzSORKf/mLUp995ulWKBUUJL+XgYFyO326ba+7cEGe\nf9NNLm2ehYryFsP1RNnqppvkNjhY5mtZuVK+OWZlWV/x3NtERAB79ni6FWQrk0mfXBGQn7XHH5cr\ntQCpwzPvpYiJ0afK6NFDX6/PFqdPAx9/LD1eP/9s+VjXrtIrdu6c9IqFhUlPSVQU8MEHwCefyPPO\nnZPeqqysimfK9yRtdYCffpLYKloIuqDAsRUFbFW9uvQelrww5exZ4NFHXXdcIkCmzdi2zdOt0Ceo\nHjZM6hZXrZI6T2s9rXl5Uj+6f79+dfmxY25raoWYRJUhPFw+2HJz5Q/UW2/JPqDslc3LYtS5NRi3\nfbp3ly7u5GRJgGNiZKj57FkZVtZmytf8+c9ydd+AATIDekXd9EpJMXL9+vK+I0fKsOC1a8Abb+hT\nf8ydKwsmh4QA//2v7Hv7bbkdOVI+1H76SQq2e/UC/vMfuYLsxx8di9uVtIRoyRK5Xbu2/Oc/9JAs\n4++Q1FoAAB6uSURBVGQPW8/31Kn6/fLWufMV/P32PeHh8vvqKGfFHhAgf1ffeEOudl+3Dnj6afki\nUbJEYM0aIC5OSlK0MoZ27ZzSDKsGDZLj2coNy9D6rjp15DYmRp8mYOVK+xYQJrJV7drWJ9KsU0c+\nSKzp1Enq30wmucKlvAVrza9OGzhQ6ueGDpUPjZdfBrp1k8f279evFtQmo9VuAZmXTHvuAw/Ie2i8\n6So4wLJX6V//kg/uQYPk/3PPHrmfkiJJ6qVL8vvtKuYrCrC2iTzh2jW5zc+X32N30K4aX7hQ6jwB\nuWJ84EB9YWxNcrL0kpsvb3bggNzWqye95IDMxegqP/4odYuFhWVPJ2TBkTHC48ePq7i4OBUbG6ta\ntGihZl6/rOjs2bOqR48eqmnTpio+Pl6dP3/errFFb3X5slKTJysVG6vU1auebg1Rae++K7UCBw5Y\n7s/NlVqmzz7T65nmzZPHrl6V7SeesKzH6tjR8iq8HTvKriUqKNBfV7++XHHjTWbM0NuXm1v21asL\nFig1bpzcj4lxTVuaNJHPkUWL5DOFyN0WLZKf8a+/ViozU/ZlZyv10ENK5eS45pi//KL/nhUVKWUy\nyf1fftGfs2OHfB59+61S991n+XpAqRdf1D/jAKUGDHBNW5VS6u675Rgffqgdv/y8xaGsJjMzU+3a\ntUsppVR2drZq1qyZSkpKUhMmTFD//Oc/lVJKTZs2TU2cONHyYD6aRBH5goQEmSrBfNqD776zTBaS\nk6VwXDN8uOyfP19e9803SuXl2Xfc06elsH3oUHmvU6ecEo5TvP22Ur16KfXxx7L92GNKtW5ddjJV\nu7ZS8fGuaUv16kqV+F5J5FZFRUrddZfl1AJ//CH3Z82y//2yspRq105uSx5Hu1DC/DPotdf0+9dT\nCAtXrsjv4KZNSo0cqV9wc+6cXNylvfbBB+1vqy2SkuT/56GHJFF7/HEXFZY3aNAAbdq0AQDUrFkT\nMTExOHHiBJYvX46h1/v2hw4diqUVraFiEL48hl4ZjNu9IiKku3vMGNnetk26pjUJCTLlhflw25/+\nJLd33ild5P362d/NHxGhTSKaCMC+y5VdLT9f6ie0wvu5c4EdO6SQdc0aGboEZH29H3+Uwnl7Z/W3\n5Xxv2SLDtbVr2/fe3oy/377HZNLrAwGZKkCrpTTfX5aSsW/fLiUIkZGWQ+FZWfJ5c+CA1HQOGiTD\ndK+8ol+0ZW2m/ZAQWXGjSxfg00/lIpgaNaSWq0kTOU6rVq65+OPMGam7+vVXqff86iv9QpryVLom\nKjU1Fbt27cKdd96JrKwsRF4f5IyMjESW+Xoj1w0bNgzR1xeBCwsLQ5s2bYqnktdOkL9ta7ylPe7a\n3r17t1e1x9/P94EDsl29umz365eIEyeApUvj0LkzsG1bIhITLV8v80/F4dZbK3/8G2+U8332rHvi\ntWU7ORmIji79+J/+JNsnTwJ5eXEICpLty5eBixftO56mrMc7dIjDXXcBvXolYsMGz/988ve7ctsa\nb2mPvdtdusRpEeDOO4FnnolDVJQ8Pnky8NZbZb9+9+7dxduLFyder3GS7bffTkRuLtCvX9z1L1KJ\niImRx+PjgTNn5P1uuCEOx44BO3YkIjOzdPt279bbJ+mE/vjChUBISBzGjHH+/8+sWbIdFQWkpiYC\nSIVNKtP1lZ2drdq1a6e+/fZbpZRSYWFhFo+Hh4dbbFfycERUjilTpKvbZJL6nwEDZF6YgoKyX1NU\npNTBg85rwyOPOD7fUVGRUlu2OHcup+7dlZo61fbnnz+vVM2aSuXny/YXXyi1erVtr83NlSHN9HSl\nNm/W982aJedl5Uq7mk7kMuZD2AMHKvXoo/r26dO2/Q7+61/y/L/+Vak779Rff+6cUmPHWh7jkUeU\nSkzU66LKW0GgTRulOnVS6tVX9XpFc2fPyv41a5Tq31+pVasc/3/IyFBq+XI9/vHjlbp0SR47ckQb\nTnRBTZRSSuXl5amePXuqf//738X7brvtNpV5vVotIyND3XbbbZYHYxJF5DJFRfIHHJDJNB98UKml\nS93bhieflGVpHDF7trT9889lkszKOnRIqbp17Z8cF5APcKXk//CBByp+zcmTMqGn+R+Or7+WehFA\nqWXL7G8/kausWKFUjRr6z2rJpYiioip+D+25qal6wTqgVOPGcvuPf8jtlClKXbwoBexPPVXx+168\nqNdllpXMffaZUlWr6seMi5Pk79ChipdlKyqS5dtefVWSMPO4rV3w4ZIkqqioSA0ePFiNHz/eYv+E\nCRPUtGnTlFJKTZ06lYXl1/nyWkuVwbg9IztbPmDuvrty39LstX79evXqq0r16aNUSop9r9WKXW+7\nTf9Ae+GFyrVn7VqlunWz/3Xa8S9ckJmRte2nn7b+/PXr16tHHrH8Zj9ggFJ33KFUQIBSX35ZqTC8\nlqd/zj3FX+LetUupLl305CEpSU/6AVnTsSQt9qIi+YzRrugrLLS+ygdQfk+4o7T37tZNepqtXSSS\nnW39tRs2lH5ur16li+M1FeUtDhWWb9q0CfPnz8f69evRtm1btG3bFqtXr8YLL7yAH3/8Ec2aNcO6\ndevwwgsvOPL2RFQJNWvKJLG//OL+2fXr1QOWL5c1GpWyfOzSJaB/f+tzJG3ZIrdvvaXPpzRtmr52\n34oVEo8tLl2SY58/LzOu20ubayssTIpNNf/+NzBqVOlZ3gF9bcN584AvvpDJSXfskOLaAQPsbwOR\nq7VpI8XgJ05I8XZMjEx6mZ4uk+hq8zOVtHGjXJxSpYo+8XRAgLzf/v3ye/rSS1IIrpSNcy3ZqUkT\n4PBhmfT3hReArVtLP+ePP0rvGz0auPdefbtzZ2nj6tUyCbFDKpkQ2sXNhyMyrM8/l29Ymza597iH\nDinVt69SERGyduO8eXqXvNbl//LLUmd07Jg81qSJUuHhSoWF6fUISkk9k1anoH1j7NlTqVdeKb+m\nApD5mCZNUurZZ+2P4dIl/Xj33CMxHD6s1OjR+jBFSdocU+a+/94yHiJf8fjjSt1wgwzVmTt6VKng\nYMspErxFXp7MN7Vli0xlAsi0L8eO6c+5/XZ9OocZM2wrG6gob2ESReSH8vOV6tFDqePHPXN88+Gt\nhg2VOnNGPtBKdqOHh+v3S05kW1Qk814BMvFddLTla++6Sz4wSw4XaI+3aiWF4fYyXwx6wwbL/Z9+\nqtSwYaVfM3585YcfibyFloR06mS533yOKVdNSusMly8rtXev3tYzZ2R4z2RS6s03pX7KVhXlLV60\nQIP/KnlprFEwbs8JDJR5j6Ki3HdM87iXLJGPr6wsaUNEhCxYvGAB8Oqr8pzHH5d5WQAZRii5nJLJ\nJMNimzfLc48elTmcTp8GDh2S+Vw6dZK5nzTms6r88QfQu7f9cZhMQFKSLHratavl/tq1gc8+kzUI\nNatWJWLGDBlGNBJv+Dn3BCPE/d57wJAhMl+TuRo1EhEaKj//SUkeaZpNatTQl64CgHffBUJD5TNp\n8uTSC4BXBtfOIyKXqV9fJvj87TeZ0HLQINn/yiu2v8ddd+n3a9WS24gIqc3o2lXet2lTuf/OO7Iy\n/LhxkvDUrOlYu2NicH2OG0vdu0viN3CgXoehJU/2xETkzerUkQl4n3xS1rmbMkW+5OTnAx99pE+Y\n6e127pTJdrXFvy9fdv4xTNe7q9zCZDLBjYcjIi+QnQ1kZgLNmrnm/f/zH2DWLGD3bqBjR5ll+I47\nXHMsQGZLjoyUwvFbbgF27ZLEbc8e1x2TyN3ee09fCFgr5A4JATZtAtq29Wzb7HH8uCzSnpYGzJhh\n/+sryls4nEdELhUa6roECpChvtBQ4LnnJJFy5Io8ewQHy3I5t94qS+ucPy/f3In8SevWwEMPyf3D\nh4EPPpBeKV9KoADgxhuBZ591LIGyBZMoNzDCGLo1jNtYPBV31aoyvPfee7IdGur6Y370EfCXv0hN\n1tChiTCZXH9Mb8Ofc/92770yxUh6ukwl8Pe/Axs2JHq6WV6HNVFE5PP+9jegfXtZRNmZRaNlqVUL\nWLxYer4KCoARI1x/TCJPaNRI/pF1rIkiIiIisoI1UUREREQuwCTKDYwyhl4S4zYWxm0sjNt4jBx7\nWZhEERERETmANVFEREREVrAmioiIiMgFmES5gVHHkRm3sTBuY2HcxmPk2MvCJIqIiIjIAayJIiIi\nIrKCNVFERERELsAkyg2MOo7MuI2FcRsL4zYeI8deFiZRRERERA5gTRQRERGRFayJIiIiInIBJlFu\nYNRxZMZtLIzbWBi38Rg59rIwiXKD3bt3e7oJHsG4jYVxGwvjNh4jx14WpydRq1evRvPmzdG0aVP8\n85//dPbb+6QLFy54ugkewbiNhXEbC+M2HiPHXhanJlGFhYUYO3YsVq9ejaSkJCxatAj79+935iGI\niIiIvIJTk6itW7eiSZMmiI6ORlBQEB599FEsW7bMmYfwSampqZ5ugkcwbmNh3MbCuI3HyLGXxalT\nHHz11Vf44Ycf8PHHHwMA5s+fj99++w3vv/++HMxkctahiIiIiFyuvDQp0JkHqihJ4hxRRERE5C+c\nOpzXqFEjpKWlFW+npaWhcePGzjwEERERkVdwahLVvn17HDp0CKmpqcjLy8MXX3yBPn36OPMQRERE\nRF7BqcN5gYGB+OCDD9CrVy8UFhZi5MiRiImJceYhfEJhYSGqVKni6WYQuUx2djZCQ0OhlDJcraMR\nYwaAoqIiBARwakEic07/jbj//vtx8OBBHD58GJMmTXL223utffv24Z133gEAQyVQv/32GyZNmoSi\noiJPN8Uj8vPzPd0Et9qxYwcefvhhfPLJJwCMc7HIrl278PHHHyMzM9MwMQNAUlISNm7cCACGTKDy\n8vI83QSPKSws9HQTfILxfitc5MUXX8SLL75YPC2+v/8AXrp0CWPGjMHYsWMRFRWFgIAAQyVSv/76\nK0aNGoVt27Z5uiluce7cOYwdOxZPPvkk9u3bV/zzXVBQ4OGWuVZ+fj5Gjx6NkSNHIjExES+99BK2\nbNni6Wa5XEFBAZ544gkkJCTgvffew9tvv43t27cDMMYFQr/++iseeeQRPPfcc0hKSvL7z3PN5s2b\n8fLLLwMwVmdAZTCJqiTtl6tr16546qmn8NJLLwGQH0B/TirefPNN/Pbbb1izZg3GjBkDwDjfVD/+\n+GOMGjUKbdu2Rdu2bQ3xAfvss88iICAAW7ZswSeffIJ58+YBkCF8f7Zjxw6cPXsWO3fuxIIFC1BU\nVISIiAhPN8vlfv/9d1y4cAF79uzBhx9+iODgYMyYMQNXrlzx+564U6dOYezYsejduzfq1q2LmTNn\nYvbs2Z5ulsvNnTsXQ4cOxZtvvokvvvgCgP9/SXIGY/zVc7KUlBRcu3YNAIp7YH744QeMHj0a9erV\nKx7q8LekIiUlBTk5OQCAoUOHol69ejh9+jS++uorPPvss1i8eDGOHTvm4Va6jvYN/Pjx43jrrbcw\nZswYhISE+O03tpSUFFy5cgUA8MEHH+C9994DANSrVw+xsbE4cOCAJ5vnMikpKbh69SoA+R1eunQp\nLl68iK+//hpbtmzBunXrsHPnTg+30vnM487JycHu3btRUFCAiIgIVK1aFUlJScWfbf5s9+7daNas\nGYYPH47nnnsO/fv3x7Jly5CcnOzpprlUw4YNsW7dOqxevRrPPfccAPmSZISex8qo8uqrr77q6Ub4\nipSUFAwaNAjffPMNVq5ciTZt2qBu3boICAjAnj170LdvX8TGxuKZZ57Bhg0bcNddd6F27dqebnal\nmce9evVqtGrVCrGxsUhNTcXTTz+N5ORkdOvWDcuWLcO+fftw++23o1atWp5uttOkpKSgevXqCAwM\nxLlz5/DJJ59g9OjR2LZtG/72t78hLS0Np06dQmxsrF8UHZuf71WrVqFNmza44YYbih8/e/YsFi1a\nhEcffRS1a9f2i5iB0nG3bNkSbdu2RUhICBYuXIh3330Xb7zxBo4ePYrFixejffv2qFu3rqebXWkl\n427dujWaNm2KpKQkrFy5Ei1btsSCBQvQuXNnJCUl4e6770b16tU93WynWbhwIb788ktcunQJzZs3\nR61atfD666+jd+/eaNCgAcLDw5GWlobNmzejV69enm6u05SMOzo6GjVr1kTTpk3xzTffICUlBd26\ndUNBQYHfflF0Bv/qKnGxd999Fx07dsS6detw33334aWXXkJycjJyc3Nx6tQppKamYsGCBcjKysKp\nU6cQFRXlF92hJeN++eWXcfToUUyYMAGvvfYaEhMTMWrUKLzxxhvIycnB0aNHPd1kp0hJScH999+P\nkSNHYtCgQUhKSkKdOnVQp04dPPbYY1i6dCnGjBmDG264Aa+//jr27NkDk8nk89/crP2c//HHH8WP\nN2/evLiHxp9Y+zk/ePAgnn/+eYSGhmLRokUYPHgwxo8fj5tvvhmbNm3ydJOdwjzuuLg4vPLKKzhx\n4gRef/11VKtWDU899RTatWuHPn36oLCwEOHh4Z5uslMopfDhhx9i+vTpiI6OxoQJE/DJJ58gNDQU\ngwcPLu55DQ8PR48ePXDlyhVkZmZ6uNWVZy3u2bNnIycnp3h4/r///S9mzpyJrKwsBAUFebjF3o1J\nVAW07m0tGWrRogUAYOzYsdi6dSvmzJmDkydPIjAwEB07dsTly5exbt06HD9+HHv37vXZmpHy4t6+\nfTs++ugj5OTkYOjQocVJQ2xsLE6ePIkbb7zRM412MmvJxNGjR/Haa6/9f3v3GhPF2cUB/L8uQYsS\nIbDNeg2mamLFAouukYBRg1bEWyRoIdEGNRGpqMQLSIvxmhijayhIdZU1LiqJFS81KdKtDagVxJDN\nqtUGNoDKRbFFBQOleznvB96daFsvLMg4zPl9Exxy/j4jc+Z5Zp/BnTt3oFarsWDBAiQkJGDOnDnC\neyKlOCvztvPcdXPgEhsbi6amJjgcDknmdXlT7oqKChgMBthsNnh5eeHs2bMAAH9/f9TV1eHTTz8V\np+ge8LrcycnJKCsrw7Fjx+Dl5YWsrCwUFBRg3bp1GDt2LJqbm4UlXqlTKBQoKytDamoqli9fjpyc\nHBQXF+Py5cuYO3curFYrTCYT+vXrBz8/P9TX1/eJlYX/yn358mVcvXoVRAQiQmBgIGJjY5GWlgYA\nKCwsFLnqDxc3Ua9hMpkQGRmJTZs24fTp0/Dw8ICvry/MZjMsFgssFgsCAwPR0NCAlpYWxMbGCs2F\nRqPBzp074ePjI3aMLnvX3HV1dcJFVaFQ4MKFC5gxYwaGDh0q6SWOt11U9Xo9VCoVVq5ciYKCAuG4\npqYmhIWF9X7B3fSu4/3gwQM0NzcLxzU0NODhw4eSnebvynlutVqxdOlSmEwmbN68GREREfD09MSo\nUaPEjtFlXcntmnVRKpX44YcfEBERgdDQUAwcOFDkFO4zGo0oKSkRzuVx48ahvr4edrsdkZGRGD9+\nPEpLS+Hn54e4uDikpKTAarXil19+ARFJdsuDt+WeMGECrl27hocPHwo3Rbm5uTh+/Dh8fX1hsVgk\nP8P+vvAzUf/BarVizZo12LhxI6ZNm4ajR4+iqakJSUlJqKiogNFoREFBAfbs2YNr165BoVAgPj4e\n/v7+wie1goODJXfX0pXcpaWlsNvt0Gq1uH79OlJTU7F582akpqaif//+YkfpMpPJhFWrVsFsNuPF\nixeYMGECSktL0dDQAJVKhcePH+P27dvo6OiARqPB4sWLUVRUBLPZjG+++QZKpRIJCQnw9vYWO8o7\n6+p422w2TJ48GQAQEBAAtVqNMWPGiJyi67qS+/r167DZbIiOjsb06dPhcDiEWUmpNRPujndVVRV0\nOh2++uorJCUlSW7mkYjQ2NiIefPmwWKxoL6+HufPn0dkZCQePXqE2tpajBw5Ev7+/hg+fDjy8vKg\n1Woxe/ZsPH/+HBcvXkRxcTG+/fZbjBgxQuw476yruU+cOAGtVoshQ4aguroaK1asgEqlwpkzZ7Bo\n0SLJjXuvIUZERA6HgxwOBxER5eXl0erVq4XvHT16lAYPHkyPHz8mIiKr1Sp8Lysri44cOUJERE6n\nsxcr7hk9kVvqqqqqSKvV0vnz56miooKWLFlCBw8epJaWFtqxYwdFR0dTWFgYlZeXU1xcHOl0OiIi\nev78Od29e5eKiopETvDuemK8XcdLiVzPc7nmdrHZbERE9Pvvv1N8fLzwtdWrV9PSpUupo6ODli9f\nTsePH6dnz54REdGyZcsoPT1d+Bl//fVX7xfeTe7mzsjIICKip0+fUllZmTjFSwwv5wEwGAwYNmyY\nsMfTZ599hvz8fNTU1ADoXNr55JNPkJKSAgDCNP7hw4dhMBig0WgASO9ZmJ7KLUVOp1PYx6usrAyh\noaFYsGABNBoNZs6cifT0dLS3tyMjIwOZmZn49ddfMWnSJISFhQmzTd7e3hg3bhxmzZolZpR31lPj\nLbWtO+R6nss1N9C5f9+WLVuEDZArKyuF51M9PDyQlZWFS5cu4e7du4iLi8ONGzdw8OBBAJ3Ll1Om\nTBF+lpRm1rubW6vVAgB8fHyEWWf2FmJ3cWJrbW2l+fPn04EDByg4OJju3btHRETr1q2jJUuWUFhY\nGMXHx9OtW7coKiqKHj16RE6nk3Q6HU2cOJFu3LghcgL3yDU3EVFubi6p1WrasmULERFZLBby8fGh\n6upqIiI6dOgQaTQa4Q7OdSd/6NAhCgkJoYqKCnEK7wa5jjfnllduIqLi4mIKCgqixMRE0uv1FB4e\nToWFhTRixIhXcmVnZ9OsWbOIqPN3wJw5c0ir1dLChQuptbVVrPLdJtfcYpN9E0VEdP/+fSIiSk1N\npcWLFxMRkd1upz/++IOuXLki/J0vv/xSmNp98eKFOMX2IDnmlvPFRY7jTcS55Za7pKSEjEaj8OfE\nxETKyckhg8FAGo2GiDr/HRobGykmJka4eWpubqa6ujpRau4Jcs0tNm6iXtLY2EgTJ06kS5cuEVHn\nCeeSnp5OiYmJwlpzXyK33HK9uLjIbbxdOLc8cre1tVF7e7uQ88SJE5SWlkZEREFBQZSZmUlERDdv\n3qQvvvhCtDp7mlxzi01aDze8Z2q1GitXrsTu3bsBdK4Rl5eXY/78+TCbzdi6datk9316E7nldu1j\ntX79elRXV6OoqAhKpRI+Pj6IiIgA0PlcyMuvdJHaJ7HeRG7j7cK55ZH7o48+woABA4T/uyaTSXjf\nocFgwL179xAdHY24uDhJP/f1T3LNLTYFEW/+4EL/f31FTEwMhg4dCk9PT0RGRmLMmDEYPXq02OW9\nN3LNDXQ2SydPnsSVK1cAAOXl5di1axfsdjtyc3Nfed1JXyHX8ebc8sptt9uhUCgwd+5cZGVlYfTo\n0bBarfDz88Nvv/2GgIAADB8+XOwye5xcc4uFZ6JeolAo0NbWhqamJuTn52PkyJGIiorq079oAPnm\nJiKsWrUKKpUKycnJ2LBhA/7880/odDr8+OOPfbKBAuQ73pxbXrk9PDxgs9ng7++PW7duITo6Gjt3\n7oRSqUR4eHifbSTkmlssfWcOt4d899130Gg0+PnnnyX10dbukmPuly8uJSUlyMjIQFRUlNhl9Qo5\njjfAueWW22w24+TJk6ipqUFCQgJWrFghdkm9Qq65xcDLef/gdDoltw9OT5Br7v379+PBgwfYu3ev\nrC4uch1vzi0vdXV1MBqN2LhxIzw9PcUup9fINbcYuIlisibXiwtjjLHu4yaKMcYYY8wNfAvOGGOM\nMeYGbqIYY4wxxtzATRRjjDHGmBu4iWKMfbCUSiVCQkIQGBiI4OBg6HQ6vO0xzvv37yM/P7+XKmSM\nyRk3UYyxD5aXlxfMZjPu3LkDk8mEwsJCbN++/Y3H1NTU4NSpU71UIWNMzriJYoxJgkqlgl6vR3Z2\nNgCgtrYWU6dORWhoKEJDQ1FaWgoASEtLw9WrVxESEoLMzEw4nU5s2rQJWq0WQUFB0Ov1YsZgjPUh\nvMUBY+yD5e3tjdbW1le+5uvri8rKSgwaNAj9+vVD//79UVVVhfj4eNy8eRMlJSXYt28fLl68CADQ\n6/V48uQJvv76a3R0dCA8PBzff/89AgICREjEGOtL+LUvjDFJ+vvvv7FmzRpYLBYolUpUVVUBwL+e\nmfrpp59w+/ZtnDlzBgDQ0tICq9XKTRRjrNu4iWKMSUZ1dTWUSiVUKhW2bduGIUOGIC8vDw6HAwMG\nDHjtcdnZ2Zg5c2YvVsoYkwN+JooxJglPnjxBYmIikpOTAXTOKKnVagCA0WiEw+EA8O8lwM8//xw5\nOTmw2+0AgMrKSrS1tfVy9YyxvohnohhjH6z29naEhITAZrPBw8MDy5YtQ0pKCgAgKSkJMTExMBqN\nmD17NgYNGgQACAoKglKpRHBwMBISErB27VrU1tZCo9GAiPDxxx/j3LlzYsZijPUR/GA5Y4wxxpgb\neDmPMcYYY8wN3EQxxhhjjLmBmyjGGGOMMTdwE8UYY4wx5gZuohhjjDHG3MBNFGOMMcaYG/4H5wh4\ntpAWiAsAAAAASUVORK5CYII=\n" | |
} | |
], | |
"prompt_number": 4 | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 3, | |
"metadata": {}, | |
"source": [ | |
"Simplest possible algorithm: Always buy apple" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"from zipline.algorithm import TradingAlgorithm\n", | |
"\n", | |
"class BuyApple(TradingAlgorithm): # inherit from TradingAlgorithm\n", | |
" def handle_data(self, event_frame): # overload handle_data() method\n", | |
" self.order('AAPL', 1) # stock (='AAPL') to order and amount (=1 shares)" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 5 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"my_algo = BuyApple() # Instantiate our algorithm\n", | |
"results_buy_apple = my_algo.run(data) # Backtest algorithm on dataframe." | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] INFO: Performance: Simulated 2268 trading days out of 2268.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] INFO: Performance: first open: 1993-01-04 14:30:00+00:00\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] INFO: Performance: last close: 2001-12-31 21:00:00+00:00\n" | |
] | |
} | |
], | |
"prompt_number": 6 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"results_buy_apple.head()" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>capital_used</th>\n", | |
" <th>cumulative_capital_used</th>\n", | |
" <th>ending_cash</th>\n", | |
" <th>ending_value</th>\n", | |
" <th>max_capital_used</th>\n", | |
" <th>max_leverage</th>\n", | |
" <th>period_close</th>\n", | |
" <th>period_open</th>\n", | |
" <th>pnl</th>\n", | |
" <th>portfolio_value</th>\n", | |
" <th>positions</th>\n", | |
" <th>returns</th>\n", | |
" <th>starting_cash</th>\n", | |
" <th>starting_value</th>\n", | |
" <th>transactions</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <td><strong>1993-01-04 21:00:00</strong></td>\n", | |
" <td> 0.000000</td>\n", | |
" <td> 0.000000</td>\n", | |
" <td> 100000.000000</td>\n", | |
" <td> 0.00</td>\n", | |
" <td> 0</td>\n", | |
" <td> 0</td>\n", | |
" <td> 1993-01-04 21:00:00+00:00</td>\n", | |
" <td> 1993-01-04 14:30:00+00:00</td>\n", | |
" <td> 0.000000</td>\n", | |
" <td> 100000.000000</td>\n", | |
" <td> []</td>\n", | |
" <td> 0.000000</td>\n", | |
" <td> 100000.000000</td>\n", | |
" <td> 0.00</td>\n", | |
" <td> []</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td><strong>1993-01-05 21:00:00</strong></td>\n", | |
" <td>-59.280006</td>\n", | |
" <td> 59.280006</td>\n", | |
" <td> 99940.719994</td>\n", | |
" <td> 59.25</td>\n", | |
" <td> 0</td>\n", | |
" <td> 0</td>\n", | |
" <td> 1993-01-05 21:00:00+00:00</td>\n", | |
" <td> 1993-01-05 14:30:00+00:00</td>\n", | |
" <td>-0.030006</td>\n", | |
" <td> 99999.969994</td>\n", | |
" <td> [{'amount': 1, 'last_sale_price': 59.25, 'cost...</td>\n", | |
" <td>-0.000000</td>\n", | |
" <td> 100000.000000</td>\n", | |
" <td> 0.00</td>\n", | |
" <td> [{'commission': 0.03, 'price': 59.280005925000...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td><strong>1993-01-06 21:00:00</strong></td>\n", | |
" <td>-61.780006</td>\n", | |
" <td> 61.780006</td>\n", | |
" <td> 99878.939988</td>\n", | |
" <td> 123.50</td>\n", | |
" <td> 0</td>\n", | |
" <td> 0</td>\n", | |
" <td> 1993-01-06 21:00:00+00:00</td>\n", | |
" <td> 1993-01-06 14:30:00+00:00</td>\n", | |
" <td> 2.469994</td>\n", | |
" <td> 100002.439988</td>\n", | |
" <td> [{'amount': 2, 'last_sale_price': 61.75, 'cost...</td>\n", | |
" <td> 0.000025</td>\n", | |
" <td> 99940.719994</td>\n", | |
" <td> 59.25</td>\n", | |
" <td> [{'commission': 0.03, 'price': 61.780006175000...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td><strong>1993-01-07 21:00:00</strong></td>\n", | |
" <td>-61.030006</td>\n", | |
" <td> 61.030006</td>\n", | |
" <td> 99817.909982</td>\n", | |
" <td> 183.00</td>\n", | |
" <td> 0</td>\n", | |
" <td> 0</td>\n", | |
" <td> 1993-01-07 21:00:00+00:00</td>\n", | |
" <td> 1993-01-07 14:30:00+00:00</td>\n", | |
" <td>-1.530006</td>\n", | |
" <td> 100000.909982</td>\n", | |
" <td> [{'amount': 3, 'last_sale_price': 61.0, 'cost_...</td>\n", | |
" <td>-0.000015</td>\n", | |
" <td> 99878.939988</td>\n", | |
" <td> 123.50</td>\n", | |
" <td> [{'commission': 0.03, 'price': 61.0300061, 'dt...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td><strong>1993-01-08 21:00:00</strong></td>\n", | |
" <td>-62.280006</td>\n", | |
" <td> 62.280006</td>\n", | |
" <td> 99755.629976</td>\n", | |
" <td> 249.00</td>\n", | |
" <td> 0</td>\n", | |
" <td> 0</td>\n", | |
" <td> 1993-01-08 21:00:00+00:00</td>\n", | |
" <td> 1993-01-08 14:30:00+00:00</td>\n", | |
" <td> 3.719994</td>\n", | |
" <td> 100004.629976</td>\n", | |
" <td> [{'amount': 4, 'last_sale_price': 62.25, 'cost...</td>\n", | |
" <td> 0.000037</td>\n", | |
" <td> 99817.909982</td>\n", | |
" <td> 183.00</td>\n", | |
" <td> [{'commission': 0.03, 'price': 62.280006225, '...</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"output_type": "pyout", | |
"prompt_number": 7, | |
"text": [ | |
" capital_used cumulative_capital_used ending_cash \\\n", | |
"1993-01-04 21:00:00 0.000000 0.000000 100000.000000 \n", | |
"1993-01-05 21:00:00 -59.280006 59.280006 99940.719994 \n", | |
"1993-01-06 21:00:00 -61.780006 61.780006 99878.939988 \n", | |
"1993-01-07 21:00:00 -61.030006 61.030006 99817.909982 \n", | |
"1993-01-08 21:00:00 -62.280006 62.280006 99755.629976 \n", | |
"\n", | |
" ending_value max_capital_used max_leverage \\\n", | |
"1993-01-04 21:00:00 0.00 0 0 \n", | |
"1993-01-05 21:00:00 59.25 0 0 \n", | |
"1993-01-06 21:00:00 123.50 0 0 \n", | |
"1993-01-07 21:00:00 183.00 0 0 \n", | |
"1993-01-08 21:00:00 249.00 0 0 \n", | |
"\n", | |
" period_close period_open \\\n", | |
"1993-01-04 21:00:00 1993-01-04 21:00:00+00:00 1993-01-04 14:30:00+00:00 \n", | |
"1993-01-05 21:00:00 1993-01-05 21:00:00+00:00 1993-01-05 14:30:00+00:00 \n", | |
"1993-01-06 21:00:00 1993-01-06 21:00:00+00:00 1993-01-06 14:30:00+00:00 \n", | |
"1993-01-07 21:00:00 1993-01-07 21:00:00+00:00 1993-01-07 14:30:00+00:00 \n", | |
"1993-01-08 21:00:00 1993-01-08 21:00:00+00:00 1993-01-08 14:30:00+00:00 \n", | |
"\n", | |
" pnl portfolio_value \\\n", | |
"1993-01-04 21:00:00 0.000000 100000.000000 \n", | |
"1993-01-05 21:00:00 -0.030006 99999.969994 \n", | |
"1993-01-06 21:00:00 2.469994 100002.439988 \n", | |
"1993-01-07 21:00:00 -1.530006 100000.909982 \n", | |
"1993-01-08 21:00:00 3.719994 100004.629976 \n", | |
"\n", | |
" positions returns \\\n", | |
"1993-01-04 21:00:00 [] 0.000000 \n", | |
"1993-01-05 21:00:00 [{'amount': 1, 'last_sale_price': 59.25, 'cost... -0.000000 \n", | |
"1993-01-06 21:00:00 [{'amount': 2, 'last_sale_price': 61.75, 'cost... 0.000025 \n", | |
"1993-01-07 21:00:00 [{'amount': 3, 'last_sale_price': 61.0, 'cost_... -0.000015 \n", | |
"1993-01-08 21:00:00 [{'amount': 4, 'last_sale_price': 62.25, 'cost... 0.000037 \n", | |
"\n", | |
" starting_cash starting_value \\\n", | |
"1993-01-04 21:00:00 100000.000000 0.00 \n", | |
"1993-01-05 21:00:00 100000.000000 0.00 \n", | |
"1993-01-06 21:00:00 99940.719994 59.25 \n", | |
"1993-01-07 21:00:00 99878.939988 123.50 \n", | |
"1993-01-08 21:00:00 99817.909982 183.00 \n", | |
"\n", | |
" transactions \n", | |
"1993-01-04 21:00:00 [] \n", | |
"1993-01-05 21:00:00 [{'commission': 0.03, 'price': 59.280005925000... \n", | |
"1993-01-06 21:00:00 [{'commission': 0.03, 'price': 61.780006175000... \n", | |
"1993-01-07 21:00:00 [{'commission': 0.03, 'price': 61.0300061, 'dt... \n", | |
"1993-01-08 21:00:00 [{'commission': 0.03, 'price': 62.280006225, '... " | |
] | |
} | |
], | |
"prompt_number": 7 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"results_buy_apple.portfolio_value.plot()" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "pyout", | |
"prompt_number": 8, | |
"text": [ | |
"<matplotlib.axes.AxesSubplot at 0xa98e92c>" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"png": "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\neuT+9z853549wGOPSYIGyLJK7CmzL/aU2YmqxsMPP6w6duyoQkJCTPvy8vLUoEGDlF6vV1FRUers\n2bOmY6+++qoKDAxUPXr0UFu3bjXt37t3rwoJCVGBgYHqqaeeMu2/cuWKGjVqlAoMDFT9+/dX6enp\npmOrV69Wer1e6fV6tWbNmkrbV0PzqQlaulQp+a9Aqaws2VdYqFRCglL5+fU75+efK/WXvygVGanU\nL78otXmzUjffrNSf/6zUHXcoVVZmfm1BgfnzAaXCw5V6803z9uLFSg0ZolSnTkpdudLgcIkaXVmZ\n/F1+8UX5uwwoNWyY+filS7KvZ8+K72vdWo5dvmx97PnnZf/58/JvBFDKy0s+o23b2retuNj635/l\nn7IypdLTlereXbYLCur/M6CavfKKUjNnOroVrqemvKXao7t371b79++3Ssqef/559dprrymllFq0\naJGaMWOGUkqpI0eOqD59+qiioiKVlpamunXrpsqufpv169dPJSUlKaWUGjp0qNqyZYtSSql3331X\nTZ48WSmlVFxcnBo9erRSShK/G2+8UZ09e1adPXvW9LyuwZFz+uEHpfbtU2rwYKWaN1cqJkYSmzff\nrP59RUVKXXedJEo+Pko984xSOTlKzZ1r/o/ZYKhbW0pL5X2enkp5e5vPc8MNSi1frlRubsX3bN8u\nXy4vvWR+/fbtSq1YIc9HjlTqxhuVSk6u+fNLSpT6/vu6tZnInr78Uv4eHz+uVF6eUgcOVHxN+UTN\nqE8fc4Jk6cAB8xf4v/9dMaGqi0ceqTwpM8rOVuqTT+p2Tqq7efOU+sc/HN0K19OgpEwppdLS0qyS\nsh49eqgTJ04opZTKyclRPXr0UEpJL9miRYtMrxs8eLD64YcfVHZ2tgoKCjLt37Bhg5o0aZLpNXv2\n7FFKKVVcXKzat2+vlFLq448/Vo8//rjpPZMmTVIbNmyoc3BN0c6dOx3dhAYx/hZu/E15zBjr/1g/\n/ND69SUlSv34o1IvvbTTlHzt2KFUWpr1+zZuVGr6dKWCguS38vvuU+rQoYqff/689Kz9+KO0xdjz\nZsz5v/1Wqau/M9TKuXOS2JX3yCNKvftu9e8tKlJqxgz5/HfeUerJJ+WL0PI3fFe/3g2h1dgdHXdt\nEiVjL3F93vvdd9b/dm+7TfbXJe733pP3Hjig1KBBSu3eXeu3Oh1HX+/6mj9fejrry1Xjbqia8hb3\n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\nAABJRU5ErkJggg==\n" | |
} | |
], | |
"prompt_number": 8 | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 2, | |
"metadata": {}, | |
"source": [ | |
"A classic: Dual Moving Average crossover strategy." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"from zipline.transforms import MovingAverage\n", | |
"\n", | |
"class DualMovingAverage(TradingAlgorithm):\n", | |
" \"\"\"Dual Moving Average Crossover algorithm.\n", | |
"\n", | |
" This algorithm buys apple once its short moving average crosses\n", | |
" its long moving average (indicating upwards momentum) and sells\n", | |
" its shares once the averages cross again (indicating downwards\n", | |
" momentum).\n", | |
"\n", | |
" \"\"\"\n", | |
" def initialize(self, short_window=200, long_window=400):\n", | |
" # Add 2 mavg transforms, one with a long window, one\n", | |
" # with a short window.\n", | |
" self.add_transform(MovingAverage, 'short_mavg', ['price'],\n", | |
" window_length=short_window)\n", | |
"\n", | |
" self.add_transform(MovingAverage, 'long_mavg', ['price'],\n", | |
" window_length=long_window)\n", | |
"\n", | |
" # To keep track of whether we invested in the stock or not\n", | |
" self.invested = False\n", | |
"\n", | |
" # On each day, snapshot these variables and include them\n", | |
" # in the output.\n", | |
" self.record_variables(['short_mavg', 'long_mavg', 'buy', 'sell'])\n", | |
"\n", | |
" def handle_data(self, data):\n", | |
" self.short_mavg = data['AAPL'].short_mavg['price']\n", | |
" self.long_mavg = data['AAPL'].long_mavg['price']\n", | |
" self.buy = False\n", | |
" self.sell = False\n", | |
"\n", | |
" if self.short_mavg > self.long_mavg and not self.invested:\n", | |
" self.order('AAPL', 100)\n", | |
" self.invested = True\n", | |
" self.buy = True\n", | |
" elif self.short_mavg < self.long_mavg and self.invested:\n", | |
" self.order('AAPL', -100)\n", | |
" self.invested = False\n", | |
" self.sell = True" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 9 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"dma = DualMovingAverage()\n", | |
"results = dma.run(data)" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] INFO: Transform: Running StatefulTransform [short_mavg]\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] INFO: Transform: Running StatefulTransform [long_mavg]\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] INFO: Transform: Finished StatefulTransform [long_mavg]\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] INFO: Transform: Finished StatefulTransform [short_mavg]\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] INFO: Performance: Simulated 2268 trading days out of 2268.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] INFO: Performance: first open: 1993-01-04 14:30:00+00:00\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] INFO: Performance: last close: 2001-12-31 21:00:00+00:00\n" | |
] | |
} | |
], | |
"prompt_number": 10 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"results.head()" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>buy</th>\n", | |
" <th>capital_used</th>\n", | |
" <th>cumulative_capital_used</th>\n", | |
" <th>ending_cash</th>\n", | |
" <th>ending_value</th>\n", | |
" <th>long_mavg</th>\n", | |
" <th>max_capital_used</th>\n", | |
" <th>max_leverage</th>\n", | |
" <th>period_close</th>\n", | |
" <th>period_open</th>\n", | |
" <th>pnl</th>\n", | |
" <th>portfolio_value</th>\n", | |
" <th>positions</th>\n", | |
" <th>returns</th>\n", | |
" <th>sell</th>\n", | |
" <th>short_mavg</th>\n", | |
" <th>starting_cash</th>\n", | |
" <th>starting_value</th>\n", | |
" <th>transactions</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <td><strong>1993-01-04 21:00:00</strong></td>\n", | |
" <td> False</td>\n", | |
" <td> 0</td>\n", | |
" <td> 0</td>\n", | |
" <td> 100000</td>\n", | |
" <td> 0</td>\n", | |
" <td> 58.2500</td>\n", | |
" <td> 0</td>\n", | |
" <td> 0</td>\n", | |
" <td> 1993-01-04 21:00:00+00:00</td>\n", | |
" <td> 1993-01-04 14:30:00+00:00</td>\n", | |
" <td> 0</td>\n", | |
" <td> 100000</td>\n", | |
" <td> []</td>\n", | |
" <td> 0</td>\n", | |
" <td> False</td>\n", | |
" <td> 58.2500</td>\n", | |
" <td> 100000</td>\n", | |
" <td> 0</td>\n", | |
" <td> []</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td><strong>1993-01-05 21:00:00</strong></td>\n", | |
" <td> False</td>\n", | |
" <td> 0</td>\n", | |
" <td> 0</td>\n", | |
" <td> 100000</td>\n", | |
" <td> 0</td>\n", | |
" <td> 58.7500</td>\n", | |
" <td> 0</td>\n", | |
" <td> 0</td>\n", | |
" <td> 1993-01-05 21:00:00+00:00</td>\n", | |
" <td> 1993-01-05 14:30:00+00:00</td>\n", | |
" <td> 0</td>\n", | |
" <td> 100000</td>\n", | |
" <td> []</td>\n", | |
" <td> 0</td>\n", | |
" <td> False</td>\n", | |
" <td> 58.7500</td>\n", | |
" <td> 100000</td>\n", | |
" <td> 0</td>\n", | |
" <td> []</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td><strong>1993-01-06 21:00:00</strong></td>\n", | |
" <td> False</td>\n", | |
" <td> 0</td>\n", | |
" <td> 0</td>\n", | |
" <td> 100000</td>\n", | |
" <td> 0</td>\n", | |
" <td> 59.7500</td>\n", | |
" <td> 0</td>\n", | |
" <td> 0</td>\n", | |
" <td> 1993-01-06 21:00:00+00:00</td>\n", | |
" <td> 1993-01-06 14:30:00+00:00</td>\n", | |
" <td> 0</td>\n", | |
" <td> 100000</td>\n", | |
" <td> []</td>\n", | |
" <td> 0</td>\n", | |
" <td> False</td>\n", | |
" <td> 59.7500</td>\n", | |
" <td> 100000</td>\n", | |
" <td> 0</td>\n", | |
" <td> []</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td><strong>1993-01-07 21:00:00</strong></td>\n", | |
" <td> False</td>\n", | |
" <td> 0</td>\n", | |
" <td> 0</td>\n", | |
" <td> 100000</td>\n", | |
" <td> 0</td>\n", | |
" <td> 60.0625</td>\n", | |
" <td> 0</td>\n", | |
" <td> 0</td>\n", | |
" <td> 1993-01-07 21:00:00+00:00</td>\n", | |
" <td> 1993-01-07 14:30:00+00:00</td>\n", | |
" <td> 0</td>\n", | |
" <td> 100000</td>\n", | |
" <td> []</td>\n", | |
" <td> 0</td>\n", | |
" <td> False</td>\n", | |
" <td> 60.0625</td>\n", | |
" <td> 100000</td>\n", | |
" <td> 0</td>\n", | |
" <td> []</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td><strong>1993-01-08 21:00:00</strong></td>\n", | |
" <td> False</td>\n", | |
" <td> 0</td>\n", | |
" <td> 0</td>\n", | |
" <td> 100000</td>\n", | |
" <td> 0</td>\n", | |
" <td> 60.5000</td>\n", | |
" <td> 0</td>\n", | |
" <td> 0</td>\n", | |
" <td> 1993-01-08 21:00:00+00:00</td>\n", | |
" <td> 1993-01-08 14:30:00+00:00</td>\n", | |
" <td> 0</td>\n", | |
" <td> 100000</td>\n", | |
" <td> []</td>\n", | |
" <td> 0</td>\n", | |
" <td> False</td>\n", | |
" <td> 60.5000</td>\n", | |
" <td> 100000</td>\n", | |
" <td> 0</td>\n", | |
" <td> []</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"output_type": "pyout", | |
"prompt_number": 11, | |
"text": [ | |
" buy capital_used cumulative_capital_used ending_cash \\\n", | |
"1993-01-04 21:00:00 False 0 0 100000 \n", | |
"1993-01-05 21:00:00 False 0 0 100000 \n", | |
"1993-01-06 21:00:00 False 0 0 100000 \n", | |
"1993-01-07 21:00:00 False 0 0 100000 \n", | |
"1993-01-08 21:00:00 False 0 0 100000 \n", | |
"\n", | |
" ending_value long_mavg max_capital_used max_leverage \\\n", | |
"1993-01-04 21:00:00 0 58.2500 0 0 \n", | |
"1993-01-05 21:00:00 0 58.7500 0 0 \n", | |
"1993-01-06 21:00:00 0 59.7500 0 0 \n", | |
"1993-01-07 21:00:00 0 60.0625 0 0 \n", | |
"1993-01-08 21:00:00 0 60.5000 0 0 \n", | |
"\n", | |
" period_close period_open pnl \\\n", | |
"1993-01-04 21:00:00 1993-01-04 21:00:00+00:00 1993-01-04 14:30:00+00:00 0 \n", | |
"1993-01-05 21:00:00 1993-01-05 21:00:00+00:00 1993-01-05 14:30:00+00:00 0 \n", | |
"1993-01-06 21:00:00 1993-01-06 21:00:00+00:00 1993-01-06 14:30:00+00:00 0 \n", | |
"1993-01-07 21:00:00 1993-01-07 21:00:00+00:00 1993-01-07 14:30:00+00:00 0 \n", | |
"1993-01-08 21:00:00 1993-01-08 21:00:00+00:00 1993-01-08 14:30:00+00:00 0 \n", | |
"\n", | |
" portfolio_value positions returns sell short_mavg \\\n", | |
"1993-01-04 21:00:00 100000 [] 0 False 58.2500 \n", | |
"1993-01-05 21:00:00 100000 [] 0 False 58.7500 \n", | |
"1993-01-06 21:00:00 100000 [] 0 False 59.7500 \n", | |
"1993-01-07 21:00:00 100000 [] 0 False 60.0625 \n", | |
"1993-01-08 21:00:00 100000 [] 0 False 60.5000 \n", | |
"\n", | |
" starting_cash starting_value transactions \n", | |
"1993-01-04 21:00:00 100000 0 [] \n", | |
"1993-01-05 21:00:00 100000 0 [] \n", | |
"1993-01-06 21:00:00 100000 0 [] \n", | |
"1993-01-07 21:00:00 100000 0 [] \n", | |
"1993-01-08 21:00:00 100000 0 [] " | |
] | |
} | |
], | |
"prompt_number": 11 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"fig = plt.figure()\n", | |
"ax1 = fig.add_subplot(211)\n", | |
"results.portfolio_value.plot(ax=ax1)\n", | |
"\n", | |
"ax2 = fig.add_subplot(212)\n", | |
"data['AAPL'].plot(ax=ax2)\n", | |
"results[['short_mavg', 'long_mavg']].plot(ax=ax2)\n", | |
"\n", | |
"ax2.plot(results.ix[results.buy].index, results.short_mavg[results.buy],\n", | |
" '^', markersize=10, color='m')\n", | |
"ax2.plot(results.ix[results.sell].index, results.short_mavg[results.sell],\n", | |
" 'v', markersize=10, color='k')\n", | |
"plt.legend(loc=0)" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "pyout", | |
"prompt_number": 12, | |
"text": [ | |
"<matplotlib.legend.Legend at 0xbe3b5ec>" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"png": "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\nrF3qmJgYPcbsjTfg99/B3R2mTdOf9/33+v1//qO7VYsnNvXz09cWoraRLkshhBBXZfNmnYx9913J\ntrFjS963bKlf//Y3uOEGmDevpOsyPFyPCXvySf2EZFZWydgxNzedrBW74w6djPn7w+23X7oudnY6\nuQI9xuz55/Xg/BYtdDIG8M47MHKkfoKyuGu0bdvr/S4IUfMkIatjjNrvLnEbi8RtG4cP6yQpIAD6\n9oXdu3WXYun1DO+7T78+/3zZcx95RL8Wd2Xa2+uWNtDX2bdPP+VYLDFRv06aVDIr/5X07g3/938l\n5WnT9OuFB/oZPVqPH/v006u6nM3Z+n7bkpFjvxxJyIQQop7bsgW6d9djuCpisejXFSv0q49P+Rnz\nu3TRrxdWvbMqLl9qhRgfn5K5wbZv1/WZM0c/gRkYeNVhANCnjx5Ptm+fHi+mVNkxY02aQIMGlbum\nELWCqkBwcLBq0aKF6tChg3Vbdna26tGjhzKbzSogIEDl5uYqpZTasGGD6tKli/Lx8VFdunRRmzZt\nsp6zfft21aFDB+Xh4aFefvll6/azZ8+qIUOGKA8PD3XfffeppKQk674lS5Yos9mszGazCgsLu2T9\nrlB9IYQwrEOHlLJYlDp9WimdtuivFSsuffznn+v9ISFXvvbZs5fenpKiVHLyNVdZiHqvorylwoxm\ny5YtaseOHWUSstdff129//77SimlZs+erSZPnqyUUmrnzp0qIyNDKaXU3r17lclksp7TtWtXFRsb\nq5RSqnfv3ur7779XSin173//W40ZM0YppVR4eLgaOnSoUkonfXfccYfKzc1Vubm51veVCUyI63Xg\ngFJTpih1/rxSOTlK7dqlVGioUgUFtq6ZEGWdPKnU/PlK7dypfz7Xry9JwAYOVOrJJ0sSswYNlMrN\nVerUKaU8PZXy9lZq9Gi9z8VFqcJCW0cjRP11zQmZUkolJiaWScjatWunDh8+rJRSKiMjQ7Vr167c\nOUVFRcrZ2VkVFBSo9PR05eXlZd23fPly9cILLyillOrZs6fatm2bUkqpc+fOqWbNmimllPrqq6/U\niy++aD3nhRdeUMuXL69UYPXV5s2bbV0Fm7BF3EuW6F9Sb7yhVHBwyS+4H36ouTrI/TaWysZ96lTZ\n1i9QavBgpZ5/XqnWrZW691697cABfXx+vlJ33ln+HAcHpdasqfp4rpbcb+MxauwV5S2VnocsMzMT\nV1dXQC80npmZWe6Y1atX06VLFxo2bEhaWlqZhcFNJhNpaWkApKWl4X5h4IGDgwNNmzYlOzub9PT0\nMue4ublZz7nYyJEjrcstOTo60qlTJ/wuPJZTPGiwPpV37dpVq+pT02X9RJUfPXrA/v3V+3k//RRN\ns2Ywa5Yug97fo4cfzs6wenXJ8UrBDz9E07Ch3G8pX3u5Mvd706Zo9uyBW27xo18/yM6OZtw46N9f\n7//mm2icnODuu/1wcio5Py7Oj3nz4LvvovnHP/TPs55eIpro6Nr1/ajvZSP/+961a1etqk91lYvf\nJ11qcOVFrjgPWVJSEv369WPPnj0AODk5kZuba93v7OxMTqkJa/bt28eAAQOIioqibdu2bN++nTfe\neIOoqCgAtm7dypw5c1i3bh0+Pj5ERkbSunVrADw8PIiNjWXJkiWcPXuWqVOnAvDuu+/SqFEjJk6c\nWLbyMg+Z4ZRefqU6b71S+sktFxdo3hzatdNPkdnblxwzcCB8/TX88ot+Kq1tW9i1C776Ch5/XK/J\nJ0R1+O03PbFqQYGekqL0jPY//giurrJgthC1UZXOQ+bq6srhw4cByMjIoEWLFtZ9qampDBw4kGXL\nltH2wkQwJpOJ1NTUMscUt36ZTCaSk5MBKCws5NixY7i4uGAymUhJSbGek5KSUqbFTNQPCQl6Dbyi\noqs/p3lz/Vr8OD3oSSGffFIvmVJZ+fl6dm87Oz2P0dmz+gkte3tYuBAeegheeAH8/PQxW7bo8556\nCr75Bl58USdjJ07oR/vffBP++lcYN67ydRHiak2eXLKEUIcOZfc9+KAkY0LURZVOyPr3709YWBgA\nYWFhPPHEEwDk5eXRt29f3n//fe6//37r8a1ataJJkybExsailGLZsmUMGDCg3LVWrVqFv78/AIGB\ngWzYsIG8vDxyc3OJioqiZ8+e1xdpPVG6GbQuys+HsDD9uHr79nDvvfDKK9C/PyxZcvnzoqOjsVj0\nY/txcXpG8B079MSTCxfqhYSLZ+mujMREKP6WHjqkFy4uKtKtY3FxOhEr7YEH9HIuCxfC7Nl6vqNx\n4/Q5f/0rfPml3rdjx9V9flGRnkCzoriNSOK+vJgY+OEH3Rp75oz+o6Cuk/ttPEaO/bIqGnz21FNP\nqVatWqmGDRsqNzc3tXjxYpWdna38/f3LTXvxzjvvqFtuuUV16tTJ+nX06FGlVMm0F3feeacaN26c\n9fpnz55VgwcPtk57kZiYaN23ePFi5eHhoTw8PNSSJUsqPTiuvqrrAyFjY0sGEo8apZSXV0m5devL\nn7d582Y1dKg+rqBAqblz9ZNjxeempOjzf/xRv79a/v76/KIipbKy9BNn//vf1Z9/4kT5bWfOKHXT\nTVf3NGbPnkr5+enrFBWV31/X7/e1MnLcRUX6qckJE5QKD1fq739XKilJ/1w/9ZT+eR00yNY1rVpG\nvt9GZdTYK8pbZC1LUaO++w769dPvi4ogI0O3lr38sm4x27Gj7MLBf/wBycl6AePZs/Vkkq+/Dnv3\n6skmQbdIvfyyXjbluedKzk1OLjt55fnzcOCAblUA8PTUS7Z89x2UatStEnfeqZd28fS8/DFPPqlb\n9krr2ROGDYNnnqna+oi6Y80auNDxQPPmcOutuiW3USM96emnn+oxiqXHUwoh6oaK8hZJyESNyczU\ns4WPHq0TqEaNyu5/5x1Ytw6cnWHBAj2Oq107vc/BAQoL9Tp7fn66XSwhQSdxxY4c0YOZXV31Z40Z\nowfWd+sGAwbo5OfJJ0uOv+02Pd7mq6+qPtauXeFf/9JdtEePQo8eui4nTkDjxvoYOzv9vbjrLpg5\ns+xizm+9pb8fwnjmzNFjxGJi4OGHdff866/rQfwjR9q6dkKI61Fh3lIDLXTVpo5X/5rUhWbezEyl\n9u9X6vffldq3T6k//tDbn3tOd7eUWpChjEOHys+PBLr7ZvPmzerkySt/9pEjehbxNWuUeuihkmvs\n3atUp05K+fjosp+fUl9+qdTx41UXd2nt25eNYcgQpaKi9HullJo3T6lmzcp2a37zje7SffNN3ZWq\nVN2439XBqHFv2rRZgVJBQbauSc0y6v02atxKGTf2ivKWSs9DJsSlpKXpLrpDh+Ddd8vvP3eu5Mmv\n22+/9DVuuw2ys+G//9WtWRYLLF8Ot9yi9xe/VqT4Kcw774T//a9ke/GTaIcO6S7KMWOqt8unWzfd\nuufnpxdnfuMNWLlS7xs1Sj/YsG4dNGxYck5x692ZM7p1pJhS+vvSrFn11VfUDmlp+j5/+aWtayKE\nqGnSZSmuS3i4Tir+8hddDgzU3YA336y7V3buhEmTdPKzc6d+enH+/OqvV34+TJ2q6/Pmm3p6DbNZ\njyGzhdBQ3XWZnKzHA/Xpc/mpMY4c0XXNydFTcIwZAx99pOc5K+3iH/1L/VOQY+rOMcXtqY8+CpGR\n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\nduTk5LB37166du3Kpk2b6NmzJzNnzmT16tVA/Wo9SExM5PTp0wD861//4oMPPgCgefPmeHt78/vv\nv9uyetUmMTGRM2fOAPrfcEREBMeOHWP16tVs27aNTZs2sWPHDhvXsuqVjvvUqVPs2rWLwsJCmjVr\nxo033khCQoL1/7b65KuvvuLvf/87a9asAaBz585s376dP/74g1tuuYV7772XLl268NFHH9m4plXr\n4rgfe+wxWrVqRWBgILfffru161JaySpWv37L1yGJiYn07t2b0aNH88wzz7B//35A/6d999134+bm\nxrRp05g7dy5/+ctfyszjVpeVjnv48OEkJCTg7e3NQw89RGBgIP/617/w8vJi5cqVzJ07t8w8dXVZ\n6biffvppEhIScHZ2xtnZmWeeeYaIiAjGjh1Lq1ateOedd/j111+xs7Or80lZ6biHDRvG/v37ueWW\nW6z77ezsSE9Pt26r6/EWKx33X//6V/bt24evry+zZs3i1Vdf5cUXX+TNN98kOTmZ6dOn15sWk4vj\n/v333+nYsSMPPfQQY8aM4eDBg2zbto0nnniCHTt2kJWVZesqVwmlFP/5z3+YO3cubdq04fXXX+ez\nzz6jcePGDBs2zPoHiJOTEz169OD06dNkZGTYuNbX71JxL168mFOnTllbvD/66CMWLlxIZmamIR9a\nqgxJyGxk/vz5+Pr6smnTJh599FHeeustDhw4QH5+PkeOHCEpKYkvv/ySzMxMjhw5gru7e7346+Li\nuKdNm8bBgwd5/fXXCQkJITo6mueee453332XU6dOcfDgQVtXuUpc6n4fPHiQkJAQ9u7dS8uWLRkw\nYADBwcH06dPH+pdmXe/SuVTc+/bts+738vKythzVJ5f6Od+/fz+TJk2icePGLF++nGHDhvHKK6/Q\ntm1bfvzxR1tXuUqUjtvPz4/p06eTlpbGO++8w0033cTLL7/MPffcQ//+/Tl//jxOTk62rnKVsLOz\nY9u2bUyePJlRo0axaNEioqOj2bhxI48//jh//PEHUVFR2Nvb4+LiQlpaGk2bNrV1ta/bpeLeuHEj\nW7duRSmFUooOHTowePBgpkyZAsD3339v41rXXpKQ1aDiJvzixKp9+/YAvPTSS8TFxfH5559z+PBh\nHBwc8PX15eTJk2zatInk5GR2795dZ8fYVBT39u3b+fjjjzl16hQjRoywtpB4e3tz+PBhbrvtNttU\n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\nhBBCiMD+D8Gyu2Vt16PDAAAAAElFTkSuQmCC\n" | |
} | |
], | |
"prompt_number": 12 | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 2, | |
"metadata": {}, | |
"source": [ | |
"Inferring latent states using Gaussian hidden Markov models (HMM)." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Example inspired by http://scikit-learn.org/dev/auto_examples/plot_hmm_stock_analysis.html#example-plot-hmm-stock-analysis-py\n", | |
"\n", | |
"" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"from pandas.io.data import DataReader\n", | |
"from datetime import datetime\n", | |
"import pytz\n", | |
"\n", | |
"# Load Intel price data from yahoo finance\n", | |
"intel = DataReader(\"INTC\", \"yahoo\", datetime(1995,1,1), datetime(2012,1,1))\n", | |
"\n", | |
"# Rename columns and localize datetime index\n", | |
"intel['price'] = intel['Adj Close']\n", | |
"intel['volume'] = intel.Volume\n", | |
"intel.index = intel.index.tz_localize(pytz.utc)\n", | |
"\n", | |
"# Calculate day-to-day price variation\n", | |
"intel['variation'] = intel.price - intel.shift(1).price\n", | |
"# Create pandas Panel\n", | |
"data = pandas.Panel({'INTC': intel[1:]})\n", | |
"\n", | |
"data.INTC.head()" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Open</th>\n", | |
" <th>High</th>\n", | |
" <th>Low</th>\n", | |
" <th>Close</th>\n", | |
" <th>Volume</th>\n", | |
" <th>Adj Close</th>\n", | |
" <th>price</th>\n", | |
" <th>volume</th>\n", | |
" <th>variation</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Date</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <td><strong>1995-01-04 00:00:00+00:00</strong></td>\n", | |
" <td> 64.00</td>\n", | |
" <td> 64.37</td>\n", | |
" <td> 63.25</td>\n", | |
" <td> 63.63</td>\n", | |
" <td> 41865600</td>\n", | |
" <td> 3.13</td>\n", | |
" <td> 3.13</td>\n", | |
" <td> 41865600</td>\n", | |
" <td> 0.00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td><strong>1995-01-05 00:00:00+00:00</strong></td>\n", | |
" <td> 63.75</td>\n", | |
" <td> 65.00</td>\n", | |
" <td> 63.63</td>\n", | |
" <td> 64.12</td>\n", | |
" <td> 60480000</td>\n", | |
" <td> 3.15</td>\n", | |
" <td> 3.15</td>\n", | |
" <td> 60480000</td>\n", | |
" <td> 0.02</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td><strong>1995-01-06 00:00:00+00:00</strong></td>\n", | |
" <td> 64.12</td>\n", | |
" <td> 65.12</td>\n", | |
" <td> 64.00</td>\n", | |
" <td> 65.00</td>\n", | |
" <td> 56316800</td>\n", | |
" <td> 3.20</td>\n", | |
" <td> 3.20</td>\n", | |
" <td> 56316800</td>\n", | |
" <td> 0.05</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td><strong>1995-01-09 00:00:00+00:00</strong></td>\n", | |
" <td> 64.87</td>\n", | |
" <td> 66.00</td>\n", | |
" <td> 64.87</td>\n", | |
" <td> 66.00</td>\n", | |
" <td> 75056000</td>\n", | |
" <td> 3.24</td>\n", | |
" <td> 3.24</td>\n", | |
" <td> 75056000</td>\n", | |
" <td> 0.04</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td><strong>1995-01-10 00:00:00+00:00</strong></td>\n", | |
" <td> 66.37</td>\n", | |
" <td> 67.37</td>\n", | |
" <td> 66.00</td>\n", | |
" <td> 66.62</td>\n", | |
" <td> 109320000</td>\n", | |
" <td> 3.28</td>\n", | |
" <td> 3.28</td>\n", | |
" <td> 109320000</td>\n", | |
" <td> 0.04</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"output_type": "pyout", | |
"prompt_number": 13, | |
"text": [ | |
" Open High Low Close Volume Adj Close price \\\n", | |
"Date \n", | |
"1995-01-04 00:00:00+00:00 64.00 64.37 63.25 63.63 41865600 3.13 3.13 \n", | |
"1995-01-05 00:00:00+00:00 63.75 65.00 63.63 64.12 60480000 3.15 3.15 \n", | |
"1995-01-06 00:00:00+00:00 64.12 65.12 64.00 65.00 56316800 3.20 3.20 \n", | |
"1995-01-09 00:00:00+00:00 64.87 66.00 64.87 66.00 75056000 3.24 3.24 \n", | |
"1995-01-10 00:00:00+00:00 66.37 67.37 66.00 66.62 109320000 3.28 3.28 \n", | |
"\n", | |
" volume variation \n", | |
"Date \n", | |
"1995-01-04 00:00:00+00:00 41865600 0.00 \n", | |
"1995-01-05 00:00:00+00:00 60480000 0.02 \n", | |
"1995-01-06 00:00:00+00:00 56316800 0.05 \n", | |
"1995-01-09 00:00:00+00:00 75056000 0.04 \n", | |
"1995-01-10 00:00:00+00:00 109320000 0.04 " | |
] | |
} | |
], | |
"prompt_number": 13 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"from sklearn.hmm import GaussianHMM\n", | |
"from zipline.transforms import batch_transform\n", | |
"\n", | |
"HIDDEN_STATES = 4\n", | |
"\n", | |
"# Define batch transform which will be called\n", | |
"# periodically with a continuously updated array\n", | |
"# of the most recent trade data.\n", | |
"@batch_transform\n", | |
"def HMM(data, means_prior=None):\n", | |
" # data is _not_ an event-frame, but an array\n", | |
" # of the most recent trade events\n", | |
" \n", | |
" # Create scikit-learn model using the means\n", | |
" # from the previous model as a prior\n", | |
" model = GaussianHMM(HIDDEN_STATES, \n", | |
" covariance_type=\"diag\",\n", | |
" means_prior=means_prior,\n", | |
" means_weight=1)\n", | |
" \n", | |
" # Extract variation and volume\n", | |
" diff = data.variation['INTC'].values\n", | |
" volume = data.volume['INTC'].values\n", | |
" X = np.column_stack([diff, volume])\n", | |
"\n", | |
" # Estimate model\n", | |
" model.fit([X])\n", | |
" \n", | |
" return model\n", | |
"\n", | |
"class PredictHiddenStates(TradingAlgorithm):\n", | |
" def initialize(self):\n", | |
" # Instantiate batch_transform\n", | |
" self.hmm_transform = HMM(refresh_period=500, # recompute every 500 days\n", | |
" window_length=np.inf, # store all data\n", | |
" compute_only_full=False) # do not wait until window is full\n", | |
" \n", | |
" # State variables\n", | |
" self.state = -1\n", | |
" self.means_prior = None\n", | |
" self.record_variables('state')\n", | |
" \n", | |
" def handle_data(self, data):\n", | |
" # Pass event frame to batch_transform\n", | |
" # Will _not_ directly call the transform but append\n", | |
" # data to a window until full and then compute.\n", | |
" self.hmm = self.hmm_transform.handle_data(data, \n", | |
" means_prior=self.means_prior)\n", | |
" \n", | |
" # Have we fit the model yet?\n", | |
" if self.hmm is None:\n", | |
" return\n", | |
" \n", | |
" # Remember mean for the prior\n", | |
" self.means_prior = self.hmm.means_\n", | |
" \n", | |
" # Predict current state\n", | |
" data_vec = [data['INTC'].variation, data['INTC'].volume]\n", | |
" self.state = self.hmm.predict([data_vec])" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 14 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"model = PredictHiddenStates()\n", | |
"results = model.run(data)" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-01-04 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-01-05 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-01-06 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-01-07 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-01-10 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-01-11 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-01-12 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-01-13 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-01-14 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-01-18 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-01-19 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-01-20 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-01-21 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-01-24 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-01-25 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-01-26 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-01-27 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-01-28 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-01-31 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-02-01 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-02-02 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-02-03 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-02-04 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-02-07 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-02-08 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-02-09 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-02-10 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-02-11 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-02-14 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-02-15 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-02-16 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-02-17 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-02-18 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-02-22 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-02-23 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-02-24 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-02-25 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-02-28 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-01 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-02 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-03 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-04 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-07 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-08 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-09 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-10 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-11 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-14 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-15 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-16 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-17 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-18 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-21 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-22 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-23 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-24 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-28 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-29 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-30 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-03-31 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-01 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-04 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-05 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-06 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-07 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-08 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-11 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-12 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-13 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-14 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-15 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-18 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-19 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-20 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-21 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-22 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-25 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-26 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-27 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-28 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-04-29 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-02 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-03 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-04 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-05 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-06 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-09 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-10 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-11 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-12 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-13 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-16 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-17 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-18 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-19 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-20 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-23 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-24 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-25 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-26 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-27 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-05-31 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-01 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-02 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-03 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-06 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-07 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-08 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-09 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-10 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-13 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-14 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-15 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-16 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-17 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-20 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-21 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-22 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-23 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-24 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-27 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-28 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-29 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-06-30 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-01 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-05 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-06 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-07 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-08 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-11 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-12 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-13 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-14 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-15 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-18 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-19 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-20 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-21 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-22 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-25 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-26 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-27 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-28 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-07-29 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-01 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-02 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-03 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-04 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-05 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-08 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-09 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-10 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-11 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-12 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-15 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-16 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-17 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-18 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-19 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-22 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-23 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-24 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-25 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-26 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-29 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-30 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-08-31 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-01 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-02 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-06 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-07 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-08 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-09 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-12 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-13 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-14 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-15 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-16 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-19 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-20 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-21 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-22 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-23 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-26 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-27 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-28 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-29 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-09-30 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-03 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-04 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-05 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-06 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-07 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-10 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-11 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-12 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-13 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-14 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-17 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-18 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-19 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-20 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-21 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-24 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-25 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-26 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-27 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-28 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-10-31 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-01 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-02 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-03 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-04 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-07 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-08 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-09 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-10 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-11 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-14 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-15 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-16 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-17 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-18 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-21 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-22 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-23 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-25 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-28 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-29 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-11-30 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-01 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-02 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-05 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-06 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-07 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-08 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-09 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-12 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-13 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-14 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-15 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-16 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-19 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-20 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-21 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-22 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-23 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-27 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-28 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-29 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2005-12-30 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-03 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-04 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-05 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-06 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-09 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-10 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-11 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-12 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-13 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-17 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-18 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-19 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-20 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-23 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-24 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-25 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-26 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-27 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-30 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-01-31 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-02-01 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-02-02 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-02-03 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-02-06 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-02-07 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:12] WARNING: Risk: No rate within 1 trading day of end date = 2006-02-08 21:00:00+00:00 and term = 30year. Using 2002-02-15 00:00:00+00:00. Check that date doesn't exceed treasury history range.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:13] INFO: Performance: Simulated 4281 trading days out of 4281.\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:13] INFO: Performance: first open: 1995-01-04 14:30:00+00:00\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"[2013-01-29 22:13] INFO: Performance: last close: 2011-12-30 21:00:00+00:00\n" | |
] | |
} | |
], | |
"prompt_number": 15 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"data.INTC.price.plot()\n", | |
"\n", | |
"for state in range(HIDDEN_STATES):\n", | |
" plt.plot(results.ix[results.state == state].index,\n", | |
" data.INTC[results.state == state].price, \n", | |
" marker='o', markersize=5, ls='o', color=colors[state],\n", | |
" label=state)\n", | |
"plt.legend()" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "pyout", | |
"prompt_number": 16, | |
"text": [ | |
"<matplotlib.legend.Legend at 0x898e96c>" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"png": "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\nAAAAAElFTkSuQmCC\n" | |
} | |
], | |
"prompt_number": 16 | |
} | |
], | |
"metadata": {} | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment