├── LobsterDemoPythonCode.ipynb └── README.md /LobsterDemoPythonCode.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 4, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "name": "stdout", 10 | "output_type": "stream", 11 | "text": [ 12 | "No trading halts detected.\n" 13 | ] 14 | }, 15 | { 16 | "data": { 17 | "image/png": "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\n", 18 | "text/plain": [ 19 | "
" 20 | ] 21 | }, 22 | "metadata": { 23 | "needs_background": "light" 24 | }, 25 | "output_type": "display_data" 26 | }, 27 | { 28 | "data": { 29 | "image/png": "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\n", 30 | "text/plain": [ 31 | "
" 32 | ] 33 | }, 34 | "metadata": { 35 | "needs_background": "light" 36 | }, 37 | "output_type": "display_data" 38 | } 39 | ], 40 | "source": [ 41 | "\"\"\"\n", 42 | "Test LOBSTER data\n", 43 | "Convert LOBSTER R code demo into python (https://lobsterdata.com)\n", 44 | " \n", 45 | "Dec. 2019 - thertrader@gmail.com\n", 46 | "\"\"\"\n", 47 | "import pandas as pd\n", 48 | "from matplotlib import pyplot as plt\n", 49 | "import os \n", 50 | "import itertools as it\n", 51 | " \n", 52 | "# change the current directory \n", 53 | "os.chdir(r\"/home/arno/work/research/lobster\") \n", 54 | "\n", 55 | "# Message file information:\n", 56 | "# ----------------------------------------------------------\n", 57 | "#\n", 58 | "# - Dimension: (NumberEvents x 6)\n", 59 | "#\n", 60 | "# - Structure: Each row:\n", 61 | "# Time stamp (sec after midnight with decimal\n", 62 | "# precision of at least milliseconds and\n", 63 | "# up to nanoseconds depending on the period),\n", 64 | "# Event type, Order ID, Size (# of shares),\n", 65 | "# Price, Direction\n", 66 | "#\n", 67 | "# Event types:\n", 68 | "# - '1' Submission new limit order\n", 69 | "# - '2' Cancellation (partial)\n", 70 | "# - '3' Deletion (total order)\n", 71 | "# - '4' Execution of a visible limit order\n", 72 | "# - '5' Execution of a hidden limit order\n", 73 | "# \t\t\t- '7' Trading Halt (Detailed \n", 74 | "# information below)\n", 75 | "#\n", 76 | "# Direction:\n", 77 | "# - '-1' Sell limit order\n", 78 | "# - '-2' Buy limit order\n", 79 | "# - NOTE: Execution of a sell (buy)\n", 80 | "# limit order corresponds to\n", 81 | "# a buyer-(seller-) initiated\n", 82 | "# trade, i.e. a BUY (SELL) trade.\n", 83 | "#\n", 84 | "# ----------------------------------------------------------\n", 85 | "ticker = 'AMZN' \n", 86 | "\n", 87 | "theMessageBookFileName = \"AMZN_2012-06-21_34200000_57600000_message_10.csv\"\n", 88 | "\n", 89 | "theMessageBook = pd.read_csv(theMessageBookFileName, names = ['Time','Type','OrderID','Size','Price','TradeDirection'])\n", 90 | "\n", 91 | "startTrad = 9.5*60*60 # 9:30:00.000 in ms after midnight\n", 92 | "endTrad = 16*60*60 # 16:00:00.000 in ms after midnight\n", 93 | "\n", 94 | "theMessageBookFiltered = theMessageBook[theMessageBook['Time'] >= startTrad] \n", 95 | "theMessageBookFiltered = theMessageBookFiltered[theMessageBookFiltered['Time'] <= endTrad]\n", 96 | "\n", 97 | "\n", 98 | "# Note: As the rows of the message and orderbook file correspond to each other, the time index of\n", 99 | "# the message file can also be used to 'cut' the orderbook file.\n", 100 | "\n", 101 | "# Check for trading halts Rcode (left untouched for now)\n", 102 | "# ----------------------------------------------------------\n", 103 | "tradingHaltIdx = theMessageBookFiltered.index[(theMessageBookFiltered.Type == 7) & (theMessageBookFiltered.TradeDirection == -1)]\n", 104 | "\n", 105 | "tradeQuoteIdx = theMessageBookFiltered.index[(theMessageBookFiltered.Type == 7) & (theMessageBookFiltered.TradeDirection == 0)]\n", 106 | "\n", 107 | "tradeResumeIdx = theMessageBookFiltered.index[(theMessageBookFiltered.Type == 7) & (theMessageBookFiltered.TradeDirection == 1)]\n", 108 | "\n", 109 | "if (len(tradingHaltIdx) == 0 | len(tradeQuoteIdx) == 0 | len(tradeResumeIdx) == 0):\n", 110 | " print(\"No trading halts detected.\")\n", 111 | "\t\t\n", 112 | "if(len(tradingHaltIdx) != 0):\n", 113 | "\tprint(\"Data contains trading halt! at time stamp(s): \"); print(list(tradingHaltIdx))\n", 114 | "\t\t\n", 115 | "if(len(tradeQuoteIdx) != 0):\n", 116 | "\tprint(\" Data contains quoting message! at time stamp(s)\"); print(list(tradeQuoteIdx)) \n", 117 | "\t\t\t\n", 118 | "if(len(tradeResumeIdx) != 0):\n", 119 | "\tprint(\" Data resumes trading! at time stamp(s) \"); print(list(tradeResumeIdx))\n", 120 | "\t\t\n", 121 | "\n", 122 | "# ----------------------------------------------------------\n", 123 | "#\t\tWhen trading halts, a message of type '7' is written into the \n", 124 | "#\t\t'message' file. The corresponding price and trade direction \n", 125 | "#\t\tare set to '-1' and all other properties are set to '0'. \n", 126 | "#\t\tShould the resume of quoting be indicated by an additional \n", 127 | "#\t\tmessage in NASDAQ's Historical TotalView-ITCH files, another \n", 128 | "#\t\tmessage of type '7' with price '0' is added to the 'message' \n", 129 | "#\t\tfile. Again, the trade direction is set to '-1' and all other \n", 130 | "#\t\tfields are set to '0'. \n", 131 | "#\t\tWhen trading resumes a message of type '7' and \n", 132 | "#\t\tprice '1' (Trade direction '-1' and all other \n", 133 | "#\t\tentries '0') is written to the 'message' file. For messages \n", 134 | "#\t\tof type '7', the corresponding order book rows contain a \n", 135 | "#\t\tduplication of the preceding order book state. The reason \n", 136 | "#\t\tfor the trading halt is not included in the output.\n", 137 | "#\t\t\t\t\t\t\n", 138 | "#\t\tExample: Stylized trading halt messages in 'message' file.\t\t\t\t\n", 139 | "#\t\n", 140 | "#\t\tHalt: \t\t\t36023\t| 7 | 0 | 0 | -1 | -1\n", 141 | "#\t\t\t\t\t\t\t\t\t\t\t...\n", 142 | "#\t\tQuoting: \t\t36323 \t| 7 | 0 | 0 | 0 | -1\n", 143 | "#\t\t\t\t\t\t\t\t\t\t\t...\n", 144 | "#\t\tResume Trading:\t\t36723 | 7 | 0 | 0 | 1 | -1\n", 145 | "#\t\t\t\t\t\t\t\t\t\t\t...\n", 146 | "#\t\tThe vertical bars indicate the different columns in the \n", 147 | "#\t\tmessage file.\n", 148 | "\n", 149 | "# Set Bounds for Intraday Intervals\n", 150 | "# ----------------------------------------------------------\n", 151 | "\n", 152 | "# Define interval length\n", 153 | "freq = 5 * 60 # Interval length in ms 5 minutes\n", 154 | "\n", 155 | "# Number of intervals from 9:30 to 4:00\n", 156 | "noint = int((endTrad-startTrad)/freq)\n", 157 | "theMessageBookFiltered.index = range(0,len(theMessageBookFiltered),1)\n", 158 | "\n", 159 | "# Variables for 'for' loop\n", 160 | "j = 0\n", 161 | "l = 0\n", 162 | "bound = [] # Variable for inverval bound\n", 163 | "visible_count = [] # visible_count calculates the number of visible trades in an interval of 5 min\n", 164 | "hidden_count = [] # hidden_count calculates the number of visible trades in an interval of 5 min\n", 165 | "visible_size = [] # Total volume of visible trades in an interval of 5 minutes\n", 166 | "hidden_size = [] # Total volume of hidden trades in an interval of 5 minutes\n", 167 | "\n", 168 | "# Set Bounds for Intraday Intervals\n", 169 | "bound = []\n", 170 | "for j in range(0,noint):\n", 171 | " bound.append(startTrad + j * freq)\n", 172 | "\n", 173 | "#_____________________________________________________________________________\n", 174 | "# \n", 175 | "# Plot - Number of Executions and Trade Volume by Interval\n", 176 | "#_____________________________________________________________________________\n", 177 | " \n", 178 | "# Note: Difference between trades and executions\n", 179 | "#\n", 180 | "# The LOBSTER output records limit order executions\n", 181 | "# and not what one might intuitively consider trades.\n", 182 | "#\n", 183 | "# Imagine a volume of 1000 is posted at the best ask\n", 184 | "# price. Further, an incoming market buy order of\n", 185 | "# volume 1000 is executed against the quote.\n", 186 | "#\n", 187 | "# The LOBSTER output of this trade depends on the\n", 188 | "# composition of the volume at the best ask price.\n", 189 | "# Take the following two scenarios with the best ask\n", 190 | "# \t volume consisting of ...\n", 191 | "# \t(a) 1 sell limit order with volume 1000\n", 192 | "# \t(b) 5 sell limit orders with volume 200 each\n", 193 | "# \t(ordered according to time of submission)\n", 194 | "#\n", 195 | "# The LOBSTER output for case ...\n", 196 | "# (a) shows one execution of volume 1000. If the\n", 197 | "# incoming market order is matched with one\n", 198 | "# standing limit order, execution and trade\n", 199 | "# coincide.\n", 200 | "# (b) shows 5 executions of volume 200 each with the\n", 201 | "# same time stamp. The incoming order is matched\n", 202 | "# with 5 standing limit orders and triggers 5\n", 203 | "# executions.\n", 204 | "#\n", 205 | "# Bottom line:\n", 206 | "# LOBSTER records the exact limit orders against\n", 207 | "# which incoming market orders are executed. What\n", 208 | "# might be called 'economic' trade size has to be\n", 209 | "# inferred from the executions.\n", 210 | "\n", 211 | "\n", 212 | "# Logic to calculate number of visible/hidden trades and their volume\n", 213 | "for l in range(1,noint):\n", 214 | " visible_count.append(len(theMessageBookFiltered[(theMessageBookFiltered.Time > bound[l-1]) & (theMessageBookFiltered.Time < bound[l]) & (theMessageBookFiltered.Type == 4)])) \n", 215 | " visible_size.append(sum(theMessageBookFiltered['Size'][(theMessageBookFiltered.Time > bound[l-1]) & (theMessageBookFiltered.Time < bound[l]) & (theMessageBookFiltered.Type == 4)])/100) \n", 216 | " \n", 217 | " hidden_count.append(len(theMessageBookFiltered[(theMessageBookFiltered.Time > bound[l-1]) & (theMessageBookFiltered.Time < bound[l]) & (theMessageBookFiltered.Type == 5)])) \n", 218 | " hidden_size.append(sum(theMessageBookFiltered['Size'][(theMessageBookFiltered.Time > bound[l-1]) & (theMessageBookFiltered.Time < bound[l]) & (theMessageBookFiltered.Type == 5)])/100) \n", 219 | "\n", 220 | "\n", 221 | "# First plot : Number of Execution by Interval (Visible + Hidden)\n", 222 | "plt.title('Number of Executions by Interval for ' + ticker)\n", 223 | "plt.fill_between(range(0,len(visible_count)),\n", 224 | " visible_count,\n", 225 | " color = '#fc0417',\n", 226 | " label = 'Visible')\n", 227 | "plt.ylabel('Number of Executions')\n", 228 | "plt.xlabel('Interval')\n", 229 | "plt.legend()\n", 230 | "\n", 231 | "plt.fill_between(range(0,len(visible_count)),\n", 232 | " [x * (-1) for x in hidden_count], \n", 233 | " color = '#0c04fc',\n", 234 | " label = 'Hidden')\n", 235 | "plt.legend()\n", 236 | "plt.show()\n", 237 | "\n", 238 | "# Second plot : Trade Volume by Interval (Visible + Hidden)\n", 239 | "plt.title('Trade Volume by Interval for ' + ticker)\n", 240 | "plt.fill_between(range(0,len(visible_size)),\n", 241 | " visible_size,\n", 242 | " color = '#fc0417',\n", 243 | " label = 'Visible')\n", 244 | "plt.ylabel('Volume of Trades(x100 shares)')\n", 245 | "plt.xlabel('Interval')\n", 246 | "plt.legend()\n", 247 | "\n", 248 | "plt.fill_between(range(0,len(visible_size)),\n", 249 | " [x * (-1) for x in hidden_size], \n", 250 | " color = '#0c04fc',\n", 251 | " label = 'Hidden')\n", 252 | "plt.legend()\n", 253 | "plt.show()" 254 | ] 255 | }, 256 | { 257 | "cell_type": "code", 258 | "execution_count": 5, 259 | "metadata": {}, 260 | "outputs": [ 261 | { 262 | "data": { 263 | "image/png": "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\n", 264 | "text/plain": [ 265 | "
" 266 | ] 267 | }, 268 | "metadata": { 269 | "needs_background": "light" 270 | }, 271 | "output_type": "display_data" 272 | } 273 | ], 274 | "source": [ 275 | "#_____________________________________________________________________________\n", 276 | "#\n", 277 | "# Load Order Book File\n", 278 | "#_____________________________________________________________________________\n", 279 | "nlevels = 10\n", 280 | "\n", 281 | "# Load data\n", 282 | "theOrderBookFileName = \"AMZN_2012-06-21_34200000_57600000_orderbook_10.csv\"\n", 283 | "\n", 284 | "col = ['Ask Price ','Ask Size ','Bid Price ','Bid Size ']\n", 285 | "\n", 286 | "theNames = []\n", 287 | "for i in range(1, nlevels + 1):\n", 288 | " for j in col:\n", 289 | " theNames.append(str(j) + str(i))\n", 290 | "\n", 291 | "theOrderBook = pd.read_csv(theOrderBookFileName, names = theNames)\n", 292 | "\n", 293 | "# Orderbook file information:\n", 294 | "# ----------------------------------------------------------\n", 295 | "#\n", 296 | "# - Dimension: (NumberEvents x (NumberLevels*4))\n", 297 | "#\n", 298 | "# - Structure: Each row:\n", 299 | "# Ask price 1, Ask volume 1, Bid price 1,\n", 300 | "# Bid volume 1, Ask price 2, Ask volume 2,\n", 301 | "# Bid price 2, Bid volume 2, ...\n", 302 | "#\n", 303 | "# - Note: Unoccupied bid (ask) price levels are\n", 304 | "# set to -9999999999 (9999999999) with volume 0.\n", 305 | "#\t\t\t\t \n", 306 | "# ----------------------------------------------------------\n", 307 | "\n", 308 | "#_____________________________________________________________________________\n", 309 | "#\n", 310 | "# Data Preparation - Order Book File\n", 311 | "#_____________________________________________________________________________\n", 312 | "\n", 313 | "# Take only order books during the continuous trading period\n", 314 | "# from 9:30:00 to 16:00:00\n", 315 | "# ----------------------------------------------------------\n", 316 | "# Trading hours (start & end) 16:00:00.000 in ms after midnight\n", 317 | "timeIndex = theMessageBook.index[(theMessageBook.Time >= startTrad) & (theMessageBook.Time <= endTrad)]\n", 318 | "\n", 319 | "theOrderBookFiltered = theOrderBook[theOrderBook.index == timeIndex]\n", 320 | "# Convert prices into dollars\n", 321 | "# Note: LOBSTER stores prices in dollar price times 10000\n", 322 | "\n", 323 | "for i in list(range(0,len(theOrderBookFiltered.columns),2)):\n", 324 | " theOrderBookFiltered[theOrderBookFiltered.columns[i]] = theOrderBookFiltered[theOrderBookFiltered.columns[i]]/10000 \n", 325 | "\n", 326 | "#_____________________________________________________________________________\n", 327 | "#\n", 328 | "# Plot - Snapshot of the Limit Order Book\n", 329 | "#_____________________________________________________________________________\n", 330 | "# Note: Pick a random row/event from the order book\n", 331 | "totalrows = len(theOrderBookFiltered)\n", 332 | "#random_no = np.random.choice(range(0,totalrows+1), size = None, replace = False, p = None)\n", 333 | "random_no = 83850\n", 334 | "\n", 335 | "theAsk = theOrderBookFiltered[theOrderBookFiltered.columns[range(0,len(theOrderBookFiltered.columns),4)]]\n", 336 | "theAskVolume = theOrderBookFiltered[theOrderBookFiltered.columns[range(1,len(theOrderBookFiltered.columns),4)]]\n", 337 | " \n", 338 | "theAskValues = list(it.chain.from_iterable(theAsk[theAsk.index == random_no].values))\n", 339 | "theAskVolumeValues = list(it.chain.from_iterable(theAskVolume[theAskVolume.index == random_no].values))\n", 340 | "theDataAsk = pd.DataFrame({'Price': theAskValues, 'Volume': theAskVolumeValues})\n", 341 | "theDataAsk = theDataAsk.sort_values(by=['Price'])\n", 342 | "\n", 343 | "theBid = theOrderBookFiltered[theOrderBookFiltered.columns[range(2,len(theOrderBookFiltered.columns),4)]]\n", 344 | "theBidVolume = theOrderBookFiltered[theOrderBookFiltered.columns[range(3,len(theOrderBookFiltered.columns),4)]]\n", 345 | " \n", 346 | "theBidValues = list(it.chain.from_iterable(theBid[theBid.index == random_no].values))\n", 347 | "theBidVolumeValues = list(it.chain.from_iterable(theBidVolume[theBidVolume.index == random_no].values))\n", 348 | "theDataBid = pd.DataFrame({'Price': theBidValues, 'Volume': theBidVolumeValues})\n", 349 | "theDataBid = theDataBid.sort_values(by=['Price'])\n", 350 | "\n", 351 | "# Chart\n", 352 | "fig = plt.figure()\n", 353 | "ax = fig.add_subplot(111)\n", 354 | "\n", 355 | "plt.ylim(0,max(theDataBid['Volume'].max(),theDataAsk['Volume'].max()) + 200)\n", 356 | "plt.xlim(min(theDataBid['Price'].min(),theDataAsk['Price'].min()), max(theDataBid['Price'].max(),theDataAsk['Price'].max()))\n", 357 | "plt.suptitle('Limit Order Book Volume for ' + ticker + ' at ' + str(random_no))\n", 358 | "plt.ylabel('Volume')\n", 359 | "plt.xlabel('Price($)')\n", 360 | "\n", 361 | "ax.bar(theDataBid['Price'], theDataBid['Volume'], width = 0.007, color='#13fc04', label='Bid')\n", 362 | "ax.bar(theDataAsk['Price'], theDataAsk['Volume'], width = 0.007, color='#fc1b04', label='Ask')\n", 363 | " \n", 364 | "plt.legend() \n", 365 | "plt.show()\n" 366 | ] 367 | }, 368 | { 369 | "cell_type": "code", 370 | "execution_count": 6, 371 | "metadata": {}, 372 | "outputs": [ 373 | { 374 | "data": { 375 | "image/png": "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\n", 376 | "text/plain": [ 377 | "
" 378 | ] 379 | }, 380 | "metadata": { 381 | "needs_background": "light" 382 | }, 383 | "output_type": "display_data" 384 | } 385 | ], 386 | "source": [ 387 | "#_____________________________________________________________________________\n", 388 | "#\n", 389 | "# Plot - Relative Depth in the Limit Order Book\n", 390 | "#_____________________________________________________________________________\n", 391 | "# Plot variables\n", 392 | "theAskVolume = theOrderBookFiltered[theOrderBookFiltered.columns[range(1,len(theOrderBookFiltered.columns),4)]]\n", 393 | "totalSizeAsk = list(theAskVolume[theAskVolume.index == random_no].values.cumsum())\n", 394 | "percentAsk = totalSizeAsk/totalSizeAsk[len(totalSizeAsk)-1]\n", 395 | "\n", 396 | "theBidVolume = theOrderBookFiltered[theOrderBookFiltered.columns[range(3,len(theOrderBookFiltered.columns),4)]]\n", 397 | "totalSizeBid = list(theBidVolume[theBidVolume.index == random_no].values.cumsum())\n", 398 | "percentBid = totalSizeBid/totalSizeBid[len(totalSizeBid)-1]\n", 399 | "\n", 400 | "# Chart\n", 401 | "fig = plt.figure()\n", 402 | "ax = fig.add_subplot(111)\n", 403 | "\n", 404 | "plt.ylim(-1,1)\n", 405 | "plt.xlim(1,10)\n", 406 | "plt.suptitle('Relative Depth in the Limit Order Book for ' + ticker + ' at ' + str(random_no))\n", 407 | "plt.ylabel('% Volume')\n", 408 | "plt.xlabel('Level')\n", 409 | "\n", 410 | "ax.step(list(range(1,11)), percentBid, color='#13fc04', label='Bid')\n", 411 | "ax.step(list(range(1,11)), -percentAsk, color='#fc1b04', label='Ask')\n", 412 | "\n", 413 | "plt.legend() \n", 414 | "plt.show()\n" 415 | ] 416 | }, 417 | { 418 | "cell_type": "code", 419 | "execution_count": 7, 420 | "metadata": {}, 421 | "outputs": [ 422 | { 423 | "data": { 424 | "image/png": "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\n", 425 | "text/plain": [ 426 | "
" 427 | ] 428 | }, 429 | "metadata": { 430 | "needs_background": "light" 431 | }, 432 | "output_type": "display_data" 433 | } 434 | ], 435 | "source": [ 436 | "#_____________________________________________________________________________\n", 437 | "#\n", 438 | "# Plot - Intraday Evolution of Depth\n", 439 | "#_____________________________________________________________________________\n", 440 | "# Calculate the max/ min volume to set limit of y-axis\n", 441 | "maxAskVol = max(theOrderBookFiltered['Ask Size 1'].max()/100,theOrderBookFiltered['Ask Size 2'].max()/100,theOrderBookFiltered['Ask Size 3'].max()/100) # calculate the maximum ask volume\n", 442 | "\n", 443 | "# Calculate the max Bid volume , we use negative here and calculate min as we plot Bid below X-axis\n", 444 | "maxBidVol = min(-theOrderBookFiltered['Bid Size 1'].max()/100,-theOrderBookFiltered['Bid Size 2'].max()/100,-theOrderBookFiltered['Bid Size 3'].max()/100) # calculate the maximum ask volume\n", 445 | "\n", 446 | "aa = range(int(theMessageBookFiltered['Time'].min()/(60*60)), int(theMessageBookFiltered['Time'].max()/(60*60))+2)\n", 447 | "theTime = [int(i) for i in aa] \n", 448 | "\n", 449 | "fig = plt.figure()\n", 450 | "ax = fig.add_subplot(111)\n", 451 | "\n", 452 | "plt.ylim(maxBidVol,maxAskVol)\n", 453 | "plt.xlim(theTime[0],theTime[len(theTime)-1])\n", 454 | "plt.suptitle('Intraday Evolution of Depth for ' + ticker + ' for 3 levels')\n", 455 | "plt.ylabel('BID No of Shares(x100) ASK')\n", 456 | "plt.xlabel('Time')\n", 457 | "#plt.grid(True)\n", 458 | "\n", 459 | "askSizeDepth3 = (theOrderBookFiltered['Ask Size 1']/100) + (theOrderBookFiltered['Ask Size 2']/100) + (theOrderBookFiltered['Ask Size 3']/100)\n", 460 | "ax.plot((theMessageBookFiltered['Time']/(60*60)), \n", 461 | " askSizeDepth3, \n", 462 | " color='#fc1b04', \n", 463 | " label='Ask 3')\n", 464 | "\n", 465 | "askSizeDepth2 = (theOrderBookFiltered['Ask Size 1']/100) + (theOrderBookFiltered['Ask Size 2']/100)\n", 466 | "ax.plot((theMessageBookFiltered['Time']/(60*60)), \n", 467 | " askSizeDepth2, \n", 468 | " color='#eeba0c', \n", 469 | " label='Ask 2')\n", 470 | "\n", 471 | "askSizeDepth1 = (theOrderBookFiltered['Ask Size 1']/100)\n", 472 | "ax.plot((theMessageBookFiltered['Time']/(60*60)), \n", 473 | " askSizeDepth1, \n", 474 | " color='#3cee0c', \n", 475 | " label='Ask 1')\n", 476 | "\n", 477 | "bidSizeDepth3 = (theOrderBookFiltered['Bid Size 1']/100) + (theOrderBookFiltered['Bid Size 2']/100) + (theOrderBookFiltered['Bid Size 3']/100)\n", 478 | "ax.plot((theMessageBookFiltered['Time']/(60*60)), \n", 479 | " -bidSizeDepth3, \n", 480 | " color='#0c24ee', \n", 481 | " label='Bid 3')\n", 482 | "\n", 483 | "bidSizeDepth2 = (theOrderBookFiltered['Bid Size 1']/100) + (theOrderBookFiltered['Bid Size 2']/100)\n", 484 | "ax.plot((theMessageBookFiltered['Time']/(60*60)), \n", 485 | " -bidSizeDepth2, \n", 486 | " color='#e40cee', \n", 487 | " label='Bid 2')\n", 488 | "\n", 489 | "bidSizeDepth1 = (theOrderBookFiltered['Bid Size 1']/100)\n", 490 | "ax.plot((theMessageBookFiltered['Time']/(60*60)), \n", 491 | " -bidSizeDepth1, \n", 492 | " color='#0ceee7', \n", 493 | " label='Bid 1')\n", 494 | "\n", 495 | "plt.legend(loc='lower left') \n", 496 | "plt.show()\n" 497 | ] 498 | }, 499 | { 500 | "cell_type": "code", 501 | "execution_count": null, 502 | "metadata": {}, 503 | "outputs": [], 504 | "source": [] 505 | } 506 | ], 507 | "metadata": { 508 | "kernelspec": { 509 | "display_name": "Python 3", 510 | "language": "python", 511 | "name": "python3" 512 | }, 513 | "language_info": { 514 | "codemirror_mode": { 515 | "name": "ipython", 516 | "version": 3 517 | }, 518 | "file_extension": ".py", 519 | "mimetype": "text/x-python", 520 | "name": "python", 521 | "nbconvert_exporter": "python", 522 | "pygments_lexer": "ipython3", 523 | "version": "3.7.5" 524 | } 525 | }, 526 | "nbformat": 4, 527 | "nbformat_minor": 2 528 | } 529 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Lobster-Python-Demo-Code 2 | Pyhton demo code for LOBSTER limit order book data 3 | --------------------------------------------------------------------------------