diff --git a/zipline/__init__.py b/zipline/__init__.py index 06e9f1dd..990c92bf 100644 --- a/zipline/__init__.py +++ b/zipline/__init__.py @@ -31,6 +31,12 @@ from . algorithm import TradingAlgorithm from . import api +try: + ip = get_ipython() # flake8: noqa + ip.register_magic_function(utils.parse_cell_magic, "line_cell", "zipline") +except: + pass + __all__ = [ 'data', 'finance', diff --git a/zipline/algorithm.py b/zipline/algorithm.py index f73014e1..fc418f65 100644 --- a/zipline/algorithm.py +++ b/zipline/algorithm.py @@ -126,6 +126,7 @@ class TradingAlgorithm(object): self.sources = [] self._recorded_vars = {} + self.namespace = kwargs.get('namespace', {}) self.logger = None @@ -177,16 +178,15 @@ class TradingAlgorithm(object): self._analyze = None if self.algoscript is not None: - self.ns = {} - exec_(self.algoscript, self.ns) - self._initialize = self.ns.get('initialize', None) - if 'handle_data' not in self.ns: + exec_(self.algoscript, self.namespace) + self._initialize = self.namespace.get('initialize', None) + if 'handle_data' not in self.namespace: raise ValueError('You must define a handle_data function.') else: - self._handle_data = self.ns['handle_data'] + self._handle_data = self.namespace['handle_data'] # Optional analyze function, gets called after run - self._analyze = self.ns.get('analyze', None) + self._analyze = self.namespace.get('analyze', None) elif kwargs.get('initialize', False) and kwargs.get('handle_data'): if self.algoscript is not None: diff --git a/zipline/examples/buyapple.ipynb b/zipline/examples/buyapple.ipynb new file mode 100644 index 00000000..ff666448 --- /dev/null +++ b/zipline/examples/buyapple.ipynb @@ -0,0 +1,1619 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:4d56d732893820b3bc7d8d8efe0183d2f9dcf84f79d473ac1e81717d8bbea81e" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%matplotlib inline\n", + "import zipline" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 1 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%%zipline --start=2011-1-1 --end=2013-1-1 -o perf\n", + "\n", + "from zipline.api import order, record\n", + "import matplotlib.pyplot as plt\n", + "\n", + "def initialize(context):\n", + " pass\n", + "\n", + "def handle_data(context, data):\n", + " order('AAPL', 10)\n", + " record(AAPL=data['AAPL'].price)\n", + " \n", + "def analyze(context, perf):\n", + " ax1 = plt.subplot(211)\n", + " perf.portfolio_value.plot(ax=ax1)\n", + " ax2 = plt.subplot(212, sharex=ax1)\n", + " perf.AAPL.plot(ax=ax2)\n", + " plt.gcf().set_size_inches(18, 8)\n", + " plt.show()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "[2014-05-01 20:57] INFO: Performance: Simulated 502 trading days out of 502.\n" + ] + }, + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "[2014-05-01 20:57] INFO: Performance: first open: 2011-01-03 14:31:00+00:00\n" + ] + }, + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "[2014-05-01 20:57] INFO: Performance: last close: 2012-12-31 21:00:00+00:00\n" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "AAPL\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAABBMAAAHPCAYAAAABApKuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdcU+f3B/APKE5UcOEAJ1ZREXDhqBq1WnfdSt2oxV2s\nq+23Q+xQ2/pz19ZWsc46aqtVxKo1OFGroLgnFXAP3MrK74/TyEoggYQE7uf9euWF9+YmecIJyD33\nOeex0Wg0GhARERERERERGcjW0gMgIiIiIiIiotyFyQQiIiIiIiIiMgqTCURERERERERkFCYTiIiI\niIiIiMgoTCYQERERERERkVGYTCAiIiIiIiIio1g8meDr6wsnJye4u7tneuwHH3wALy8veHl5oWbN\nmnB0dMyBERIRERERERFRSjYajUZjyQHs378f9vb2GDx4MCIiIgx+3KJFixAeHo6ff/7ZjKMjIiIi\nIiIiorQsPjOhRYsW6WYYXLlyBR07dkTDhg3RsmVLXLhwId3j1q5dCx8fn5waJhERERERERH9J7+l\nB6DLe++9hx9//BGurq44cuQIxowZgz179ry+/99//0VkZCTatGljwVESERERERERKZPVJROePn2K\nw4cPo0+fPq/3xcXFpTrm119/RZ8+fWBjY5PTwyMiIiIiIiJSPKtLJiQlJcHBwQFhYWF6j1m/fj2+\n//77HBwVEREREREREWll2jMhs9UWzp8/j6ZNm6JQoUKYM2fO6/1RUVFo3bo16tSpg7p162LBggUG\nDah48eKoWrUqNm3aBADQaDQ4depUqtd7+PAhmjRpYtDzEREREREREZFpZZpMGDZsGIKDg/XeX6pU\nKSxcuBCTJ09Otd/Ozg5z587FmTNnEBoaisWLF+PcuXPpHu/j44NmzZrhwoULcHFxQWBgINasWYNl\ny5bB09MTdevWxdatW18fv379ejZeJCIiIiIiIrIgg5aGjIyMRNeuXTNcujEgIAD29vaYNGmSzvu7\nd++O8ePHo23btlkfLRERERERERFZXI4sDRkZGYmwsDB4e3vnxMsRERERERERkRmZvQHj06dP0bt3\nb8yfPx/29vbp7nd1dcWVK1fMPQwiIiIiIiIiMpKHhwfCw8PT7TdrMiE+Ph69evXCwIED0b17d53H\nXLlyBQZUWlAuNX36dEyfPt3Sw6AcxrgrF2OvXIy98jDmysS4Kxdjr1w2NjY695uszCFtQkCj0WD4\n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\nvrQAAAAASUVORK5CYII=\n", + "text": [ + "" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "perf" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AAPLcapital_usedending_cashending_valueordersperiod_closeperiod_openpnlportfolio_valuepositionsreturnsstarting_cashstarting_valuetransactions
2011-01-03 21:00:00 316.77 0.0 10000000.0 0.0 [{u'status': 0, u'created': 2011-01-03 00:00:0... 2011-01-03 21:00:00+00:00 2011-01-03 14:31:00+00:00 0.0 10000000.0 [] 0.000000e+00 10000000.0 0.0 []
2011-01-04 21:00:00 318.42-3184.5 9996815.5 3184.2 [{u'status': 1, u'created': 2011-01-03 00:00:0... 2011-01-04 21:00:00+00:00 2011-01-04 14:31:00+00:00 -0.3 9999999.7 [{u'amount': 10, u'last_sale_price': 318.42, u...-3.000000e-08 10000000.0 0.0 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-01-05 21:00:00 321.03-3210.6 9993604.9 6420.6 [{u'status': 1, u'created': 2011-01-04 00:00:0... 2011-01-05 21:00:00+00:00 2011-01-05 14:31:00+00:00 25.8 10000025.5 [{u'amount': 20, u'last_sale_price': 321.03, u... 2.580000e-06 9996815.5 3184.2 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-01-06 21:00:00 320.77-3208.0 9990396.9 9623.1 [{u'status': 1, u'created': 2011-01-05 00:00:0... 2011-01-06 21:00:00+00:00 2011-01-06 14:31:00+00:00 -5.5 10000020.0 [{u'amount': 30, u'last_sale_price': 320.77, u...-5.499986e-07 9993604.9 6420.6 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-01-07 21:00:00 323.06-3230.9 9987166.0 12922.4 [{u'status': 1, u'created': 2011-01-06 00:00:0... 2011-01-07 21:00:00+00:00 2011-01-07 14:31:00+00:00 68.4 10000088.4 [{u'amount': 40, u'last_sale_price': 323.06, u... 6.839986e-06 9990396.9 9623.1 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-01-10 21:00:00 329.15-3291.8 9983874.2 16457.5 [{u'status': 1, u'created': 2011-01-07 00:00:0... 2011-01-10 21:00:00+00:00 2011-01-10 14:31:00+00:00 243.3 10000331.7 [{u'amount': 50, u'last_sale_price': 329.15, u... 2.432978e-05 9987166.0 12922.4 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-01-11 21:00:00 328.37-3284.0 9980590.2 19702.2 [{u'status': 1, u'created': 2011-01-10 00:00:0... 2011-01-11 21:00:00+00:00 2011-01-11 14:31:00+00:00 -39.3 10000292.4 [{u'amount': 60, u'last_sale_price': 328.37, u...-3.929870e-06 9983874.2 16457.5 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-01-12 21:00:00 331.04-3310.7 9977279.5 23172.8 [{u'status': 1, u'created': 2011-01-11 00:00:0... 2011-01-12 21:00:00+00:00 2011-01-12 14:31:00+00:00 159.9 10000452.3 [{u'amount': 70, u'last_sale_price': 331.04, u... 1.598953e-05 9980590.2 19702.2 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-01-13 21:00:00 332.25-3322.8 9973956.7 26580.0 [{u'status': 1, u'created': 2011-01-12 00:00:0... 2011-01-13 21:00:00+00:00 2011-01-13 14:31:00+00:00 84.4 10000536.7 [{u'amount': 80, u'last_sale_price': 332.25, u... 8.439618e-06 9977279.5 23172.8 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-01-14 21:00:00 334.94-3349.7 9970607.0 30144.6 [{u'status': 1, u'created': 2011-01-13 00:00:0... 2011-01-14 21:00:00+00:00 2011-01-14 14:31:00+00:00 214.9 10000751.6 [{u'amount': 90, u'last_sale_price': 334.94, u... 2.148885e-05 9973956.7 26580.0 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-01-18 21:00:00 327.42-3274.5 9967332.5 32742.0 [{u'status': 1, u'created': 2011-01-14 00:00:0... 2011-01-18 21:00:00+00:00 2011-01-18 14:31:00+00:00 -677.1 10000074.5 [{u'amount': 100, u'last_sale_price': 327.42, ...-6.770491e-05 9970607.0 30144.6 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-01-19 21:00:00 325.68-3257.1 9964075.4 35824.8 [{u'status': 1, u'created': 2011-01-18 00:00:0... 2011-01-19 21:00:00+00:00 2011-01-19 14:31:00+00:00 -174.3 9999900.2 [{u'amount': 110, u'last_sale_price': 325.68, ...-1.742987e-05 9967332.5 32742.0 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-01-20 21:00:00 319.76-3197.9 9960877.5 38371.2 [{u'status': 1, u'created': 2011-01-19 00:00:0... 2011-01-20 21:00:00+00:00 2011-01-20 14:31:00+00:00 -651.5 9999248.7 [{u'amount': 120, u'last_sale_price': 319.76, ...-6.515065e-05 9964075.4 35824.8 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-01-21 21:00:00 314.03-3140.6 9957736.9 40823.9 [{u'status': 1, u'created': 2011-01-20 00:00:0... 2011-01-21 21:00:00+00:00 2011-01-21 14:31:00+00:00 -687.9 9998560.8 [{u'amount': 130, u'last_sale_price': 314.03, ...-6.879517e-05 9960877.5 38371.2 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-01-24 21:00:00 324.34-3243.7 9954493.2 45407.6 [{u'status': 1, u'created': 2011-01-21 00:00:0... 2011-01-24 21:00:00+00:00 2011-01-24 14:31:00+00:00 1340.0 9999900.8 [{u'amount': 140, u'last_sale_price': 324.34, ... 1.340193e-04 9957736.9 40823.9 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-01-25 21:00:00 328.14-3281.7 9951211.5 49221.0 [{u'status': 1, u'created': 2011-01-24 00:00:0... 2011-01-25 21:00:00+00:00 2011-01-25 14:31:00+00:00 531.7 10000432.5 [{u'amount': 150, u'last_sale_price': 328.14, ... 5.317053e-05 9954493.2 45407.6 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-01-26 21:00:00 330.49-3305.2 9947906.3 52878.4 [{u'status': 1, u'created': 2011-01-25 00:00:0... 2011-01-26 21:00:00+00:00 2011-01-26 14:31:00+00:00 352.2 10000784.7 [{u'amount': 160, u'last_sale_price': 330.49, ... 3.521848e-05 9951211.5 49221.0 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-01-27 21:00:00 329.88-3299.1 9944607.2 56079.6 [{u'status': 1, u'created': 2011-01-26 00:00:0... 2011-01-27 21:00:00+00:00 2011-01-27 14:31:00+00:00 -97.9 10000686.8 [{u'amount': 170, u'last_sale_price': 329.88, ...-9.789232e-06 9947906.3 52878.4 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-01-28 21:00:00 323.04-3230.7 9941376.5 58147.2 [{u'status': 1, u'created': 2011-01-27 00:00:0... 2011-01-28 21:00:00+00:00 2011-01-28 14:31:00+00:00-1163.1 9999523.7 [{u'amount': 180, u'last_sale_price': 323.04, ...-1.163020e-04 9944607.2 56079.6 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-01-31 21:00:00 326.14-3261.7 9938114.8 61966.6 [{u'status': 1, u'created': 2011-01-28 00:00:0... 2011-01-31 21:00:00+00:00 2011-01-31 14:31:00+00:00 557.7 10000081.4 [{u'amount': 190, u'last_sale_price': 326.14, ... 5.577266e-05 9941376.5 58147.2 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-02-01 21:00:00 331.63-3316.6 9934798.2 66326.0 [{u'status': 1, u'created': 2011-01-31 00:00:0... 2011-02-01 21:00:00+00:00 2011-02-01 14:31:00+00:00 1042.8 10001124.2 [{u'amount': 200, u'last_sale_price': 331.63, ... 1.042792e-04 9938114.8 61966.6 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-02-02 21:00:00 330.94-3309.7 9931488.5 69497.4 [{u'status': 1, u'created': 2011-02-01 00:00:0... 2011-02-02 21:00:00+00:00 2011-02-02 14:31:00+00:00 -138.3 10000985.9 [{u'amount': 210, u'last_sale_price': 330.94, ...-1.382845e-05 9934798.2 66326.0 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-02-03 21:00:00 330.10-3301.3 9928187.2 72622.0 [{u'status': 1, u'created': 2011-02-02 00:00:0... 2011-02-03 21:00:00+00:00 2011-02-03 14:31:00+00:00 -176.7 10000809.2 [{u'amount': 220, u'last_sale_price': 330.1, u...-1.766826e-05 9931488.5 69497.4 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-02-04 21:00:00 333.04-3330.7 9924856.5 76599.2 [{u'status': 1, u'created': 2011-02-03 00:00:0... 2011-02-04 21:00:00+00:00 2011-02-04 14:31:00+00:00 646.5 10001455.7 [{u'amount': 230, u'last_sale_price': 333.04, ... 6.464477e-05 9928187.2 72622.0 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-02-07 21:00:00 338.21-3382.4 9921474.1 81170.4 [{u'status': 1, u'created': 2011-02-04 00:00:0... 2011-02-07 21:00:00+00:00 2011-02-07 14:31:00+00:00 1188.8 10002644.5 [{u'amount': 240, u'last_sale_price': 338.21, ... 1.188627e-04 9924856.5 76599.2 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-02-08 21:00:00 341.40-3414.3 9918059.8 85350.0 [{u'status': 1, u'created': 2011-02-07 00:00:0... 2011-02-08 21:00:00+00:00 2011-02-08 14:31:00+00:00 765.3 10003409.8 [{u'amount': 250, u'last_sale_price': 341.4, u... 7.650977e-05 9921474.1 81170.4 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-02-09 21:00:00 344.25-3442.8 9914617.0 89505.0 [{u'status': 1, u'created': 2011-02-08 00:00:0... 2011-02-09 21:00:00+00:00 2011-02-09 14:31:00+00:00 712.2 10004122.0 [{u'amount': 260, u'last_sale_price': 344.25, ... 7.119572e-05 9918059.8 85350.0 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-02-10 21:00:00 340.77-3408.0 9911209.0 92007.9 [{u'status': 1, u'created': 2011-02-09 00:00:0... 2011-02-10 21:00:00+00:00 2011-02-10 14:31:00+00:00 -905.1 10003216.9 [{u'amount': 270, u'last_sale_price': 340.77, ...-9.047271e-05 9914617.0 89505.0 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-02-11 21:00:00 342.99-3430.2 9907778.8 96037.2 [{u'status': 1, u'created': 2011-02-10 00:00:0... 2011-02-11 21:00:00+00:00 2011-02-11 14:31:00+00:00 599.1 10003816.0 [{u'amount': 280, u'last_sale_price': 342.99, ... 5.989073e-05 9911209.0 92007.9 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-02-14 21:00:00 345.23-3452.6 9904326.2 100116.7 [{u'status': 1, u'created': 2011-02-11 00:00:0... 2011-02-14 21:00:00+00:00 2011-02-14 14:31:00+00:00 626.9 10004442.9 [{u'amount': 290, u'last_sale_price': 345.23, ... 6.266609e-05 9907778.8 96037.2 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-02-15 21:00:00 345.92-3459.5 9900866.7 103776.0 [{u'status': 1, u'created': 2011-02-14 00:00:0... 2011-02-15 21:00:00+00:00 2011-02-15 14:31:00+00:00 199.8 10004642.7 [{u'amount': 300, u'last_sale_price': 345.92, ... 1.997113e-05 9904326.2 100116.7 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-02-16 21:00:00 349.02-3490.5 9897376.2 108196.2 [{u'status': 1, u'created': 2011-02-15 00:00:0... 2011-02-16 21:00:00+00:00 2011-02-16 14:31:00+00:00 929.7 10005572.4 [{u'amount': 310, u'last_sale_price': 349.02, ... 9.292686e-05 9900866.7 103776.0 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-02-17 21:00:00 344.38-3444.1 9893932.1 110201.6 [{u'status': 1, u'created': 2011-02-16 00:00:0... 2011-02-17 21:00:00+00:00 2011-02-17 14:31:00+00:00-1438.7 10004133.7 [{u'amount': 320, u'last_sale_price': 344.38, ...-1.437899e-04 9897376.2 108196.2 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-02-18 21:00:00 336.94-3369.7 9890562.4 111190.2 [{u'status': 1, u'created': 2011-02-17 00:00:0... 2011-02-18 21:00:00+00:00 2011-02-18 14:31:00+00:00-2381.1 10001752.6 [{u'amount': 330, u'last_sale_price': 336.94, ...-2.380116e-04 9893932.1 110201.6 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-02-22 21:00:00 325.46-3254.9 9887307.5 110656.4 [{u'status': 1, u'created': 2011-02-18 00:00:0... 2011-02-22 21:00:00+00:00 2011-02-22 14:31:00+00:00-3788.7 9997963.9 [{u'amount': 340, u'last_sale_price': 325.46, ...-3.788036e-04 9890562.4 111190.2 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-02-23 21:00:00 329.31-3293.4 9884014.1 115258.5 [{u'status': 1, u'created': 2011-02-22 00:00:0... 2011-02-23 21:00:00+00:00 2011-02-23 14:31:00+00:00 1308.7 9999272.6 [{u'amount': 350, u'last_sale_price': 329.31, ... 1.308967e-04 9887307.5 110656.4 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-02-24 21:00:00 329.56-3295.9 9880718.2 118641.6 [{u'status': 1, u'created': 2011-02-23 00:00:0... 2011-02-24 21:00:00+00:00 2011-02-24 14:31:00+00:00 87.2 9999359.8 [{u'amount': 360, u'last_sale_price': 329.56, ... 8.720634e-06 9884014.1 115258.5 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-02-25 21:00:00 334.64-3346.7 9877371.5 123816.8 [{u'status': 1, u'created': 2011-02-24 00:00:0... 2011-02-25 21:00:00+00:00 2011-02-25 14:31:00+00:00 1828.5 10001188.3 [{u'amount': 370, u'last_sale_price': 334.64, ... 1.828617e-04 9880718.2 118641.6 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-02-28 21:00:00 339.49-3395.2 9873976.3 129006.2 [{u'status': 1, u'created': 2011-02-25 00:00:0... 2011-02-28 21:00:00+00:00 2011-02-28 14:31:00+00:00 1794.2 10002982.5 [{u'amount': 380, u'last_sale_price': 339.49, ... 1.793987e-04 9877371.5 123816.8 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-01 21:00:00 335.74-3357.7 9870618.6 130938.6 [{u'status': 1, u'created': 2011-02-28 00:00:0... 2011-03-01 21:00:00+00:00 2011-03-01 14:31:00+00:00-1425.3 10001557.2 [{u'amount': 390, u'last_sale_price': 335.74, ...-1.424875e-04 9873976.3 129006.2 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-02 21:00:00 338.44-3384.7 9867233.9 135376.0 [{u'status': 1, u'created': 2011-03-01 00:00:0... 2011-03-02 21:00:00+00:00 2011-03-02 14:31:00+00:00 1052.7 10002609.9 [{u'amount': 400, u'last_sale_price': 338.44, ... 1.052536e-04 9870618.6 130938.6 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-03 21:00:00 345.59-3456.2 9863777.7 141691.9 [{u'status': 1, u'created': 2011-03-02 00:00:0... 2011-03-03 21:00:00+00:00 2011-03-03 14:31:00+00:00 2859.7 10005469.6 [{u'amount': 410, u'last_sale_price': 345.59, ... 2.858954e-04 9867233.9 135376.0 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-04 21:00:00 346.02-3460.5 9860317.2 145328.4 [{u'status': 1, u'created': 2011-03-03 00:00:0... 2011-03-04 21:00:00+00:00 2011-03-04 14:31:00+00:00 176.0 10005645.6 [{u'amount': 420, u'last_sale_price': 346.02, ... 1.759038e-05 9863777.7 141691.9 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-07 21:00:00 341.56-3415.9 9856901.3 146870.8 [{u'status': 1, u'created': 2011-03-04 00:00:0... 2011-03-07 21:00:00+00:00 2011-03-07 14:31:00+00:00-1873.5 10003772.1 [{u'amount': 430, u'last_sale_price': 341.56, ...-1.872443e-04 9860317.2 145328.4 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-08 21:00:00 341.94-3419.7 9853481.6 150453.6 [{u'status': 1, u'created': 2011-03-07 00:00:0... 2011-03-08 21:00:00+00:00 2011-03-08 14:31:00+00:00 163.1 10003935.2 [{u'amount': 440, u'last_sale_price': 341.94, ... 1.630385e-05 9856901.3 146870.8 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-09 21:00:00 338.78-3388.1 9850093.5 152451.0 [{u'status': 1, u'created': 2011-03-08 00:00:0... 2011-03-09 21:00:00+00:00 2011-03-09 14:31:00+00:00-1390.7 10002544.5 [{u'amount': 450, u'last_sale_price': 338.78, ...-1.390153e-04 9853481.6 150453.6 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-10 21:00:00 333.20-3332.3 9846761.2 153272.0 [{u'status': 1, u'created': 2011-03-09 00:00:0... 2011-03-10 21:00:00+00:00 2011-03-10 14:31:00+00:00-2511.3 10000033.2 [{u'amount': 460, u'last_sale_price': 333.2, u...-2.510661e-04 9850093.5 152451.0 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-11 21:00:00 338.32-3383.5 9843377.7 159010.4 [{u'status': 1, u'created': 2011-03-10 00:00:0... 2011-03-11 21:00:00+00:00 2011-03-11 14:31:00+00:00 2354.9 10002388.1 [{u'amount': 470, u'last_sale_price': 338.32, ... 2.354892e-04 9846761.2 153272.0 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-14 20:00:00 339.83-3398.6 9839979.1 163118.4 [{u'status': 1, u'created': 2011-03-11 00:00:0... 2011-03-14 20:00:00+00:00 2011-03-14 13:31:00+00:00 709.4 10003097.5 [{u'amount': 480, u'last_sale_price': 339.83, ... 7.092306e-05 9843377.7 159010.4 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-15 20:00:00 332.01-3320.4 9836658.7 162684.9 [{u'status': 1, u'created': 2011-03-14 00:00:0... 2011-03-15 20:00:00+00:00 2011-03-15 13:31:00+00:00-3753.9 9999343.6 [{u'amount': 490, u'last_sale_price': 332.01, ...-3.752738e-04 9839979.1 163118.4 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-16 20:00:00 317.19-3172.2 9833486.5 158595.0 [{u'status': 1, u'created': 2011-03-15 00:00:0... 2011-03-16 20:00:00+00:00 2011-03-16 13:31:00+00:00-7262.1 9992081.5 [{u'amount': 500, u'last_sale_price': 317.19, ...-7.262577e-04 9836658.7 162684.9 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-17 20:00:00 321.64-3216.7 9830269.8 164036.4 [{u'status': 1, u'created': 2011-03-16 00:00:0... 2011-03-17 20:00:00+00:00 2011-03-17 13:31:00+00:00 2224.7 9994306.2 [{u'amount': 510, u'last_sale_price': 321.64, ... 2.226463e-04 9833486.5 158595.0 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-18 20:00:00 317.82-3178.5 9827091.3 165266.4 [{u'status': 1, u'created': 2011-03-17 00:00:0... 2011-03-18 20:00:00+00:00 2011-03-18 13:31:00+00:00-1948.5 9992357.7 [{u'amount': 520, u'last_sale_price': 317.82, ...-1.949610e-04 9830269.8 164036.4 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-21 20:00:00 326.12-3261.5 9823829.8 172843.6 [{u'status': 1, u'created': 2011-03-18 00:00:0... 2011-03-21 20:00:00+00:00 2011-03-21 13:31:00+00:00 4315.7 9996673.4 [{u'amount': 530, u'last_sale_price': 326.12, ... 4.319001e-04 9827091.3 165266.4 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-22 20:00:00 327.95-3279.8 9820550.0 177093.0 [{u'status': 1, u'created': 2011-03-21 00:00:0... 2011-03-22 20:00:00+00:00 2011-03-22 13:31:00+00:00 969.6 9997643.0 [{u'amount': 540, u'last_sale_price': 327.95, ... 9.699227e-05 9823829.8 172843.6 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-23 20:00:00 326.01-3260.4 9817289.6 179305.5 [{u'status': 1, u'created': 2011-03-22 00:00:0... 2011-03-23 20:00:00+00:00 2011-03-23 13:31:00+00:00-1047.9 9996595.1 [{u'amount': 550, u'last_sale_price': 326.01, ...-1.048147e-04 9820550.0 177093.0 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-24 20:00:00 331.57-3316.0 9813973.6 185679.2 [{u'status': 1, u'created': 2011-03-23 00:00:0... 2011-03-24 20:00:00+00:00 2011-03-24 13:31:00+00:00 3057.7 9999652.8 [{u'amount': 560, u'last_sale_price': 331.57, ... 3.058741e-04 9817289.6 179305.5 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-25 20:00:00 337.88-3379.1 9810594.5 192591.6 [{u'status': 1, u'created': 2011-03-24 00:00:0... 2011-03-25 20:00:00+00:00 2011-03-25 13:31:00+00:00 3533.3 10003186.1 [{u'amount': 570, u'last_sale_price': 337.88, ... 3.533423e-04 9813973.6 185679.2 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-28 20:00:00 336.83-3368.6 9807225.9 195361.4 [{u'status': 1, u'created': 2011-03-25 00:00:0... 2011-03-28 20:00:00+00:00 2011-03-28 13:31:00+00:00 -598.8 10002587.3 [{u'amount': 580, u'last_sale_price': 336.83, ...-5.986093e-05 9810594.5 192591.6 [{u'commission': 0.3, u'amount': 10, u'sid': u...
2011-03-29 20:00:00 337.33-3373.6 9803852.3 199024.7 [{u'status': 1, u'created': 2011-03-28 00:00:0... 2011-03-29 20:00:00+00:00 2011-03-29 13:31:00+00:00 289.7 10002877.0 [{u'amount': 590, u'last_sale_price': 337.33, ... 2.896251e-05 9807225.9 195361.4 [{u'commission': 0.3, u'amount': 10, u'sid': u...
..........................................
\n", + "

502 rows \u00d7 14 columns

\n", + "
" + ], + "metadata": {}, + "output_type": "pyout", + "prompt_number": 6, + "text": [ + " AAPL capital_used ending_cash ending_value \\\n", + "2011-01-03 21:00:00 316.77 0.0 10000000.0 0.0 \n", + "2011-01-04 21:00:00 318.42 -3184.5 9996815.5 3184.2 \n", + "2011-01-05 21:00:00 321.03 -3210.6 9993604.9 6420.6 \n", + "2011-01-06 21:00:00 320.77 -3208.0 9990396.9 9623.1 \n", + "2011-01-07 21:00:00 323.06 -3230.9 9987166.0 12922.4 \n", + "2011-01-10 21:00:00 329.15 -3291.8 9983874.2 16457.5 \n", + "2011-01-11 21:00:00 328.37 -3284.0 9980590.2 19702.2 \n", + "2011-01-12 21:00:00 331.04 -3310.7 9977279.5 23172.8 \n", + "2011-01-13 21:00:00 332.25 -3322.8 9973956.7 26580.0 \n", + "2011-01-14 21:00:00 334.94 -3349.7 9970607.0 30144.6 \n", + "2011-01-18 21:00:00 327.42 -3274.5 9967332.5 32742.0 \n", + "2011-01-19 21:00:00 325.68 -3257.1 9964075.4 35824.8 \n", + "2011-01-20 21:00:00 319.76 -3197.9 9960877.5 38371.2 \n", + "2011-01-21 21:00:00 314.03 -3140.6 9957736.9 40823.9 \n", + "2011-01-24 21:00:00 324.34 -3243.7 9954493.2 45407.6 \n", + "2011-01-25 21:00:00 328.14 -3281.7 9951211.5 49221.0 \n", + "2011-01-26 21:00:00 330.49 -3305.2 9947906.3 52878.4 \n", + "2011-01-27 21:00:00 329.88 -3299.1 9944607.2 56079.6 \n", + "2011-01-28 21:00:00 323.04 -3230.7 9941376.5 58147.2 \n", + "2011-01-31 21:00:00 326.14 -3261.7 9938114.8 61966.6 \n", + "2011-02-01 21:00:00 331.63 -3316.6 9934798.2 66326.0 \n", + "2011-02-02 21:00:00 330.94 -3309.7 9931488.5 69497.4 \n", + "2011-02-03 21:00:00 330.10 -3301.3 9928187.2 72622.0 \n", + "2011-02-04 21:00:00 333.04 -3330.7 9924856.5 76599.2 \n", + "2011-02-07 21:00:00 338.21 -3382.4 9921474.1 81170.4 \n", + "2011-02-08 21:00:00 341.40 -3414.3 9918059.8 85350.0 \n", + "2011-02-09 21:00:00 344.25 -3442.8 9914617.0 89505.0 \n", + "2011-02-10 21:00:00 340.77 -3408.0 9911209.0 92007.9 \n", + "2011-02-11 21:00:00 342.99 -3430.2 9907778.8 96037.2 \n", + "2011-02-14 21:00:00 345.23 -3452.6 9904326.2 100116.7 \n", + "2011-02-15 21:00:00 345.92 -3459.5 9900866.7 103776.0 \n", + "2011-02-16 21:00:00 349.02 -3490.5 9897376.2 108196.2 \n", + "2011-02-17 21:00:00 344.38 -3444.1 9893932.1 110201.6 \n", + "2011-02-18 21:00:00 336.94 -3369.7 9890562.4 111190.2 \n", + "2011-02-22 21:00:00 325.46 -3254.9 9887307.5 110656.4 \n", + "2011-02-23 21:00:00 329.31 -3293.4 9884014.1 115258.5 \n", + "2011-02-24 21:00:00 329.56 -3295.9 9880718.2 118641.6 \n", + "2011-02-25 21:00:00 334.64 -3346.7 9877371.5 123816.8 \n", + "2011-02-28 21:00:00 339.49 -3395.2 9873976.3 129006.2 \n", + "2011-03-01 21:00:00 335.74 -3357.7 9870618.6 130938.6 \n", + "2011-03-02 21:00:00 338.44 -3384.7 9867233.9 135376.0 \n", + "2011-03-03 21:00:00 345.59 -3456.2 9863777.7 141691.9 \n", + "2011-03-04 21:00:00 346.02 -3460.5 9860317.2 145328.4 \n", + "2011-03-07 21:00:00 341.56 -3415.9 9856901.3 146870.8 \n", + "2011-03-08 21:00:00 341.94 -3419.7 9853481.6 150453.6 \n", + "2011-03-09 21:00:00 338.78 -3388.1 9850093.5 152451.0 \n", + "2011-03-10 21:00:00 333.20 -3332.3 9846761.2 153272.0 \n", + "2011-03-11 21:00:00 338.32 -3383.5 9843377.7 159010.4 \n", + "2011-03-14 20:00:00 339.83 -3398.6 9839979.1 163118.4 \n", + "2011-03-15 20:00:00 332.01 -3320.4 9836658.7 162684.9 \n", + "2011-03-16 20:00:00 317.19 -3172.2 9833486.5 158595.0 \n", + "2011-03-17 20:00:00 321.64 -3216.7 9830269.8 164036.4 \n", + "2011-03-18 20:00:00 317.82 -3178.5 9827091.3 165266.4 \n", + "2011-03-21 20:00:00 326.12 -3261.5 9823829.8 172843.6 \n", + "2011-03-22 20:00:00 327.95 -3279.8 9820550.0 177093.0 \n", + "2011-03-23 20:00:00 326.01 -3260.4 9817289.6 179305.5 \n", + "2011-03-24 20:00:00 331.57 -3316.0 9813973.6 185679.2 \n", + "2011-03-25 20:00:00 337.88 -3379.1 9810594.5 192591.6 \n", + "2011-03-28 20:00:00 336.83 -3368.6 9807225.9 195361.4 \n", + "2011-03-29 20:00:00 337.33 -3373.6 9803852.3 199024.7 \n", + " ... ... ... ... \n", + "\n", + " orders \\\n", + "2011-01-03 21:00:00 [{u'status': 0, u'created': 2011-01-03 00:00:0... \n", + "2011-01-04 21:00:00 [{u'status': 1, u'created': 2011-01-03 00:00:0... \n", + "2011-01-05 21:00:00 [{u'status': 1, u'created': 2011-01-04 00:00:0... \n", + "2011-01-06 21:00:00 [{u'status': 1, u'created': 2011-01-05 00:00:0... \n", + "2011-01-07 21:00:00 [{u'status': 1, u'created': 2011-01-06 00:00:0... \n", + "2011-01-10 21:00:00 [{u'status': 1, u'created': 2011-01-07 00:00:0... \n", + "2011-01-11 21:00:00 [{u'status': 1, u'created': 2011-01-10 00:00:0... \n", + "2011-01-12 21:00:00 [{u'status': 1, u'created': 2011-01-11 00:00:0... \n", + "2011-01-13 21:00:00 [{u'status': 1, u'created': 2011-01-12 00:00:0... \n", + "2011-01-14 21:00:00 [{u'status': 1, u'created': 2011-01-13 00:00:0... \n", + "2011-01-18 21:00:00 [{u'status': 1, u'created': 2011-01-14 00:00:0... \n", + "2011-01-19 21:00:00 [{u'status': 1, u'created': 2011-01-18 00:00:0... \n", + "2011-01-20 21:00:00 [{u'status': 1, u'created': 2011-01-19 00:00:0... \n", + "2011-01-21 21:00:00 [{u'status': 1, u'created': 2011-01-20 00:00:0... \n", + "2011-01-24 21:00:00 [{u'status': 1, u'created': 2011-01-21 00:00:0... \n", + "2011-01-25 21:00:00 [{u'status': 1, u'created': 2011-01-24 00:00:0... \n", + "2011-01-26 21:00:00 [{u'status': 1, u'created': 2011-01-25 00:00:0... \n", + "2011-01-27 21:00:00 [{u'status': 1, u'created': 2011-01-26 00:00:0... \n", + "2011-01-28 21:00:00 [{u'status': 1, u'created': 2011-01-27 00:00:0... \n", + "2011-01-31 21:00:00 [{u'status': 1, u'created': 2011-01-28 00:00:0... \n", + "2011-02-01 21:00:00 [{u'status': 1, u'created': 2011-01-31 00:00:0... \n", + "2011-02-02 21:00:00 [{u'status': 1, u'created': 2011-02-01 00:00:0... \n", + "2011-02-03 21:00:00 [{u'status': 1, u'created': 2011-02-02 00:00:0... \n", + "2011-02-04 21:00:00 [{u'status': 1, u'created': 2011-02-03 00:00:0... \n", + "2011-02-07 21:00:00 [{u'status': 1, u'created': 2011-02-04 00:00:0... \n", + "2011-02-08 21:00:00 [{u'status': 1, u'created': 2011-02-07 00:00:0... \n", + "2011-02-09 21:00:00 [{u'status': 1, u'created': 2011-02-08 00:00:0... \n", + "2011-02-10 21:00:00 [{u'status': 1, u'created': 2011-02-09 00:00:0... \n", + "2011-02-11 21:00:00 [{u'status': 1, u'created': 2011-02-10 00:00:0... \n", + "2011-02-14 21:00:00 [{u'status': 1, u'created': 2011-02-11 00:00:0... \n", + "2011-02-15 21:00:00 [{u'status': 1, u'created': 2011-02-14 00:00:0... \n", + "2011-02-16 21:00:00 [{u'status': 1, u'created': 2011-02-15 00:00:0... \n", + "2011-02-17 21:00:00 [{u'status': 1, u'created': 2011-02-16 00:00:0... \n", + "2011-02-18 21:00:00 [{u'status': 1, u'created': 2011-02-17 00:00:0... \n", + "2011-02-22 21:00:00 [{u'status': 1, u'created': 2011-02-18 00:00:0... \n", + "2011-02-23 21:00:00 [{u'status': 1, u'created': 2011-02-22 00:00:0... \n", + "2011-02-24 21:00:00 [{u'status': 1, u'created': 2011-02-23 00:00:0... \n", + "2011-02-25 21:00:00 [{u'status': 1, u'created': 2011-02-24 00:00:0... \n", + "2011-02-28 21:00:00 [{u'status': 1, u'created': 2011-02-25 00:00:0... \n", + "2011-03-01 21:00:00 [{u'status': 1, u'created': 2011-02-28 00:00:0... \n", + "2011-03-02 21:00:00 [{u'status': 1, u'created': 2011-03-01 00:00:0... \n", + "2011-03-03 21:00:00 [{u'status': 1, u'created': 2011-03-02 00:00:0... \n", + "2011-03-04 21:00:00 [{u'status': 1, u'created': 2011-03-03 00:00:0... \n", + "2011-03-07 21:00:00 [{u'status': 1, u'created': 2011-03-04 00:00:0... \n", + "2011-03-08 21:00:00 [{u'status': 1, u'created': 2011-03-07 00:00:0... \n", + "2011-03-09 21:00:00 [{u'status': 1, u'created': 2011-03-08 00:00:0... \n", + "2011-03-10 21:00:00 [{u'status': 1, u'created': 2011-03-09 00:00:0... \n", + "2011-03-11 21:00:00 [{u'status': 1, u'created': 2011-03-10 00:00:0... \n", + "2011-03-14 20:00:00 [{u'status': 1, u'created': 2011-03-11 00:00:0... \n", + "2011-03-15 20:00:00 [{u'status': 1, u'created': 2011-03-14 00:00:0... \n", + "2011-03-16 20:00:00 [{u'status': 1, u'created': 2011-03-15 00:00:0... \n", + "2011-03-17 20:00:00 [{u'status': 1, u'created': 2011-03-16 00:00:0... \n", + "2011-03-18 20:00:00 [{u'status': 1, u'created': 2011-03-17 00:00:0... \n", + "2011-03-21 20:00:00 [{u'status': 1, u'created': 2011-03-18 00:00:0... \n", + "2011-03-22 20:00:00 [{u'status': 1, u'created': 2011-03-21 00:00:0... \n", + "2011-03-23 20:00:00 [{u'status': 1, u'created': 2011-03-22 00:00:0... \n", + "2011-03-24 20:00:00 [{u'status': 1, u'created': 2011-03-23 00:00:0... \n", + "2011-03-25 20:00:00 [{u'status': 1, u'created': 2011-03-24 00:00:0... \n", + "2011-03-28 20:00:00 [{u'status': 1, u'created': 2011-03-25 00:00:0... \n", + "2011-03-29 20:00:00 [{u'status': 1, u'created': 2011-03-28 00:00:0... \n", + " ... \n", + "\n", + " period_close period_open \\\n", + "2011-01-03 21:00:00 2011-01-03 21:00:00+00:00 2011-01-03 14:31:00+00:00 \n", + "2011-01-04 21:00:00 2011-01-04 21:00:00+00:00 2011-01-04 14:31:00+00:00 \n", + "2011-01-05 21:00:00 2011-01-05 21:00:00+00:00 2011-01-05 14:31:00+00:00 \n", + "2011-01-06 21:00:00 2011-01-06 21:00:00+00:00 2011-01-06 14:31:00+00:00 \n", + "2011-01-07 21:00:00 2011-01-07 21:00:00+00:00 2011-01-07 14:31:00+00:00 \n", + "2011-01-10 21:00:00 2011-01-10 21:00:00+00:00 2011-01-10 14:31:00+00:00 \n", + "2011-01-11 21:00:00 2011-01-11 21:00:00+00:00 2011-01-11 14:31:00+00:00 \n", + "2011-01-12 21:00:00 2011-01-12 21:00:00+00:00 2011-01-12 14:31:00+00:00 \n", + "2011-01-13 21:00:00 2011-01-13 21:00:00+00:00 2011-01-13 14:31:00+00:00 \n", + "2011-01-14 21:00:00 2011-01-14 21:00:00+00:00 2011-01-14 14:31:00+00:00 \n", + "2011-01-18 21:00:00 2011-01-18 21:00:00+00:00 2011-01-18 14:31:00+00:00 \n", + "2011-01-19 21:00:00 2011-01-19 21:00:00+00:00 2011-01-19 14:31:00+00:00 \n", + "2011-01-20 21:00:00 2011-01-20 21:00:00+00:00 2011-01-20 14:31:00+00:00 \n", + "2011-01-21 21:00:00 2011-01-21 21:00:00+00:00 2011-01-21 14:31:00+00:00 \n", + "2011-01-24 21:00:00 2011-01-24 21:00:00+00:00 2011-01-24 14:31:00+00:00 \n", + "2011-01-25 21:00:00 2011-01-25 21:00:00+00:00 2011-01-25 14:31:00+00:00 \n", + "2011-01-26 21:00:00 2011-01-26 21:00:00+00:00 2011-01-26 14:31:00+00:00 \n", + "2011-01-27 21:00:00 2011-01-27 21:00:00+00:00 2011-01-27 14:31:00+00:00 \n", + "2011-01-28 21:00:00 2011-01-28 21:00:00+00:00 2011-01-28 14:31:00+00:00 \n", + "2011-01-31 21:00:00 2011-01-31 21:00:00+00:00 2011-01-31 14:31:00+00:00 \n", + "2011-02-01 21:00:00 2011-02-01 21:00:00+00:00 2011-02-01 14:31:00+00:00 \n", + "2011-02-02 21:00:00 2011-02-02 21:00:00+00:00 2011-02-02 14:31:00+00:00 \n", + "2011-02-03 21:00:00 2011-02-03 21:00:00+00:00 2011-02-03 14:31:00+00:00 \n", + "2011-02-04 21:00:00 2011-02-04 21:00:00+00:00 2011-02-04 14:31:00+00:00 \n", + "2011-02-07 21:00:00 2011-02-07 21:00:00+00:00 2011-02-07 14:31:00+00:00 \n", + "2011-02-08 21:00:00 2011-02-08 21:00:00+00:00 2011-02-08 14:31:00+00:00 \n", + "2011-02-09 21:00:00 2011-02-09 21:00:00+00:00 2011-02-09 14:31:00+00:00 \n", + "2011-02-10 21:00:00 2011-02-10 21:00:00+00:00 2011-02-10 14:31:00+00:00 \n", + "2011-02-11 21:00:00 2011-02-11 21:00:00+00:00 2011-02-11 14:31:00+00:00 \n", + "2011-02-14 21:00:00 2011-02-14 21:00:00+00:00 2011-02-14 14:31:00+00:00 \n", + "2011-02-15 21:00:00 2011-02-15 21:00:00+00:00 2011-02-15 14:31:00+00:00 \n", + "2011-02-16 21:00:00 2011-02-16 21:00:00+00:00 2011-02-16 14:31:00+00:00 \n", + "2011-02-17 21:00:00 2011-02-17 21:00:00+00:00 2011-02-17 14:31:00+00:00 \n", + "2011-02-18 21:00:00 2011-02-18 21:00:00+00:00 2011-02-18 14:31:00+00:00 \n", + "2011-02-22 21:00:00 2011-02-22 21:00:00+00:00 2011-02-22 14:31:00+00:00 \n", + "2011-02-23 21:00:00 2011-02-23 21:00:00+00:00 2011-02-23 14:31:00+00:00 \n", + "2011-02-24 21:00:00 2011-02-24 21:00:00+00:00 2011-02-24 14:31:00+00:00 \n", + "2011-02-25 21:00:00 2011-02-25 21:00:00+00:00 2011-02-25 14:31:00+00:00 \n", + "2011-02-28 21:00:00 2011-02-28 21:00:00+00:00 2011-02-28 14:31:00+00:00 \n", + "2011-03-01 21:00:00 2011-03-01 21:00:00+00:00 2011-03-01 14:31:00+00:00 \n", + "2011-03-02 21:00:00 2011-03-02 21:00:00+00:00 2011-03-02 14:31:00+00:00 \n", + "2011-03-03 21:00:00 2011-03-03 21:00:00+00:00 2011-03-03 14:31:00+00:00 \n", + "2011-03-04 21:00:00 2011-03-04 21:00:00+00:00 2011-03-04 14:31:00+00:00 \n", + "2011-03-07 21:00:00 2011-03-07 21:00:00+00:00 2011-03-07 14:31:00+00:00 \n", + "2011-03-08 21:00:00 2011-03-08 21:00:00+00:00 2011-03-08 14:31:00+00:00 \n", + "2011-03-09 21:00:00 2011-03-09 21:00:00+00:00 2011-03-09 14:31:00+00:00 \n", + "2011-03-10 21:00:00 2011-03-10 21:00:00+00:00 2011-03-10 14:31:00+00:00 \n", + "2011-03-11 21:00:00 2011-03-11 21:00:00+00:00 2011-03-11 14:31:00+00:00 \n", + "2011-03-14 20:00:00 2011-03-14 20:00:00+00:00 2011-03-14 13:31:00+00:00 \n", + "2011-03-15 20:00:00 2011-03-15 20:00:00+00:00 2011-03-15 13:31:00+00:00 \n", + "2011-03-16 20:00:00 2011-03-16 20:00:00+00:00 2011-03-16 13:31:00+00:00 \n", + "2011-03-17 20:00:00 2011-03-17 20:00:00+00:00 2011-03-17 13:31:00+00:00 \n", + "2011-03-18 20:00:00 2011-03-18 20:00:00+00:00 2011-03-18 13:31:00+00:00 \n", + "2011-03-21 20:00:00 2011-03-21 20:00:00+00:00 2011-03-21 13:31:00+00:00 \n", + "2011-03-22 20:00:00 2011-03-22 20:00:00+00:00 2011-03-22 13:31:00+00:00 \n", + "2011-03-23 20:00:00 2011-03-23 20:00:00+00:00 2011-03-23 13:31:00+00:00 \n", + "2011-03-24 20:00:00 2011-03-24 20:00:00+00:00 2011-03-24 13:31:00+00:00 \n", + "2011-03-25 20:00:00 2011-03-25 20:00:00+00:00 2011-03-25 13:31:00+00:00 \n", + "2011-03-28 20:00:00 2011-03-28 20:00:00+00:00 2011-03-28 13:31:00+00:00 \n", + "2011-03-29 20:00:00 2011-03-29 20:00:00+00:00 2011-03-29 13:31:00+00:00 \n", + " ... ... \n", + "\n", + " pnl portfolio_value \\\n", + "2011-01-03 21:00:00 0.0 10000000.0 \n", + "2011-01-04 21:00:00 -0.3 9999999.7 \n", + "2011-01-05 21:00:00 25.8 10000025.5 \n", + "2011-01-06 21:00:00 -5.5 10000020.0 \n", + "2011-01-07 21:00:00 68.4 10000088.4 \n", + "2011-01-10 21:00:00 243.3 10000331.7 \n", + "2011-01-11 21:00:00 -39.3 10000292.4 \n", + "2011-01-12 21:00:00 159.9 10000452.3 \n", + "2011-01-13 21:00:00 84.4 10000536.7 \n", + "2011-01-14 21:00:00 214.9 10000751.6 \n", + "2011-01-18 21:00:00 -677.1 10000074.5 \n", + "2011-01-19 21:00:00 -174.3 9999900.2 \n", + "2011-01-20 21:00:00 -651.5 9999248.7 \n", + "2011-01-21 21:00:00 -687.9 9998560.8 \n", + "2011-01-24 21:00:00 1340.0 9999900.8 \n", + "2011-01-25 21:00:00 531.7 10000432.5 \n", + "2011-01-26 21:00:00 352.2 10000784.7 \n", + "2011-01-27 21:00:00 -97.9 10000686.8 \n", + "2011-01-28 21:00:00 -1163.1 9999523.7 \n", + "2011-01-31 21:00:00 557.7 10000081.4 \n", + "2011-02-01 21:00:00 1042.8 10001124.2 \n", + "2011-02-02 21:00:00 -138.3 10000985.9 \n", + "2011-02-03 21:00:00 -176.7 10000809.2 \n", + "2011-02-04 21:00:00 646.5 10001455.7 \n", + "2011-02-07 21:00:00 1188.8 10002644.5 \n", + "2011-02-08 21:00:00 765.3 10003409.8 \n", + "2011-02-09 21:00:00 712.2 10004122.0 \n", + "2011-02-10 21:00:00 -905.1 10003216.9 \n", + "2011-02-11 21:00:00 599.1 10003816.0 \n", + "2011-02-14 21:00:00 626.9 10004442.9 \n", + "2011-02-15 21:00:00 199.8 10004642.7 \n", + "2011-02-16 21:00:00 929.7 10005572.4 \n", + "2011-02-17 21:00:00 -1438.7 10004133.7 \n", + "2011-02-18 21:00:00 -2381.1 10001752.6 \n", + "2011-02-22 21:00:00 -3788.7 9997963.9 \n", + "2011-02-23 21:00:00 1308.7 9999272.6 \n", + "2011-02-24 21:00:00 87.2 9999359.8 \n", + "2011-02-25 21:00:00 1828.5 10001188.3 \n", + "2011-02-28 21:00:00 1794.2 10002982.5 \n", + "2011-03-01 21:00:00 -1425.3 10001557.2 \n", + "2011-03-02 21:00:00 1052.7 10002609.9 \n", + "2011-03-03 21:00:00 2859.7 10005469.6 \n", + "2011-03-04 21:00:00 176.0 10005645.6 \n", + "2011-03-07 21:00:00 -1873.5 10003772.1 \n", + "2011-03-08 21:00:00 163.1 10003935.2 \n", + "2011-03-09 21:00:00 -1390.7 10002544.5 \n", + "2011-03-10 21:00:00 -2511.3 10000033.2 \n", + "2011-03-11 21:00:00 2354.9 10002388.1 \n", + "2011-03-14 20:00:00 709.4 10003097.5 \n", + "2011-03-15 20:00:00 -3753.9 9999343.6 \n", + "2011-03-16 20:00:00 -7262.1 9992081.5 \n", + "2011-03-17 20:00:00 2224.7 9994306.2 \n", + "2011-03-18 20:00:00 -1948.5 9992357.7 \n", + "2011-03-21 20:00:00 4315.7 9996673.4 \n", + "2011-03-22 20:00:00 969.6 9997643.0 \n", + "2011-03-23 20:00:00 -1047.9 9996595.1 \n", + "2011-03-24 20:00:00 3057.7 9999652.8 \n", + "2011-03-25 20:00:00 3533.3 10003186.1 \n", + "2011-03-28 20:00:00 -598.8 10002587.3 \n", + "2011-03-29 20:00:00 289.7 10002877.0 \n", + " ... ... \n", + "\n", + " positions \\\n", + "2011-01-03 21:00:00 [] \n", + "2011-01-04 21:00:00 [{u'amount': 10, u'last_sale_price': 318.42, u... \n", + "2011-01-05 21:00:00 [{u'amount': 20, u'last_sale_price': 321.03, u... \n", + "2011-01-06 21:00:00 [{u'amount': 30, u'last_sale_price': 320.77, u... \n", + "2011-01-07 21:00:00 [{u'amount': 40, u'last_sale_price': 323.06, u... \n", + "2011-01-10 21:00:00 [{u'amount': 50, u'last_sale_price': 329.15, u... \n", + "2011-01-11 21:00:00 [{u'amount': 60, u'last_sale_price': 328.37, u... \n", + "2011-01-12 21:00:00 [{u'amount': 70, u'last_sale_price': 331.04, u... \n", + "2011-01-13 21:00:00 [{u'amount': 80, u'last_sale_price': 332.25, u... \n", + "2011-01-14 21:00:00 [{u'amount': 90, u'last_sale_price': 334.94, u... \n", + "2011-01-18 21:00:00 [{u'amount': 100, u'last_sale_price': 327.42, ... \n", + "2011-01-19 21:00:00 [{u'amount': 110, u'last_sale_price': 325.68, ... \n", + "2011-01-20 21:00:00 [{u'amount': 120, u'last_sale_price': 319.76, ... \n", + "2011-01-21 21:00:00 [{u'amount': 130, u'last_sale_price': 314.03, ... \n", + "2011-01-24 21:00:00 [{u'amount': 140, u'last_sale_price': 324.34, ... \n", + "2011-01-25 21:00:00 [{u'amount': 150, u'last_sale_price': 328.14, ... \n", + "2011-01-26 21:00:00 [{u'amount': 160, u'last_sale_price': 330.49, ... \n", + "2011-01-27 21:00:00 [{u'amount': 170, u'last_sale_price': 329.88, ... \n", + "2011-01-28 21:00:00 [{u'amount': 180, u'last_sale_price': 323.04, ... \n", + "2011-01-31 21:00:00 [{u'amount': 190, u'last_sale_price': 326.14, ... \n", + "2011-02-01 21:00:00 [{u'amount': 200, u'last_sale_price': 331.63, ... \n", + "2011-02-02 21:00:00 [{u'amount': 210, u'last_sale_price': 330.94, ... \n", + "2011-02-03 21:00:00 [{u'amount': 220, u'last_sale_price': 330.1, u... \n", + "2011-02-04 21:00:00 [{u'amount': 230, u'last_sale_price': 333.04, ... \n", + "2011-02-07 21:00:00 [{u'amount': 240, u'last_sale_price': 338.21, ... \n", + "2011-02-08 21:00:00 [{u'amount': 250, u'last_sale_price': 341.4, u... \n", + "2011-02-09 21:00:00 [{u'amount': 260, u'last_sale_price': 344.25, ... \n", + "2011-02-10 21:00:00 [{u'amount': 270, u'last_sale_price': 340.77, ... \n", + "2011-02-11 21:00:00 [{u'amount': 280, u'last_sale_price': 342.99, ... \n", + "2011-02-14 21:00:00 [{u'amount': 290, u'last_sale_price': 345.23, ... \n", + "2011-02-15 21:00:00 [{u'amount': 300, u'last_sale_price': 345.92, ... \n", + "2011-02-16 21:00:00 [{u'amount': 310, u'last_sale_price': 349.02, ... \n", + "2011-02-17 21:00:00 [{u'amount': 320, u'last_sale_price': 344.38, ... \n", + "2011-02-18 21:00:00 [{u'amount': 330, u'last_sale_price': 336.94, ... \n", + "2011-02-22 21:00:00 [{u'amount': 340, u'last_sale_price': 325.46, ... \n", + "2011-02-23 21:00:00 [{u'amount': 350, u'last_sale_price': 329.31, ... \n", + "2011-02-24 21:00:00 [{u'amount': 360, u'last_sale_price': 329.56, ... \n", + "2011-02-25 21:00:00 [{u'amount': 370, u'last_sale_price': 334.64, ... \n", + "2011-02-28 21:00:00 [{u'amount': 380, u'last_sale_price': 339.49, ... \n", + "2011-03-01 21:00:00 [{u'amount': 390, u'last_sale_price': 335.74, ... \n", + "2011-03-02 21:00:00 [{u'amount': 400, u'last_sale_price': 338.44, ... \n", + "2011-03-03 21:00:00 [{u'amount': 410, u'last_sale_price': 345.59, ... \n", + "2011-03-04 21:00:00 [{u'amount': 420, u'last_sale_price': 346.02, ... \n", + "2011-03-07 21:00:00 [{u'amount': 430, u'last_sale_price': 341.56, ... \n", + "2011-03-08 21:00:00 [{u'amount': 440, u'last_sale_price': 341.94, ... \n", + "2011-03-09 21:00:00 [{u'amount': 450, u'last_sale_price': 338.78, ... \n", + "2011-03-10 21:00:00 [{u'amount': 460, u'last_sale_price': 333.2, u... \n", + "2011-03-11 21:00:00 [{u'amount': 470, u'last_sale_price': 338.32, ... \n", + "2011-03-14 20:00:00 [{u'amount': 480, u'last_sale_price': 339.83, ... \n", + "2011-03-15 20:00:00 [{u'amount': 490, u'last_sale_price': 332.01, ... \n", + "2011-03-16 20:00:00 [{u'amount': 500, u'last_sale_price': 317.19, ... \n", + "2011-03-17 20:00:00 [{u'amount': 510, u'last_sale_price': 321.64, ... \n", + "2011-03-18 20:00:00 [{u'amount': 520, u'last_sale_price': 317.82, ... \n", + "2011-03-21 20:00:00 [{u'amount': 530, u'last_sale_price': 326.12, ... \n", + "2011-03-22 20:00:00 [{u'amount': 540, u'last_sale_price': 327.95, ... \n", + "2011-03-23 20:00:00 [{u'amount': 550, u'last_sale_price': 326.01, ... \n", + "2011-03-24 20:00:00 [{u'amount': 560, u'last_sale_price': 331.57, ... \n", + "2011-03-25 20:00:00 [{u'amount': 570, u'last_sale_price': 337.88, ... \n", + "2011-03-28 20:00:00 [{u'amount': 580, u'last_sale_price': 336.83, ... \n", + "2011-03-29 20:00:00 [{u'amount': 590, u'last_sale_price': 337.33, ... \n", + " ... \n", + "\n", + " returns starting_cash starting_value \\\n", + "2011-01-03 21:00:00 0.000000e+00 10000000.0 0.0 \n", + "2011-01-04 21:00:00 -3.000000e-08 10000000.0 0.0 \n", + "2011-01-05 21:00:00 2.580000e-06 9996815.5 3184.2 \n", + "2011-01-06 21:00:00 -5.499986e-07 9993604.9 6420.6 \n", + "2011-01-07 21:00:00 6.839986e-06 9990396.9 9623.1 \n", + "2011-01-10 21:00:00 2.432978e-05 9987166.0 12922.4 \n", + "2011-01-11 21:00:00 -3.929870e-06 9983874.2 16457.5 \n", + "2011-01-12 21:00:00 1.598953e-05 9980590.2 19702.2 \n", + "2011-01-13 21:00:00 8.439618e-06 9977279.5 23172.8 \n", + "2011-01-14 21:00:00 2.148885e-05 9973956.7 26580.0 \n", + "2011-01-18 21:00:00 -6.770491e-05 9970607.0 30144.6 \n", + "2011-01-19 21:00:00 -1.742987e-05 9967332.5 32742.0 \n", + "2011-01-20 21:00:00 -6.515065e-05 9964075.4 35824.8 \n", + "2011-01-21 21:00:00 -6.879517e-05 9960877.5 38371.2 \n", + "2011-01-24 21:00:00 1.340193e-04 9957736.9 40823.9 \n", + "2011-01-25 21:00:00 5.317053e-05 9954493.2 45407.6 \n", + "2011-01-26 21:00:00 3.521848e-05 9951211.5 49221.0 \n", + "2011-01-27 21:00:00 -9.789232e-06 9947906.3 52878.4 \n", + "2011-01-28 21:00:00 -1.163020e-04 9944607.2 56079.6 \n", + "2011-01-31 21:00:00 5.577266e-05 9941376.5 58147.2 \n", + "2011-02-01 21:00:00 1.042792e-04 9938114.8 61966.6 \n", + "2011-02-02 21:00:00 -1.382845e-05 9934798.2 66326.0 \n", + "2011-02-03 21:00:00 -1.766826e-05 9931488.5 69497.4 \n", + "2011-02-04 21:00:00 6.464477e-05 9928187.2 72622.0 \n", + "2011-02-07 21:00:00 1.188627e-04 9924856.5 76599.2 \n", + "2011-02-08 21:00:00 7.650977e-05 9921474.1 81170.4 \n", + "2011-02-09 21:00:00 7.119572e-05 9918059.8 85350.0 \n", + "2011-02-10 21:00:00 -9.047271e-05 9914617.0 89505.0 \n", + "2011-02-11 21:00:00 5.989073e-05 9911209.0 92007.9 \n", + "2011-02-14 21:00:00 6.266609e-05 9907778.8 96037.2 \n", + "2011-02-15 21:00:00 1.997113e-05 9904326.2 100116.7 \n", + "2011-02-16 21:00:00 9.292686e-05 9900866.7 103776.0 \n", + "2011-02-17 21:00:00 -1.437899e-04 9897376.2 108196.2 \n", + "2011-02-18 21:00:00 -2.380116e-04 9893932.1 110201.6 \n", + "2011-02-22 21:00:00 -3.788036e-04 9890562.4 111190.2 \n", + "2011-02-23 21:00:00 1.308967e-04 9887307.5 110656.4 \n", + "2011-02-24 21:00:00 8.720634e-06 9884014.1 115258.5 \n", + "2011-02-25 21:00:00 1.828617e-04 9880718.2 118641.6 \n", + "2011-02-28 21:00:00 1.793987e-04 9877371.5 123816.8 \n", + "2011-03-01 21:00:00 -1.424875e-04 9873976.3 129006.2 \n", + "2011-03-02 21:00:00 1.052536e-04 9870618.6 130938.6 \n", + "2011-03-03 21:00:00 2.858954e-04 9867233.9 135376.0 \n", + "2011-03-04 21:00:00 1.759038e-05 9863777.7 141691.9 \n", + "2011-03-07 21:00:00 -1.872443e-04 9860317.2 145328.4 \n", + "2011-03-08 21:00:00 1.630385e-05 9856901.3 146870.8 \n", + "2011-03-09 21:00:00 -1.390153e-04 9853481.6 150453.6 \n", + "2011-03-10 21:00:00 -2.510661e-04 9850093.5 152451.0 \n", + "2011-03-11 21:00:00 2.354892e-04 9846761.2 153272.0 \n", + "2011-03-14 20:00:00 7.092306e-05 9843377.7 159010.4 \n", + "2011-03-15 20:00:00 -3.752738e-04 9839979.1 163118.4 \n", + "2011-03-16 20:00:00 -7.262577e-04 9836658.7 162684.9 \n", + "2011-03-17 20:00:00 2.226463e-04 9833486.5 158595.0 \n", + "2011-03-18 20:00:00 -1.949610e-04 9830269.8 164036.4 \n", + "2011-03-21 20:00:00 4.319001e-04 9827091.3 165266.4 \n", + "2011-03-22 20:00:00 9.699227e-05 9823829.8 172843.6 \n", + "2011-03-23 20:00:00 -1.048147e-04 9820550.0 177093.0 \n", + "2011-03-24 20:00:00 3.058741e-04 9817289.6 179305.5 \n", + "2011-03-25 20:00:00 3.533423e-04 9813973.6 185679.2 \n", + "2011-03-28 20:00:00 -5.986093e-05 9810594.5 192591.6 \n", + "2011-03-29 20:00:00 2.896251e-05 9807225.9 195361.4 \n", + " ... ... ... \n", + "\n", + " transactions \n", + "2011-01-03 21:00:00 [] \n", + "2011-01-04 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-01-05 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-01-06 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-01-07 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-01-10 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-01-11 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-01-12 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-01-13 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-01-14 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-01-18 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-01-19 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-01-20 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-01-21 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-01-24 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-01-25 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-01-26 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-01-27 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-01-28 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-01-31 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-02-01 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-02-02 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-02-03 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-02-04 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-02-07 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-02-08 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-02-09 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-02-10 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-02-11 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-02-14 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-02-15 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-02-16 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-02-17 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-02-18 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-02-22 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-02-23 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-02-24 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-02-25 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-02-28 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-01 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-02 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-03 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-04 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-07 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-08 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-09 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-10 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-11 21:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-14 20:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-15 20:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-16 20:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-17 20:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-18 20:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-21 20:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-22 20:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-23 20:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-24 20:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-25 20:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-28 20:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + "2011-03-29 20:00:00 [{u'commission': 0.3, u'amount': 10, u'sid': u... \n", + " ... \n", + "\n", + "[502 rows x 14 columns]" + ] + } + ], + "prompt_number": 6 + } + ], + "metadata": {} + } + ] +} \ No newline at end of file diff --git a/zipline/examples/buyapple.py b/zipline/examples/buyapple.py index 8922bcd8..a3564bd1 100755 --- a/zipline/examples/buyapple.py +++ b/zipline/examples/buyapple.py @@ -16,9 +16,11 @@ from zipline.api import order, record + def initialize(context): pass + def handle_data(context, data): order('AAPL', 10) record(AAPL=data['AAPL'].price) diff --git a/zipline/examples/buyapple_analyze.py b/zipline/examples/buyapple_analyze.py index a6e6d40f..d0029be6 100644 --- a/zipline/examples/buyapple_analyze.py +++ b/zipline/examples/buyapple_analyze.py @@ -1,5 +1,6 @@ import matplotlib.pyplot as plt + def analyze(context, perf): ax1 = plt.subplot(211) perf.portfolio_value.plot(ax=ax1) diff --git a/zipline/examples/dual_moving_average.py b/zipline/examples/dual_moving_average.py index 1425c6f3..9e5dd72c 100755 --- a/zipline/examples/dual_moving_average.py +++ b/zipline/examples/dual_moving_average.py @@ -26,6 +26,7 @@ from zipline.api import order_target, record, symbol from collections import deque as moving_window import numpy as np + def initialize(context): # Add 2 windows, one with a long window, one # with a short window. @@ -33,6 +34,7 @@ def initialize(context): context.short_window = moving_window(maxlen=100) context.long_window = moving_window(maxlen=300) + def handle_data(context, data): # Save price to window context.short_window.append(data[symbol('AAPL')].price) diff --git a/zipline/examples/dual_moving_average_analyze.py b/zipline/examples/dual_moving_average_analyze.py index bbb692d9..324c567a 100644 --- a/zipline/examples/dual_moving_average_analyze.py +++ b/zipline/examples/dual_moving_average_analyze.py @@ -1,5 +1,6 @@ import matplotlib.pyplot as plt + def analyze(context, perf): fig = plt.figure() ax1 = fig.add_subplot(211) @@ -11,7 +12,8 @@ def analyze(context, perf): perf_trans = perf.ix[[t != [] for t in perf.transactions]] buys = perf_trans.ix[[t[0]['amount'] > 0 for t in perf_trans.transactions]] - sells = perf_trans.ix[[t[0]['amount'] < 0 for t in perf_trans.transactions]] + sells = perf_trans.ix[ + [t[0]['amount'] < 0 for t in perf_trans.transactions]] ax2.plot(buys.index, perf.short_mavg.ix[buys.index], '^', markersize=10, color='m') ax2.plot(sells.index, perf.short_mavg.ix[sells.index], diff --git a/zipline/utils/__init__.py b/zipline/utils/__init__.py index d3031c30..602a4be1 100644 --- a/zipline/utils/__init__.py +++ b/zipline/utils/__init__.py @@ -13,6 +13,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -from .cli import run_algo, parse_args +from .cli import run_algo, parse_args, parse_cell_magic -__all__ = ['run_algo', 'parse_args'] \ No newline at end of file +__all__ = ['run_algo', 'parse_args', 'parse_cell_magic'] diff --git a/zipline/utils/cli.py b/zipline/utils/cli.py index 2a299999..673d3bcd 100644 --- a/zipline/utils/cli.py +++ b/zipline/utils/cli.py @@ -16,17 +16,16 @@ import sys import os import argparse -import ConfigParser from copy import copy -import datetime +from six import print_ +from six.moves import configparser import pandas as pd try: from pygments import highlight from pygments.lexers import PythonLexer from pygments.formatters import TerminalFormatter - from pygments.styles import STYLE_MAP PYGMENTS = True except: PYGMENTS = False @@ -42,7 +41,8 @@ DEFAULTS = { 'symbols': 'AAPL' } -def parse_args(argv): + +def parse_args(argv, ipython_mode=False): # Parse any conf_file specification # We make this parser with add_help=False so that # it doesn't parse -h and print help. @@ -51,7 +51,7 @@ def parse_args(argv): formatter_class=argparse.RawDescriptionHelpFormatter, # Turn off help, so we print all options in response to -h add_help=False - ) + ) conf_parser.add_argument("-c", "--conf_file", help="Specify config file", metavar="FILE") @@ -60,7 +60,7 @@ def parse_args(argv): defaults = copy(DEFAULTS) if args.conf_file: - config = ConfigParser.SafeConfigParser() + config = configparser.SafeConfigParser() config.read([args.conf_file]) defaults.update(dict(config.items("Defaults"))) @@ -82,10 +82,34 @@ def parse_args(argv): parser.add_argument('--capital_base') parser.add_argument('--source', choices=('yahoo',)) parser.add_argument('--symbols') + parser.add_argument('--output', '-o') + if ipython_mode: + parser.add_argument('--local_namespace', action='store_true') + args = parser.parse_args(remaining_argv) return(vars(args)) + +def parse_cell_magic(line, cell): + """Parse IPython magic""" + args_list = line.split(' ') + args = parse_args(args_list, ipython_mode=True) + + local_namespace = args.pop('local_namespace', False) + # By default, execute inside IPython namespace + if not local_namespace: + args['namespace'] = get_ipython().user_ns # flake8: noqa + + perf = run_algo(print_algo=False, algo_text=cell, **args) + + # If we are running inside NB, do not output to file but create a + # variable instead + output_var_name = args.pop('output', None) + if output_var_name is not None: + get_ipython().user_ns[output_var_name] = perf # flake8: noqa + + def run_algo(print_algo=True, **kwargs): start = pd.Timestamp(kwargs['start'], tz='UTC') end = pd.Timestamp(kwargs['end'], tz='UTC') @@ -93,29 +117,40 @@ def run_algo(print_algo=True, **kwargs): symbols = kwargs['symbols'].split(',') if kwargs['source'] == 'yahoo': - source = zipline.data.load_bars_from_yahoo(stocks=symbols, start=start, end=end) + source = zipline.data.load_bars_from_yahoo( + stocks=symbols, start=start, end=end) else: - raise NotImplementedError('Source %s not implemented.' % kwargs['source']) + raise NotImplementedError( + 'Source %s not implemented.' % kwargs['source']) - algo_fname = kwargs['algofile'] - with open(algo_fname, 'r') as fd: - algo_text = fd.read() + algo_text = kwargs.get('algo_text', None) + if algo_text is None: + # Expect algofile to be set + algo_fname = kwargs['algofile'] + with open(algo_fname, 'r') as fd: + algo_text = fd.read() - analyze_fname = os.path.splitext(algo_fname)[0] + '_analyze.py' - if os.path.exists(analyze_fname): - with open(analyze_fname, 'r') as fd: - # Simply append - algo_text += fd.read() + analyze_fname = os.path.splitext(algo_fname)[0] + '_analyze.py' + if os.path.exists(analyze_fname): + with open(analyze_fname, 'r') as fd: + # Simply append + algo_text += fd.read() if print_algo: if PYGMENTS: - highlight(algo_text, PythonLexer(), TerminalFormatter(), outfile=sys.stdout) + highlight(algo_text, PythonLexer(), TerminalFormatter(), + outfile=sys.stdout) else: - print algo_text + print_(algo_text) algo = zipline.TradingAlgorithm(script=algo_text, + namespace=kwargs.get('namespace', {}), capital_base=float(kwargs['capital_base'])) perf = algo.run(source) + output_fname = kwargs.get('output', None) + if output_fname is not None: + perf.to_pickle(output_fname) + return perf