{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Prepare environment\n", "import os, sys\n", "sys.path.insert(0, os.path.abspath('..'))\n", "from IPython.display import display\n", "from IPython.core.interactiveshell import InteractiveShell\n", "InteractiveShell.ast_node_interactivity = \"all\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example starts here\n", "------" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import asyncio\n", "from ibstract import IB\n", "from ibstract import MarketDataBlock\n", "from ibstract import HistDataReq\n", "from ibstract.utils import dtest, dtcst, dtutc" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Instantiate IB and connect to Gateway/TWS\n", "**When connecting to IB Gateway/TWS, an internal semaphore is acquired for up to 32 clients operating concurrently.**" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ib connected? True\n", "ib2 connected? True\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ib = IB('127.0.0.1', 4002)\n", "ib2 = IB()\n", "ib2.connect('127.0.0.1', 4002)\n", "print('ib connected? ', ib.connected)\n", "print('ib2 connected? ', ib2.connected)\n", "ib\n", "ib2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### HistDataReq - A request object for historical data\n", "** HistDataReq constructor signature: **\n", "HistDataReq(sectype, symbol, barsize, timedur, timeend=None, datatype='TRADES', exchange='SMART', currency='USD')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "HistDataReq(Stock, GS, 1h, 5d, 2017-09-12 12:00:00-04:00, TRADES, SMART, USD)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "HistDataReq(Stock, BAC, 1d, 10d, 2017-09-30 17:06:38.626811+00:00, TRADES, SMART, USD)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "HistDataReq(Stock, AMZN, 1h, 3d, 2017-09-12 00:00:00-04:00, TRADES, SMART, USD)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "HistDataReq(Stock, GOOG, 30m, 3d, 2017-09-12 23:00:00+00:00, TRADES, SMART, USD)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "HistDataReq(Stock, FB, 10m, 5d, 2017-09-12 16:00:00-04:00, TRADES, SMART, USD)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "HistDataReq(Stock, TVIX, 5m, 5d, 2017-09-12 16:00:00-05:00, TRADES, SMART, USD)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "req_list = [\n", " HistDataReq('Stock', 'GS', '1 hour', '5 d', dtest(2017,9,12,12)),\n", " HistDataReq('Stock', 'BAC', '1 day', '10 d'), # timeend=None means datetime.now(tz=pytz.utc)\n", " HistDataReq('Stock', 'AMZN', '1 hour', '3 d', dtest(2017, 9, 12)),\n", " HistDataReq('Stock', 'GOOG', '30 mins', '3 d', dtutc(2017, 9, 12, 23)),\n", " HistDataReq('Stock', 'FB', '10 mins', '5 d', dtest(2017, 9, 12, 16)),\n", " HistDataReq('Stock', 'TVIX', '5 mins', '5 d', dtcst(2017, 9, 12, 16)),\n", "]\n", "\n", "for req in req_list:\n", " req" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Download data from IB requested by a HistDataReq\n", "** Request contract details for a HistDataReq by the coroutine IB.hist_data_req_contract_details(). **" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[ContractDetails(summary=Contract(conId=4627828, symbol='GS', secType='STK', exchange='SMART', primaryExchange='NYSE', currency='USD', localSymbol='GS', tradingClass='GS'), marketName='GS', minTick=0.01, orderTypes='ACTIVETIM,ADJUST,ALERT,ALGO,ALLOC,AON,AVGCOST,BASKET,COND,CONDORDER,DARKONLY,DARKPOLL,DAY,DEACT,DEACTDIS,DEACTEOD,DIS,GAT,GTC,GTD,GTT,HID,IBKRATS,ICE,IMB,IOC,LIT,LMT,LOC,MIT,MKT,MOC,MTL,NGCOMB,NODARK,NONALGO,OCA,OPG,OPGREROUT,PEGBENCH,POSTONLY,PREOPGRTH,REL,RPI,RTH,RTHIGNOPG,SCALE,SCALEODD,SCALERST,SMARTSTG,SNAPMID,SNAPMKT,SNAPREL,STP,STPLMT,SWEEP,TRAIL,TRAILLIT,TRAILLMT,TRAILMIT,WHATIF', validExchanges='SMART,AMEX,NYSE,CBOE,ISE,CHX,ARCA,ISLAND,VWAP,DRCTEDGE,NSX,BEX,BATS,EDGEA,CSFBALGO,JEFFALGO,BYX,IEX,CVGXALGO,TPLUS1,PSX', priceMagnifier=1, longName='GOLDMAN SACHS GROUP INC', industry='Financial', category='Banks', subcategory='Diversified Banking Inst', timeZoneId='EST5EDT', tradingHours='20170930:CLOSED;20171001:CLOSED;20171002:0400-2000;20171003:0400-2000;20171004:0400-2000;20171005:0400-2000;20171006:0400-2000;20171007:CLOSED;20171008:CLOSED;20171009:0400-2000;20171010:0400-2000;20171011:0400-2000;20171012:0400-2000;20171013:0400-2000;20171014:CLOSED;20171015:CLOSED;20171016:0400-2000;20171017:0400-2000;20171018:0400-2000;20171019:0400-2000;20171020:0400-2000;20171021:CLOSED;20171022:CLOSED;20171023:0400-2000;20171024:0400-2000;20171025:0400-2000;20171026:0400-2000;20171027:0400-2000;20171028:CLOSED;20171029:CLOSED;20171030:0400-2000;20171031:0400-2000;20171101:0400-2000;20171102:0400-2000;20171103:0400-2000', liquidHours='20170930:CLOSED;20171001:CLOSED;20171002:0930-1600;20171003:0930-1600;20171004:0930-1600;20171005:0930-1600;20171006:0930-1600;20171007:CLOSED;20171008:CLOSED;20171009:0930-1600;20171010:0930-1600;20171011:0930-1600;20171012:0930-1600;20171013:0930-1600;20171014:CLOSED;20171015:CLOSED;20171016:0930-1600;20171017:0930-1600;20171018:0930-1600;20171019:0930-1600;20171020:0930-1600;20171021:CLOSED;20171022:CLOSED;20171023:0930-1600;20171024:0930-1600;20171025:0930-1600;20171026:0930-1600;20171027:0930-1600;20171028:CLOSED;20171029:CLOSED;20171030:0930-1600;20171031:0930-1600;20171101:0930-1600;20171102:0930-1600;20171103:0930-1600', mdSizeMultiplier=100, aggGroup=1)]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "req = HistDataReq('Stock', 'GS', '1 hour', '5 d', dtest(2017,9,12,12))\n", "loop = asyncio.get_event_loop()\n", "contract_details_list = loop.run_until_complete(ib.hist_data_req_contract_details(req))\n", "contract_details_list" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "** The coroutine IB.hist_data_req_timezone() downloads the exchange time zone for the requested security. **" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "req = HistDataReq('Stock', 'GS', '1 hour', '5 d', dtest(2017,9,12,12))\n", "loop = asyncio.get_event_loop()\n", "xchg_tz = loop.run_until_complete(ib.hist_data_req_timezone(req))\n", "xchg_tz" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "** The coroutine IB.get_hist_data_async(*reqs) downloads historical data for one or multiple HistDataReqs concurrently, and output a list of MarketDataBlock instances in the order of input requests.**" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
openinghighlowclosingvolumebarcountaverage
SymbolDataTypeBarSizeTickerTime
GSTRADES1h2017-09-06 08:00:00-04:00218.97219.29218.97219.202811219.159
2017-09-06 09:00:00-04:00219.10220.78218.67219.5847292596219.796
2017-09-06 10:00:00-04:00219.61221.02219.54220.0144512722220.490
2017-09-06 11:00:00-04:00219.98220.20217.73218.2042222500219.020
2017-09-06 12:00:00-04:00218.20219.83217.61219.8026801809218.335
\n", "
" ], "text/plain": [ " opening high low \\\n", "Symbol DataType BarSize TickerTime \n", "GS TRADES 1h 2017-09-06 08:00:00-04:00 218.97 219.29 218.97 \n", " 2017-09-06 09:00:00-04:00 219.10 220.78 218.67 \n", " 2017-09-06 10:00:00-04:00 219.61 221.02 219.54 \n", " 2017-09-06 11:00:00-04:00 219.98 220.20 217.73 \n", " 2017-09-06 12:00:00-04:00 218.20 219.83 217.61 \n", "\n", " closing volume barcount \\\n", "Symbol DataType BarSize TickerTime \n", "GS TRADES 1h 2017-09-06 08:00:00-04:00 219.20 28 11 \n", " 2017-09-06 09:00:00-04:00 219.58 4729 2596 \n", " 2017-09-06 10:00:00-04:00 220.01 4451 2722 \n", " 2017-09-06 11:00:00-04:00 218.20 4222 2500 \n", " 2017-09-06 12:00:00-04:00 219.80 2680 1809 \n", "\n", " average \n", "Symbol DataType BarSize TickerTime \n", "GS TRADES 1h 2017-09-06 08:00:00-04:00 219.159 \n", " 2017-09-06 09:00:00-04:00 219.796 \n", " 2017-09-06 10:00:00-04:00 220.490 \n", " 2017-09-06 11:00:00-04:00 219.020 \n", " 2017-09-06 12:00:00-04:00 218.335 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
openinghighlowclosingvolumebarcountaverage
SymbolDataTypeBarSizeTickerTime
BACTRADES1d2017-09-17 20:00:00-04:0024.4224.7724.4124.7057955011093524.6995
2017-09-18 20:00:00-04:0024.7024.9924.6224.8648571010029424.8575
2017-09-19 20:00:00-04:0024.8825.2424.6725.0673477113809024.9735
2017-09-20 20:00:00-04:0025.0325.2824.9225.1651125610432025.1420
2017-09-21 20:00:00-04:0025.0125.0724.8525.025222879724624.9845
\n", "
" ], "text/plain": [ " opening high low \\\n", "Symbol DataType BarSize TickerTime \n", "BAC TRADES 1d 2017-09-17 20:00:00-04:00 24.42 24.77 24.41 \n", " 2017-09-18 20:00:00-04:00 24.70 24.99 24.62 \n", " 2017-09-19 20:00:00-04:00 24.88 25.24 24.67 \n", " 2017-09-20 20:00:00-04:00 25.03 25.28 24.92 \n", " 2017-09-21 20:00:00-04:00 25.01 25.07 24.85 \n", "\n", " closing volume barcount \\\n", "Symbol DataType BarSize TickerTime \n", "BAC TRADES 1d 2017-09-17 20:00:00-04:00 24.70 579550 110935 \n", " 2017-09-18 20:00:00-04:00 24.86 485710 100294 \n", " 2017-09-19 20:00:00-04:00 25.06 734771 138090 \n", " 2017-09-20 20:00:00-04:00 25.16 511256 104320 \n", " 2017-09-21 20:00:00-04:00 25.02 522287 97246 \n", "\n", " average \n", "Symbol DataType BarSize TickerTime \n", "BAC TRADES 1d 2017-09-17 20:00:00-04:00 24.6995 \n", " 2017-09-18 20:00:00-04:00 24.8575 \n", " 2017-09-19 20:00:00-04:00 24.9735 \n", " 2017-09-20 20:00:00-04:00 25.1420 \n", " 2017-09-21 20:00:00-04:00 24.9845 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
openinghighlowclosingvolumebarcountaverage
SymbolDataTypeBarSizeTickerTime
AMZNTRADES1h2017-09-07 07:00:00-04:00970.00970.00970.00970.0022970.000
2017-09-07 08:00:00-04:00970.87975.00970.78975.004936972.557
2017-09-07 09:00:00-04:00974.47979.00972.55975.7237792276975.865
2017-09-07 10:00:00-04:00975.91979.75973.52979.0132802159976.938
2017-09-07 11:00:00-04:00979.05980.59976.73979.4222381509979.118
\n", "
" ], "text/plain": [ " opening high low \\\n", "Symbol DataType BarSize TickerTime \n", "AMZN TRADES 1h 2017-09-07 07:00:00-04:00 970.00 970.00 970.00 \n", " 2017-09-07 08:00:00-04:00 970.87 975.00 970.78 \n", " 2017-09-07 09:00:00-04:00 974.47 979.00 972.55 \n", " 2017-09-07 10:00:00-04:00 975.91 979.75 973.52 \n", " 2017-09-07 11:00:00-04:00 979.05 980.59 976.73 \n", "\n", " closing volume barcount \\\n", "Symbol DataType BarSize TickerTime \n", "AMZN TRADES 1h 2017-09-07 07:00:00-04:00 970.00 2 2 \n", " 2017-09-07 08:00:00-04:00 975.00 49 36 \n", " 2017-09-07 09:00:00-04:00 975.72 3779 2276 \n", " 2017-09-07 10:00:00-04:00 979.01 3280 2159 \n", " 2017-09-07 11:00:00-04:00 979.42 2238 1509 \n", "\n", " average \n", "Symbol DataType BarSize TickerTime \n", "AMZN TRADES 1h 2017-09-07 07:00:00-04:00 970.000 \n", " 2017-09-07 08:00:00-04:00 972.557 \n", " 2017-09-07 09:00:00-04:00 975.865 \n", " 2017-09-07 10:00:00-04:00 976.938 \n", " 2017-09-07 11:00:00-04:00 979.118 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "loop = asyncio.get_event_loop()\n", "blk_list = loop.run_until_complete(ib.req_hist_data_async(*req_list[:3]))\n", "for blk in blk_list:\n", " blk.df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### A blocking function IB.get_hist_data() is also available without using asyncio event loop. It drives the coroutine version internally." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ " opening high low \\\n", "Symbol DataType BarSize TickerTime \n", "GS TRADES 1h 2017-09-06 08:00:00-04:00 218.97 219.29 218.97 \n", " 2017-09-06 09:00:00-04:00 219.10 220.78 218.67 \n", " 2017-09-06 10:00:00-04:00 219.61 221.02 219.54 \n", " 2017-09-06 11:00:00-04:00 219.98 220.20 217.73 \n", " 2017-09-06 12:00:00-04:00 218.20 219.83 217.61 \n", " 2017-09-06 13:00:00-04:00 219.77 220.50 219.41 \n", " 2017-09-06 14:00:00-04:00 219.61 219.80 218.90 \n", " 2017-09-06 15:00:00-04:00 219.33 219.70 218.85 \n", " 2017-09-06 16:00:00-04:00 218.83 219.09 218.83 \n", " 2017-09-06 17:00:00-04:00 218.98 218.98 218.98 \n", " 2017-09-06 18:00:00-04:00 218.70 218.70 218.70 \n", " 2017-09-06 19:00:00-04:00 218.69 218.70 218.69 \n", " 2017-09-07 07:00:00-04:00 219.00 219.00 219.00 \n", " 2017-09-07 08:00:00-04:00 219.21 219.40 218.50 \n", " 2017-09-07 09:00:00-04:00 218.57 218.83 216.07 \n", " 2017-09-07 10:00:00-04:00 216.35 216.35 214.64 \n", " 2017-09-07 11:00:00-04:00 215.74 216.41 214.96 \n", " 2017-09-07 12:00:00-04:00 215.24 216.28 215.06 \n", " 2017-09-07 13:00:00-04:00 216.04 216.41 215.26 \n", " 2017-09-07 14:00:00-04:00 215.58 215.74 215.25 \n", " 2017-09-07 15:00:00-04:00 215.40 215.94 214.95 \n", " 2017-09-07 16:00:00-04:00 215.84 216.88 215.80 \n", " 2017-09-07 17:00:00-04:00 215.98 215.98 215.90 \n", " 2017-09-07 18:00:00-04:00 215.90 215.99 215.90 \n", " 2017-09-07 19:00:00-04:00 216.09 216.09 216.09 \n", " 2017-09-08 07:00:00-04:00 215.44 215.44 215.44 \n", " 2017-09-08 08:00:00-04:00 214.90 215.50 214.80 \n", " 2017-09-08 09:00:00-04:00 215.50 218.76 215.10 \n", " 2017-09-08 10:00:00-04:00 218.68 219.28 217.78 \n", " 2017-09-08 11:00:00-04:00 218.06 218.39 216.82 \n", " 2017-09-08 12:00:00-04:00 216.92 217.30 216.67 \n", " 2017-09-08 13:00:00-04:00 217.12 217.17 216.15 \n", " 2017-09-08 14:00:00-04:00 216.76 217.35 216.61 \n", " 2017-09-08 15:00:00-04:00 217.01 217.34 216.69 \n", " 2017-09-08 16:00:00-04:00 217.21 217.21 216.71 \n", " 2017-09-08 17:00:00-04:00 217.00 217.00 217.00 \n", " 2017-09-08 18:00:00-04:00 216.46 216.80 216.46 \n", " 2017-09-08 19:00:00-04:00 216.80 216.80 216.80 \n", " 2017-09-11 07:00:00-04:00 219.01 219.06 219.00 \n", " 2017-09-11 08:00:00-04:00 219.00 219.50 218.02 \n", " 2017-09-11 09:00:00-04:00 219.25 221.72 218.99 \n", " 2017-09-11 10:00:00-04:00 219.66 221.35 219.54 \n", " 2017-09-11 11:00:00-04:00 220.69 221.89 220.43 \n", " 2017-09-11 12:00:00-04:00 220.85 221.68 220.40 \n", " 2017-09-11 13:00:00-04:00 221.13 221.58 220.98 \n", " 2017-09-11 14:00:00-04:00 221.41 221.54 220.97 \n", " 2017-09-11 15:00:00-04:00 221.26 221.63 220.92 \n", " 2017-09-11 16:00:00-04:00 221.06 221.07 221.00 \n", " 2017-09-11 17:00:00-04:00 221.06 221.06 221.06 \n", " 2017-09-11 18:00:00-04:00 221.02 221.02 221.02 \n", " 2017-09-11 19:00:00-04:00 221.02 221.02 221.02 \n", " 2017-09-12 07:00:00-04:00 221.50 221.50 221.50 \n", " 2017-09-12 08:00:00-04:00 221.50 222.00 221.50 \n", " 2017-09-12 09:00:00-04:00 221.84 225.80 221.84 \n", " 2017-09-12 10:00:00-04:00 225.36 226.41 224.98 \n", " 2017-09-12 11:00:00-04:00 225.57 227.18 225.15 \n", "\n", " closing volume barcount \\\n", "Symbol DataType BarSize TickerTime \n", "GS TRADES 1h 2017-09-06 08:00:00-04:00 219.20 28 11 \n", " 2017-09-06 09:00:00-04:00 219.58 4729 2596 \n", " 2017-09-06 10:00:00-04:00 220.01 4451 2722 \n", " 2017-09-06 11:00:00-04:00 218.20 4222 2500 \n", " 2017-09-06 12:00:00-04:00 219.80 2680 1809 \n", " 2017-09-06 13:00:00-04:00 219.57 2470 1492 \n", " 2017-09-06 14:00:00-04:00 219.33 2127 1447 \n", " 2017-09-06 15:00:00-04:00 219.05 5587 3451 \n", " 2017-09-06 16:00:00-04:00 218.99 3634 6 \n", " 2017-09-06 17:00:00-04:00 218.98 2 1 \n", " 2017-09-06 18:00:00-04:00 218.70 1 1 \n", " 2017-09-06 19:00:00-04:00 218.70 8 2 \n", " 2017-09-07 07:00:00-04:00 219.00 1 1 \n", " 2017-09-07 08:00:00-04:00 218.50 31 16 \n", " 2017-09-07 09:00:00-04:00 216.31 3338 1726 \n", " 2017-09-07 10:00:00-04:00 215.77 7048 4299 \n", " 2017-09-07 11:00:00-04:00 215.28 4571 3190 \n", " 2017-09-07 12:00:00-04:00 216.07 2191 1541 \n", " 2017-09-07 13:00:00-04:00 215.60 2058 1495 \n", " 2017-09-07 14:00:00-04:00 215.37 2206 1509 \n", " 2017-09-07 15:00:00-04:00 215.83 6582 4149 \n", " 2017-09-07 16:00:00-04:00 216.02 1869 9 \n", " 2017-09-07 17:00:00-04:00 215.90 9 6 \n", " 2017-09-07 18:00:00-04:00 215.99 14 3 \n", " 2017-09-07 19:00:00-04:00 216.09 1 1 \n", " 2017-09-08 07:00:00-04:00 215.44 1 1 \n", " 2017-09-08 08:00:00-04:00 215.50 22 8 \n", " 2017-09-08 09:00:00-04:00 218.67 5788 3250 \n", " 2017-09-08 10:00:00-04:00 218.04 4696 3283 \n", " 2017-09-08 11:00:00-04:00 216.89 2574 1880 \n", " 2017-09-08 12:00:00-04:00 217.14 2049 1433 \n", " 2017-09-08 13:00:00-04:00 216.76 2254 1565 \n", " 2017-09-08 14:00:00-04:00 217.01 1921 1373 \n", " 2017-09-08 15:00:00-04:00 217.24 3980 2789 \n", " 2017-09-08 16:00:00-04:00 216.71 2222 6 \n", " 2017-09-08 17:00:00-04:00 217.00 2 1 \n", " 2017-09-08 18:00:00-04:00 216.80 3 2 \n", " 2017-09-08 19:00:00-04:00 216.80 0 0 \n", " 2017-09-11 07:00:00-04:00 219.00 19 15 \n", " 2017-09-11 08:00:00-04:00 219.25 86 52 \n", " 2017-09-11 09:00:00-04:00 219.66 4403 2345 \n", " 2017-09-11 10:00:00-04:00 220.66 4182 2712 \n", " 2017-09-11 11:00:00-04:00 220.78 2952 2094 \n", " 2017-09-11 12:00:00-04:00 221.11 1833 1314 \n", " 2017-09-11 13:00:00-04:00 221.40 2417 1639 \n", " 2017-09-11 14:00:00-04:00 221.27 2008 1576 \n", " 2017-09-11 15:00:00-04:00 221.09 4115 3177 \n", " 2017-09-11 16:00:00-04:00 221.06 1969 5 \n", " 2017-09-11 17:00:00-04:00 221.06 206 1 \n", " 2017-09-11 18:00:00-04:00 221.02 2 2 \n", " 2017-09-11 19:00:00-04:00 221.02 0 0 \n", " 2017-09-12 07:00:00-04:00 221.50 3 3 \n", " 2017-09-12 08:00:00-04:00 221.80 41 34 \n", " 2017-09-12 09:00:00-04:00 225.35 6492 3768 \n", " 2017-09-12 10:00:00-04:00 225.69 4994 3229 \n", " 2017-09-12 11:00:00-04:00 226.93 4580 2769 \n", "\n", " average \n", "Symbol DataType BarSize TickerTime \n", "GS TRADES 1h 2017-09-06 08:00:00-04:00 219.159 \n", " 2017-09-06 09:00:00-04:00 219.796 \n", " 2017-09-06 10:00:00-04:00 220.490 \n", " 2017-09-06 11:00:00-04:00 219.020 \n", " 2017-09-06 12:00:00-04:00 218.335 \n", " 2017-09-06 13:00:00-04:00 219.954 \n", " 2017-09-06 14:00:00-04:00 219.428 \n", " 2017-09-06 15:00:00-04:00 219.363 \n", " 2017-09-06 16:00:00-04:00 218.830 \n", " 2017-09-06 17:00:00-04:00 218.980 \n", " 2017-09-06 18:00:00-04:00 218.700 \n", " 2017-09-06 19:00:00-04:00 218.696 \n", " 2017-09-07 07:00:00-04:00 219.000 \n", " 2017-09-07 08:00:00-04:00 219.015 \n", " 2017-09-07 09:00:00-04:00 217.503 \n", " 2017-09-07 10:00:00-04:00 215.392 \n", " 2017-09-07 11:00:00-04:00 215.666 \n", " 2017-09-07 12:00:00-04:00 215.518 \n", " 2017-09-07 13:00:00-04:00 215.708 \n", " 2017-09-07 14:00:00-04:00 215.428 \n", " 2017-09-07 15:00:00-04:00 215.313 \n", " 2017-09-07 16:00:00-04:00 215.846 \n", " 2017-09-07 17:00:00-04:00 215.927 \n", " 2017-09-07 18:00:00-04:00 215.909 \n", " 2017-09-07 19:00:00-04:00 216.090 \n", " 2017-09-08 07:00:00-04:00 215.440 \n", " 2017-09-08 08:00:00-04:00 215.050 \n", " 2017-09-08 09:00:00-04:00 217.577 \n", " 2017-09-08 10:00:00-04:00 218.707 \n", " 2017-09-08 11:00:00-04:00 217.345 \n", " 2017-09-08 12:00:00-04:00 217.015 \n", " 2017-09-08 13:00:00-04:00 216.591 \n", " 2017-09-08 14:00:00-04:00 217.117 \n", " 2017-09-08 15:00:00-04:00 217.075 \n", " 2017-09-08 16:00:00-04:00 217.209 \n", " 2017-09-08 17:00:00-04:00 217.000 \n", " 2017-09-08 18:00:00-04:00 216.698 \n", " 2017-09-08 19:00:00-04:00 216.800 \n", " 2017-09-11 07:00:00-04:00 219.004 \n", " 2017-09-11 08:00:00-04:00 218.883 \n", " 2017-09-11 09:00:00-04:00 219.964 \n", " 2017-09-11 10:00:00-04:00 220.819 \n", " 2017-09-11 11:00:00-04:00 221.137 \n", " 2017-09-11 12:00:00-04:00 221.104 \n", " 2017-09-11 13:00:00-04:00 221.304 \n", " 2017-09-11 14:00:00-04:00 221.248 \n", " 2017-09-11 15:00:00-04:00 221.246 \n", " 2017-09-11 16:00:00-04:00 221.060 \n", " 2017-09-11 17:00:00-04:00 221.060 \n", " 2017-09-11 18:00:00-04:00 221.020 \n", " 2017-09-11 19:00:00-04:00 221.020 \n", " 2017-09-12 07:00:00-04:00 221.500 \n", " 2017-09-12 08:00:00-04:00 221.791 \n", " 2017-09-12 09:00:00-04:00 224.636 \n", " 2017-09-12 10:00:00-04:00 225.686 \n", " 2017-09-12 11:00:00-04:00 226.220 " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "req = HistDataReq('Stock', 'GS', '1 hour', '5 d', dtest(2017,9,12,12))\n", "blk = ib.req_hist_data(req)[0]\n", "blk" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.1" } }, "nbformat": 4, "nbformat_minor": 2 }