Created
August 29, 2025 01:07
-
-
Save jmcph4/96b838d65a75c545b6d272cccfe3badc to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "id": "aeaa7ab2", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "import asyncio\n", | |
| "import json\n", | |
| "import websockets\n", | |
| "\n", | |
| "WS_URL = \"wss://ws-subscriptions-clob.polymarket.com/ws/market\"\n", | |
| "\n", | |
| "async def subscribe(asset_ids):\n", | |
| " async with websockets.connect(WS_URL) as ws:\n", | |
| " sub = {\"type\": \"market\", \"assets_ids\": asset_ids}\n", | |
| " await ws.send(json.dumps(sub))\n", | |
| " async for msg in ws:\n", | |
| " print(msg)\n", | |
| "\n", | |
| "# Jupyter-specific fix:\n", | |
| "await subscribe([\n", | |
| " \"15353185604353847122370324954202969073036867278400776447048296624042585335546\"\n", | |
| "])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1, | |
| "id": "ad9980f4", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "{'bids': [{'price': '0.01', 'size': '20540'}, {'price': '0.02', 'size': '7531'}, {'price': '0.06', 'size': '600'}, {'price': '0.08', 'size': '1000'}, {'price': '0.12', 'size': '7000'}, {'price': '0.15', 'size': '13'}, {'price': '0.18', 'size': '100'}, {'price': '0.19', 'size': '2890.87'}, {'price': '0.2', 'size': '33'}, {'price': '0.21', 'size': '1298'}, {'price': '0.22', 'size': '900'}, {'price': '0.23', 'size': '5680'}, {'price': '0.24', 'size': '2962'}, {'price': '0.25', 'size': '13'}], 'asks': [{'price': '0.99', 'size': '500100'}, {'price': '0.98', 'size': '500010.7'}, {'price': '0.97', 'size': '13.43'}, {'price': '0.94', 'size': '50000'}, {'price': '0.93', 'size': '90006.9'}, {'price': '0.92', 'size': '400000'}, {'price': '0.91', 'size': '100000'}, {'price': '0.89', 'size': '2250'}, {'price': '0.88', 'size': '8.76'}, {'price': '0.84', 'size': '5000'}, {'price': '0.83', 'size': '12000'}, {'price': '0.77', 'size': '5000'}, {'price': '0.76', 'size': '9000'}, {'price': '0.75', 'size': '7.67'}, {'price': '0.7', 'size': '5000'}, {'price': '0.67', 'size': '9900'}, {'price': '0.66', 'size': '3294'}, {'price': '0.6', 'size': '75'}, {'price': '0.59', 'size': '840'}, {'price': '0.5', 'size': '150'}, {'price': '0.45', 'size': '75'}, {'price': '0.4', 'size': '5464.06'}, {'price': '0.39', 'size': '80'}, {'price': '0.38', 'size': '18.75'}, {'price': '0.36', 'size': '204'}, {'price': '0.35', 'size': '200'}, {'price': '0.34', 'size': '242.2'}, {'price': '0.33', 'size': '100'}, {'price': '0.32', 'size': '1530'}, {'price': '0.31', 'size': '319'}, {'price': '0.3', 'size': '3264.89'}, {'price': '0.29', 'size': '234'}, {'price': '0.28', 'size': '3852.22'}, {'price': '0.27', 'size': '925'}, {'price': '0.26', 'size': '1336.98'}]}\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "import asyncio\n", | |
| "import json\n", | |
| "import websockets\n", | |
| "\n", | |
| "WS_URL = \"wss://ws-subscriptions-clob.polymarket.com/ws/market\"\n", | |
| "\n", | |
| "async def fetch_init_book(asset_id):\n", | |
| " async with websockets.connect(WS_URL) as ws:\n", | |
| " sub = {\"type\": \"market\", \"assets_ids\": [asset_id]}\n", | |
| " await ws.send(json.dumps(sub))\n", | |
| " async for msg in ws:\n", | |
| " return json.loads(msg)[0]\n", | |
| "\n", | |
| "# Jupyter-specific fix:\n", | |
| "book = await fetch_init_book(\"15353185604353847122370324954202969073036867278400776447048296624042585335546\")\n", | |
| "levels = {\"bids\": book[\"bids\"], \"asks\": book[\"asks\"]}\n", | |
| "print(levels)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 2, | |
| "id": "3ca6ee66", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3kAAAHqCAYAAAC5nYcRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAACpTklEQVR4nOzdd3hUVf4/8PdkWjJJZkJ6L3RQKYIgCgIrSFeEFZZVKZa14ipWXAVRFlBBcf2quAKiawF1ragIIkUERcGABZCSBkkIqZNJMiUz8/sjv9xlSEIKOZnDzfv1PPNI7rlz5zOHt/fh5N57jsbr9XpBREREREREqhDg7wKIiIiIiIio9XCQR0REREREpCIc5BEREREREakIB3lEREREREQqwkEeERERERGRinCQR0REREREpCIc5BEREREREakIB3lEREREREQqwkEeERERERGRinCQR0REdIbU1FTMnDnT32UIt2bNGmg0Gvz000/+LoWIiFoRB3lERHTe+e2333DDDTcgISEBRqMR8fHxuP766/Hbb7/5u7RmS01NhUajUV6BgYHo0qULHnzwQRQXF/u7PCIiOg/p/F0AERFRc3z44YeYNm0awsPDcfPNNyMtLQ2ZmZlYtWoVPvjgA6xduxbXXnutv8tslj59+uD+++8HANjtduzZswfLly/Htm3bsHv3bj9XR0RE5xsO8oiI6Lxx9OhR3HjjjejYsSO2b9+OqKgope3vf/87hgwZghtvvBH79+9Hx44dGzxORUUFgoOD26JkVFdXw+PxwGAwNLhPQkICbrjhBuXnW265BSEhIVi6dCkOHz6MLl26tEWpRESkErxdk4iIzhvPPvssKisr8e9//9tngAcAkZGRePXVV1FRUYFnnnlG2f7EE09Ao9Hg999/x1//+ld06NABgwcPBgB4vV4sXLgQiYmJMJlMGD58eIO3fJaWluLee+9FUlISjEYjOnfujKeffhoej0fZJzMzExqNBkuXLsXy5cvRqVMnGI1G/P77783+rrGxsQAAnc7397HffPMNhgwZguDgYISFheGaa67BgQMH6rz/559/xpgxY2A2mxESEoIrr7wS33//faOfW1JSggEDBiAxMRGHDh1qdt1EROR/vJJHRETnjc8++wypqakYMmRIve1XXHEFUlNT8fnnn9dpu+6669ClSxcsWrQIXq8XADBv3jws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HTfeeCMAICAgAJGRkZg0aRKeeuopn4lQRowYgQ0bNmD+/PmYN28e9Ho9hg4diqefftrnUYALLrgA3377LebOnYvFixfD4/Fg4MCBeOuttxpcI6/WihUrYLPZMGvWLISGhuKaa645p+9GRERtT+M9/R4VOiuNRoOPPvoIEydOBACsW7cO119/PX777TdotVqffUNCQhAbG4v58+dj0aJFcLlcSltVVRVMJhM2btyIkSNHtuVXICIiIiIileOVvHPQt29fuN1uFBQUYMiQIfXuc/nll6O6uhpHjx5Vbh/6448/AIDrEBERERERUavjlbxG2Gw2HDlyBEDNoO65557D8OHDER4ejuTkZNxwww347rvvsGzZMvTt2xenTp3C5s2b0atXL4wbNw4ejweXXHIJQkJCsHz5cng8Htx1110wm83YuHGjn78dERERERGpDQd5jdi6dSuGDx9eZ/uMGTOwZs0auFwuLFy4EG+++SZOnDiByMhIXHrppViwYAEuuugiAEBubi5mz56NjRs3Ijg4GGPGjMGyZcsQHh7e1l+HiIiIiIhUjoM8IiIiIiIiFeE6eURERERERCrCQR4REREREZGKcHbNeng8HuTm5iI0NBQajcbf5RAREREREcHr9aK8vBzx8fEICGj4eh0HefXIzc1FUlKSv8sgIiIiIiKqIycnB4mJiQ22c5BXj9DQUAA1nWc2m9vsc6uqqhAUFNRmn0ftB7NFIjBXJAJzRSIwVyRKW2fLarUiKSlJGa80hIO8etTeomk2m9t0kFdYWIiYmJg2+zxqP2TLlt3lRn6ZHbGWQATqtc1uJznIlitSB+aKRGCuSBR/ZauxR8o48QoRtbkjBTYMW7oVRwpsLWonIiIiooZxkCcR/oaJRGG2SATmikRgrkgE5opEkTVbHORJxG63+7sEUilmi0RgrkgE5opEYK5IFFmz5ddn8rZv345nn30We/bsQV5eHj766CNMnDixwf1nzpyJN954o872nj174rfffgMAPPHEE1iwYIFPe7du3XDw4MFWrR0A3G43XC5Xqx2vuLgYwcHBrXY8kp9er4dWK/6Zs7KyMkRERAj/HGpfmCsSgbkiEZgrEkXWbPl1kFdRUYHevXvjpptuwqRJkxrd/4UXXsCSJUuUn6urq9G7d29cd911PvtdcMEF+Prrr5WfdbrW/Zperxf5+fkoLS1t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gPDwcHTr1g0HDhxo9Hv36tVL+XPtQLCgoKDR96lNcLBc680ldjDh6T/3anE7yUG2XJE6MFckAnNFosiaLd6uKRGR6+StWrUK1dXViI+Ph06ng06nwyuvvIL//ve/KCsrAwCMGTMGWVlZuO+++5Cbm4srr7zS59ZHoObK2P79+7Fr165zrql2ytnPP/8c6enpyuv333/3eS7vXJy5wLxGo5H2srpI+fn5/i7Bh93lxh8ny2F31Z/5xtpJDrLlitSBuSIRmCsSRdZscZDXDlRXV+PNN9/EsmXLfAZT+/btQ3x8PN59911l36ioKMyYMQNvvfUWli9fXmeikjvuuANLlizB1VdfXee5udNZLBbExcXhhx9+8Kljz549ys89e/aE0WhEdnY2Onfu7PNKSkryOd7333+v/LmkpAR//PEHevToAQAwGAxcSP48c6TAhque344jBfWvLdNYOxERERE1jLdrSkTUOhvr169HSUkJbr755jrP0E2ePBmrVq3C7bffjnnz5qFfv3644IIL4HA4sH79emUgdbrZs2fD7XZj/Pjx+PLLLzF48OB6P/fvf/87lixZgi5duqB79+547rnnfNayCw0NxQMPPID77rsPHo8HgwcPRllZGb777juYzWbMmDFD2ffJJ59EREQEYmJi8I9//AORkZHKouqpqamw2WzYvHkzevfuDZPJBJPJdO4dpyL1Pa9IdK6YKxKBuSIRmCsSRdZs8UqeRLxeMbcRrlq1CiNGjKh3kpTJkyfjp59+wv79+2EwGDB37lz06tULV1xxBbRaLdauXVvvMe+9914sWLAAY8eOxc6dO+vd5/7778eNN96IGTNmYNCgQQgNDcW1117rs89TTz2Fxx9/HIsXL0aPHj2URdrT0tJ89luyZAn+/ve/o1+/fsjPz8dnn30Gg8EAALjssstw++23Y+rUqYiKisIzzzzTkm5StcrKSn+XQCrEXJEIzBWJwFyRKLJmS+M9c+EygtVqhcViQVlZGcxms0+b3W5HRkYG0tLSEBgY2Kqf63A4YDQaW/WY57utW7di+PDhKCkpQVhYmL/LEUJkpmodO3YMHTt2FHLslvj1RBnGv7gD62cPxoUJdX/50Fg7yUG2XJE6MFckAnNFzeasABbF1/z50VzAUP8EK22drbONU07HK3lE7YBGI3Z5jpYwaM9++mmsnfxPxlzR+Y+5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mDABd911F7p3745ffvkFF198MQBgwIABuPvuuzF69GjodDo88MADTf7eBoMB/fr1w+bNmzFx4kQAUCZQufvuu8/63meeeQb//Oc/8dVXX6F///51jnvJJZfg0KFDPtv/+OMPpKSkNLk+EWSb+KVTVAg+uvPyFreTHGTLFakDc0UiMFdUL1dl4wO8pEsBvanBZlmzxUGeRJxOJ4zG1h/M1XI4HMpimiUlJfi///s/2Gw2TJgwAQBw/fXX49lnn8U111yDJ598EomJicjKysKHH36Ihx56CC6XC//+979x9dVXIz4+HocOHcLhw4eVGVBTU1OVGVITExMRGhpa7/fp0qUL/vOf/6B///6wWq148MEHERQUpLSvWbMGbrcbAwcOhMlkwltvvYWgoKA6A6XLLrsMX3zxBcaMGQOdTod7770XAPDRRx9h7ty5Z32+bs6cOZgxYwb69++PAQMGYPny5aioqMCsWbOUfaZPn46EhAQsXrwYAPD0009j3rx5eOedd5Camqr0ZUhIiPKs44MPPoipU6fiiiuuwPDhw7FhwwZ89tlnTXqeVKTs7Ow6t7USnSvmikRgrkgE5ooaNeUtQFfPxZouI4CzTOgna7bOu3XyqOU2bNigzEg6cOBA/Pjjj3j//fcxbNgwAIDJZML27duRnJyMSZMmoUePHrj55ptht9thNpthMplw8OBBTJ48GV27dsXf/vY33HXXXbjtttsAAJMnT8bo0aMxfPhwREVF4d133623jlWrVqGkpAQXX3wxbrzxRtxzzz0+vwUJCwvDa6+9hssvvxy9evXC119/jc8++0yZBfR0gwcPxueff47HHnsML774IgCgrKysztW0M02dOhVLly7FvHnz0KdPH6Snp2PDhg0+k7FkZ2cjLy9P+fmVV16B0+nEn//8Z5/ZXZcuXarsc+2112LFihV45plncNFFF2HlypX473//i8GDG75Vtz369UQZUh/5HL+eKGtROxEREVGr0gUC+npeZxngyUzjPdv0lu2U1WqFxWJBWVlZndsW7XY7MjIykJaW1ur34FZXV/tMLkLtg8hM1SotLUVYWJiQY7fEryfKMP7FHVg/e3C9tzE31k5ykC1XpA7MFYnAXFG9nBXAoviaP//1g5pB3ZnShpz1EG2drbONU07HK3lE7cDZ1g0kainmikRgrkgE5opEkTVbHORJpCmT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CCGWLVsm5s6d612/srJSxMTEiF/96lfi2LFjYv369SIyMlLs3btXk/rZ5IXQq6++KoYPHy5MJpOYPHmy+Ne//uUdmz59upg3b57P+n/84x/F6NGjhclkEmPHjhW7d+8OccUULgLJVnZ2tgDQ46ukpCT0hZPSAj1mXY5NHvUm0FyVlZWJ/Px8YTabRV5ennj++edFV1dXiKsm1QWSK7fbLVauXClGjBghLBaLsNls4pFHHhHffvtt6AsnZX300Ud+z5cuZWnevHli+vTpPbaZOHGiMJlMIi8vT2zevDnkdV9iEILz0kRERERERHrBz+QRERERERHpCJs8IiIiIiIiHWGTR0REREREpCNs8oiIiIiIiHSETR4REREREZGOsMkjIiIiIiLSETZ5REREREREOsImj4iIiIiISEfY5BEREUmQk5ODdevWaV0GERENQmzyiIiI+vDAAw/AYDDAYDDAZDJh5MiRWLVqFbq6unrd5vPPP8f8+fNDWCUREdFFUVoXQEREFA5mzJiBzZs3o7OzE3v27MHChQthNBrx1FNP+azncrlgMpkwbNgwjSolIqLBjjN5RERE/WA2m5Geno7s7Gz8/Oc/R2FhIT744AM88MADKC4uxvPPPw+r1YrrrrsOQM/LNZubm7FgwQKkpaXBYrFg3Lhx2LVrl3f8k08+wbRp0xAdHQ2bzYbHHnsMra2toX6bRESkA5zJIyIiCkJ0dDSampoAAKWlpUhISMD+/fv9ruvxeHDnnXfC6XTi7bffxogRI3D06FFERkYCAL755hvMmDEDq1evxltvvYWGhgYsWrQIixYtwubNm0P2noiISB/Y5BEREQVACIHS0lLs27cPjz76KBoaGhAbG4s33ngDJpPJ7zYffvghPvvsMxw7dgyjR48GAOTl5XnH16xZg/vvvx+LFy8GAIwaNQqvvPIKpk+fjg0bNsBisUh/X0REpB+8XJOIiKgfdu3ahbi4OFgsFtx5552YPXs2Vq5cCQAYP358rw0eAFRUVCArK8vb4F3p3//+N7Zs2YK4uDjvV1FRETweD6qqqmS8HSIi0jHO5BEREfXD7bffjg0bNsBkMsFqtSIq6r//hMbGxl512+jo6KuOX7hwAQsWLMBjjz3WY2z48OHBFUxERIMWmzwiIqJ+iI2NxciRI4Pa9sYbb8Tp06dx4sQJv7N5N998M44ePRr09yciIrocL9ckIiKSbPr06fj+97+PH//4x9i/fz+qqqrwl7/8BXv37gUAPPnkkygrK8OiRYtQUVGBr7/+Gu+//z4WLVqkceVERBSO2OQRERGFwJ/+9CfceuutmDNnDsaMGYOlS5eiu7sbwMWZvo8//hgnTpzAtGnTcNNNN2HFihWwWq0aV01EROHIIIQQWhdBREREREREA4MzeURERERERDrCJo+IiIiIiEhH2OQRERERERHpCJs8IiIiIiIiHWGTR0REREREpCNs8oiIiIiIiHSETR4REREREZGOsMkjIiIiIiLSETZ5REREREREOsImj4iIiIiISEfY5BEREREREekImzwiIiIiIiId+X8y89fVsgX5PwAAAABJRU5ErkJggg==", | |
| "text/plain": [ | |
| "<Figure size 900x500 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "import matplotlib.pyplot as plt\n", | |
| "import pandas as pd\n", | |
| "\n", | |
| "data = levels\n", | |
| "\n", | |
| "bids = pd.DataFrame(data[\"bids\"]).astype({\"price\": float, \"size\": float})\n", | |
| "asks = pd.DataFrame(data[\"asks\"]).astype({\"price\": float, \"size\": float})\n", | |
| "\n", | |
| "bids = bids.sort_values(\"price\", ascending=False).reset_index(drop=True)\n", | |
| "asks = asks.sort_values(\"price\", ascending=True).reset_index(drop=True)\n", | |
| "bids[\"cum_size\"] = bids[\"size\"].cumsum()\n", | |
| "asks[\"cum_size\"] = asks[\"size\"].cumsum()\n", | |
| "\n", | |
| "best_bid = bids[\"price\"].max() if not bids.empty else None\n", | |
| "best_ask = asks[\"price\"].min() if not asks.empty else None\n", | |
| "\n", | |
| "plt.figure(figsize=(9, 5))\n", | |
| "\n", | |
| "# Step lines\n", | |
| "plt.step(bids[\"price\"], bids[\"cum_size\"], where=\"post\", label=\"Bids\")\n", | |
| "plt.step(asks[\"price\"], asks[\"cum_size\"], where=\"post\", label=\"Asks\")\n", | |
| "\n", | |
| "# Filled areas under the curves\n", | |
| "plt.fill_between(bids[\"price\"], bids[\"cum_size\"], step=\"post\", alpha=0.25, label=\"Bid depth\")\n", | |
| "plt.fill_between(asks[\"price\"], asks[\"cum_size\"], step=\"post\", alpha=0.25, label=\"Ask depth\")\n", | |
| "\n", | |
| "# Best bid/ask guides\n", | |
| "if best_bid is not None:\n", | |
| " plt.axvline(best_bid, linestyle=\"--\", linewidth=1, label=f\"Best bid: {best_bid:g}\")\n", | |
| "if best_ask is not None:\n", | |
| " plt.axvline(best_ask, linestyle=\"--\", linewidth=1, label=f\"Best ask: {best_ask:g}\")\n", | |
| "\n", | |
| "plt.xlabel(\"Price\")\n", | |
| "plt.ylabel(\"Cumulative Size\")\n", | |
| "plt.title(\"Order Book\")\n", | |
| "plt.legend()\n", | |
| "plt.grid(True, linestyle=\"--\", linewidth=0.5, alpha=0.6)\n", | |
| "plt.tight_layout()\n", | |
| "plt.show()\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "id": "b683c8cb", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [] | |
| } | |
| ], | |
| "metadata": { | |
| "kernelspec": { | |
| "display_name": "Python 3 (ipykernel)", | |
| "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.11.3" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 5 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment