├── utils
├── __init__.py
├── dynamodb.py
└── processing.py
├── research
├── IEEE2011.pdf
├── paper462.pdf
├── mongodb_connection_test.ipynb
└── depth_compression.ipynb
├── config.py
├── scraper.py
├── requirements.txt
├── lambda_iterator.py
├── .gitignore
├── zappa_settings.json
└── README.md
/utils/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/research/IEEE2011.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maxlamberti/orderbook-crypto-scraper/HEAD/research/IEEE2011.pdf
--------------------------------------------------------------------------------
/research/paper462.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maxlamberti/orderbook-crypto-scraper/HEAD/research/paper462.pdf
--------------------------------------------------------------------------------
/config.py:
--------------------------------------------------------------------------------
1 |
2 |
3 | PAIRS = ['XXRPZUSD', 'XXBTZEUR', 'XXMRZUSD', 'XLTCZUSD', 'XETHZUSD', 'USDTZUSD']
4 | DEPTHS = [25, 25, 25, 25, 25, 25]
5 |
6 | LOGGING = {
7 | 'disable_existing_loggers': False,
8 | 'version': 1,
9 | 'formatters': {
10 | 'simple': {
11 | 'format': '%(asctime)s - %(levelname)s - %(message)s'
12 | },
13 | },
14 | 'handlers': {
15 | 'console': {
16 | 'level': 'DEBUG',
17 | 'formatter': 'simple',
18 | 'class': 'logging.StreamHandler',
19 | }
20 | },
21 | 'loggers': {
22 | 'scraper': {
23 | 'handlers': ['console'],
24 | 'level': 'INFO',
25 | },
26 | 'iterator': {
27 | 'handlers': ['console'],
28 | 'level': 'WARNING',
29 | }
30 | },
31 | }
32 |
--------------------------------------------------------------------------------
/scraper.py:
--------------------------------------------------------------------------------
1 | import time
2 | import krakenex
3 | import logging.config
4 |
5 | from pymongo import MongoClient
6 | from utils.processing import query_order_book, mongo_reformat_orderbook
7 | from credentials import MONGO_CREDS
8 | from config import LOGGING, PAIRS, DEPTHS
9 |
10 |
11 | logging.config.dictConfig(LOGGING)
12 | logger = logging.getLogger('scraper')
13 |
14 |
15 | MONGO_IP = MONGO_CREDS['HOST']
16 | DB_USER = MONGO_CREDS['USER']
17 | DB_PASSWORD = MONGO_CREDS['PASSWORD']
18 |
19 |
20 | kraken = krakenex.API()
21 | client = MongoClient(MONGO_IP, username=DB_USER, password=DB_PASSWORD)
22 | db = client.get_database('orderbooks')
23 |
24 |
25 | def scraper(event=None, context=None):
26 | """Target function for scheduled data scraping event.
27 |
28 | Parameters
29 | ----------
30 | event : dict
31 | AWS Lambda uses this parameter to pass in event data to the handler.
32 | context : LambdaContext
33 | AWS Lambda uses this parameter to provide runtime information to your handler.
34 |
35 | """
36 |
37 | start_time = time.time()
38 |
39 | for idx, pair in enumerate(PAIRS):
40 |
41 | ob = query_order_book(kraken, pair, DEPTHS[idx])
42 | item = mongo_reformat_orderbook(ob, pair)
43 | if item:
44 | result = db[pair].insert_one(item)
45 | logger.info("Insert status: {}".format(result))
46 |
47 | time.sleep(1)
48 |
49 | logger.info("Finished executing handler, took %0.1f seconds.", time.time() - start_time)
50 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | appnope==0.1.0
2 | argcomplete==1.9.3
3 | backcall==0.1.0
4 | bleach==3.1.0
5 | boto3==1.9.111
6 | botocore==1.12.111
7 | certifi==2018.11.29
8 | cfn-flip==1.1.0.post1
9 | chardet==3.0.4
10 | Click==7.0
11 | cycler==0.10.0
12 | decorator==4.3.2
13 | docutils==0.14
14 | durationpy==0.5
15 | entrypoints==0.3
16 | future==0.16.0
17 | hjson==3.0.1
18 | idna==2.8
19 | ipykernel==5.1.0
20 | ipython==7.3.0
21 | ipython-genutils==0.2.0
22 | jedi==0.13.3
23 | Jinja2==2.10
24 | jmespath==0.9.3
25 | jsonschema==2.6.0
26 | jupyter-client==5.2.4
27 | jupyter-core==4.4.0
28 | kappa==0.6.0
29 | kiwisolver==1.0.1
30 | krakenex==2.1.0
31 | lambda-packages==0.20.0
32 | MarkupSafe==1.1.1
33 | matplotlib==3.0.3
34 | mistune==0.8.4
35 | nbconvert==5.3.1
36 | nbformat==4.4.0
37 | notebook==5.7.4
38 | numpy==1.16.2
39 | pandas==0.24.1
40 | pandocfilters==1.4.2
41 | parso==0.3.4
42 | patsy==0.5.1
43 | pexpect==4.6.0
44 | pickleshare==0.7.5
45 | placebo==0.9.0
46 | prometheus-client==0.6.0
47 | prompt-toolkit==2.0.9
48 | ptyprocess==0.6.0
49 | Pygments==2.3.1
50 | pyparsing==2.3.1
51 | python-dateutil==2.6.1
52 | python-slugify==1.2.4
53 | pytz==2018.9
54 | PyYAML==3.13
55 | pyzmq==18.0.0
56 | requests==2.21.0
57 | s3transfer==0.2.0
58 | scipy==1.2.1
59 | seaborn==0.9.0
60 | Send2Trash==1.5.0
61 | six==1.12.0
62 | statsmodels==0.9.0
63 | terminado==0.8.1
64 | testpath==0.4.2
65 | toml==0.10.0
66 | tornado==5.1.1
67 | tqdm==4.19.1
68 | traitlets==4.3.2
69 | troposphere==2.4.5
70 | Unidecode==1.0.23
71 | urllib3==1.24.1
72 | wcwidth==0.1.7
73 | webencodings==0.5.1
74 | Werkzeug==0.14.1
75 | wsgi-request-logger==0.4.6
76 | zappa==0.47.1
77 |
--------------------------------------------------------------------------------
/lambda_iterator.py:
--------------------------------------------------------------------------------
1 | import os
2 | import time
3 | import boto3
4 | import logging.config
5 | from config import LOGGING
6 |
7 |
8 | logging.config.dictConfig(LOGGING)
9 | logger = logging.getLogger('iterator')
10 |
11 |
12 | lambda_client = boto3.client('lambda')
13 |
14 |
15 | LAMBDA_NAME = os.environ.get('LAMBDA_TARGET') # name of lambda scraper
16 | TIMEOUT = int(os.environ.get('TIMEOUT')) # seconds
17 | N_SAMPLES = int(os.environ.get('N_SAMPLES')) # samples per timeout period
18 |
19 |
20 | def iterator(event=None, context=None):
21 | """Spaces out lambda invocations for scrape events.
22 |
23 | Cloudwatch event scheduling only allows sampling at minute frequency.
24 | This function is used to achieve sampling in sub-minute frequencies.
25 |
26 | Parameters
27 | ----------
28 | event : dict
29 | AWS Lambda uses this parameter to pass in event data to the handler.
30 | context : LambdaContext
31 | AWS Lambda uses this parameter to provide runtime information to your handler.
32 |
33 | """
34 |
35 | invoc_time = time.time()
36 | wait_time = float(TIMEOUT) / N_SAMPLES
37 | count = 0
38 |
39 | while (time.time() - invoc_time < TIMEOUT) and (count < N_SAMPLES):
40 |
41 | exec_start = time.time()
42 | count += 1
43 |
44 | try:
45 | _ = lambda_client.invoke(
46 | FunctionName=LAMBDA_NAME,
47 | InvocationType='Event'
48 | )
49 | except Exception as e: # not sure which errors might be raised
50 | logger.error('Failed invoking lambda. Error: %s', e)
51 |
52 | exec_time = time.time() - exec_start
53 | logger.info("%sth lambda invocation took %s seconds.", count, exec_time)
54 |
55 | time.sleep(abs(wait_time - exec_time))
56 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Custom
2 | credentials.py
3 | dynamo_connect_example.py
4 | *.p
5 | .idea/
6 | .DS_STORE
7 |
8 | # Byte-compiled / optimized / DLL files
9 | __pycache__/
10 | *.py[cod]
11 | *$py.class
12 |
13 | # C extensions
14 | *.so
15 |
16 | # Distribution / packaging
17 | .Python
18 | build/
19 | develop-eggs/
20 | dist/
21 | downloads/
22 | eggs/
23 | .eggs/
24 | lib/
25 | lib64/
26 | parts/
27 | sdist/
28 | var/
29 | wheels/
30 | *.egg-info/
31 | .installed.cfg
32 | *.egg
33 | MANIFEST
34 |
35 | # PyInstaller
36 | # Usually these files are written by a python script from a template
37 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
38 | *.manifest
39 | *.spec
40 |
41 | # Installer logs
42 | pip-log.txt
43 | pip-delete-this-directory.txt
44 |
45 | # Unit test / coverage reports
46 | htmlcov/
47 | .tox/
48 | .coverage
49 | .coverage.*
50 | .cache
51 | nosetests.xml
52 | coverage.xml
53 | *.cover
54 | .hypothesis/
55 | .pytest_cache/
56 |
57 | # Translations
58 | *.mo
59 | *.pot
60 |
61 | # Django stuff:
62 | *.log
63 | local_settings.py
64 | db.sqlite3
65 |
66 | # Flask stuff:
67 | instance/
68 | .webassets-cache
69 |
70 | # Scrapy stuff:
71 | .scrapy
72 |
73 | # Sphinx documentation
74 | docs/_build/
75 |
76 | # PyBuilder
77 | target/
78 |
79 | # Jupyter Notebook
80 | .ipynb_checkpoints
81 |
82 | # pyenv
83 | .python-version
84 |
85 | # celery beat schedule file
86 | celerybeat-schedule
87 |
88 | # SageMath parsed files
89 | *.sage.py
90 |
91 | # Environments
92 | .env
93 | .venv
94 | env/
95 | venv/
96 | ENV/
97 | env.bak/
98 | venv.bak/
99 |
100 | # Spyder project settings
101 | .spyderproject
102 | .spyproject
103 |
104 | # Rope project settings
105 | .ropeproject
106 |
107 | # mkdocs documentation
108 | /site
109 |
110 | # mypy
111 | .mypy_cache/
112 |
--------------------------------------------------------------------------------
/zappa_settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "ob_scrape_event": {
3 | "aws_region": "us-east-1",
4 | "profile_name": "default",
5 | "project_name": "orderbook-scraper",
6 | "runtime": "python3.6",
7 | "s3_bucket": "orderbook-scraper",
8 | "debug": false,
9 | "log_level": "INFO",
10 | "apigateway_enabled": false,
11 | "keep_warm": false,
12 | "timeout_seconds": 900,
13 | "memory_size": 128,
14 | "events": [{
15 | "function": "scraper.scraper",
16 | "expression": "rate(1 minute)"
17 | }],
18 | "lambda_handler": "scraper.scraper",
19 | "aws_environment_variables": {
20 | "ENVIRONMENT": "PRODUCTION",
21 | "DB_REGION": "us-east-1",
22 | "TABLE": "kraken-orderbook"
23 | }
24 | },
25 | "ob_mongo_scrape_event": {
26 | "aws_region": "us-east-1",
27 | "profile_name": "default",
28 | "project_name": "ob-mongo-scraper",
29 | "runtime": "python3.6",
30 | "s3_bucket": "orderbook-scraper",
31 | "debug": false,
32 | "log_level": "INFO",
33 | "apigateway_enabled": false,
34 | "keep_warm": false,
35 | "timeout_seconds": 900,
36 | "memory_size": 128,
37 | "lambda_handler": "scraper.scraper"
38 | },
39 | "ob_mongo_iterator": {
40 | "aws_region": "us-east-1",
41 | "profile_name": "default",
42 | "project_name": "ob-mongo-iterator",
43 | "runtime": "python3.6",
44 | "s3_bucket": "orderbook-scraper",
45 | "debug": false,
46 | "log_level": "INFO",
47 | "apigateway_enabled": false,
48 | "keep_warm": false,
49 | "timeout_seconds": 900,
50 | "memory_size": 128,
51 | "events": [{
52 | "function": "lambda_iterator.iterator",
53 | "expression": "rate(1 minute)"
54 | }],
55 | "lambda_handler": "lambda_iterator.iterator",
56 | "aws_environment_variables": {
57 | "LAMBDA_TARGET": "ob-mongo-scraper-ob-mongo-scrape-event",
58 | "N_SAMPLES": "6",
59 | "TIMEOUT": "60"
60 | }
61 | }
62 | }
--------------------------------------------------------------------------------
/utils/dynamodb.py:
--------------------------------------------------------------------------------
1 | import boto3
2 | import logging
3 | from boto3.dynamodb.conditions import Key
4 | from botocore.exceptions import ClientError
5 |
6 |
7 | logger = logging.getLogger(__name__)
8 |
9 |
10 | class DynamoConnector:
11 |
12 | def __init__(self, region, table):
13 | self.region = region
14 | self.table_name = table
15 | dynamodb = boto3.resource('dynamodb', region_name=region)
16 | self.table = dynamodb.Table(table)
17 |
18 | def put_item(self, item):
19 | try:
20 | self.table.put_item(Item=item)
21 | except ClientError:
22 | logger.error("Failed putting item into dynamodb table %s.", self.table_name, exc_info=True)
23 | return item
24 |
25 | def get_item(self, search_key):
26 | item = {}
27 | try:
28 | response = self.table.get_item(Key=search_key)
29 | item = response.get('Item', {})
30 | except ClientError:
31 | logger.error(
32 | "Failed getting item from dynamodb table %s and search key %s",
33 | self.table_name, search_key, exc_info=True
34 | )
35 | return item
36 |
37 | def update_item(self, search_key, update_expression, attribute_values):
38 | try:
39 | self.table.update_item(
40 | Key=search_key,
41 | UpdateExpression=update_expression,
42 | ExpressionAttributeValues=attribute_values
43 | )
44 | except ClientError:
45 | logger.error(
46 | "Failed updating item in dynamodb table %s and search key %s",
47 | self.table_name, search_key, exc_info=True
48 | )
49 |
50 |
51 | class OrderBookTable(DynamoConnector):
52 |
53 | def write(self, ob):
54 | logger.info("Writing orderbook for pair=%s, timestamp=%s to dynamodb.",
55 | ob.get('pair'), ob.get('timestamp'))
56 | self.put_item(ob)
57 |
58 | def get_orderbook(self, pair, ti=None, tf=None):
59 | """Performs a scan operation on the database to return scraped order books.
60 |
61 | Parameters
62 | ----------
63 | pair : str
64 | Currency pair for which to get order book data.
65 | ti : int
66 | Initial timestamp for range based query. (optional)
67 | tf : int
68 | Final timestamp for range based query. (optional)
69 |
70 | Returns
71 | -------
72 | list
73 | List of dicts of order book data.
74 |
75 | """
76 |
77 | fe = Key('timestamp').between(ti, tf) & Key('pair').eq(pair)
78 | scan = self.table.scan(FilterExpression=fe)
79 |
80 | return scan.get('Items', [])
81 |
--------------------------------------------------------------------------------
/utils/processing.py:
--------------------------------------------------------------------------------
1 | import time
2 | import pickle
3 | import logging.config
4 | from decimal import Decimal
5 | from requests import HTTPError
6 |
7 |
8 | logger = logging.getLogger(__name__)
9 |
10 |
11 | def pickle_data(path, data):
12 | with open(path, 'wb') as f:
13 | pickle.dump(data, f)
14 |
15 |
16 | def unpickle_data(path):
17 | with open(path, 'rb') as f:
18 | data = pickle.load(f)
19 | return data
20 |
21 |
22 | def query_order_book(api, pair, count):
23 | """Queries the kraken order book.
24 |
25 | Parameters
26 | ----------
27 | api : Kraken API Object
28 | A kraken api object to query for the orderbook data.
29 | pair : str
30 | Asset pair to get market depth for.
31 | count : int
32 | Maximum number of asks/bids
33 |
34 | Returns
35 | -------
36 | dict
37 | Kraken response with orderbook data. Empty dict if fails.
38 | """
39 |
40 | try:
41 | response = api.query_public('Depth', {'pair': pair, 'count': count})
42 | except HTTPError:
43 | response = {}
44 | logger.error("Failed querying order book data for pair=%s.", pair)
45 |
46 | obook = response.get('result', {}).get(pair)
47 |
48 | return obook
49 |
50 |
51 | def reformat_orderbook(obook, pair):
52 | """Process the orderbook response for write to DynamoDB.
53 |
54 | Parameters
55 | ----------
56 | obook : dict
57 | The kraken response returned by query_order_book(...).
58 | pair : str
59 | The currency pair denomination of the orderbook.
60 |
61 | Returns
62 | -------
63 | dict
64 | The orderbook in format for DynamoDB insertion. Returns empty dict on error.
65 | """
66 |
67 | if not obook:
68 | item = {}
69 | logger.error("Orderbook for pair=%s is empty. Can't reformat for DB insertion.", pair)
70 | else:
71 | asks = []
72 | bids = []
73 | for order in obook['asks']:
74 | asks.append([Decimal(order[0]), Decimal(order[1]), order[2]])
75 | for order in obook['bids']:
76 | bids.append([Decimal(order[0]), Decimal(order[1]), order[2]])
77 | item = {
78 | 'pair': pair,
79 | 'timestamp': int(time.time()),
80 | 'asks': asks,
81 | 'bids': bids
82 | }
83 |
84 | return item
85 |
86 |
87 | def mongo_reformat_orderbook(obook, pair):
88 | """Process the orderbook response for write to MongoDB.
89 |
90 | Parameters
91 | ----------
92 | obook : dict
93 | The kraken response returned by query_order_book(...).
94 | pair : str
95 | The currency pair denomination of the orderbook.
96 |
97 | Returns
98 | -------
99 | dict
100 | The orderbook in format for DynamoDB insertion. Returns empty dict on error.
101 | """
102 |
103 | if not obook:
104 | item = {}
105 | logger.error("Orderbook for pair=%s is empty. Can't reformat for DB insertion.", pair)
106 | else:
107 | item = {
108 | 'pair': pair,
109 | 'timestamp': time.time(),
110 | 'asks': obook['asks'],
111 | 'bids': obook['bids']
112 | }
113 |
114 | return item
115 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Cloud scraper for cryptocurrency order book data.
2 | 
3 |
4 | Create an event schedule to scrape order book data from a public exchange API (here implemented with [Kraken API](https://www.kraken.com/help/api)), compresses it into relevant features, and insert it into a private database. The scraper is hosted serverless on AWS Lambda making it virtually free to run.
5 |
6 | # Resources
7 | - [Kraken visualization of their data](https://support.kraken.com/hc/en-us/articles/115000364388-Trading-Glossary)
8 | - [Kraken API](https://www.kraken.com/help/api)
9 |
10 | ## Tech
11 | - [Zappa](https://github.com/Miserlou/Zappa) - deploy Python Lambdas and schedule events
12 | - [krakenex](https://github.com/veox/python3-krakenex) - API for Kraken exchange
13 | - [AWS Lambda](https://aws.amazon.com/lambda/) - serverless compute service
14 | - [AWS RDS](https://aws.amazon.com/rds/) - relational database service
15 |
16 | ## Installation and Setup
17 |
18 | ### Clone
19 | Clone this repo to your local machine.
20 | ```
21 | $ git clone https://github.com/hexamax/orderbook-crypto-scraper.git
22 | ```
23 |
24 | ### Install Requirements
25 | Zappa requires an active [virtual environment](https://virtualenv.pypa.io/en/latest/installation/) to deploy. Either install and activate your own virtual environment or execute the following steps.
26 | ```
27 | $ cd ohlc-crypto-scraper
28 | $ virtualenv -p python3 venv
29 | $ source venv/bin/activate
30 | $ pip install -r requirements.txt
31 | ```
32 |
33 | ### Configure Database
34 | Write your database credentials into the corresponding fields of the database configuration file located at `ohlc-crypto-scraper/db_config.py`
35 |
36 | **WARNING**: The scraper was written, used and tested for a PostgreSQL database only. For compatability make sure to be running a Postgres instance as well. To set up a low cost RDS Postgres instance on AWS check out this [tutorial](https://aws.amazon.com/getting-started/tutorials/create-connect-postgresql-db/).
37 |
38 | ### Zappa Settings (Optional)
39 | The `zappa_settings.json` file was initialized with some sensible defaults and will run fine without additional manipulation. However, here are some easy changes you can make to customize your deploy:
40 | - Specify the rate at which the data scraping event is executed by changing the [rate expression](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#RateExpressions) located in `zappa_settings.json > events > expression`.
41 | - Specify the [aws region](https://docs.aws.amazon.com/general/latest/gr/rande.html) of your deploy in the `aws_region` field.
42 | - Specify a custom name for your S3 bucket using the `s3_bucket` field.
43 |
44 | ## Deploy and Schedule
45 |
46 | ### Initial Deploy
47 | Use the following command for the initial deploy only.
48 | ```
49 | $ zappa deploy scrape_event
50 | ```
51 | Zappa will spit out the deployment information to your terminal and let you know if the deploy was succesfull. If the deploy was succesfull your data scraper should now be up and running.
52 |
53 | Subsequent deploys are possible by calling zappa update.
54 | ```
55 | $ zappa update scrape_event
56 | ```
57 |
58 | ### Schedule
59 | If you decided to change the rate expression in the `zappa_settings.json` file you can easily reschedule your scraper.
60 | ```
61 | $ zappa schedule scrape_event
62 | ```
63 |
64 | ### Undeploy
65 | This will remove the Lambda function.
66 | ```
67 | $ zappa undeploy scrape_event
68 | ```
69 |
70 | ## Logs
71 | You can monitor your scraper's AWS CloudWatch logs directly from the console.
72 | ```
73 | $ zappa tail scrape_event
74 | ```
75 |
--------------------------------------------------------------------------------
/research/mongodb_connection_test.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "from pymongo import MongoClient"
10 | ]
11 | },
12 | {
13 | "cell_type": "code",
14 | "execution_count": 2,
15 | "metadata": {},
16 | "outputs": [],
17 | "source": [
18 | "username = 'xxxxxxxx'\n",
19 | "password = 'xxxxxxxx'\n",
20 | "host = 'xxxxxxxx'"
21 | ]
22 | },
23 | {
24 | "cell_type": "code",
25 | "execution_count": 3,
26 | "metadata": {},
27 | "outputs": [],
28 | "source": [
29 | "client = MongoClient(\n",
30 | " host,\n",
31 | " username=username,\n",
32 | " password=password\n",
33 | ")"
34 | ]
35 | },
36 | {
37 | "cell_type": "code",
38 | "execution_count": 4,
39 | "metadata": {},
40 | "outputs": [],
41 | "source": [
42 | "db = client.get_database('orderbooks')"
43 | ]
44 | },
45 | {
46 | "cell_type": "code",
47 | "execution_count": 5,
48 | "metadata": {},
49 | "outputs": [],
50 | "source": [
51 | "results = db.XXMRZUSD.find({}, limit=10)"
52 | ]
53 | },
54 | {
55 | "cell_type": "code",
56 | "execution_count": 6,
57 | "metadata": {},
58 | "outputs": [
59 | {
60 | "name": "stdout",
61 | "output_type": "stream",
62 | "text": [
63 | "[{'_id': ObjectId('5ca927509ca0b000018881d1'), 'pair': 'XXMRZUSD', 'timestamp': 1554589520.2777784, 'asks': [['67.76000000', '22.637', 1554589518], ['67.91000000', '0.330', 1554589518], ['67.93000000', '24.176', 1554589517], ['67.94000000', '25.000', 1554589519], ['67.96000000', '85.344', 1554589506], ['68.00000000', '2.834', 1554589513], ['68.01000000', '53.393', 1554589512], ['68.05000000', '22.500', 1554589517], ['68.10000000', '10.932', 1554589437], ['68.26000000', '139.122', 1554589516], ['68.27000000', '50.050', 1554589481], ['68.28000000', '41.007', 1554589250], ['68.38000000', '82.696', 1554589499], ['68.39000000', '500.500', 1554589489], ['68.72000000', '0.400', 1554589514], ['68.73000000', '1336.863', 1554589417], ['69.20000000', '250.250', 1554589365], ['69.43000000', '100.100', 1554587794], ['69.52000000', '0.554', 1554582930], ['69.75000000', '0.900', 1554583415], ['70.29000000', '50.050', 1554588297], ['70.41000000', '0.840', 1554569105], ['70.45000000', '1.690', 1554569996], ['70.48000000', '50.050', 1554584866], ['70.54000000', '4.210', 1554569088]], 'bids': [['67.61000000', '43.972', 1554589518], ['67.53000000', '25.000', 1554589508], ['67.44000000', '7.742', 1554589518], ['67.43000000', '4.031', 1554589508], ['67.41000000', '434.443', 1554589511], ['67.39000000', '2.833', 1554589500], ['67.37000000', '2.834', 1554589453], ['67.36000000', '22.500', 1554589518], ['67.23000000', '50.050', 1554589513], ['67.22000000', '30.000', 1554589506], ['67.21000000', '41.007', 1554589211], ['67.16000000', '500.500', 1554589498], ['67.15000000', '127.462', 1554589268], ['66.90000000', '703.500', 1554589460], ['66.89000000', '2.865', 1554589139], ['66.68000000', '11.635', 1554589507], ['66.66000000', '3.732', 1554589488], ['66.56000000', '24.282', 1554589507], ['66.47000000', '250.250', 1554589226], ['65.74000000', '36.916', 1554589507], ['65.65000000', '10.140', 1554554707], ['65.57000000', '225.969', 1554589508], ['65.55000000', '100.100', 1554588397], ['65.50000000', '2.500', 1554584834], ['65.25000000', '3.458', 1554584912]]}, {'_id': ObjectId('5ca9275a9ca0b000018881d7'), 'pair': 'XXMRZUSD', 'timestamp': 1554589530.5620937, 'asks': [['67.76000000', '21.315', 1554589522], ['67.91000000', '7.000', 1554589525], ['67.92000000', '2.127', 1554589525], ['67.94000000', '25.000', 1554589519], ['67.96000000', '85.344', 1554589506], ['68.00000000', '2.834', 1554589513], ['68.01000000', '53.393', 1554589512], ['68.05000000', '22.500', 1554589517], ['68.10000000', '10.932', 1554589437], ['68.25000000', '50.050', 1554589525], ['68.26000000', '139.122', 1554589516], ['68.28000000', '41.007', 1554589250], ['68.38000000', '82.696', 1554589499], ['68.70000000', '14.170', 1554589525], ['68.71000000', '500.500', 1554589523], ['68.73000000', '1337.263', 1554589521], ['69.20000000', '250.250', 1554589365], ['69.43000000', '100.100', 1554587794], ['69.52000000', '0.554', 1554582930], ['69.75000000', '0.900', 1554583415], ['70.29000000', '50.050', 1554588297], ['70.41000000', '0.840', 1554569105], ['70.45000000', '1.690', 1554569996], ['70.48000000', '50.050', 1554584866], ['70.54000000', '4.210', 1554569088]], 'bids': [['67.64000000', '31.462', 1554589526], ['67.62000000', '22.500', 1554589521], ['67.53000000', '25.000', 1554589525], ['67.45000000', '15.372', 1554589521], ['67.43000000', '4.031', 1554589508], ['67.41000000', '434.443', 1554589511], ['67.39000000', '2.833', 1554589500], ['67.38000000', '50.050', 1554589520], ['67.37000000', '2.834', 1554589453], ['67.22000000', '30.000', 1554589506], ['67.21000000', '41.007', 1554589211], ['67.16000000', '500.500', 1554589498], ['67.15000000', '127.462', 1554589268], ['66.90000000', '703.500', 1554589460], ['66.89000000', '2.865', 1554589139], ['66.71000000', '3.729', 1554589526], ['66.69000000', '35.491', 1554589522], ['66.68000000', '11.635', 1554589507], ['66.56000000', '24.282', 1554589507], ['66.48000000', '33.514', 1554589522], ['66.47000000', '250.250', 1554589226], ['65.74000000', '36.916', 1554589507], ['65.65000000', '10.140', 1554554707], ['65.57000000', '225.969', 1554589508], ['65.55000000', '100.100', 1554588397]]}, {'_id': ObjectId('5ca927649ca0b000018881dd'), 'pair': 'XXMRZUSD', 'timestamp': 1554589540.447957, 'asks': [['67.91000000', '7.000', 1554589525], ['67.92000000', '6.154', 1554589532], ['67.96000000', '85.344', 1554589506], ['68.02000000', '2.834', 1554589535], ['68.03000000', '25.000', 1554589531], ['68.05000000', '22.500', 1554589517], ['68.10000000', '10.932', 1554589437], ['68.24000000', '139.119', 1554589530], ['68.25000000', '50.050', 1554589525], ['68.28000000', '41.007', 1554589250], ['68.38000000', '82.696', 1554589499], ['68.70000000', '67.536', 1554589532], ['68.71000000', '500.500', 1554589523], ['68.73000000', '1337.263', 1554589521], ['69.20000000', '250.250', 1554589365], ['69.43000000', '100.100', 1554587794], ['69.52000000', '0.554', 1554582930], ['69.75000000', '0.900', 1554583415], ['70.29000000', '50.050', 1554588297], ['70.41000000', '0.840', 1554569105], ['70.45000000', '1.690', 1554569996], ['70.48000000', '50.050', 1554584866], ['70.54000000', '4.210', 1554569088], ['70.57000000', '0.210', 1554568823], ['70.62000000', '0.800', 1554567699]], 'bids': [['67.66000000', '17.161', 1554589530], ['67.65000000', '21.450', 1554589534], ['67.63000000', '20.000', 1554589528], ['67.62000000', '22.500', 1554589521], ['67.53000000', '25.000', 1554589525], ['67.47000000', '1.200', 1554589532], ['67.45000000', '6.872', 1554589536], ['67.43000000', '2.831', 1554589528], ['67.41000000', '343.189', 1554589532], ['67.39000000', '2.833', 1554589500], ['67.38000000', '50.050', 1554589520], ['67.37000000', '2.834', 1554589453], ['67.31000000', '115.798', 1554589532], ['67.21000000', '41.007', 1554589211], ['67.16000000', '500.500', 1554589498], ['67.15000000', '127.462', 1554589268], ['66.91000000', '11.934', 1554589536], ['66.89000000', '2.865', 1554589139], ['66.72000000', '23.385', 1554589536], ['66.71000000', '3.729', 1554589526], ['66.69000000', '35.491', 1554589522], ['66.49000000', '36.835', 1554589536], ['66.48000000', '33.514', 1554589522], ['66.47000000', '250.250', 1554589226], ['65.65000000', '10.140', 1554554707]]}, {'_id': ObjectId('5ca9276e9ca0b000018881e3'), 'pair': 'XXMRZUSD', 'timestamp': 1554589550.3609078, 'asks': [['67.92000000', '0.330', 1554589549], ['67.93000000', '22.500', 1554589549], ['67.94000000', '7.000', 1554589540], ['67.96000000', '85.344', 1554589506], ['68.02000000', '2.834', 1554589535], ['68.03000000', '25.000', 1554589531], ['68.05000000', '22.500', 1554589517], ['68.10000000', '10.932', 1554589437], ['68.22000000', '139.130', 1554589545], ['68.23000000', '50.050', 1554589542], ['68.28000000', '41.007', 1554589250], ['68.38000000', '82.696', 1554589499], ['68.70000000', '53.765', 1554589547], ['68.71000000', '500.500', 1554589523], ['69.20000000', '250.250', 1554589365], ['69.43000000', '100.100', 1554587794], ['69.52000000', '0.554', 1554582930], ['69.75000000', '0.900', 1554583415], ['70.29000000', '50.050', 1554588297], ['70.41000000', '0.840', 1554569105], ['70.45000000', '1.690', 1554569996], ['70.48000000', '50.050', 1554584866], ['70.54000000', '4.210', 1554569088], ['70.57000000', '0.210', 1554568823], ['70.62000000', '0.800', 1554567699]], 'bids': [['67.68000000', '29.598', 1554589549], ['67.67000000', '20.000', 1554589548], ['67.62000000', '22.500', 1554589521], ['67.53000000', '25.000', 1554589525], ['67.45000000', '6.872', 1554589536], ['67.43000000', '2.831', 1554589544], ['67.41000000', '343.189', 1554589532], ['67.39000000', '2.833', 1554589500], ['67.38000000', '50.050', 1554589520], ['67.37000000', '2.834', 1554589453], ['67.31000000', '115.798', 1554589532], ['67.21000000', '41.007', 1554589211], ['67.16000000', '500.500', 1554589498], ['67.15000000', '127.462', 1554589268], ['66.91000000', '11.934', 1554589536], ['66.90000000', '11.556', 1554589550], ['66.89000000', '2.865', 1554589139], ['66.72000000', '23.385', 1554589536], ['66.71000000', '3.729', 1554589526], ['66.50000000', '57.073', 1554589550], ['66.49000000', '36.835', 1554589536], ['66.47000000', '250.250', 1554589226], ['65.66000000', '67.573', 1554589550], ['65.65000000', '10.140', 1554554707], ['65.55000000', '100.100', 1554588397]]}, {'_id': ObjectId('5ca927789ca0b000018881e9'), 'pair': 'XXMRZUSD', 'timestamp': 1554589560.9134772, 'asks': [['67.90000000', '45.330', 1554589559], ['67.91000000', '7.330', 1554589554], ['67.92000000', '3.441', 1554589558], ['67.96000000', '85.344', 1554589506], ['68.03000000', '25.000', 1554589531], ['68.10000000', '10.932', 1554589437], ['68.20000000', '139.127', 1554589559], ['68.21000000', '53.364', 1554589554], ['68.23000000', '50.050', 1554589542], ['68.28000000', '41.007', 1554589250], ['68.70000000', '49.982', 1554589554], ['68.71000000', '500.500', 1554589523], ['68.73000000', '1394.700', 1554589554], ['69.19000000', '33.055', 1554589554], ['69.20000000', '250.250', 1554589365], ['69.43000000', '100.100', 1554587794], ['69.52000000', '0.554', 1554582930], ['69.75000000', '0.900', 1554583415], ['70.29000000', '50.050', 1554588297], ['70.41000000', '0.840', 1554569105], ['70.45000000', '1.690', 1554569996], ['70.48000000', '50.050', 1554584866], ['70.54000000', '4.210', 1554569088], ['70.57000000', '0.210', 1554568823], ['70.62000000', '0.800', 1554567699]], 'bids': [['67.69000000', '17.161', 1554589559], ['67.67000000', '41.427', 1554589559], ['67.62000000', '22.500', 1554589521], ['67.53000000', '25.000', 1554589525], ['67.46000000', '8.170', 1554589553], ['67.45000000', '6.872', 1554589536], ['67.43000000', '4.031', 1554589551], ['67.41000000', '428.894', 1554589554], ['67.39000000', '2.833', 1554589500], ['67.38000000', '50.050', 1554589520], ['67.37000000', '2.834', 1554589453], ['67.31000000', '30.000', 1554589554], ['67.21000000', '41.007', 1554589211], ['67.16000000', '580.131', 1554589554], ['67.15000000', '127.462', 1554589268], ['66.90000000', '775.056', 1554589554], ['66.89000000', '2.865', 1554589139], ['66.71000000', '3.729', 1554589526], ['66.50000000', '57.073', 1554589550], ['66.47000000', '250.250', 1554589226], ['65.66000000', '67.573', 1554589550], ['65.65000000', '10.140', 1554554707], ['65.55000000', '100.100', 1554588397], ['65.50000000', '2.500', 1554584834], ['65.25000000', '3.458', 1554584912]]}, {'_id': ObjectId('5ca927829ca0b000018881ef'), 'pair': 'XXMRZUSD', 'timestamp': 1554589570.4478455, 'asks': [['67.90000000', '22.500', 1554589562], ['67.91000000', '7.330', 1554589569], ['67.92000000', '3.441', 1554589558], ['67.94000000', '0.330', 1554589564], ['67.96000000', '85.344', 1554589506], ['68.02000000', '2.834', 1554589568], ['68.03000000', '25.000', 1554589531], ['68.10000000', '10.932', 1554589437], ['68.20000000', '139.127', 1554589559], ['68.21000000', '53.364', 1554589554], ['68.28000000', '41.007', 1554589250], ['68.68000000', '14.170', 1554589568], ['68.69000000', '50.050', 1554589563], ['68.70000000', '49.982', 1554589554], ['68.71000000', '500.500', 1554589523], ['68.73000000', '1394.700', 1554589554], ['69.19000000', '33.055', 1554589554], ['69.20000000', '250.250', 1554589365], ['69.43000000', '100.100', 1554587794], ['69.52000000', '0.554', 1554582930], ['69.75000000', '0.900', 1554583415], ['70.29000000', '50.050', 1554588297], ['70.41000000', '0.840', 1554569105], ['70.45000000', '1.690', 1554569996], ['70.48000000', '50.050', 1554584866]], 'bids': [['67.70000000', '3.442', 1554589569], ['67.69000000', '38.588', 1554589566], ['67.67000000', '20.000', 1554589563], ['67.62000000', '22.500', 1554589521], ['67.53000000', '74.996', 1554589563], ['67.46000000', '8.170', 1554589553], ['67.45000000', '6.872', 1554589536], ['67.43000000', '2.831', 1554589565], ['67.41000000', '375.655', 1554589562], ['67.39000000', '2.833', 1554589500], ['67.38000000', '50.050', 1554589520], ['67.37000000', '2.834', 1554589453], ['67.31000000', '30.000', 1554589554], ['67.21000000', '41.007', 1554589211], ['67.16000000', '580.131', 1554589554], ['67.15000000', '127.462', 1554589268], ['66.90000000', '775.056', 1554589554], ['66.89000000', '2.865', 1554589139], ['66.80000000', '3.724', 1554589568], ['66.72000000', '36.334', 1554589565], ['66.51000000', '38.149', 1554589564], ['66.50000000', '57.073', 1554589550], ['66.47000000', '250.250', 1554589226], ['65.67000000', '72.679', 1554589564], ['65.66000000', '67.573', 1554589550]]}, {'_id': ObjectId('5ca9278c9ca0b000018881f5'), 'pair': 'XXMRZUSD', 'timestamp': 1554589580.8520062, 'asks': [['67.89000000', '3.443', 1554589575], ['67.90000000', '22.500', 1554589562], ['67.91000000', '7.330', 1554589569], ['67.94000000', '0.330', 1554589564], ['67.96000000', '85.344', 1554589506], ['68.02000000', '2.834', 1554589568], ['68.03000000', '25.000', 1554589531], ['68.10000000', '10.932', 1554589437], ['68.19000000', '53.370', 1554589576], ['68.20000000', '139.127', 1554589559], ['68.27000000', '50.050', 1554589579], ['68.28000000', '41.007', 1554589250], ['68.68000000', '14.170', 1554589568], ['68.70000000', '49.982', 1554589554], ['68.71000000', '500.500', 1554589523], ['68.73000000', '1394.700', 1554589554], ['69.19000000', '33.055', 1554589554], ['69.20000000', '250.250', 1554589365], ['69.43000000', '100.100', 1554587794], ['69.52000000', '0.554', 1554582930], ['69.75000000', '0.900', 1554583415], ['70.29000000', '50.050', 1554588297], ['70.41000000', '0.840', 1554569105], ['70.45000000', '1.690', 1554569996], ['70.48000000', '50.050', 1554584866]], 'bids': [['67.67000000', '41.430', 1554589576], ['67.62000000', '22.500', 1554589521], ['67.54000000', '108.223', 1554589576], ['67.53000000', '25.000', 1554589575], ['67.45000000', '6.872', 1554589536], ['67.43000000', '2.831', 1554589565], ['67.42000000', '289.952', 1554589575], ['67.41000000', '85.705', 1554589576], ['67.39000000', '2.833', 1554589500], ['67.37000000', '2.834', 1554589453], ['67.31000000', '30.000', 1554589554], ['67.21000000', '41.007', 1554589211], ['67.16000000', '580.131', 1554589554], ['67.15000000', '127.462', 1554589268], ['66.90000000', '763.500', 1554589573], ['66.89000000', '2.865', 1554589139], ['66.81000000', '9.831', 1554589578], ['66.80000000', '3.724', 1554589568], ['66.72000000', '36.334', 1554589565], ['66.52000000', '64.282', 1554589578], ['66.51000000', '38.149', 1554589564], ['66.47000000', '250.250', 1554589226], ['65.68000000', '58.861', 1554589578], ['65.67000000', '72.679', 1554589564], ['65.65000000', '10.140', 1554554707]]}, {'_id': ObjectId('5ca927969ca0b000018881fb'), 'pair': 'XXMRZUSD', 'timestamp': 1554589590.774803, 'asks': [['67.89000000', '20.611', 1554589589], ['67.90000000', '22.500', 1554589562], ['67.91000000', '7.330', 1554589569], ['67.94000000', '0.330', 1554589564], ['67.96000000', '85.344', 1554589506], ['68.02000000', '5.668', 1554589589], ['68.03000000', '25.000', 1554589531], ['68.10000000', '10.932', 1554589437], ['68.18000000', '139.124', 1554589582], ['68.19000000', '53.370', 1554589576], ['68.27000000', '50.050', 1554589579], ['68.28000000', '41.007', 1554589250], ['68.68000000', '14.170', 1554589568], ['68.70000000', '49.982', 1554589554], ['68.71000000', '500.500', 1554589523], ['68.73000000', '1394.700', 1554589554], ['69.19000000', '33.055', 1554589554], ['69.20000000', '250.250', 1554589365], ['69.43000000', '100.100', 1554587794], ['69.52000000', '0.554', 1554582930], ['69.75000000', '0.900', 1554583415], ['70.29000000', '50.050', 1554588297], ['70.41000000', '0.840', 1554569105], ['70.45000000', '1.690', 1554569996], ['70.48000000', '50.050', 1554584866]], 'bids': [['67.65000000', '46.724', 1554589590], ['67.64000000', '22.500', 1554589587], ['67.63000000', '20.000', 1554589583], ['67.58000000', '2.825', 1554589583], ['67.57000000', '1.200', 1554589588], ['67.54000000', '50.050', 1554589586], ['67.53000000', '25.000', 1554589575], ['67.45000000', '6.872', 1554589536], ['67.43000000', '289.953', 1554589588], ['67.41000000', '85.705', 1554589576], ['67.39000000', '2.833', 1554589500], ['67.37000000', '2.834', 1554589453], ['67.31000000', '30.000', 1554589554], ['67.21000000', '41.007', 1554589211], ['67.16000000', '500.500', 1554589590], ['67.15000000', '127.462', 1554589268], ['66.90000000', '763.500', 1554589573], ['66.89000000', '2.865', 1554589139], ['66.81000000', '9.831', 1554589578], ['66.80000000', '3.724', 1554589568], ['66.52000000', '64.282', 1554589578], ['66.47000000', '250.250', 1554589226], ['65.68000000', '58.861', 1554589578], ['65.65000000', '10.140', 1554554707], ['65.56000000', '165.296', 1554589578]]}, {'_id': ObjectId('5ca927a09ca0b00001888201'), 'pair': 'XXMRZUSD', 'timestamp': 1554589600.5785713, 'asks': [['67.86000000', '22.830', 1554589599], ['67.87000000', '7.330', 1554589594], ['67.93000000', '17.163', 1554589591], ['68.02000000', '2.834', 1554589591], ['68.03000000', '25.000', 1554589531], ['68.09000000', '139.117', 1554589599], ['68.10000000', '10.932', 1554589437], ['68.11000000', '78.679', 1554589592], ['68.17000000', '53.383', 1554589595], ['68.18000000', '139.124', 1554589582], ['68.27000000', '50.050', 1554589579], ['68.28000000', '41.007', 1554589250], ['68.70000000', '49.982', 1554589554], ['68.71000000', '500.500', 1554589523], ['68.73000000', '1394.700', 1554589554], ['69.19000000', '33.055', 1554589554], ['69.20000000', '250.250', 1554589365], ['69.43000000', '100.100', 1554587794], ['69.52000000', '0.554', 1554582930], ['69.75000000', '0.900', 1554583415], ['70.29000000', '50.050', 1554588297], ['70.41000000', '0.840', 1554569105], ['70.45000000', '1.690', 1554569996], ['70.48000000', '50.050', 1554584866], ['70.54000000', '4.210', 1554569088]], 'bids': [['67.66000000', '3.443', 1554589598], ['67.60000000', '25.000', 1554589599], ['67.59000000', '28.170', 1554589598], ['67.58000000', '129.476', 1554589597], ['67.56000000', '1.200', 1554589593], ['67.54000000', '50.050', 1554589586], ['67.53000000', '25.000', 1554589575], ['67.45000000', '6.872', 1554589536], ['67.43000000', '289.953', 1554589597], ['67.39000000', '25.333', 1554589594], ['67.37000000', '2.834', 1554589453], ['67.31000000', '30.000', 1554589554], ['67.21000000', '41.007', 1554589211], ['67.16000000', '500.500', 1554589596], ['67.15000000', '127.462', 1554589268], ['66.90000000', '763.500', 1554589596], ['66.89000000', '2.865', 1554589139], ['66.82000000', '11.760', 1554589592], ['66.81000000', '9.831', 1554589578], ['66.80000000', '3.724', 1554589568], ['66.53000000', '62.287', 1554589592], ['66.52000000', '64.282', 1554589578], ['66.47000000', '250.250', 1554589226], ['65.69000000', '65.312', 1554589593], ['65.68000000', '58.861', 1554589578]]}, {'_id': ObjectId('5ca927aa9ca0b00001888207'), 'pair': 'XXMRZUSD', 'timestamp': 1554589610.9701977, 'asks': [['67.91000000', '22.637', 1554589609], ['67.92000000', '22.500', 1554589603], ['67.96000000', '2.127', 1554589610], ['67.99000000', '77.814', 1554589600], ['68.02000000', '2.834', 1554589591], ['68.03000000', '25.000', 1554589531], ['68.08000000', '7.330', 1554589600], ['68.09000000', '139.117', 1554589599], ['68.10000000', '10.932', 1554589437], ['68.17000000', '53.383', 1554589595], ['68.27000000', '50.050', 1554589605], ['68.28000000', '41.007', 1554589250], ['68.68000000', '33.078', 1554589604], ['68.69000000', '1452.843', 1554589602], ['68.70000000', '49.982', 1554589554], ['68.71000000', '500.500', 1554589523], ['69.20000000', '250.250', 1554589365], ['69.43000000', '100.100', 1554587794], ['69.52000000', '0.554', 1554582930], ['69.75000000', '0.900', 1554583415], ['70.29000000', '50.050', 1554588297], ['70.41000000', '0.840', 1554569105], ['70.45000000', '1.690', 1554569996], ['70.48000000', '50.050', 1554584866], ['70.54000000', '4.210', 1554569088]], 'bids': [['67.67000000', '42.500', 1554589610], ['67.66000000', '24.538', 1554589609], ['67.60000000', '47.500', 1554589600], ['67.57000000', '8.170', 1554589604], ['67.54000000', '100.057', 1554589604], ['67.51000000', '2.828', 1554589600], ['67.48000000', '1.200', 1554589609], ['67.46000000', '84.349', 1554589600], ['67.45000000', '6.872', 1554589536], ['67.39000000', '2.833', 1554589601], ['67.38000000', '289.946', 1554589610], ['67.37000000', '43.841', 1554589607], ['67.31000000', '30.000', 1554589554], ['67.16000000', '500.500', 1554589596], ['67.15000000', '127.462', 1554589268], ['66.90000000', '763.500', 1554589596], ['66.89000000', '2.865', 1554589139], ['66.83000000', '9.825', 1554589606], ['66.82000000', '11.760', 1554589592], ['66.81000000', '23.876', 1554589606], ['66.80000000', '3.724', 1554589568], ['66.54000000', '38.408', 1554589606], ['66.53000000', '62.287', 1554589592], ['66.47000000', '250.250', 1554589226], ['65.70000000', '63.436', 1554589607]]}]\n"
64 | ]
65 | }
66 | ],
67 | "source": [
68 | "print(list(results))"
69 | ]
70 | },
71 | {
72 | "cell_type": "code",
73 | "execution_count": null,
74 | "metadata": {},
75 | "outputs": [],
76 | "source": []
77 | },
78 | {
79 | "cell_type": "code",
80 | "execution_count": null,
81 | "metadata": {},
82 | "outputs": [],
83 | "source": []
84 | }
85 | ],
86 | "metadata": {
87 | "kernelspec": {
88 | "display_name": "Python 3",
89 | "language": "python",
90 | "name": "python3"
91 | },
92 | "language_info": {
93 | "codemirror_mode": {
94 | "name": "ipython",
95 | "version": 3
96 | },
97 | "file_extension": ".py",
98 | "mimetype": "text/x-python",
99 | "name": "python",
100 | "nbconvert_exporter": "python",
101 | "pygments_lexer": "ipython3",
102 | "version": "3.6.8"
103 | }
104 | },
105 | "nbformat": 4,
106 | "nbformat_minor": 2
107 | }
108 |
--------------------------------------------------------------------------------
/research/depth_compression.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 42,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "import krakenex\n",
10 | "import numpy as np\n",
11 | "import pandas as pd\n",
12 | "import seaborn as sns\n",
13 | "import matplotlib.pyplot as plt\n",
14 | "from requests.exceptions import HTTPError"
15 | ]
16 | },
17 | {
18 | "cell_type": "code",
19 | "execution_count": 301,
20 | "metadata": {},
21 | "outputs": [],
22 | "source": [
23 | "kraken = krakenex.API()"
24 | ]
25 | },
26 | {
27 | "cell_type": "code",
28 | "execution_count": 524,
29 | "metadata": {},
30 | "outputs": [],
31 | "source": [
32 | "def get_order_book(pair, count):\n",
33 | " \"\"\"Queries the kraken order book.\n",
34 | "\n",
35 | " Parameters\n",
36 | " ----------\n",
37 | " pair : str \n",
38 | " Asset pair to get market depth for.\n",
39 | " count : int \n",
40 | " Maximum number of asks/bids\n",
41 | "\n",
42 | " Returns\n",
43 | " -------\n",
44 | " dataframe\n",
45 | " Order book as dataframe with columns price, volume, timestamp, type, cumvolume, relprice.\n",
46 | " \"\"\"\n",
47 | " \n",
48 | " try:\n",
49 | " response = kraken.query_public('Depth', {'pair': pair, 'count': count})\n",
50 | " except HTTPError as e:\n",
51 | " print(\"ERROR: Failed getting order book data for pair={}\".format(pair))\n",
52 | " \n",
53 | " obook = response.get('result', {}).get(pair)\n",
54 | " if not obook:\n",
55 | " print(\"WARNING: Empty response.\")\n",
56 | " else:\n",
57 | " # add cumvolume\n",
58 | " asks = [limorder + ['ask'] for limorder in obook['asks']]\n",
59 | " bids = [limorder + ['bid'] for limorder in obook['bids']]\n",
60 | " tabular = asks + bids\n",
61 | " obook = pd.DataFrame(tabular, columns=['price', 'volume', 'timestamp', 'type']) \n",
62 | " obook = obook.apply(pd.to_numeric, errors='ignore')\n",
63 | " obook['cumvolume'] = obook[['type', 'volume']].groupby('type').cumsum() # assumes rows are sorted\n",
64 | " \n",
65 | " # add relprice\n",
66 | " minask = obook.loc[obook['type'] == 'ask', 'price'].min()\n",
67 | " maxbid = obook.loc[obook['type'] == 'bid', 'price'].max()\n",
68 | " spread = minask - maxbid\n",
69 | " midprice = (minask + maxbid) / 2\n",
70 | " obook['relprice'] = 100 * (obook['price'] - midprice) / midprice\n",
71 | " \n",
72 | " return obook\n",
73 | "\n",
74 | "\n",
75 | "def plot_order_book(ob):\n",
76 | " \"\"\"Plots the cumulative volume and order distribution of the order book.\n",
77 | " \n",
78 | " Paramaters\n",
79 | " ----------\n",
80 | " ob : dataframe\n",
81 | " Order book data frame with columns type, price, volume, cumvolume, relprice.\n",
82 | " \"\"\"\n",
83 | " \n",
84 | " # extract data series from df\n",
85 | " ask_prices = ob.loc[ob['type'] == 'ask', 'price']\n",
86 | " ask_relprices = ob.loc[ob['type'] == 'ask', 'relprice']\n",
87 | " ask_volumes = ob.loc[ob['type'] == 'ask', 'volume']\n",
88 | " ask_cumvolumes = ob.loc[ob['type'] == 'ask', 'cumvolume']\n",
89 | " bid_prices = ob.loc[ob['type'] == 'bid', 'price']\n",
90 | " bid_relprices = ob.loc[ob['type'] == 'bid', 'relprice']\n",
91 | " bid_volumes = ob.loc[ob['type'] == 'bid', 'volume']\n",
92 | " bid_cumvolumes = ob.loc[ob['type'] == 'bid', 'cumvolume']\n",
93 | " \n",
94 | " # plot cum vol plot\n",
95 | " fig, ax = plt.subplots(2, 1, figsize=(16, 10)) # sharex='col'\n",
96 | " ax[0].fill_between(bid_relprices, bid_cumvolumes, facecolor='maroon', edgecolor='k', alpha=0.7, zorder=10, label='bids')\n",
97 | " ax[0].fill_between(ask_relprices, ask_cumvolumes, facecolor='dimgrey', edgecolor='k', alpha=0.7, zorder=10, label='asks')\n",
98 | " ax[0].set_xlim([min(bid_relprices.min(), ask_relprices.min()), max(bid_relprices.max(), ask_relprices.max())])\n",
99 | " ax[0].set_ylim([0, 1.05* max(bid_cumvolumes.max(), ask_cumvolumes.max())])\n",
100 | " ax[0].set_xlabel('Distance to midprice (%)')\n",
101 | " ax[0].set_ylabel('Cumulative Volume')\n",
102 | " ax[0].legend(loc='upper center', facecolor='white', framealpha=1, frameon=False)\n",
103 | " \n",
104 | " # plot order distribution\n",
105 | " ax[1].stem(bid_prices, bid_volumes, 'maroon', markerfmt=' ', label='bids')\n",
106 | " ax[1].stem(ask_prices, ask_volumes, 'k', markerfmt=' ', label='asks')\n",
107 | " ax[1].set_ylim([0, 1.05* max(bid_volumes.max(), ask_volumes.max())])\n",
108 | " ax[1].set_xlabel('Price')\n",
109 | " ax[1].set_ylabel('Volume')\n",
110 | " \n",
111 | " plt.show()"
112 | ]
113 | },
114 | {
115 | "cell_type": "code",
116 | "execution_count": 530,
117 | "metadata": {},
118 | "outputs": [
119 | {
120 | "data": {
121 | "text/html": [
122 | "
\n",
123 | "\n",
136 | "
\n",
137 | " \n",
138 | " \n",
139 | " | \n",
140 | " price | \n",
141 | " volume | \n",
142 | " timestamp | \n",
143 | " type | \n",
144 | " cumvolume | \n",
145 | " relprice | \n",
146 | "
\n",
147 | " \n",
148 | " \n",
149 | " \n",
150 | " | 0 | \n",
151 | " 0.27519 | \n",
152 | " 2375.871 | \n",
153 | " 1553289732 | \n",
154 | " ask | \n",
155 | " 2375.871 | \n",
156 | " 0.034534 | \n",
157 | "
\n",
158 | " \n",
159 | " | 1 | \n",
160 | " 0.27531 | \n",
161 | " 3900.636 | \n",
162 | " 1553289743 | \n",
163 | " ask | \n",
164 | " 6276.507 | \n",
165 | " 0.078155 | \n",
166 | "
\n",
167 | " \n",
168 | " | 2 | \n",
169 | " 0.27532 | \n",
170 | " 9653.581 | \n",
171 | " 1553289742 | \n",
172 | " ask | \n",
173 | " 15930.088 | \n",
174 | " 0.081790 | \n",
175 | "
\n",
176 | " \n",
177 | " | 3 | \n",
178 | " 0.27534 | \n",
179 | " 3493.477 | \n",
180 | " 1553289736 | \n",
181 | " ask | \n",
182 | " 19423.565 | \n",
183 | " 0.089060 | \n",
184 | "
\n",
185 | " \n",
186 | " | 4 | \n",
187 | " 0.27536 | \n",
188 | " 4500.000 | \n",
189 | " 1553289718 | \n",
190 | " ask | \n",
191 | " 23923.565 | \n",
192 | " 0.096330 | \n",
193 | "
\n",
194 | " \n",
195 | "
\n",
196 | "
"
197 | ],
198 | "text/plain": [
199 | " price volume timestamp type cumvolume relprice\n",
200 | "0 0.27519 2375.871 1553289732 ask 2375.871 0.034534\n",
201 | "1 0.27531 3900.636 1553289743 ask 6276.507 0.078155\n",
202 | "2 0.27532 9653.581 1553289742 ask 15930.088 0.081790\n",
203 | "3 0.27534 3493.477 1553289736 ask 19423.565 0.089060\n",
204 | "4 0.27536 4500.000 1553289718 ask 23923.565 0.096330"
205 | ]
206 | },
207 | "execution_count": 530,
208 | "metadata": {},
209 | "output_type": "execute_result"
210 | }
211 | ],
212 | "source": [
213 | "N = 200\n",
214 | "ob = get_order_book('XXRPZEUR', N)\n",
215 | "ob.head()"
216 | ]
217 | },
218 | {
219 | "cell_type": "code",
220 | "execution_count": 531,
221 | "metadata": {},
222 | "outputs": [],
223 | "source": [
224 | "# How much information can we take out while still maintaining the shape of the order book?\n",
225 | "threshold = ob.volume.nlargest(int(0.6 * N)).min()\n",
226 | "ob_sub = ob.groupby('type').apply(lambda x: x[x['volume'] > threshold])"
227 | ]
228 | },
229 | {
230 | "cell_type": "code",
231 | "execution_count": 532,
232 | "metadata": {},
233 | "outputs": [
234 | {
235 | "data": {
236 | "text/plain": [
237 | "(119, 6)"
238 | ]
239 | },
240 | "execution_count": 532,
241 | "metadata": {},
242 | "output_type": "execute_result"
243 | }
244 | ],
245 | "source": [
246 | "ob_sub.shape"
247 | ]
248 | },
249 | {
250 | "cell_type": "code",
251 | "execution_count": 533,
252 | "metadata": {},
253 | "outputs": [
254 | {
255 | "data": {
256 | "image/png": "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\n",
257 | "text/plain": [
258 | ""
259 | ]
260 | },
261 | "metadata": {
262 | "needs_background": "light"
263 | },
264 | "output_type": "display_data"
265 | }
266 | ],
267 | "source": [
268 | "plot_order_book(ob_sub)"
269 | ]
270 | },
271 | {
272 | "cell_type": "code",
273 | "execution_count": 534,
274 | "metadata": {},
275 | "outputs": [
276 | {
277 | "data": {
278 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAA88AAAJQCAYAAACwzFbhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xl8VeW59//PtaeMJJAESEAQFMQyCCoVkbY/rY+t9dejdtYO2mq1Pa128Dw96tO+jnY4jz2/Y/XU1mrt0VZ7tGodWgfUYp06iBVEFBEVEQUEAgmQedh7X78/9koMmGEHsrMyfN+v13rtte91r3VfiZLk2vdk7o6IiIiIiIiI9CwSdgAiIiIiIiIiQ52SZxEREREREZE+KHkWERERERER6YOSZxEREREREZE+KHkWERERERER6YOSZxEREREREZE+KHkWERERERER6YOSZxEREREREZE+KHkWERERERER6UMs7ACGuoqKCp82bVrYYYiIiIiIiEgOrFy5cqe7j++rnpLnPkybNo0VK1aEHYaIiIiIiIjkgJm9mU09DdsWERERERER6YOSZxEREREREZE+KHkWERERERER6YOSZxEREREREZE+KHkWERERERER6YOSZxEREREREZE+KHkWERERERER6YOSZxEREREREZE+xMIOQERERLLz2Y9/nC0bNw7Y8yZPm8Zt99zTa52NGzfy0Y9+lDVr1uxV/uUvf5mLLrqI2bNn71X+m9/8hhUrVvDzn/98wOIUEREZCpQ8i4iIDBNbNm7kq5MnD9jzrj+ARPy///u/BywOERGR4UDJcx/e2rCByy+7jNlz5hCNRolGo0QiEaLRKLFYjFmzZnHwwQdjZmGHKiIikhPJZJLPfe5zPPfcc8yZM4dbbrmFU045hSuvvJKFCxfy61//miuuuIKxY8cyf/588vLyAPj973/P97//faLRKKWlpTz11FMhfyUiIiL7T8lzH6KpFGvvuIPqwkI8EsEBzEibkQK2A0Xjx/P/nHwySz7wAebMmUMspm+riIiMHK+88go33ngjS5Ys4ZxzzuEXv/hF57WtW7dy2WWXsXLlSkpLSznhhBM48sgjAfjBD37AI488wuTJk9m9e3dY4YuIiAwIZXl9iEejLJ40icqiom6vuzs7m5t59be/5fFbb6UpkeC4E07g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\n",
279 | "text/plain": [
280 | ""
281 | ]
282 | },
283 | "metadata": {
284 | "needs_background": "light"
285 | },
286 | "output_type": "display_data"
287 | }
288 | ],
289 | "source": [
290 | "plot_order_book(ob)"
291 | ]
292 | },
293 | {
294 | "cell_type": "code",
295 | "execution_count": null,
296 | "metadata": {},
297 | "outputs": [],
298 | "source": []
299 | },
300 | {
301 | "cell_type": "code",
302 | "execution_count": 385,
303 | "metadata": {},
304 | "outputs": [],
305 | "source": [
306 | "def cash_in_orderbook(midpoint, diff, ob):\n",
307 | " \"\"\"A measure of the relative money needed to move the price from the midprice given the current orders. \n",
308 | " \n",
309 | " Note that this is normalized by the area of +/- diff about the midprice.\n",
310 | "\n",
311 | " midprice: float \n",
312 | " The midpoint of the spread.\n",
313 | " diff : float\n",
314 | " The relative amount in percentage terms you want the price to move from the midpoint.\n",
315 | " ob : dataframe\n",
316 | " The orderbook dataframe or ask / bid dataframe.\n",
317 | " \"\"\"\n",
318 | " \n",
319 | " oneside = ob[np.less_equal(np.absolute(ob['relprice']), abs(diff)) & (np.sign(ob['relprice']) == np.sign(diff))]\n",
320 | " bothsides = ob[np.less_equal(np.absolute(ob['relprice']), abs(diff))]\n",
321 | " onesidemoney = np.sum(oneside['price'] * oneside['volume'])\n",
322 | " totalmoney = np.sum(bothsides['price'] * bothsides['volume'])\n",
323 | " \n",
324 | " return onesidemoney / totalmoney\n",
325 | "\n",
326 | "\n",
327 | "def ask_to_total_fraction(ob, ub, n=100):\n",
328 | " \"\"\"Metric to calculate a series of relative strength of ask vs bid side.\n",
329 | " \n",
330 | " Basically the price weighted order volume on the ask side over the total price weighted order \n",
331 | " volume within x% of midprice. Returns a series of these at different x%s.\n",
332 | " \n",
333 | " Definition\n",
334 | " ----------\n",
335 | " A / (A + B), where\n",
336 | " A = sum(volume_i * price_i) for the ith order in the ask side between the midprice and the upper bound,\n",
337 | " B = similar metric just for bids.\n",
338 | " \n",
339 | " Parameters\n",
340 | " ----------\n",
341 | " ob : dataframe\n",
342 | " The orderbook with buy and ask orders.\n",
343 | " ub : float\n",
344 | " The relative price upper bound in percent difference from the midpoint.\n",
345 | " \n",
346 | " Returns\n",
347 | " -------\n",
348 | " prices : array\n",
349 | " A linear space of prices.\n",
350 | " metric : array\n",
351 | " The metric calculated at each price point.\n",
352 | " \"\"\"\n",
353 | " \n",
354 | " asks = ob[ob['type'] == 'ask']\n",
355 | " bids = ob[ob['type'] == 'bid']\n",
356 | " minask = asks.price.min()\n",
357 | " maxbid = bids.price.max()\n",
358 | " \n",
359 | " spread = minask - maxbid\n",
360 | " midprice = (minask + maxbid) / 2\n",
361 | " lb = max(asks.relprice.min(), abs(bids.relprice.max())) # lower bound\n",
362 | " prices = np.linspace(lb, ub, n)\n",
363 | " metrics = [cash_in_orderbook(midprice, p, ob) for p in prices]\n",
364 | " \n",
365 | " return prices, metrics\n",
366 | "\n",
367 | "\n",
368 | "def summarize_order_book(ob):\n",
369 | " \n",
370 | " asks = ob[ob['type'] == 'ask']\n",
371 | " bids = ob[ob['type'] == 'bid']\n",
372 | " minask = asks.price.min()\n",
373 | " maxbid = bids.price.max()\n",
374 | " \n",
375 | " spread = minask - maxbid\n",
376 | " midprice = (minask + maxbid) / 2\n",
377 | " spreadperc = 100 * spread / midprice\n",
378 | " \n",
379 | " # first cliff detection\n",
380 | " # define fc as largest vol order within delta% of midpoint\n",
381 | " fc_bounds = 2.0 # percent\n",
382 | " fc_ask = asks.loc[asks.loc[asks['relprice'] > fc_bounds, 'volume'].idxmax()]\n",
383 | " fc_bid = bids.loc[bids.loc[bids['relprice'] > -fc_bounds, 'volume'].idxmax()]\n",
384 | " \n",
385 | " # size of first cliff\n",
386 | " # define sfc as sum of volumes of orders within epsilon% of cliff\n",
387 | " sfc_bounds = 0.1 # percent\n",
388 | " sfc_ask = asks.loc[np.absolute(asks['relprice'] - fc_ask['relprice']) < sfc_bounds, 'volume'].sum()\n",
389 | " sfc_bid = bids.loc[np.absolute(bids['relprice'] - fc_bid['relprice']) < sfc_bounds, 'volume'].sum()\n",
390 | " \n",
391 | " # TODO:\n",
392 | "# Money / volume needed to move price to first cliff edge\n",
393 | "# Money / volume needed to move price to nth interval of first cliff edge\n",
394 | "# USD?\n",
395 | "# divide ask by bids or vice versa to see who has the relative upper hand against percent move from midprice\n",
396 | " \n",
397 | " return midprice, spread, spreadperc"
398 | ]
399 | },
400 | {
401 | "cell_type": "code",
402 | "execution_count": 384,
403 | "metadata": {},
404 | "outputs": [
405 | {
406 | "data": {
407 | "image/png": "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4cZtGhoaOO200/jzn//Mbbfd1g3RSZL6m46uof1ySmkrYDKwKnB5RPwlIr4VER+LiIHdFWRf1djYaIVWhZs7d+57KrTgTMeSKmsbblxpduNKDjnkENZbbz2rtJKkuljuNbQppSdSSuenlHYGPgn8EdgbuKfewfV1DjlWT1CpQgtZQvvkk0+yePHiAqKS1FNNnTqV7bbbjubm5qq2HzJkCKeffjr33nsvN910U52jkyT1N52aFCql9HZK6ZaU0lEppQ/VK6j+wiHH6gkqTQoFWUL7zjvv8MILLxQQlaSe6KmnnuLhhx+uarhxqc9//vNssMEGfPnLX+Y3v/lNnaKTJPVHdZ3lOCJ2jognI+KZiDilg+0+GxEpIvpVkmyFVkVbtGgRb775ZrtDjsGZjiW9q2248V577dWp9w0aNIipU6cyYsQIdtllFw466CD++c9/1iNESVI/U7eENr/G9kJgF2ATYP+I2KTCdsOBr9APhzBboVXR5s6dC9BuhRZMaCW9a+rUqWy77bZVDzcutcUWW/DAAw9w2mmncfXVV7PJJptw3XXXeV2tJKlLlpvQRsQuFZZ9qYq2twaeSSn9I6W0ALgW2LPCdmcB5wD9LrOzQquitSW0lSq0q666KqNHjzahlQTA008/zUMPPdTp4calhg4dyllnncW9997L2LFj2XvvvfnsZz/LrFmzahipJKk/qaZCe3pEfLLtRUScROXEtFwTMKPkdUu+bKmI2AoYm1K6uYr2+hwrtCpaa2srULlCC850LOld1113HdD54caVfOADH+Cvf/0r55xzDrfeeiubbLIJl112mdVaSVKnDapimz2AX0fEicDOwMZUl9B2KCIGAN8FDq5i20nAJIBRo0Yxbdq0ru6+R5g1axYLFy7kd7/7HQMHehekIrz55pt9pj+tiAceeACA5557ruJxWGWVVbjzzju56667iIhujq736e/9SbXXk/rUZZddxiabbMKzzz7Ls88+W5M2t956ay655BLOPfdcDjnkEC688EJ22WWXbvt9U76f8tcDBw5k6NChDB06lIaGhqXPS5f1pv+/e1J/Uu9nf1ItdaU/LTehTSnNjog9gN8C9wF7peq+Qp0JjC153ZwvazMceD8wLf8PZC3gxojYI6V0b1kMlwCXAGy00UZp4sSJVey+55s+fToAH/nIR1h55ZULjqZ/mjZtGn2l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559/vs/nO+c0depUjR49Wvfcc0/GV29+9913de211+qll17S4MGDNWvWrIy+PgAAAIDm8/QYWjMba2bvmtkGM7ulicdPMbM1ZlZtZud7WUsYFRcX65VXXvlSZzRdFi5cqF27dmnChAkpbZ+bm6uePXuqpKREV1xxhf7rv/5Lc+fO1euvv67PPvtMtbW1+7zs2rVL06ZN09q1azVkyBBNmDBB7733XtrfV2NVVVX66U9/quOOO06rVq3S9OnT9dprr+m4447z/LUBAAAAtIxngdbMciVNl3S6pCJJE8ysqNFmmyRdJmm2V3WEWUlJiSoqKrR69eq073v27Nk68sgjddJJJ6V9303Jz8/XD37wA7333nu69dZbtWjRIh199NGaMmWK/vWvf3nymkuWLNGkSZN011136YILLtA777yj733ve8rNzfXk9QAAAACkl5cd2hMkbXDObXTO7ZY0V9I5DTdwzn3gnFsnqdbDOkJr5MiRkpT20/ds27ZNL774osaPH6+cnMwuhN2hQwdNnTpVGzZs0JVXXqmHHnpIvXv31u23364dO3ak5TU2b96s888/X2eccYZyc3P10ksv6cknn9Thhx+elv0DAAAAyAwvj6HtJumjBrc3Sxrm4esddAoLC/X1r39dL7/8sm655Sszug/Y/PnzVV1drYkTJ6Ztn83VtWtXPfjgg7rhhht066236o477tD06dPTslDTunXrVFNTo7vvvltDhgzRqFGj0lAxAAAAgEzLikWhzGyypMlSXYhLd0cym/Xt21dLlizR0qVL03aanAcffFA9e/bU9u3bA/FZf+9731NJSYl+//vfq6KiosX7GzFihC677DJ17dpVFRUVgXiPCAfGE9KNMYV0YjwhnRhPSKeWjCcvA+3Hkno0uN09cV+zOecelvSwJPXr188lT1kDafv27Xruued0yCGHpOV4148++kjr1q3T1KlTVVJSkoYK06O4uFjXXHNN2vdbVlYmxhPShfGEdGNMIZ0YT0gnxhPSqSXjycsDJFdK6mtmvcystaTxkhZ5+HoHpeRxtC+//HJa9jd37lxJ0vjx49OyPwAAAADwimeB1jlXLWmKpBck/V3S751z683sTjM7W5LMbKiZbZZ0gaT/NrP1XtUTVp07d9Zxxx2Xtikfc+bM0dChQ9WnT5+07A8AAAAAvOLpMbTOuVJJpY3u+1mD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\n",
408 | "text/plain": [
409 | ""
410 | ]
411 | },
412 | "metadata": {
413 | "needs_background": "light"
414 | },
415 | "output_type": "display_data"
416 | }
417 | ],
418 | "source": [
419 | "prices, ask = ask_to_total_fraction(ob, np.absolute(ob['relprice']).max())\n",
420 | "fig, ax = plt.subplots(figsize=(16, 8)) # sharex='col'\n",
421 | "ax.plot(prices, y, 'k')\n",
422 | "ax.set_xlim([0, max(x)])\n",
423 | "ax.set_title('Ask side price weighted order volume as fraction of total price \\nweighted order volume within x% of midprice')\n",
424 | "ax.set_xlabel('Price difference from midprice (%)')\n",
425 | "ax.set_ylabel('Ask / Total')\n",
426 | "ax.grid()"
427 | ]
428 | },
429 | {
430 | "cell_type": "code",
431 | "execution_count": null,
432 | "metadata": {},
433 | "outputs": [],
434 | "source": []
435 | },
436 | {
437 | "cell_type": "code",
438 | "execution_count": 121,
439 | "metadata": {},
440 | "outputs": [
441 | {
442 | "data": {
443 | "image/png": "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\n",
444 | "text/plain": [
445 | ""
446 | ]
447 | },
448 | "metadata": {
449 | "needs_background": "light"
450 | },
451 | "output_type": "display_data"
452 | }
453 | ],
454 | "source": [
455 | "sns.kdeplot(np.log(ob.volume));"
456 | ]
457 | },
458 | {
459 | "cell_type": "code",
460 | "execution_count": 60,
461 | "metadata": {},
462 | "outputs": [
463 | {
464 | "data": {
465 | "text/plain": [
466 | "665.1416330443618"
467 | ]
468 | },
469 | "execution_count": 60,
470 | "metadata": {},
471 | "output_type": "execute_result"
472 | }
473 | ],
474 | "source": [
475 | "np.exp(6.5)"
476 | ]
477 | },
478 | {
479 | "cell_type": "code",
480 | "execution_count": null,
481 | "metadata": {},
482 | "outputs": [],
483 | "source": []
484 | }
485 | ],
486 | "metadata": {
487 | "kernelspec": {
488 | "display_name": "Python 3",
489 | "language": "python",
490 | "name": "python3"
491 | },
492 | "language_info": {
493 | "codemirror_mode": {
494 | "name": "ipython",
495 | "version": 3
496 | },
497 | "file_extension": ".py",
498 | "mimetype": "text/x-python",
499 | "name": "python",
500 | "nbconvert_exporter": "python",
501 | "pygments_lexer": "ipython3",
502 | "version": "3.6.8"
503 | }
504 | },
505 | "nbformat": 4,
506 | "nbformat_minor": 2
507 | }
508 |
--------------------------------------------------------------------------------