{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import requests"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"pd.set_option('display.precision',10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*Bid-ask spread* is a normalized value: (bid+ask)/(2*bid) - 1 "
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"\n",
"\n",
"tick = requests.get('https://poloniex.com/public?command=returnTicker').json()"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" symbol | \n",
" bid | \n",
" ask | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" BTC_BCN | \n",
" 0.00000046 | \n",
" 0.00000047 | \n",
"
\n",
" \n",
" 1 | \n",
" BTC_BELA | \n",
" 0.00001745 | \n",
" 0.00001751 | \n",
"
\n",
" \n",
" 2 | \n",
" BTC_BLK | \n",
" 0.00003257 | \n",
" 0.00003315 | \n",
"
\n",
" \n",
" 3 | \n",
" BTC_BTCD | \n",
" 0.01015829 | \n",
" 0.01020906 | \n",
"
\n",
" \n",
" 4 | \n",
" BTC_BTM | \n",
" 0.00007724 | \n",
" 0.00007725 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" symbol bid ask\n",
"0 BTC_BCN 0.00000046 0.00000047\n",
"1 BTC_BELA 0.00001745 0.00001751\n",
"2 BTC_BLK 0.00003257 0.00003315\n",
"3 BTC_BTCD 0.01015829 0.01020906\n",
"4 BTC_BTM 0.00007724 0.00007725"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tick_df = pd.DataFrame.from_records([(k,v['highestBid'],v['lowestAsk']) for k,v in tick.items()])\n",
"tick_df.columns = ('symbol','bid','ask')\n",
"tick_df['bid'] = tick_df['bid'].astype(float)\n",
"tick_df['ask'] = tick_df['ask'].astype(float)\n",
"tick_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"tick_df['bid_ask_spread_norm'] = (tick_df['bid']+tick_df['ask'])/(2*tick_df['bid'])-1"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" symbol | \n",
" bid | \n",
" ask | \n",
" bid_ask_spread_norm | \n",
"
\n",
" \n",
" \n",
" \n",
" 63 | \n",
" BTC_LSK | \n",
" 0.00189000 | \n",
" 0.00189001 | \n",
" 0.0000026455 | \n",
"
\n",
" \n",
" 60 | \n",
" BTC_RADS | \n",
" 0.00055500 | \n",
" 0.00055501 | \n",
" 0.0000090090 | \n",
"
\n",
" \n",
" 7 | \n",
" BTC_CLAM | \n",
" 0.00053662 | \n",
" 0.00053663 | \n",
" 0.0000093176 | \n",
"
\n",
" \n",
" 46 | \n",
" USDT_XRP | \n",
" 0.93812950 | \n",
" 0.93815047 | \n",
" 0.0000111765 | \n",
"
\n",
" \n",
" 66 | \n",
" BTC_STEEM | \n",
" 0.00031632 | \n",
" 0.00031633 | \n",
" 0.0000158068 | \n",
"
\n",
" \n",
" 4 | \n",
" BTC_BTM | \n",
" 0.00007724 | \n",
" 0.00007725 | \n",
" 0.0000647333 | \n",
"
\n",
" \n",
" 8 | \n",
" BTC_DASH | \n",
" 0.05748979 | \n",
" 0.05749990 | \n",
" 0.0000879287 | \n",
"
\n",
" \n",
" 36 | \n",
" BTC_XEM | \n",
" 0.00003659 | \n",
" 0.00003660 | \n",
" 0.0001366494 | \n",
"
\n",
" \n",
" 92 | \n",
" BTC_CVC | \n",
" 0.00003410 | \n",
" 0.00003411 | \n",
" 0.0001466276 | \n",
"
\n",
" \n",
" 27 | \n",
" BTC_RIC | \n",
" 0.00002948 | \n",
" 0.00002949 | \n",
" 0.0001696065 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" symbol bid ask bid_ask_spread_norm\n",
"63 BTC_LSK 0.00189000 0.00189001 0.0000026455\n",
"60 BTC_RADS 0.00055500 0.00055501 0.0000090090\n",
"7 BTC_CLAM 0.00053662 0.00053663 0.0000093176\n",
"46 USDT_XRP 0.93812950 0.93815047 0.0000111765\n",
"66 BTC_STEEM 0.00031632 0.00031633 0.0000158068\n",
"4 BTC_BTM 0.00007724 0.00007725 0.0000647333\n",
"8 BTC_DASH 0.05748979 0.05749990 0.0000879287\n",
"36 BTC_XEM 0.00003659 0.00003660 0.0001366494\n",
"92 BTC_CVC 0.00003410 0.00003411 0.0001466276\n",
"27 BTC_RIC 0.00002948 0.00002949 0.0001696065"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tick_df.sort_values('bid_ask_spread_norm').head(10)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" symbol | \n",
" bid | \n",
" ask | \n",
" bid_ask_spread_norm | \n",
"
\n",
" \n",
" \n",
" \n",
" 11 | \n",
" BTC_EMC2 | \n",
" 0.00002891 | \n",
" 0.00002935 | \n",
" 0.0076098236 | \n",
"
\n",
" \n",
" 57 | \n",
" BTC_BCY | \n",
" 0.00004402 | \n",
" 0.00004474 | \n",
" 0.0081781009 | \n",
"
\n",
" \n",
" 10 | \n",
" BTC_DOGE | \n",
" 0.00000060 | \n",
" 0.00000061 | \n",
" 0.0083333333 | \n",
"
\n",
" \n",
" 22 | \n",
" BTC_NMC | \n",
" 0.00024959 | \n",
" 0.00025403 | \n",
" 0.0088945871 | \n",
"
\n",
" \n",
" 2 | \n",
" BTC_BLK | \n",
" 0.00003257 | \n",
" 0.00003315 | \n",
" 0.0089038993 | \n",
"
\n",
" \n",
" 16 | \n",
" BTC_HUC | \n",
" 0.00002485 | \n",
" 0.00002531 | \n",
" 0.0092555332 | \n",
"
\n",
" \n",
" 47 | \n",
" XMR_BCN | \n",
" 0.00001619 | \n",
" 0.00001650 | \n",
" 0.0095738110 | \n",
"
\n",
" \n",
" 31 | \n",
" BTC_XVC | \n",
" 0.00004103 | \n",
" 0.00004188 | \n",
" 0.0103582744 | \n",
"
\n",
" \n",
" 0 | \n",
" BTC_BCN | \n",
" 0.00000046 | \n",
" 0.00000047 | \n",
" 0.0108695652 | \n",
"
\n",
" \n",
" 52 | \n",
" XMR_MAID | \n",
" 0.00117875 | \n",
" 0.00121206 | \n",
" 0.0141293743 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" symbol bid ask bid_ask_spread_norm\n",
"11 BTC_EMC2 0.00002891 0.00002935 0.0076098236\n",
"57 BTC_BCY 0.00004402 0.00004474 0.0081781009\n",
"10 BTC_DOGE 0.00000060 0.00000061 0.0083333333\n",
"22 BTC_NMC 0.00024959 0.00025403 0.0088945871\n",
"2 BTC_BLK 0.00003257 0.00003315 0.0089038993\n",
"16 BTC_HUC 0.00002485 0.00002531 0.0092555332\n",
"47 XMR_BCN 0.00001619 0.00001650 0.0095738110\n",
"31 BTC_XVC 0.00004103 0.00004188 0.0103582744\n",
"0 BTC_BCN 0.00000046 0.00000047 0.0108695652\n",
"52 XMR_MAID 0.00117875 0.00121206 0.0141293743"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tick_df.sort_values('bid_ask_spread_norm').tail(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The main issue with this metrics is that spread changes rapidly and top/tail results are different in any given time."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Handy liquidity** \n",
"\n",
"HL = Bid-ask spread / Bid-ask spread by X units of an asset, where\n",
"X is 1 BTC or equivalent for day traders; 10 BTC or equivalent for investors. "
]
},
{
"cell_type": "code",
"execution_count": 124,
"metadata": {},
"outputs": [],
"source": [
"def calc_liquidity(symbol):\n",
" r = requests.get('https://poloniex.com/public?command=returnOrderBook¤cyPair={symbol}&depth=1000'.format(symbol=symbol)).json()\n",
" asks = pd.DataFrame.from_records(r['asks']).rename(columns={0:'price',1:'amount'})\n",
" bids = pd.DataFrame.from_records(r['bids']).rename(columns={0:'price',1:'amount'})\n",
" asks['price'] = asks['price'].astype(float)\n",
" bids['price'] = bids['price'].astype(float)\n",
" asks['vol'] = asks['price']*asks['amount']\n",
" bids['vol'] = bids['price']*bids['amount']\n",
" asks['cumvol'] = asks['vol'].cumsum()\n",
" bids['cumvol'] = bids['vol'].cumsum()\n",
" \n",
" best_bid = bids['price'].values[0]\n",
" best_ask = asks['price'].values[0]\n",
" best_1b_bid = bids[bids['cumvol']>=1]['price'].values[0] if (bids['cumvol']>=1).sum()>0 else np.NaN\n",
" best_1b_ask = asks[asks['cumvol']>=1]['price'].values[0] if (asks['cumvol']>=1).sum()>0 else np.NaN\n",
" best_10b_bid = bids[bids['cumvol']>=10]['price'].values[0] if (bids['cumvol']>=10).sum()>0 else np.NaN\n",
" best_10b_ask = asks[asks['cumvol']>=10]['price'].values[0] if (asks['cumvol']>=10).sum()>0 else np.NaN\n",
" \n",
" return (symbol, best_bid, best_ask, best_1b_bid, best_1b_ask, best_10b_bid, best_10b_ask)\n"
]
},
{
"cell_type": "code",
"execution_count": 125,
"metadata": {},
"outputs": [],
"source": [
"col_names = ('symbol','best_bid', 'best_ask', 'best_1b_bid', 'best_1b_ask', 'best_10b_bid', 'best_10b_ask')"
]
},
{
"cell_type": "code",
"execution_count": 147,
"metadata": {},
"outputs": [],
"source": [
"res = pd.DataFrame.from_records([calc_liquidity(symbol) for symbol in list(tick.keys())])\n",
"res.columns = col_names"
]
},
{
"cell_type": "code",
"execution_count": 148,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" symbol | \n",
" best_bid | \n",
" best_ask | \n",
" best_1b_bid | \n",
" best_1b_ask | \n",
" best_10b_bid | \n",
" best_10b_ask | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" BTC_BCN | \n",
" 0.00000046 | \n",
" 0.00000047 | \n",
" 0.00000046 | \n",
" 0.00000048 | \n",
" 0.00000044 | \n",
" 0.00000050 | \n",
"
\n",
" \n",
" 1 | \n",
" BTC_BELA | \n",
" 0.00001744 | \n",
" 0.00001745 | \n",
" 0.00001695 | \n",
" 0.00001861 | \n",
" 0.00001127 | \n",
" 0.00002670 | \n",
"
\n",
" \n",
" 2 | \n",
" BTC_BLK | \n",
" 0.00003259 | \n",
" 0.00003282 | \n",
" 0.00003111 | \n",
" 0.00003286 | \n",
" 0.00001886 | \n",
" 0.00004600 | \n",
"
\n",
" \n",
" 3 | \n",
" BTC_BTCD | \n",
" 0.00992062 | \n",
" 0.01000535 | \n",
" 0.00975034 | \n",
" 0.01195000 | \n",
" NaN | \n",
" 0.01647000 | \n",
"
\n",
" \n",
" 4 | \n",
" BTC_BTM | \n",
" 0.00007531 | \n",
" 0.00007604 | \n",
" 0.00007009 | \n",
" 0.00009620 | \n",
" NaN | \n",
" 0.00013326 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" symbol best_bid best_ask best_1b_bid best_1b_ask best_10b_bid \\\n",
"0 BTC_BCN 0.00000046 0.00000047 0.00000046 0.00000048 0.00000044 \n",
"1 BTC_BELA 0.00001744 0.00001745 0.00001695 0.00001861 0.00001127 \n",
"2 BTC_BLK 0.00003259 0.00003282 0.00003111 0.00003286 0.00001886 \n",
"3 BTC_BTCD 0.00992062 0.01000535 0.00975034 0.01195000 NaN \n",
"4 BTC_BTM 0.00007531 0.00007604 0.00007009 0.00009620 NaN \n",
"\n",
" best_10b_ask \n",
"0 0.00000050 \n",
"1 0.00002670 \n",
"2 0.00004600 \n",
"3 0.01647000 \n",
"4 0.00013326 "
]
},
"execution_count": 148,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res.head()"
]
},
{
"cell_type": "code",
"execution_count": 149,
"metadata": {},
"outputs": [],
"source": [
"# filter out non BTC_XXX pairs\n",
"res = res[res['symbol'].str.startswith('BTC_')]"
]
},
{
"cell_type": "code",
"execution_count": 150,
"metadata": {},
"outputs": [],
"source": [
"res['bid_ask_spread_norm'] = (res['best_bid']+res['best_ask'])/(2*res['best_bid'])-1\n",
"res['bid_ask_1b_spread_norm'] = (res['best_1b_bid']+res['best_1b_ask'])/(2*res['best_1b_bid'])-1\n",
"res['bid_ask_10b_spread_norm'] = (res['best_10b_bid']+res['best_10b_ask'])/(2*res['best_10b_bid'])-1\n"
]
},
{
"cell_type": "code",
"execution_count": 151,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" symbol | \n",
" best_bid | \n",
" best_ask | \n",
" best_1b_bid | \n",
" best_1b_ask | \n",
" best_10b_bid | \n",
" best_10b_ask | \n",
" bid_ask_spread_norm | \n",
" bid_ask_1b_spread_norm | \n",
" bid_ask_10b_spread_norm | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" BTC_BCN | \n",
" 0.00000046 | \n",
" 0.00000047 | \n",
" 0.00000046 | \n",
" 0.00000048 | \n",
" 0.00000044 | \n",
" 0.00000050 | \n",
" 0.0108695652 | \n",
" 0.0217391304 | \n",
" 0.0681818182 | \n",
"
\n",
" \n",
" 1 | \n",
" BTC_BELA | \n",
" 0.00001744 | \n",
" 0.00001745 | \n",
" 0.00001695 | \n",
" 0.00001861 | \n",
" 0.00001127 | \n",
" 0.00002670 | \n",
" 0.0002866972 | \n",
" 0.0489675516 | \n",
" 0.6845607808 | \n",
"
\n",
" \n",
" 2 | \n",
" BTC_BLK | \n",
" 0.00003259 | \n",
" 0.00003282 | \n",
" 0.00003111 | \n",
" 0.00003286 | \n",
" 0.00001886 | \n",
" 0.00004600 | \n",
" 0.0035286898 | \n",
" 0.0281260045 | \n",
" 0.7195121951 | \n",
"
\n",
" \n",
" 3 | \n",
" BTC_BTCD | \n",
" 0.00992062 | \n",
" 0.01000535 | \n",
" 0.00975034 | \n",
" 0.01195000 | \n",
" NaN | \n",
" 0.01647000 | \n",
" 0.0042703984 | \n",
" 0.1127991434 | \n",
" NaN | \n",
"
\n",
" \n",
" 4 | \n",
" BTC_BTM | \n",
" 0.00007531 | \n",
" 0.00007604 | \n",
" 0.00007009 | \n",
" 0.00009620 | \n",
" NaN | \n",
" 0.00013326 | \n",
" 0.0048466339 | \n",
" 0.1862605222 | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" symbol best_bid best_ask best_1b_bid best_1b_ask best_10b_bid \\\n",
"0 BTC_BCN 0.00000046 0.00000047 0.00000046 0.00000048 0.00000044 \n",
"1 BTC_BELA 0.00001744 0.00001745 0.00001695 0.00001861 0.00001127 \n",
"2 BTC_BLK 0.00003259 0.00003282 0.00003111 0.00003286 0.00001886 \n",
"3 BTC_BTCD 0.00992062 0.01000535 0.00975034 0.01195000 NaN \n",
"4 BTC_BTM 0.00007531 0.00007604 0.00007009 0.00009620 NaN \n",
"\n",
" best_10b_ask bid_ask_spread_norm bid_ask_1b_spread_norm \\\n",
"0 0.00000050 0.0108695652 0.0217391304 \n",
"1 0.00002670 0.0002866972 0.0489675516 \n",
"2 0.00004600 0.0035286898 0.0281260045 \n",
"3 0.01647000 0.0042703984 0.1127991434 \n",
"4 0.00013326 0.0048466339 0.1862605222 \n",
"\n",
" bid_ask_10b_spread_norm \n",
"0 0.0681818182 \n",
"1 0.6845607808 \n",
"2 0.7195121951 \n",
"3 NaN \n",
"4 NaN "
]
},
"execution_count": 151,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res.head()"
]
},
{
"cell_type": "code",
"execution_count": 152,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"symbol 0\n",
"best_bid 0\n",
"best_ask 0\n",
"best_1b_bid 0\n",
"best_1b_ask 0\n",
"best_10b_bid 10\n",
"best_10b_ask 0\n",
"bid_ask_spread_norm 0\n",
"bid_ask_1b_spread_norm 0\n",
"bid_ask_10b_spread_norm 10\n",
"dtype: int64"
]
},
"execution_count": 152,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res.isnull().sum()"
]
},
{
"cell_type": "code",
"execution_count": 153,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" symbol | \n",
" best_bid | \n",
" best_ask | \n",
" best_1b_bid | \n",
" best_1b_ask | \n",
" best_10b_bid | \n",
" best_10b_ask | \n",
" bid_ask_spread_norm | \n",
" bid_ask_1b_spread_norm | \n",
" bid_ask_10b_spread_norm | \n",
"
\n",
" \n",
" \n",
" \n",
" 3 | \n",
" BTC_BTCD | \n",
" 0.00992062 | \n",
" 0.01000535 | \n",
" 0.00975034 | \n",
" 0.01195000 | \n",
" NaN | \n",
" 0.01647000 | \n",
" 0.0042703984 | \n",
" 0.1127991434 | \n",
" NaN | \n",
"
\n",
" \n",
" 4 | \n",
" BTC_BTM | \n",
" 0.00007531 | \n",
" 0.00007604 | \n",
" 0.00007009 | \n",
" 0.00009620 | \n",
" NaN | \n",
" 0.00013326 | \n",
" 0.0048466339 | \n",
" 0.1862605222 | \n",
" NaN | \n",
"
\n",
" \n",
" 13 | \n",
" BTC_FLO | \n",
" 0.00000946 | \n",
" 0.00000971 | \n",
" 0.00000907 | \n",
" 0.00001100 | \n",
" NaN | \n",
" 0.00001510 | \n",
" 0.0132135307 | \n",
" 0.1063947078 | \n",
" NaN | \n",
"
\n",
" \n",
" 22 | \n",
" BTC_NMC | \n",
" 0.00025111 | \n",
" 0.00025264 | \n",
" 0.00023162 | \n",
" 0.00026999 | \n",
" NaN | \n",
" 0.00041000 | \n",
" 0.0030464737 | \n",
" 0.0828296347 | \n",
" NaN | \n",
"
\n",
" \n",
" 24 | \n",
" BTC_PINK | \n",
" 0.00000283 | \n",
" 0.00000287 | \n",
" 0.00000275 | \n",
" 0.00000315 | \n",
" NaN | \n",
" 0.00000450 | \n",
" 0.0070671378 | \n",
" 0.0727272727 | \n",
" NaN | \n",
"
\n",
" \n",
" 31 | \n",
" BTC_XVC | \n",
" 0.00004155 | \n",
" 0.00004188 | \n",
" 0.00003967 | \n",
" 0.00004600 | \n",
" NaN | \n",
" 0.00006350 | \n",
" 0.0039711191 | \n",
" 0.0797832115 | \n",
" NaN | \n",
"
\n",
" \n",
" 34 | \n",
" BTC_XBC | \n",
" 0.00706864 | \n",
" 0.00708653 | \n",
" 0.00661268 | \n",
" 0.00750800 | \n",
" NaN | \n",
" 0.01220000 | \n",
" 0.0012654485 | \n",
" 0.0676972120 | \n",
" NaN | \n",
"
\n",
" \n",
" 68 | \n",
" BTC_SBD | \n",
" 0.00033333 | \n",
" 0.00033772 | \n",
" 0.00030000 | \n",
" 0.00035501 | \n",
" NaN | \n",
" 0.00060000 | \n",
" 0.0065850659 | \n",
" 0.0916833333 | \n",
" NaN | \n",
"
\n",
" \n",
" 81 | \n",
" BTC_NXC | \n",
" 0.00001981 | \n",
" 0.00002001 | \n",
" 0.00001941 | \n",
" 0.00002312 | \n",
" NaN | \n",
" 0.00003450 | \n",
" 0.0050479556 | \n",
" 0.0955692942 | \n",
" NaN | \n",
"
\n",
" \n",
" 85 | \n",
" BTC_GNO | \n",
" 0.01237755 | \n",
" 0.01265687 | \n",
" 0.01218740 | \n",
" 0.01350799 | \n",
" NaN | \n",
" 0.01755464 | \n",
" 0.0112833315 | \n",
" 0.0541784958 | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" symbol best_bid best_ask best_1b_bid best_1b_ask best_10b_bid \\\n",
"3 BTC_BTCD 0.00992062 0.01000535 0.00975034 0.01195000 NaN \n",
"4 BTC_BTM 0.00007531 0.00007604 0.00007009 0.00009620 NaN \n",
"13 BTC_FLO 0.00000946 0.00000971 0.00000907 0.00001100 NaN \n",
"22 BTC_NMC 0.00025111 0.00025264 0.00023162 0.00026999 NaN \n",
"24 BTC_PINK 0.00000283 0.00000287 0.00000275 0.00000315 NaN \n",
"31 BTC_XVC 0.00004155 0.00004188 0.00003967 0.00004600 NaN \n",
"34 BTC_XBC 0.00706864 0.00708653 0.00661268 0.00750800 NaN \n",
"68 BTC_SBD 0.00033333 0.00033772 0.00030000 0.00035501 NaN \n",
"81 BTC_NXC 0.00001981 0.00002001 0.00001941 0.00002312 NaN \n",
"85 BTC_GNO 0.01237755 0.01265687 0.01218740 0.01350799 NaN \n",
"\n",
" best_10b_ask bid_ask_spread_norm bid_ask_1b_spread_norm \\\n",
"3 0.01647000 0.0042703984 0.1127991434 \n",
"4 0.00013326 0.0048466339 0.1862605222 \n",
"13 0.00001510 0.0132135307 0.1063947078 \n",
"22 0.00041000 0.0030464737 0.0828296347 \n",
"24 0.00000450 0.0070671378 0.0727272727 \n",
"31 0.00006350 0.0039711191 0.0797832115 \n",
"34 0.01220000 0.0012654485 0.0676972120 \n",
"68 0.00060000 0.0065850659 0.0916833333 \n",
"81 0.00003450 0.0050479556 0.0955692942 \n",
"85 0.01755464 0.0112833315 0.0541784958 \n",
"\n",
" bid_ask_10b_spread_norm \n",
"3 NaN \n",
"4 NaN \n",
"13 NaN \n",
"22 NaN \n",
"24 NaN \n",
"31 NaN \n",
"34 NaN \n",
"68 NaN \n",
"81 NaN \n",
"85 NaN "
]
},
"execution_count": 153,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# less then 10 btc\n",
"res[res['bid_ask_10b_spread_norm'].isnull()]"
]
},
{
"cell_type": "code",
"execution_count": 154,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" symbol | \n",
" best_bid | \n",
" best_ask | \n",
" best_1b_bid | \n",
" best_1b_ask | \n",
" best_10b_bid | \n",
" best_10b_ask | \n",
" bid_ask_spread_norm | \n",
" bid_ask_1b_spread_norm | \n",
" bid_ask_10b_spread_norm | \n",
"
\n",
" \n",
" \n",
" \n",
" 54 | \n",
" BTC_ETH | \n",
" 0.08258519 | \n",
" 0.08265476 | \n",
" 0.08238901 | \n",
" 0.08265478 | \n",
" 0.08218016 | \n",
" 0.08281458 | \n",
" 0.0004212014 | \n",
" 0.0016128972 | \n",
" 0.0038599341 | \n",
"
\n",
" \n",
" 37 | \n",
" BTC_XMR | \n",
" 0.02805566 | \n",
" 0.02811975 | \n",
" 0.02805563 | \n",
" 0.02813053 | \n",
" 0.02795000 | \n",
" 0.02820082 | \n",
" 0.0011421938 | \n",
" 0.0013348479 | \n",
" 0.0044869410 | \n",
"
\n",
" \n",
" 39 | \n",
" BTC_XRP | \n",
" 0.00008747 | \n",
" 0.00008748 | \n",
" 0.00008737 | \n",
" 0.00008750 | \n",
" 0.00008701 | \n",
" 0.00008783 | \n",
" 0.0000571625 | \n",
" 0.0007439625 | \n",
" 0.0047121021 | \n",
"
\n",
" \n",
" 17 | \n",
" BTC_LTC | \n",
" 0.02048206 | \n",
" 0.02053499 | \n",
" 0.02046751 | \n",
" 0.02053499 | \n",
" 0.02046750 | \n",
" 0.02066601 | \n",
" 0.0012921064 | \n",
" 0.0016484663 | \n",
" 0.0048493954 | \n",
"
\n",
" \n",
" 69 | \n",
" BTC_ETC | \n",
" 0.00335550 | \n",
" 0.00336460 | \n",
" 0.00335503 | \n",
" 0.00336517 | \n",
" 0.00334000 | \n",
" 0.00337871 | \n",
" 0.0013559827 | \n",
" 0.0015111638 | \n",
" 0.0057949102 | \n",
"
\n",
" \n",
" 87 | \n",
" BTC_BCH | \n",
" 0.11892012 | \n",
" 0.11905362 | \n",
" 0.11881506 | \n",
" 0.11936296 | \n",
" 0.11819207 | \n",
" 0.11998970 | \n",
" 0.0005613011 | \n",
" 0.0023056841 | \n",
" 0.0076046980 | \n",
"
\n",
" \n",
" 8 | \n",
" BTC_DASH | \n",
" 0.05727659 | \n",
" 0.05754597 | \n",
" 0.05727659 | \n",
" 0.05754600 | \n",
" 0.05700000 | \n",
" 0.05789607 | \n",
" 0.0023515716 | \n",
" 0.0023518334 | \n",
" 0.0078602632 | \n",
"
\n",
" \n",
" 76 | \n",
" BTC_ZEC | \n",
" 0.03860000 | \n",
" 0.03865000 | \n",
" 0.03858000 | \n",
" 0.03873949 | \n",
" 0.03833747 | \n",
" 0.03928010 | \n",
" 0.0006476684 | \n",
" 0.0020670036 | \n",
" 0.0122938472 | \n",
"
\n",
" \n",
" 94 | \n",
" BTC_OMG | \n",
" 0.00175756 | \n",
" 0.00176447 | \n",
" 0.00175541 | \n",
" 0.00177440 | \n",
" 0.00173737 | \n",
" 0.00178452 | \n",
" 0.0019657935 | \n",
" 0.0054089928 | \n",
" 0.0135693606 | \n",
"
\n",
" \n",
" 63 | \n",
" BTC_LSK | \n",
" 0.00187388 | \n",
" 0.00187471 | \n",
" 0.00185779 | \n",
" 0.00188218 | \n",
" 0.00182957 | \n",
" 0.00188221 | \n",
" 0.0002214656 | \n",
" 0.0065642511 | \n",
" 0.0143858940 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" symbol best_bid best_ask best_1b_bid best_1b_ask best_10b_bid \\\n",
"54 BTC_ETH 0.08258519 0.08265476 0.08238901 0.08265478 0.08218016 \n",
"37 BTC_XMR 0.02805566 0.02811975 0.02805563 0.02813053 0.02795000 \n",
"39 BTC_XRP 0.00008747 0.00008748 0.00008737 0.00008750 0.00008701 \n",
"17 BTC_LTC 0.02048206 0.02053499 0.02046751 0.02053499 0.02046750 \n",
"69 BTC_ETC 0.00335550 0.00336460 0.00335503 0.00336517 0.00334000 \n",
"87 BTC_BCH 0.11892012 0.11905362 0.11881506 0.11936296 0.11819207 \n",
"8 BTC_DASH 0.05727659 0.05754597 0.05727659 0.05754600 0.05700000 \n",
"76 BTC_ZEC 0.03860000 0.03865000 0.03858000 0.03873949 0.03833747 \n",
"94 BTC_OMG 0.00175756 0.00176447 0.00175541 0.00177440 0.00173737 \n",
"63 BTC_LSK 0.00187388 0.00187471 0.00185779 0.00188218 0.00182957 \n",
"\n",
" best_10b_ask bid_ask_spread_norm bid_ask_1b_spread_norm \\\n",
"54 0.08281458 0.0004212014 0.0016128972 \n",
"37 0.02820082 0.0011421938 0.0013348479 \n",
"39 0.00008783 0.0000571625 0.0007439625 \n",
"17 0.02066601 0.0012921064 0.0016484663 \n",
"69 0.00337871 0.0013559827 0.0015111638 \n",
"87 0.11998970 0.0005613011 0.0023056841 \n",
"8 0.05789607 0.0023515716 0.0023518334 \n",
"76 0.03928010 0.0006476684 0.0020670036 \n",
"94 0.00178452 0.0019657935 0.0054089928 \n",
"63 0.00188221 0.0002214656 0.0065642511 \n",
"\n",
" bid_ask_10b_spread_norm \n",
"54 0.0038599341 \n",
"37 0.0044869410 \n",
"39 0.0047121021 \n",
"17 0.0048493954 \n",
"69 0.0057949102 \n",
"87 0.0076046980 \n",
"8 0.0078602632 \n",
"76 0.0122938472 \n",
"94 0.0135693606 \n",
"63 0.0143858940 "
]
},
"execution_count": 154,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res.sort_values('bid_ask_10b_spread_norm').head(10)"
]
},
{
"cell_type": "code",
"execution_count": 155,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" symbol | \n",
" best_bid | \n",
" best_ask | \n",
" best_1b_bid | \n",
" best_1b_ask | \n",
" best_10b_bid | \n",
" best_10b_ask | \n",
" bid_ask_spread_norm | \n",
" bid_ask_1b_spread_norm | \n",
" bid_ask_10b_spread_norm | \n",
"
\n",
" \n",
" \n",
" \n",
" 38 | \n",
" BTC_XPM | \n",
" 0.00009250 | \n",
" 0.00009329 | \n",
" 0.00008424 | \n",
" 0.00009936 | \n",
" 0.00005000 | \n",
" 0.00011036 | \n",
" 0.0042702703 | \n",
" 0.0897435897 | \n",
" 0.6036000000 | \n",
"
\n",
" \n",
" 1 | \n",
" BTC_BELA | \n",
" 0.00001744 | \n",
" 0.00001745 | \n",
" 0.00001695 | \n",
" 0.00001861 | \n",
" 0.00001127 | \n",
" 0.00002670 | \n",
" 0.0002866972 | \n",
" 0.0489675516 | \n",
" 0.6845607808 | \n",
"
\n",
" \n",
" 57 | \n",
" BTC_BCY | \n",
" 0.00004402 | \n",
" 0.00004466 | \n",
" 0.00004279 | \n",
" 0.00005190 | \n",
" 0.00003350 | \n",
" 0.00007999 | \n",
" 0.0072694230 | \n",
" 0.1064501052 | \n",
" 0.6938805970 | \n",
"
\n",
" \n",
" 2 | \n",
" BTC_BLK | \n",
" 0.00003259 | \n",
" 0.00003282 | \n",
" 0.00003111 | \n",
" 0.00003286 | \n",
" 0.00001886 | \n",
" 0.00004600 | \n",
" 0.0035286898 | \n",
" 0.0281260045 | \n",
" 0.7195121951 | \n",
"
\n",
" \n",
" 7 | \n",
" BTC_CLAM | \n",
" 0.00053662 | \n",
" 0.00053663 | \n",
" 0.00052990 | \n",
" 0.00055826 | \n",
" 0.00030000 | \n",
" 0.00077154 | \n",
" 0.0000093176 | \n",
" 0.0267597660 | \n",
" 0.7859000000 | \n",
"
\n",
" \n",
" 60 | \n",
" BTC_RADS | \n",
" 0.00055500 | \n",
" 0.00055501 | \n",
" 0.00055000 | \n",
" 0.00058843 | \n",
" 0.00028177 | \n",
" 0.00095000 | \n",
" 0.0000090090 | \n",
" 0.0349363636 | \n",
" 1.1857720836 | \n",
"
\n",
" \n",
" 12 | \n",
" BTC_FLDC | \n",
" 0.00000244 | \n",
" 0.00000247 | \n",
" 0.00000240 | \n",
" 0.00000275 | \n",
" 0.00000106 | \n",
" 0.00000360 | \n",
" 0.0061475410 | \n",
" 0.0729166667 | \n",
" 1.1981132075 | \n",
"
\n",
" \n",
" 21 | \n",
" BTC_NEOS | \n",
" 0.00040904 | \n",
" 0.00041304 | \n",
" 0.00039016 | \n",
" 0.00045473 | \n",
" 0.00017998 | \n",
" 0.00065300 | \n",
" 0.0048894974 | \n",
" 0.0827481033 | \n",
" 1.3140904545 | \n",
"
\n",
" \n",
" 11 | \n",
" BTC_EMC2 | \n",
" 0.00002848 | \n",
" 0.00002856 | \n",
" 0.00002751 | \n",
" 0.00003112 | \n",
" 0.00000980 | \n",
" 0.00003642 | \n",
" 0.0014044944 | \n",
" 0.0656125045 | \n",
" 1.3581632653 | \n",
"
\n",
" \n",
" 26 | \n",
" BTC_PPC | \n",
" 0.00030674 | \n",
" 0.00031012 | \n",
" 0.00030231 | \n",
" 0.00032399 | \n",
" 0.00010000 | \n",
" 0.00049000 | \n",
" 0.0055095521 | \n",
" 0.0358572326 | \n",
" 1.9500000000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" symbol best_bid best_ask best_1b_bid best_1b_ask best_10b_bid \\\n",
"38 BTC_XPM 0.00009250 0.00009329 0.00008424 0.00009936 0.00005000 \n",
"1 BTC_BELA 0.00001744 0.00001745 0.00001695 0.00001861 0.00001127 \n",
"57 BTC_BCY 0.00004402 0.00004466 0.00004279 0.00005190 0.00003350 \n",
"2 BTC_BLK 0.00003259 0.00003282 0.00003111 0.00003286 0.00001886 \n",
"7 BTC_CLAM 0.00053662 0.00053663 0.00052990 0.00055826 0.00030000 \n",
"60 BTC_RADS 0.00055500 0.00055501 0.00055000 0.00058843 0.00028177 \n",
"12 BTC_FLDC 0.00000244 0.00000247 0.00000240 0.00000275 0.00000106 \n",
"21 BTC_NEOS 0.00040904 0.00041304 0.00039016 0.00045473 0.00017998 \n",
"11 BTC_EMC2 0.00002848 0.00002856 0.00002751 0.00003112 0.00000980 \n",
"26 BTC_PPC 0.00030674 0.00031012 0.00030231 0.00032399 0.00010000 \n",
"\n",
" best_10b_ask bid_ask_spread_norm bid_ask_1b_spread_norm \\\n",
"38 0.00011036 0.0042702703 0.0897435897 \n",
"1 0.00002670 0.0002866972 0.0489675516 \n",
"57 0.00007999 0.0072694230 0.1064501052 \n",
"2 0.00004600 0.0035286898 0.0281260045 \n",
"7 0.00077154 0.0000093176 0.0267597660 \n",
"60 0.00095000 0.0000090090 0.0349363636 \n",
"12 0.00000360 0.0061475410 0.0729166667 \n",
"21 0.00065300 0.0048894974 0.0827481033 \n",
"11 0.00003642 0.0014044944 0.0656125045 \n",
"26 0.00049000 0.0055095521 0.0358572326 \n",
"\n",
" bid_ask_10b_spread_norm \n",
"38 0.6036000000 \n",
"1 0.6845607808 \n",
"57 0.6938805970 \n",
"2 0.7195121951 \n",
"7 0.7859000000 \n",
"60 1.1857720836 \n",
"12 1.1981132075 \n",
"21 1.3140904545 \n",
"11 1.3581632653 \n",
"26 1.9500000000 "
]
},
"execution_count": 155,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res.dropna().sort_values('bid_ask_10b_spread_norm').tail(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** Handy liquidity 2 **\n",
"\n",
"The cumulative volume that is present in an order book at levels that are away from the naive mid market price by 0.5% or less. "
]
},
{
"cell_type": "code",
"execution_count": 156,
"metadata": {},
"outputs": [],
"source": [
"def calc_liquidity2(symbol):\n",
" r = requests.get('https://poloniex.com/public?command=returnOrderBook¤cyPair={symbol}&depth=1000'.format(symbol=symbol)).json()\n",
" asks = pd.DataFrame.from_records(r['asks']).rename(columns={0:'price',1:'amount'})\n",
" bids = pd.DataFrame.from_records(r['bids']).rename(columns={0:'price',1:'amount'})\n",
" asks['price'] = asks['price'].astype(float)\n",
" bids['price'] = bids['price'].astype(float)\n",
" asks['vol'] = asks['price']*asks['amount']\n",
" bids['vol'] = bids['price']*bids['amount']\n",
" \n",
" asks = asks[asks['price'] < asks['price'].min()*1.005]\n",
" bids = bids[bids['price'] > bids['price'].max()*0.995]\n",
" \n",
" asks['vol'].sum() + bids['vol'].sum()\n",
" \n",
" return (symbol, asks['vol'].sum() + bids['vol'].sum())\n"
]
},
{
"cell_type": "code",
"execution_count": 157,
"metadata": {},
"outputs": [],
"source": [
"col_names = ('symbol','cum_vol')"
]
},
{
"cell_type": "code",
"execution_count": 158,
"metadata": {},
"outputs": [],
"source": [
"res = pd.DataFrame.from_records([calc_liquidity2(symbol) for symbol in list(tick.keys())])\n",
"res.columns = col_names"
]
},
{
"cell_type": "code",
"execution_count": 161,
"metadata": {},
"outputs": [],
"source": [
"# filter out non BTC_XXX pairs\n",
"res = res[res['symbol'].str.startswith('BTC_')]"
]
},
{
"cell_type": "code",
"execution_count": 162,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" symbol | \n",
" cum_vol | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" BTC_BCN | \n",
" 4.4682113194 | \n",
"
\n",
" \n",
" 1 | \n",
" BTC_BELA | \n",
" 0.5605750506 | \n",
"
\n",
" \n",
" 2 | \n",
" BTC_BLK | \n",
" 1.1104506010 | \n",
"
\n",
" \n",
" 3 | \n",
" BTC_BTCD | \n",
" 0.1226621214 | \n",
"
\n",
" \n",
" 4 | \n",
" BTC_BTM | \n",
" 0.0030424615 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" symbol cum_vol\n",
"0 BTC_BCN 4.4682113194\n",
"1 BTC_BELA 0.5605750506\n",
"2 BTC_BLK 1.1104506010\n",
"3 BTC_BTCD 0.1226621214\n",
"4 BTC_BTM 0.0030424615"
]
},
"execution_count": 162,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res.head()"
]
},
{
"cell_type": "code",
"execution_count": 168,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" symbol | \n",
" cum_vol | \n",
"
\n",
" \n",
" \n",
" \n",
" 54 | \n",
" BTC_ETH | \n",
" 58.5730282961 | \n",
"
\n",
" \n",
" 17 | \n",
" BTC_LTC | \n",
" 32.5292035913 | \n",
"
\n",
" \n",
" 69 | \n",
" BTC_ETC | \n",
" 28.7028977690 | \n",
"
\n",
" \n",
" 37 | \n",
" BTC_XMR | \n",
" 26.1032723523 | \n",
"
\n",
" \n",
" 10 | \n",
" BTC_DOGE | \n",
" 22.7971542676 | \n",
"
\n",
" \n",
" 87 | \n",
" BTC_BCH | \n",
" 15.3069679272 | \n",
"
\n",
" \n",
" 76 | \n",
" BTC_ZEC | \n",
" 10.4303819202 | \n",
"
\n",
" \n",
" 23 | \n",
" BTC_NXT | \n",
" 10.2905658708 | \n",
"
\n",
" \n",
" 8 | \n",
" BTC_DASH | \n",
" 9.9785985597 | \n",
"
\n",
" \n",
" 39 | \n",
" BTC_XRP | \n",
" 9.3337031694 | \n",
"
\n",
" \n",
" 36 | \n",
" BTC_XEM | \n",
" 7.5982164581 | \n",
"
\n",
" \n",
" 28 | \n",
" BTC_STR | \n",
" 6.5657469885 | \n",
"
\n",
" \n",
" 94 | \n",
" BTC_OMG | \n",
" 5.5874987200 | \n",
"
\n",
" \n",
" 0 | \n",
" BTC_BCN | \n",
" 4.4682113194 | \n",
"
\n",
" \n",
" 18 | \n",
" BTC_MAID | \n",
" 3.9953841949 | \n",
"
\n",
" \n",
" 63 | \n",
" BTC_LSK | \n",
" 3.1878769171 | \n",
"
\n",
" \n",
" 30 | \n",
" BTC_VIA | \n",
" 3.0570022787 | \n",
"
\n",
" \n",
" 90 | \n",
" BTC_ZRX | \n",
" 2.8576900372 | \n",
"
\n",
" \n",
" 62 | \n",
" BTC_DCR | \n",
" 2.3294610386 | \n",
"
\n",
" \n",
" 66 | \n",
" BTC_STEEM | \n",
" 2.1739351543 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" symbol cum_vol\n",
"54 BTC_ETH 58.5730282961\n",
"17 BTC_LTC 32.5292035913\n",
"69 BTC_ETC 28.7028977690\n",
"37 BTC_XMR 26.1032723523\n",
"10 BTC_DOGE 22.7971542676\n",
"87 BTC_BCH 15.3069679272\n",
"76 BTC_ZEC 10.4303819202\n",
"23 BTC_NXT 10.2905658708\n",
"8 BTC_DASH 9.9785985597\n",
"39 BTC_XRP 9.3337031694\n",
"36 BTC_XEM 7.5982164581\n",
"28 BTC_STR 6.5657469885\n",
"94 BTC_OMG 5.5874987200\n",
"0 BTC_BCN 4.4682113194\n",
"18 BTC_MAID 3.9953841949\n",
"63 BTC_LSK 3.1878769171\n",
"30 BTC_VIA 3.0570022787\n",
"90 BTC_ZRX 2.8576900372\n",
"62 BTC_DCR 2.3294610386\n",
"66 BTC_STEEM 2.1739351543"
]
},
"execution_count": 168,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res.sort_values('cum_vol',ascending=False).head(20)"
]
},
{
"cell_type": "code",
"execution_count": 167,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" symbol | \n",
" cum_vol | \n",
"
\n",
" \n",
" \n",
" \n",
" 4 | \n",
" BTC_BTM | \n",
" 0.0030424615 | \n",
"
\n",
" \n",
" 15 | \n",
" BTC_GRC | \n",
" 0.0083063213 | \n",
"
\n",
" \n",
" 12 | \n",
" BTC_FLDC | \n",
" 0.0084011532 | \n",
"
\n",
" \n",
" 21 | \n",
" BTC_NEOS | \n",
" 0.0229709587 | \n",
"
\n",
" \n",
" 24 | \n",
" BTC_PINK | \n",
" 0.0230291717 | \n",
"
\n",
" \n",
" 92 | \n",
" BTC_CVC | \n",
" 0.0266437533 | \n",
"
\n",
" \n",
" 13 | \n",
" BTC_FLO | \n",
" 0.0300599054 | \n",
"
\n",
" \n",
" 11 | \n",
" BTC_EMC2 | \n",
" 0.0648765530 | \n",
"
\n",
" \n",
" 27 | \n",
" BTC_RIC | \n",
" 0.0769361480 | \n",
"
\n",
" \n",
" 35 | \n",
" BTC_XCP | \n",
" 0.0780650952 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" symbol cum_vol\n",
"4 BTC_BTM 0.0030424615\n",
"15 BTC_GRC 0.0083063213\n",
"12 BTC_FLDC 0.0084011532\n",
"21 BTC_NEOS 0.0229709587\n",
"24 BTC_PINK 0.0230291717\n",
"92 BTC_CVC 0.0266437533\n",
"13 BTC_FLO 0.0300599054\n",
"11 BTC_EMC2 0.0648765530\n",
"27 BTC_RIC 0.0769361480\n",
"35 BTC_XCP 0.0780650952"
]
},
"execution_count": 167,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res.sort_values('cum_vol',ascending=True).head(10)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}