From 0c5445bb41b13a5ef9c54cf367965b859839ed90 Mon Sep 17 00:00:00 2001 From: mikewcasale Date: Wed, 27 Jul 2022 00:16:25 -0700 Subject: [PATCH 01/16] Added AHP example to assist DAO decision methodology / system. --- .../Analytical Hierarchy Process.png | Bin 0 -> 230153 bytes bancor_research/bancor_ahp/ahp-example.ipynb | 1251 +++++++++++++++++ bancor_research/bancor_ahp/ahp_example.csv | 5 + 3 files changed, 1256 insertions(+) create mode 100644 bancor_research/bancor_ahp/Analytical Hierarchy Process.png create mode 100644 bancor_research/bancor_ahp/ahp-example.ipynb create mode 100644 bancor_research/bancor_ahp/ahp_example.csv diff --git a/bancor_research/bancor_ahp/Analytical Hierarchy Process.png b/bancor_research/bancor_ahp/Analytical Hierarchy Process.png new file mode 100644 index 0000000000000000000000000000000000000000..9747852b8bd835b692e53821a53c721b637ce983 GIT binary patch literal 230153 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�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 KM>IYsdFyv$d3P27 literal 0 HcmV?d00001 diff --git a/bancor_research/bancor_ahp/ahp-example.ipynb b/bancor_research/bancor_ahp/ahp-example.ipynb new file mode 100644 index 00000000..ecf5d75c --- /dev/null +++ b/bancor_research/bancor_ahp/ahp-example.ipynb @@ -0,0 +1,1251 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# AHPy\n", + "\n", + "**AHPy** is an implementation of the Analytic Hierarchy Process ([AHP](https://en.wikipedia.org/wiki/Analytic_hierarchy_process)), a method used to structure, synthesize and evaluate the elements of a decision problem. Developed by [Thomas Saaty](http://www.creativedecisions.org/about/ThomasLSaaty.php) in the 1970s, AHP's broad use in fields well beyond that of operational research is a testament to its simple yet powerful combination of psychology and mathematics.\n", + "\n", + "

\n", + "\"bancor3\"\n", + "

" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 994, + "outputs": [], + "source": [ + "from fractions import Fraction\n", + "import itertools\n", + "import random\n", + "import pandas as pd\n", + "import ahpy" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "markdown", + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "markdown", + "source": [ + "### The following code demonstrates how to arrive at a decision matrix such as that shown below." + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 1027, + "outputs": [ + { + "data": { + "text/plain": " Fees Resources Deficit Alignment Risk Total\n0 0.346 0.45 0.318 0.222 0.222 1.558\n1 0.269 0.40 0.273 0.259 0.185 1.386\n2 0.192 0.05 0.227 0.259 0.259 0.987\n3 0.192 0.10 0.182 0.259 0.333 1.066", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FeesResourcesDeficitAlignmentRiskTotal
00.3460.450.3180.2220.2221.558
10.2690.400.2730.2590.1851.386
20.1920.050.2270.2590.2590.987
30.1920.100.1820.2590.3331.066
\n
" + }, + "execution_count": 1027, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.read_csv('ahp_example.csv')" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 995, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Simulated survey takers (could be only the task force or volunteers or the entire dao survey respondents)\n", + "dao_survey_respondents = {\n", + " 'Mark': [],\n", + " 'Rick': [],\n", + " 'Stefan': [],\n", + " 'Tyler': []\n", + "}" + ] + }, + { + "cell_type": "markdown", + "source": [ + "### " + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 996, + "outputs": [ + { + "data": { + "text/plain": "[('Airswap Proposal', 'USDT liquidity Proposal'),\n ('Airswap Proposal', 'Remove BNT from pools Proposal'),\n ('Airswap Proposal', 'Enable deposits Proposal'),\n ('USDT liquidity Proposal', 'Remove BNT from pools Proposal'),\n ('USDT liquidity Proposal', 'Enable deposits Proposal'),\n ('Remove BNT from pools Proposal', 'Enable deposits Proposal')]" + }, + "execution_count": 996, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Alternative recovery proposals\n", + "alternatives = (\n", + " 'Airswap Proposal',\n", + " 'USDT liquidity Proposal',\n", + " 'Remove BNT from pools Proposal',\n", + " 'Enable deposits Proposal'\n", + ")\n", + "alternatives_pairs = list(itertools.combinations(alternatives, 2))\n", + "alternatives_pairs" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 997, + "outputs": [], + "source": [ + "# Simulated survey takers with randomized responses for demonstration\n", + "def simulate_dao_survey(alternatives_pairs, survey, results={}, response={}):\n", + " for alternative in alternatives_pairs:\n", + " for comparison in survey:\n", + " importance = random.randint(1, 9)\n", + " results[comparison] = importance\n", + " return [float(Fraction(results[alternatives_pairs[i][0]], results[alternatives_pairs[i][1]])) for i in range(len(alternatives_pairs))]" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "### Pairwise survey questions using a standardized ranking system such the [fundamental scale](https://en.wikipedia.org/wiki/Analytic_hierarchy_process_–_car_example)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 998, + "outputs": [ + { + "data": { + "text/plain": "{('Airswap Proposal', 'USDT liquidity Proposal'): 1.4,\n ('Airswap Proposal', 'Remove BNT from pools Proposal'): 0.7777777777777778,\n ('Airswap Proposal', 'Enable deposits Proposal'): 1.4,\n ('USDT liquidity Proposal',\n 'Remove BNT from pools Proposal'): 0.5555555555555556,\n ('USDT liquidity Proposal', 'Enable deposits Proposal'): 1.0,\n ('Remove BNT from pools Proposal', 'Enable deposits Proposal'): 1.8}" + }, + "execution_count": 998, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fees_values = simulate_dao_survey(alternatives_pairs, alternatives)\n", + "fees_comparisons = dict(zip(alternatives_pairs, fees_values))\n", + "fees_comparisons" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 999, + "outputs": [ + { + "data": { + "text/plain": "{('Airswap Proposal', 'USDT liquidity Proposal'): 8.0,\n ('Airswap Proposal', 'Remove BNT from pools Proposal'): 0.8888888888888888,\n ('Airswap Proposal', 'Enable deposits Proposal'): 4.0,\n ('USDT liquidity Proposal',\n 'Remove BNT from pools Proposal'): 0.1111111111111111,\n ('USDT liquidity Proposal', 'Enable deposits Proposal'): 0.5,\n ('Remove BNT from pools Proposal', 'Enable deposits Proposal'): 4.5}" + }, + "execution_count": 999, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "resources_values = simulate_dao_survey(alternatives_pairs, alternatives)\n", + "resources_comparisons = dict(zip(alternatives_pairs, resources_values))\n", + "resources_comparisons" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1000, + "outputs": [ + { + "data": { + "text/plain": "{('Airswap Proposal', 'USDT liquidity Proposal'): 1.2,\n ('Airswap Proposal', 'Remove BNT from pools Proposal'): 0.8571428571428571,\n ('Airswap Proposal', 'Enable deposits Proposal'): 1.5,\n ('USDT liquidity Proposal',\n 'Remove BNT from pools Proposal'): 0.7142857142857143,\n ('USDT liquidity Proposal', 'Enable deposits Proposal'): 1.25,\n ('Remove BNT from pools Proposal', 'Enable deposits Proposal'): 1.75}" + }, + "execution_count": 1000, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "deficit_values = simulate_dao_survey(alternatives_pairs, alternatives)\n", + "deficit_comparisons = dict(zip(alternatives_pairs, deficit_values))\n", + "deficit_comparisons" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1001, + "outputs": [ + { + "data": { + "text/plain": "{('Airswap Proposal', 'USDT liquidity Proposal'): 1.0,\n ('Airswap Proposal', 'Remove BNT from pools Proposal'): 1.1666666666666667,\n ('Airswap Proposal', 'Enable deposits Proposal'): 1.0,\n ('USDT liquidity Proposal',\n 'Remove BNT from pools Proposal'): 1.1666666666666667,\n ('USDT liquidity Proposal', 'Enable deposits Proposal'): 1.0,\n ('Remove BNT from pools Proposal',\n 'Enable deposits Proposal'): 0.8571428571428571}" + }, + "execution_count": 1001, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "alignment_values = simulate_dao_survey(alternatives_pairs, alternatives)\n", + "alignment_comparisons = dict(zip(alternatives_pairs, alignment_values))\n", + "alignment_comparisons" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1002, + "outputs": [ + { + "data": { + "text/plain": "{('Airswap Proposal', 'USDT liquidity Proposal'): 0.8,\n ('Airswap Proposal', 'Remove BNT from pools Proposal'): 0.4444444444444444,\n ('Airswap Proposal', 'Enable deposits Proposal'): 0.5,\n ('USDT liquidity Proposal',\n 'Remove BNT from pools Proposal'): 0.5555555555555556,\n ('USDT liquidity Proposal', 'Enable deposits Proposal'): 0.625,\n ('Remove BNT from pools Proposal', 'Enable deposits Proposal'): 1.125}" + }, + "execution_count": 1002, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "legal_risk_values = simulate_dao_survey(alternatives_pairs, alternatives)\n", + "legal_risk_comparisons = dict(zip(alternatives_pairs, legal_risk_values))\n", + "legal_risk_comparisons\n" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1003, + "outputs": [ + { + "data": { + "text/plain": "{('Airswap Proposal', 'USDT liquidity Proposal'): 0.3333333333333333,\n ('Airswap Proposal', 'Remove BNT from pools Proposal'): 3.0,\n ('Airswap Proposal', 'Enable deposits Proposal'): 1.0,\n ('USDT liquidity Proposal', 'Remove BNT from pools Proposal'): 9.0,\n ('USDT liquidity Proposal', 'Enable deposits Proposal'): 3.0,\n ('Remove BNT from pools Proposal',\n 'Enable deposits Proposal'): 0.3333333333333333}" + }, + "execution_count": 1003, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lp_alienation_risk_values = simulate_dao_survey(alternatives_pairs, alternatives)\n", + "lp_alienation_risk_comparisons = dict(zip(alternatives_pairs, lp_alienation_risk_values))\n", + "lp_alienation_risk_comparisons\n" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1004, + "outputs": [ + { + "data": { + "text/plain": "{('Airswap Proposal', 'USDT liquidity Proposal'): 8.0,\n ('Airswap Proposal', 'Remove BNT from pools Proposal'): 4.0,\n ('Airswap Proposal', 'Enable deposits Proposal'): 2.0,\n ('USDT liquidity Proposal', 'Remove BNT from pools Proposal'): 0.5,\n ('USDT liquidity Proposal', 'Enable deposits Proposal'): 0.25,\n ('Remove BNT from pools Proposal', 'Enable deposits Proposal'): 0.5}" + }, + "execution_count": 1004, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "reputational_risk_values = simulate_dao_survey(alternatives_pairs, alternatives)\n", + "reputational_risk_comparisons = dict(zip(alternatives_pairs, reputational_risk_values))\n", + "reputational_risk_comparisons\n" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1005, + "outputs": [ + { + "data": { + "text/plain": "{('Airswap Proposal', 'USDT liquidity Proposal'): 3.0,\n ('Airswap Proposal', 'Remove BNT from pools Proposal'): 3.0,\n ('Airswap Proposal', 'Enable deposits Proposal'): 1.5,\n ('USDT liquidity Proposal', 'Remove BNT from pools Proposal'): 1.0,\n ('USDT liquidity Proposal', 'Enable deposits Proposal'): 0.5,\n ('Remove BNT from pools Proposal', 'Enable deposits Proposal'): 0.5}" + }, + "execution_count": 1005, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "security_risk_values = simulate_dao_survey(alternatives_pairs, alternatives)\n", + "security_risk_comparisons = dict(zip(alternatives_pairs, security_risk_values))\n", + "security_risk_comparisons\n" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1006, + "outputs": [ + { + "data": { + "text/plain": "{('Airswap Proposal', 'USDT liquidity Proposal'): 0.7142857142857143,\n ('Airswap Proposal', 'Remove BNT from pools Proposal'): 0.8333333333333334,\n ('Airswap Proposal', 'Enable deposits Proposal'): 0.5555555555555556,\n ('USDT liquidity Proposal',\n 'Remove BNT from pools Proposal'): 1.1666666666666667,\n ('USDT liquidity Proposal', 'Enable deposits Proposal'): 0.7777777777777778,\n ('Remove BNT from pools Proposal',\n 'Enable deposits Proposal'): 0.6666666666666666}" + }, + "execution_count": 1006, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "risk_values = simulate_dao_survey(alternatives_pairs, alternatives)\n", + "risk_comparisons = dict(zip(alternatives_pairs, risk_values))\n", + "risk_comparisons" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "### Use the AHPy library to calculate comparison values." + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 1007, + "outputs": [], + "source": [ + "comparisons=[]" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1008, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"name\": \"Fees\",\n", + " \"global_weight\": 1.0,\n", + " \"local_weight\": 1.0,\n", + " \"target_weights\": {\n", + " \"Remove BNT from pools Proposal\": 0.346,\n", + " \"Airswap Proposal\": 0.269,\n", + " \"USDT liquidity Proposal\": 0.192,\n", + " \"Enable deposits Proposal\": 0.192\n", + " },\n", + " \"elements\": {\n", + " \"global_weights\": {\n", + " \"Remove BNT from pools Proposal\": 0.346,\n", + " \"Airswap Proposal\": 0.269,\n", + " \"USDT liquidity Proposal\": 0.192,\n", + " \"Enable deposits Proposal\": 0.192\n", + " },\n", + " \"local_weights\": {\n", + " \"Remove BNT from pools Proposal\": 0.346,\n", + " \"Airswap Proposal\": 0.269,\n", + " \"USDT liquidity Proposal\": 0.192,\n", + " \"Enable deposits Proposal\": 0.192\n", + " },\n", + " \"consistency_ratio\": 0.0\n", + " }\n", + "}\n" + ] + }, + { + "data": { + "text/plain": " Remove BNT from pools Proposal Airswap Proposal \\\nFees 0.346 0.269 \n\n USDT liquidity Proposal Enable deposits Proposal \nFees 0.192 0.192 ", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Remove BNT from pools ProposalAirswap ProposalUSDT liquidity ProposalEnable deposits Proposal
Fees0.3460.2690.1920.192
\n
" + }, + "execution_count": 1008, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fees = ahpy.Compare('Fees', fees_comparisons, precision=3)\n", + "report = fees.report(show=True)\n", + "fees_df = pd.DataFrame(fees.target_weights, index=['Fees'])\n", + "comparisons.append(fees_df)\n", + "fees_df" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1009, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"name\": \"Resources\",\n", + " \"global_weight\": 1.0,\n", + " \"local_weight\": 1.0,\n", + " \"target_weights\": {\n", + " \"Remove BNT from pools Proposal\": 0.45,\n", + " \"Airswap Proposal\": 0.4,\n", + " \"Enable deposits Proposal\": 0.1,\n", + " \"USDT liquidity Proposal\": 0.05\n", + " },\n", + " \"elements\": {\n", + " \"global_weights\": {\n", + " \"Remove BNT from pools Proposal\": 0.45,\n", + " \"Airswap Proposal\": 0.4,\n", + " \"Enable deposits Proposal\": 0.1,\n", + " \"USDT liquidity Proposal\": 0.05\n", + " },\n", + " \"local_weights\": {\n", + " \"Remove BNT from pools Proposal\": 0.45,\n", + " \"Airswap Proposal\": 0.4,\n", + " \"Enable deposits Proposal\": 0.1,\n", + " \"USDT liquidity Proposal\": 0.05\n", + " },\n", + " \"consistency_ratio\": 0.0\n", + " }\n", + "}\n" + ] + }, + { + "data": { + "text/plain": " Remove BNT from pools Proposal Airswap Proposal \\\nResources 0.45 0.4 \n\n Enable deposits Proposal USDT liquidity Proposal \nResources 0.1 0.05 ", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Remove BNT from pools ProposalAirswap ProposalEnable deposits ProposalUSDT liquidity Proposal
Resources0.450.40.10.05
\n
" + }, + "execution_count": 1009, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "resources = ahpy.Compare('Resources', resources_comparisons, precision=3)\n", + "report = resources.report(show=True)\n", + "resources_df = pd.DataFrame(resources.target_weights, index=['Resources'])\n", + "comparisons.append(resources_df)\n", + "resources_df" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1010, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"name\": \"Deficit\",\n", + " \"global_weight\": 1.0,\n", + " \"local_weight\": 1.0,\n", + " \"target_weights\": {\n", + " \"Remove BNT from pools Proposal\": 0.318,\n", + " \"Airswap Proposal\": 0.273,\n", + " \"USDT liquidity Proposal\": 0.227,\n", + " \"Enable deposits Proposal\": 0.182\n", + " },\n", + " \"elements\": {\n", + " \"global_weights\": {\n", + " \"Remove BNT from pools Proposal\": 0.318,\n", + " \"Airswap Proposal\": 0.273,\n", + " \"USDT liquidity Proposal\": 0.227,\n", + " \"Enable deposits Proposal\": 0.182\n", + " },\n", + " \"local_weights\": {\n", + " \"Remove BNT from pools Proposal\": 0.318,\n", + " \"Airswap Proposal\": 0.273,\n", + " \"USDT liquidity Proposal\": 0.227,\n", + " \"Enable deposits Proposal\": 0.182\n", + " },\n", + " \"consistency_ratio\": 0.0\n", + " }\n", + "}\n" + ] + }, + { + "data": { + "text/plain": " Remove BNT from pools Proposal Airswap Proposal \\\nDeficit 0.318 0.273 \n\n USDT liquidity Proposal Enable deposits Proposal \nDeficit 0.227 0.182 ", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Remove BNT from pools ProposalAirswap ProposalUSDT liquidity ProposalEnable deposits Proposal
Deficit0.3180.2730.2270.182
\n
" + }, + "execution_count": 1010, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "deficit = ahpy.Compare('Deficit', deficit_comparisons, precision=3)\n", + "report = deficit.report(show=True)\n", + "deficit_df = pd.DataFrame(deficit.target_weights, index=['Deficit'])\n", + "comparisons.append(deficit_df)\n", + "deficit_df" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1011, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"name\": \"Alignment\",\n", + " \"global_weight\": 1.0,\n", + " \"local_weight\": 1.0,\n", + " \"target_weights\": {\n", + " \"Airswap Proposal\": 0.259,\n", + " \"USDT liquidity Proposal\": 0.259,\n", + " \"Enable deposits Proposal\": 0.259,\n", + " \"Remove BNT from pools Proposal\": 0.222\n", + " },\n", + " \"elements\": {\n", + " \"global_weights\": {\n", + " \"Airswap Proposal\": 0.259,\n", + " \"USDT liquidity Proposal\": 0.259,\n", + " \"Enable deposits Proposal\": 0.259,\n", + " \"Remove BNT from pools Proposal\": 0.222\n", + " },\n", + " \"local_weights\": {\n", + " \"Airswap Proposal\": 0.259,\n", + " \"USDT liquidity Proposal\": 0.259,\n", + " \"Enable deposits Proposal\": 0.259,\n", + " \"Remove BNT from pools Proposal\": 0.222\n", + " },\n", + " \"consistency_ratio\": 0.0\n", + " }\n", + "}\n" + ] + }, + { + "data": { + "text/plain": " Airswap Proposal USDT liquidity Proposal \\\nAlignment 0.259 0.259 \n\n Enable deposits Proposal Remove BNT from pools Proposal \nAlignment 0.259 0.222 ", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Airswap ProposalUSDT liquidity ProposalEnable deposits ProposalRemove BNT from pools Proposal
Alignment0.2590.2590.2590.222
\n
" + }, + "execution_count": 1011, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "alignment = ahpy.Compare('Alignment', alignment_comparisons, precision=3)\n", + "report = alignment.report(show=True)\n", + "alignment_df = pd.DataFrame(alignment.target_weights, index=['Alignment'])\n", + "comparisons.append(alignment_df)\n", + "alignment_df" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1012, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"name\": \"Legal Risk\",\n", + " \"global_weight\": 1.0,\n", + " \"local_weight\": 1.0,\n", + " \"target_weights\": {\n", + " \"Remove BNT from pools Proposal\": 0.346,\n", + " \"Enable deposits Proposal\": 0.308,\n", + " \"USDT liquidity Proposal\": 0.192,\n", + " \"Airswap Proposal\": 0.154\n", + " },\n", + " \"elements\": {\n", + " \"global_weights\": {\n", + " \"Remove BNT from pools Proposal\": 0.346,\n", + " \"Enable deposits Proposal\": 0.308,\n", + " \"USDT liquidity Proposal\": 0.192,\n", + " \"Airswap Proposal\": 0.154\n", + " },\n", + " \"local_weights\": {\n", + " \"Remove BNT from pools Proposal\": 0.346,\n", + " \"Enable deposits Proposal\": 0.308,\n", + " \"USDT liquidity Proposal\": 0.192,\n", + " \"Airswap Proposal\": 0.154\n", + " },\n", + " \"consistency_ratio\": 0.0,\n", + " \"random_index\": \"Donegan & Dodd\",\n", + " \"count\": 4,\n", + " \"names\": [\n", + " \"Airswap Proposal\",\n", + " \"USDT liquidity Proposal\",\n", + " \"Remove BNT from pools Proposal\",\n", + " \"Enable deposits Proposal\"\n", + " ]\n", + " },\n", + " \"children\": null,\n", + " \"comparisons\": {\n", + " \"count\": 6,\n", + " \"input\": {\n", + " \"Airswap Proposal, USDT liquidity Proposal\": 0.8,\n", + " \"Airswap Proposal, Remove BNT from pools Proposal\": 0.4444444444444444,\n", + " \"Airswap Proposal, Enable deposits Proposal\": 0.5,\n", + " \"USDT liquidity Proposal, Remove BNT from pools Proposal\": 0.5555555555555556,\n", + " \"USDT liquidity Proposal, Enable deposits Proposal\": 0.625,\n", + " \"Remove BNT from pools Proposal, Enable deposits Proposal\": 1.125\n", + " },\n", + " \"computed\": null\n", + " }\n", + "}\n" + ] + }, + { + "data": { + "text/plain": " Remove BNT from pools Proposal Enable deposits Proposal \\\nLegal Risk 0.346 0.308 \n\n USDT liquidity Proposal Airswap Proposal \nLegal Risk 0.192 0.154 ", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Remove BNT from pools ProposalEnable deposits ProposalUSDT liquidity ProposalAirswap Proposal
Legal Risk0.3460.3080.1920.154
\n
" + }, + "execution_count": 1012, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "legal_risk = ahpy.Compare('Legal Risk', legal_risk_comparisons, precision=3)\n", + "report = legal_risk.report(show=True, verbose=True)\n", + "legal_risk_df = pd.DataFrame(legal_risk.target_weights, index=['Legal Risk'])\n", + "# comparisons.append(legal_risk_df)\n", + "legal_risk_df\n" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1013, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"name\": \"Reputational Risk\",\n", + " \"global_weight\": 1.0,\n", + " \"local_weight\": 1.0,\n", + " \"target_weights\": {\n", + " \"Airswap Proposal\": 0.533,\n", + " \"Enable deposits Proposal\": 0.267,\n", + " \"Remove BNT from pools Proposal\": 0.133,\n", + " \"USDT liquidity Proposal\": 0.067\n", + " },\n", + " \"elements\": {\n", + " \"global_weights\": {\n", + " \"Airswap Proposal\": 0.533,\n", + " \"Enable deposits Proposal\": 0.267,\n", + " \"Remove BNT from pools Proposal\": 0.133,\n", + " \"USDT liquidity Proposal\": 0.067\n", + " },\n", + " \"local_weights\": {\n", + " \"Airswap Proposal\": 0.533,\n", + " \"Enable deposits Proposal\": 0.267,\n", + " \"Remove BNT from pools Proposal\": 0.133,\n", + " \"USDT liquidity Proposal\": 0.067\n", + " },\n", + " \"consistency_ratio\": 0.0,\n", + " \"random_index\": \"Donegan & Dodd\",\n", + " \"count\": 4,\n", + " \"names\": [\n", + " \"Airswap Proposal\",\n", + " \"USDT liquidity Proposal\",\n", + " \"Remove BNT from pools Proposal\",\n", + " \"Enable deposits Proposal\"\n", + " ]\n", + " },\n", + " \"children\": null,\n", + " \"comparisons\": {\n", + " \"count\": 6,\n", + " \"input\": {\n", + " \"Airswap Proposal, USDT liquidity Proposal\": 8.0,\n", + " \"Airswap Proposal, Remove BNT from pools Proposal\": 4.0,\n", + " \"Airswap Proposal, Enable deposits Proposal\": 2.0,\n", + " \"USDT liquidity Proposal, Remove BNT from pools Proposal\": 0.5,\n", + " \"USDT liquidity Proposal, Enable deposits Proposal\": 0.25,\n", + " \"Remove BNT from pools Proposal, Enable deposits Proposal\": 0.5\n", + " },\n", + " \"computed\": null\n", + " }\n", + "}\n" + ] + }, + { + "data": { + "text/plain": " Airswap Proposal Enable deposits Proposal \\\nReputational Risk 0.533 0.267 \n\n Remove BNT from pools Proposal USDT liquidity Proposal \nReputational Risk 0.133 0.067 ", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Airswap ProposalEnable deposits ProposalRemove BNT from pools ProposalUSDT liquidity Proposal
Reputational Risk0.5330.2670.1330.067
\n
" + }, + "execution_count": 1013, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "reputational_risk = ahpy.Compare('Reputational Risk', reputational_risk_comparisons, precision=3)\n", + "report = reputational_risk.report(show=True, verbose=True)\n", + "reputational_risk_df = pd.DataFrame(reputational_risk.target_weights, index=['Reputational Risk'])\n", + "# comparisons.append(reputational_risk_df)\n", + "reputational_risk_df\n" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1014, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"name\": \"LP Alienation Risk\",\n", + " \"global_weight\": 1.0,\n", + " \"local_weight\": 1.0,\n", + " \"target_weights\": {\n", + " \"USDT liquidity Proposal\": 0.562,\n", + " \"Airswap Proposal\": 0.188,\n", + " \"Enable deposits Proposal\": 0.188,\n", + " \"Remove BNT from pools Proposal\": 0.062\n", + " },\n", + " \"elements\": {\n", + " \"global_weights\": {\n", + " \"USDT liquidity Proposal\": 0.562,\n", + " \"Airswap Proposal\": 0.188,\n", + " \"Enable deposits Proposal\": 0.188,\n", + " \"Remove BNT from pools Proposal\": 0.062\n", + " },\n", + " \"local_weights\": {\n", + " \"USDT liquidity Proposal\": 0.562,\n", + " \"Airswap Proposal\": 0.188,\n", + " \"Enable deposits Proposal\": 0.188,\n", + " \"Remove BNT from pools Proposal\": 0.062\n", + " },\n", + " \"consistency_ratio\": 0.0,\n", + " \"random_index\": \"Donegan & Dodd\",\n", + " \"count\": 4,\n", + " \"names\": [\n", + " \"Airswap Proposal\",\n", + " \"USDT liquidity Proposal\",\n", + " \"Remove BNT from pools Proposal\",\n", + " \"Enable deposits Proposal\"\n", + " ]\n", + " },\n", + " \"children\": null,\n", + " \"comparisons\": {\n", + " \"count\": 6,\n", + " \"input\": {\n", + " \"Airswap Proposal, USDT liquidity Proposal\": 0.3333333333333333,\n", + " \"Airswap Proposal, Remove BNT from pools Proposal\": 3.0,\n", + " \"Airswap Proposal, Enable deposits Proposal\": 1.0,\n", + " \"USDT liquidity Proposal, Remove BNT from pools Proposal\": 9.0,\n", + " \"USDT liquidity Proposal, Enable deposits Proposal\": 3.0,\n", + " \"Remove BNT from pools Proposal, Enable deposits Proposal\": 0.3333333333333333\n", + " },\n", + " \"computed\": null\n", + " }\n", + "}\n" + ] + }, + { + "data": { + "text/plain": " USDT liquidity Proposal Airswap Proposal \\\nLP Alienation Risk 0.562 0.188 \n\n Enable deposits Proposal Remove BNT from pools Proposal \nLP Alienation Risk 0.188 0.062 ", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
USDT liquidity ProposalAirswap ProposalEnable deposits ProposalRemove BNT from pools Proposal
LP Alienation Risk0.5620.1880.1880.062
\n
" + }, + "execution_count": 1014, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "lp_alienation_risk = ahpy.Compare('LP Alienation Risk', lp_alienation_risk_comparisons, precision=3)\n", + "report = lp_alienation_risk.report(show=True, verbose=True)\n", + "lp_alienation_risk_df = pd.DataFrame(lp_alienation_risk.target_weights, index=['LP Alienation Risk'])\n", + "# comparisons.append(lp_alienation_risk_df)\n", + "lp_alienation_risk_df\n" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1015, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"name\": \"Security Risk\",\n", + " \"global_weight\": 1.0,\n", + " \"local_weight\": 1.0,\n", + " \"target_weights\": {\n", + " \"Airswap Proposal\": 0.429,\n", + " \"Enable deposits Proposal\": 0.286,\n", + " \"USDT liquidity Proposal\": 0.143,\n", + " \"Remove BNT from pools Proposal\": 0.143\n", + " },\n", + " \"elements\": {\n", + " \"global_weights\": {\n", + " \"Airswap Proposal\": 0.429,\n", + " \"Enable deposits Proposal\": 0.286,\n", + " \"USDT liquidity Proposal\": 0.143,\n", + " \"Remove BNT from pools Proposal\": 0.143\n", + " },\n", + " \"local_weights\": {\n", + " \"Airswap Proposal\": 0.429,\n", + " \"Enable deposits Proposal\": 0.286,\n", + " \"USDT liquidity Proposal\": 0.143,\n", + " \"Remove BNT from pools Proposal\": 0.143\n", + " },\n", + " \"consistency_ratio\": 0.0,\n", + " \"random_index\": \"Donegan & Dodd\",\n", + " \"count\": 4,\n", + " \"names\": [\n", + " \"Airswap Proposal\",\n", + " \"USDT liquidity Proposal\",\n", + " \"Remove BNT from pools Proposal\",\n", + " \"Enable deposits Proposal\"\n", + " ]\n", + " },\n", + " \"children\": null,\n", + " \"comparisons\": {\n", + " \"count\": 6,\n", + " \"input\": {\n", + " \"Airswap Proposal, USDT liquidity Proposal\": 3.0,\n", + " \"Airswap Proposal, Remove BNT from pools Proposal\": 3.0,\n", + " \"Airswap Proposal, Enable deposits Proposal\": 1.5,\n", + " \"USDT liquidity Proposal, Remove BNT from pools Proposal\": 1.0,\n", + " \"USDT liquidity Proposal, Enable deposits Proposal\": 0.5,\n", + " \"Remove BNT from pools Proposal, Enable deposits Proposal\": 0.5\n", + " },\n", + " \"computed\": null\n", + " }\n", + "}\n" + ] + }, + { + "data": { + "text/plain": " Airswap Proposal Enable deposits Proposal \\\nSecurity Risk 0.429 0.286 \n\n USDT liquidity Proposal Remove BNT from pools Proposal \nSecurity Risk 0.143 0.143 ", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Airswap ProposalEnable deposits ProposalUSDT liquidity ProposalRemove BNT from pools Proposal
Security Risk0.4290.2860.1430.143
\n
" + }, + "execution_count": 1015, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "security_risk = ahpy.Compare('Security Risk', security_risk_comparisons, precision=3)\n", + "report = security_risk.report(show=True, verbose=True)\n", + "security_risk_df = pd.DataFrame(security_risk.target_weights, index=['Security Risk'])\n", + "# comparisons.append(security_risk_df)\n", + "security_risk_df" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1016, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"name\": \"Risk\",\n", + " \"global_weight\": 1.0,\n", + " \"local_weight\": 1.0,\n", + " \"target_weights\": {},\n", + " \"elements\": {\n", + " \"global_weights\": {\n", + " \"Enable deposits Proposal\": 0.333,\n", + " \"USDT liquidity Proposal\": 0.259,\n", + " \"Remove BNT from pools Proposal\": 0.222,\n", + " \"Airswap Proposal\": 0.185\n", + " },\n", + " \"local_weights\": {\n", + " \"Enable deposits Proposal\": 0.333,\n", + " \"USDT liquidity Proposal\": 0.259,\n", + " \"Remove BNT from pools Proposal\": 0.222,\n", + " \"Airswap Proposal\": 0.185\n", + " },\n", + " \"consistency_ratio\": 0.0,\n", + " \"random_index\": \"Donegan & Dodd\",\n", + " \"count\": 4,\n", + " \"names\": [\n", + " \"Airswap Proposal\",\n", + " \"USDT liquidity Proposal\",\n", + " \"Remove BNT from pools Proposal\",\n", + " \"Enable deposits Proposal\"\n", + " ]\n", + " },\n", + " \"children\": {\n", + " \"count\": 4,\n", + " \"names\": [\n", + " \"Legal Risk\",\n", + " \"Reputational Risk\",\n", + " \"LP Alienation Risk\",\n", + " \"Security Risk\"\n", + " ]\n", + " },\n", + " \"comparisons\": {\n", + " \"count\": 6,\n", + " \"input\": {\n", + " \"Airswap Proposal, USDT liquidity Proposal\": 0.7142857142857143,\n", + " \"Airswap Proposal, Remove BNT from pools Proposal\": 0.8333333333333334,\n", + " \"Airswap Proposal, Enable deposits Proposal\": 0.5555555555555556,\n", + " \"USDT liquidity Proposal, Remove BNT from pools Proposal\": 1.1666666666666667,\n", + " \"USDT liquidity Proposal, Enable deposits Proposal\": 0.7777777777777778,\n", + " \"Remove BNT from pools Proposal, Enable deposits Proposal\": 0.6666666666666666\n", + " },\n", + " \"computed\": null\n", + " }\n", + "}\n" + ] + }, + { + "data": { + "text/plain": " Enable deposits Proposal USDT liquidity Proposal \\\nRisk 0.333 0.259 \n\n Remove BNT from pools Proposal Airswap Proposal \nRisk 0.222 0.185 ", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Enable deposits ProposalUSDT liquidity ProposalRemove BNT from pools ProposalAirswap Proposal
Risk0.3330.2590.2220.185
\n
" + }, + "execution_count": 1016, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "risk = ahpy.Compare('Risk', risk_comparisons, precision=3)\n", + "risk.add_children([legal_risk, reputational_risk, lp_alienation_risk, security_risk])\n", + "report = risk.report(show=True, verbose=True)\n", + "risk_df = pd.DataFrame(report['elements']['global_weights'], index=['Risk'])\n", + "comparisons.append(risk_df)\n", + "risk_df" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1017, + "outputs": [ + { + "data": { + "text/plain": " Remove BNT from pools Proposal Airswap Proposal \\\nFees 0.346 0.269 \nResources 0.450 0.400 \nDeficit 0.318 0.273 \nAlignment 0.222 0.259 \nRisk 0.222 0.185 \n\n USDT liquidity Proposal Enable deposits Proposal \nFees 0.192 0.192 \nResources 0.050 0.100 \nDeficit 0.227 0.182 \nAlignment 0.259 0.259 \nRisk 0.259 0.333 ", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Remove BNT from pools ProposalAirswap ProposalUSDT liquidity ProposalEnable deposits Proposal
Fees0.3460.2690.1920.192
Resources0.4500.4000.0500.100
Deficit0.3180.2730.2270.182
Alignment0.2220.2590.2590.259
Risk0.2220.1850.2590.333
\n
" + }, + "execution_count": 1017, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "comparisons_df = pd.concat(comparisons)\n", + "comparisons_df" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1018, + "outputs": [ + { + "data": { + "text/plain": " Fees Resources Deficit Alignment Risk\nRemove BNT from pools Proposal 0.346 0.45 0.318 0.222 0.222\nAirswap Proposal 0.269 0.40 0.273 0.259 0.185\nUSDT liquidity Proposal 0.192 0.05 0.227 0.259 0.259\nEnable deposits Proposal 0.192 0.10 0.182 0.259 0.333", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FeesResourcesDeficitAlignmentRisk
Remove BNT from pools Proposal0.3460.450.3180.2220.222
Airswap Proposal0.2690.400.2730.2590.185
USDT liquidity Proposal0.1920.050.2270.2590.259
Enable deposits Proposal0.1920.100.1820.2590.333
\n
" + }, + "execution_count": 1018, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "comparisons_df.T" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1019, + "outputs": [], + "source": [ + "totals = [\n", + " comparisons_df.T.iloc[0].sum(),\n", + " comparisons_df.T.iloc[1].sum(),\n", + " comparisons_df.T.iloc[2].sum(),\n", + " comparisons_df.T.iloc[3].sum(),\n", + "]\n" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1020, + "outputs": [ + { + "data": { + "text/plain": " Fees Resources Deficit Alignment Risk \\\nRemove BNT from pools Proposal 0.346 0.45 0.318 0.222 0.222 \nAirswap Proposal 0.269 0.40 0.273 0.259 0.185 \nUSDT liquidity Proposal 0.192 0.05 0.227 0.259 0.259 \nEnable deposits Proposal 0.192 0.10 0.182 0.259 0.333 \n\n Total \nRemove BNT from pools Proposal 1.558 \nAirswap Proposal 1.386 \nUSDT liquidity Proposal 0.987 \nEnable deposits Proposal 1.066 ", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FeesResourcesDeficitAlignmentRiskTotal
Remove BNT from pools Proposal0.3460.450.3180.2220.2221.558
Airswap Proposal0.2690.400.2730.2590.1851.386
USDT liquidity Proposal0.1920.050.2270.2590.2590.987
Enable deposits Proposal0.1920.100.1820.2590.3331.066
\n
" + }, + "execution_count": 1020, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "comparisons_df=comparisons_df.T\n", + "comparisons_df['Total']=totals\n", + "comparisons_df" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1022, + "outputs": [ + { + "data": { + "text/plain": "Index(['Remove BNT from pools Proposal', 'Airswap Proposal',\n 'USDT liquidity Proposal', 'Enable deposits Proposal'],\n dtype='object')" + }, + "execution_count": 1022, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "comparisons_df.index" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1025, + "outputs": [ + { + "data": { + "text/plain": "(0.9989999999999999, 1.0000000000000002, 1.0)" + }, + "execution_count": 1025, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "comparisons_df['Fees'].sum(),comparisons_df['Resources'].sum(),comparisons_df['Deficit'].sum()" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 1026, + "outputs": [], + "source": [ + "comparisons_df.to_csv('ahp_example.csv', index=False)" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/bancor_research/bancor_ahp/ahp_example.csv b/bancor_research/bancor_ahp/ahp_example.csv new file mode 100644 index 00000000..1f4c2909 --- /dev/null +++ b/bancor_research/bancor_ahp/ahp_example.csv @@ -0,0 +1,5 @@ +Fees,Resources,Deficit,Alignment,Risk,Total +0.346,0.45,0.318,0.222,0.222,1.558 +0.269,0.4,0.273,0.259,0.185,1.3860000000000001 +0.192,0.05,0.227,0.259,0.259,0.987 +0.192,0.1,0.182,0.259,0.333,1.066 From e9ddc154506df8aa3a6dd9856ee242cdb10e45b0 Mon Sep 17 00:00:00 2001 From: mikewcasale Date: Wed, 27 Jul 2022 05:04:35 -0700 Subject: [PATCH 02/16] update dataframe & image --- .../Analytical Hierarchy Process.png | Bin 230153 -> 304317 bytes bancor_research/bancor_ahp/ahp-example.ipynb | 12 ++++++------ bancor_research/bancor_ahp/ahp_example.csv | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bancor_research/bancor_ahp/Analytical Hierarchy Process.png b/bancor_research/bancor_ahp/Analytical Hierarchy Process.png index 9747852b8bd835b692e53821a53c721b637ce983..32adcc9df1834fc9ae246696f4195ac6b6dbd5cc 100644 GIT binary patch literal 304317 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 z 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�c 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" + "text/plain": " Unnamed: 0 Fees Resources Deficit Alignment \\\n0 Remove BNT from pools Proposal 0.346 0.45 0.318 0.222 \n1 Airswap Proposal 0.269 0.40 0.273 0.259 \n2 USDT liquidity Proposal 0.192 0.05 0.227 0.259 \n3 Enable deposits Proposal 0.192 0.10 0.182 0.259 \n\n Risk Total \n0 0.222 1.558 \n1 0.185 1.386 \n2 0.259 0.987 \n3 0.333 1.066 ", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Unnamed: 0FeesResourcesDeficitAlignmentRiskTotal
0Remove BNT from pools Proposal0.3460.450.3180.2220.2221.558
1Airswap Proposal0.2690.400.2730.2590.1851.386
2USDT liquidity Proposal0.1920.050.2270.2590.2590.987
3Enable deposits Proposal0.1920.100.1820.2590.3331.066
\n
" }, - "execution_count": 1027, + "execution_count": 1029, "metadata": {}, "output_type": "execute_result" } @@ -1202,10 +1202,10 @@ }, { "cell_type": "code", - "execution_count": 1026, + "execution_count": 1028, "outputs": [], "source": [ - "comparisons_df.to_csv('ahp_example.csv', index=False)" + "comparisons_df.to_csv('ahp_example.csv')" ], "metadata": { "collapsed": false, diff --git a/bancor_research/bancor_ahp/ahp_example.csv b/bancor_research/bancor_ahp/ahp_example.csv index 1f4c2909..c0b37d38 100644 --- a/bancor_research/bancor_ahp/ahp_example.csv +++ b/bancor_research/bancor_ahp/ahp_example.csv @@ -1,5 +1,5 @@ -Fees,Resources,Deficit,Alignment,Risk,Total -0.346,0.45,0.318,0.222,0.222,1.558 -0.269,0.4,0.273,0.259,0.185,1.3860000000000001 -0.192,0.05,0.227,0.259,0.259,0.987 -0.192,0.1,0.182,0.259,0.333,1.066 +,Fees,Resources,Deficit,Alignment,Risk,Total +Remove BNT from pools Proposal,0.346,0.45,0.318,0.222,0.222,1.558 +Airswap Proposal,0.269,0.4,0.273,0.259,0.185,1.3860000000000001 +USDT liquidity Proposal,0.192,0.05,0.227,0.259,0.259,0.987 +Enable deposits Proposal,0.192,0.1,0.182,0.259,0.333,1.066 From d657029c31aabda42317f6d1e65ad583e19fced9 Mon Sep 17 00:00:00 2001 From: mikewcasale Date: Mon, 1 Aug 2022 04:25:16 -0700 Subject: [PATCH 03/16] Added Governance Proposal Study - Limit on-curve liquidity --- ...limit_tradingliquidity_proposal_study.html | 43 +++++++++++++++++++ ...imit_tradingliquidity_proposal_study.ipynb | 1 + 2 files changed, 44 insertions(+) create mode 100644 examples/studies/limit_tradingliquidity_proposal_study.html create mode 100644 examples/studies/limit_tradingliquidity_proposal_study.ipynb diff --git a/examples/studies/limit_tradingliquidity_proposal_study.html b/examples/studies/limit_tradingliquidity_proposal_study.html new file mode 100644 index 00000000..cdb617a5 --- /dev/null +++ b/examples/studies/limit_tradingliquidity_proposal_study.html @@ -0,0 +1,43 @@ + + + + +limit_tradingliquidity_proposal_study - Databricks + + + + + + + + + + + + + + + + + + diff --git a/examples/studies/limit_tradingliquidity_proposal_study.ipynb b/examples/studies/limit_tradingliquidity_proposal_study.ipynb new file mode 100644 index 00000000..c622c7a4 --- /dev/null +++ b/examples/studies/limit_tradingliquidity_proposal_study.ipynb @@ -0,0 +1 @@ +{"cells":[{"cell_type":"markdown","source":["Welcome to the Bancor Governance Forum. In this forum, the BancorDAO (Decentralized Autonomous Organization) proposes and discusses token Whitelistings, Trading liquidity limits, Fee changes, Bancor Improvement Proposals, and others.\n\nPlease head on to the [Information and Templates](https://gov.bancor.network/c/information-and-templates/16) category for more information on the DAO process.\n\nVoting happens on the [BancorDAO Snapshot Page](https://vote.bancor.network/)."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"681b934a-2625-4070-9b66-ba81e5913b98"}}},{"cell_type":"markdown","source":["[Proposal: Limit on-curve liquidity to max(520 x 7 day fees, 100k BNT)](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876)\n=============================================================================================================================================================================\n\n[LEVEL 1 Under Review](https://gov.bancor.network/c/level-1-under-review/14)\n\n\n[![](https://dub2.discourse-cdn.com/standard20/user_avatar/gov.bancor.network/thedavidmeister/90/129_2.png)](https://gov.bancor.network/u/thedavidmeister)\n\n[thedavidmeister](https://gov.bancor.network/u/thedavidmeister)"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"4efeefaa-431b-4ede-b2d6-9f53729739b3"}}},{"cell_type":"markdown","source":["TLDR:\n\n- We pay IL on 100% of TKN available for trading\n- We get diminishing returns on new fees per unit of trading liquidity\n- If IL > fees then the protocol dies (and is already in crisis due to existing deficits)\n- B3 has the unique ability to set a cap on trading liquidity\n- Taking capital off-curve has a dual benefit of limiting IL exposure AND making it available to other revenue opportunities (native staking etc.)\n- Currently the protocol deficit increases when ETH price increases by ~1.5x annually relative to BNT, making some assumptions, we could lift this to the protocol being profitable up to a ~4x ETH annual moon relative to BNT by limiting the on-curve trading liquidity to 520x 7 day trading fees + implementing some modest staking model (or similar)\n- We should set a simple cap based on the data we have and commission a more sophisticated model in the near future\n\nProposal:\n\nWhen we look at the IL curve:\n\n![image](https://aws1.discourse-cdn.com/standard20/uploads/bancordao/optimized/2X/e/e0d10c4f716b77cc23de68cb160db8c6e9dc28e1_2_690x387.png)\n\n\nWe see that the losses due to IL are a % of all the capital deployed on the trading curve.\n\nIf TKN moons 2x relative to BNT then the IL is ~10%, a 4x moon has ~20% IL, etc.\n\nMeanwhile there are only so many fees due to trade volume across all of defi and almost all trades through bancor currently are based on arbitrage and aggregators only. That is to say, there is negligible trading being done directly on bancor due to retail etc. as that market is largely monopolized by aggregators and a few platforms that take the lion's share of human traders such as uniswap.\n\nIn considering this proposal, please consider mainly how arb bots and aggregators will respond, not human traders, as the former is 10x+ the latter in terms of protocol fee generation."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"c7149321-2b9a-4cd0-878e-58e5b2367f38"}}},{"cell_type":"markdown","source":["Import Data"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"c318fe9f-fd11-412f-a9b5-67d55e934f7d"}}},{"cell_type":"code","source":["import pandas as pd\n\nfilepath = 'https://bancorml.s3.us-east-2.amazonaws.com/preprocessed_tradingliquidity_vs_deficit.csv'\ndf = pd.read_csv(filepath)"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"30b026a9-3151-42ac-be60-50b5be44630f"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Calculate Rolling Average Fee Revenue"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"8beb4fef-7b8f-4fa8-8b4c-75147450ce02"}}},{"cell_type":"code","source":["# For 7 day rolling averages\ndf['trade_revenue_real_rolling_7day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_real'].rolling(7, min_periods=1).mean().reset_index(drop=True)\ndf['trade_revenue_usd_rolling_7day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_usd'].rolling(7, min_periods=1).mean().reset_index(drop=True)\n\n# For 30 day rolling averages\ndf['trade_revenue_real_rolling_30day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_real'].rolling(30, min_periods=1).mean().reset_index(drop=True)\ndf['trade_revenue_usd_rolling_30day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_usd'].rolling(30, min_periods=1).mean().reset_index(drop=True)\ndf"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"5fb7205f-c2f8-4a49-b724-6129a472b5e4"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[41]:
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[41]:
"]}},{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymboltrade_counttargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usdbntpricesurplus_tknsurplus_bntsurplus_usdsurplus_perctrade_revenue_real_rolling_7day_avgtrade_revenue_usd_rolling_7day_avgtrade_revenue_real_rolling_30day_avgtrade_revenue_usd_rolling_30day_avg
02022-04-20dai39.2053429.1407940.0184480.0183182.296663-9.221023e+00-4.026950e+00-9.248547e+00-0.0000540.0184480.0183180.0184480.018318
12022-04-21bnt32.9879966.9919110.0059880.0140122.284838-2.999949e+00-2.999949e+00-6.854397e+00-0.0000140.0059880.0140120.0059880.014012
22022-04-22bnt11.3429143.0215570.0026910.0060552.231059-4.806735e+00-4.806735e+00-1.072411e+01-0.0000110.0026910.0060550.0026910.006055
32022-04-22dai2618.054738601.5260211.2385871.2054632.231059-6.283286e+02-2.744009e+02-6.122045e+02-0.0018281.2385871.2054631.2385871.205463
42022-04-23bnt11136.4753382511.6104972.2775065.0332882.227919-6.742615e+00-6.742615e+00-1.502200e+01-0.0000162.2775065.0332882.2775065.033288
...................................................
17602022-07-30usdt38048.8967058006.23911981.30198580.8711000.564534-1.262901e+06-2.190509e+06-1.236617e+06-0.40716081.30198580.87110081.30198580.871100
17612022-07-30vbnt1249419.82517123492.709503752.586170357.7569980.564534-1.939145e+05-1.594473e+05-9.001343e+04-0.056916752.586170357.756998752.586170357.756998
17622022-07-30wbtc243.11491874919.1347570.006242150.1354060.564534-1.726202e+02-7.197113e+06-4.063016e+06-0.4785640.006242150.1354060.006242150.135406
17632022-07-30woo47633485.015403143133.8950431269.509049286.8414730.564534-2.137629e+06-8.456805e+05-4.774155e+05-0.2676041269.509049286.8414731269.509049286.841473
17642022-07-30yfi170.7823099615.9333650.00156819.2704080.564534-1.200985e+00-2.402642e+04-1.356373e+04-0.2022760.00156819.2704080.00156819.270408
\n

1765 rows × 16 columns

\n
","textData":null,"removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"htmlSandbox","arguments":{}}},"output_type":"display_data","data":{"text/html":["
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymboltrade_counttargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usdbntpricesurplus_tknsurplus_bntsurplus_usdsurplus_perctrade_revenue_real_rolling_7day_avgtrade_revenue_usd_rolling_7day_avgtrade_revenue_real_rolling_30day_avgtrade_revenue_usd_rolling_30day_avg
02022-04-20dai39.2053429.1407940.0184480.0183182.296663-9.221023e+00-4.026950e+00-9.248547e+00-0.0000540.0184480.0183180.0184480.018318
12022-04-21bnt32.9879966.9919110.0059880.0140122.284838-2.999949e+00-2.999949e+00-6.854397e+00-0.0000140.0059880.0140120.0059880.014012
22022-04-22bnt11.3429143.0215570.0026910.0060552.231059-4.806735e+00-4.806735e+00-1.072411e+01-0.0000110.0026910.0060550.0026910.006055
32022-04-22dai2618.054738601.5260211.2385871.2054632.231059-6.283286e+02-2.744009e+02-6.122045e+02-0.0018281.2385871.2054631.2385871.205463
42022-04-23bnt11136.4753382511.6104972.2775065.0332882.227919-6.742615e+00-6.742615e+00-1.502200e+01-0.0000162.2775065.0332882.2775065.033288
...................................................
17602022-07-30usdt38048.8967058006.23911981.30198580.8711000.564534-1.262901e+06-2.190509e+06-1.236617e+06-0.40716081.30198580.87110081.30198580.871100
17612022-07-30vbnt1249419.82517123492.709503752.586170357.7569980.564534-1.939145e+05-1.594473e+05-9.001343e+04-0.056916752.586170357.756998752.586170357.756998
17622022-07-30wbtc243.11491874919.1347570.006242150.1354060.564534-1.726202e+02-7.197113e+06-4.063016e+06-0.4785640.006242150.1354060.006242150.135406
17632022-07-30woo47633485.015403143133.8950431269.509049286.8414730.564534-2.137629e+06-8.456805e+05-4.774155e+05-0.2676041269.509049286.8414731269.509049286.841473
17642022-07-30yfi170.7823099615.9333650.00156819.2704080.564534-1.200985e+00-2.402642e+04-1.356373e+04-0.2022760.00156819.2704080.00156819.270408
\n

1765 rows × 16 columns

\n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["[](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876/1#current-situation-1)Current situation\n-----------------------------------------------------------------------------------------------------------------------------------------------\n\nLet's look at how that translates to the current state of play for ETH.\n\nThere is 8807 ETH on the trading curve right now:\n\n![image](https://aws1.discourse-cdn.com/standard20/uploads/bancordao/original/2X/7/7fc569f4bf2f391578b84463ea82683fd815b20d.png)"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"bebfedd4-6b11-4eef-94a1-3d6b8c65730d"}}},{"cell_type":"markdown","source":["Based on the above, set `oncurve_eth` and `token_symbol` constants:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"d35d3dd9-3023-4049-b57e-cf27e0fbbcb5"}}},{"cell_type":"code","source":["oncurve_eth = 8800\ntoken_symbol = 'eth'"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"7de6b8cb-94fd-4a7e-9586-15156233f240"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Get the latest date in the dataset:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"ea01a7ac-32a5-4422-afc1-93ab9c723cc1"}}},{"cell_type":"code","source":["latest_date = df.sort_values('date', ascending=False)['date'].values[0]\nlatest_date"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"e8aba016-3643-403c-a470-81b2324264e3"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[76]: '2022-07-30'
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[76]: '2022-07-30'
"]}}],"execution_count":0},{"cell_type":"markdown","source":["30 day rolling average ETH fees are:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"aa51a4c9-ad48-49a0-aaba-2c626a33d6bf"}}},{"cell_type":"code","source":["eth_rolling_30day_real_avg = df[(df['date']==latest_date) & (df['targetSymbol']==token_symbol)]['trade_revenue_real_rolling_30day_avg'].values[0]\n\neth_rolling_30day_usd_avg = df[(df['date']==latest_date) & (df['targetSymbol']==token_symbol)]['trade_revenue_usd_rolling_30day_avg'].values[0]\n\nprint(f'\\033[1m 30 day rolling avg: {eth_rolling_30day_real_avg} (real/day) \\033[1m')\nprint(f'\\033[1m 30 day rolling avg: {eth_rolling_30day_usd_avg} (usd/day) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"52eb8924-e303-4cc7-a5c2-d8655b246d92"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
30 day rolling avg: 0.3133156103817142 (real/day) \n 30 day rolling avg: 533.9804979857236 (usd/day) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
30 day rolling avg: 0.3133156103817142 (real/day) \n 30 day rolling avg: 533.9804979857236 (usd/day) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Estimated 7 day ETH fees are:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"7f621e21-6cea-42b0-b991-fa8ecc906c3a"}}},{"cell_type":"code","source":["estimated_7day_eth_fees_real = eth_rolling_30day_real_avg * 7\nestimated_7day_eth_fees_usd = eth_rolling_30day_usd_avg * 7\n\nprint(f'\\033[1m Estimated 7 day ETH fees: {estimated_7day_eth_fees_real} (real) \\033[1m')\nprint(f'\\033[1m Estimated 7 day ETH fees: {estimated_7day_eth_fees_usd} (usd) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"2a835fe0-7fea-402a-b811-f55b1a87c911"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Estimated 7 day ETH fees: 2.193209272671999 (real) \n Estimated 7 day ETH fees: 3737.863485900065 (usd) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Estimated 7 day ETH fees: 2.193209272671999 (real) \n Estimated 7 day ETH fees: 3737.863485900065 (usd) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Comparing the above to prior naive estimate (limited data):\n\n![image](https://aws1.discourse-cdn.com/standard20/uploads/bancordao/original/2X/3/3b2d3eb390e5564193283285bad0d7a4a333cf53.png)\n\nIf we annualize the estimated fees we get:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":true,"inputWidgets":{},"nuid":"386e63bd-882d-4834-9477-406569bf005c"}}},{"cell_type":"code","source":["eth_annualized = 52 * estimated_7day_eth_fees_real\neth_annualized_percent_of_oncurve = (eth_annualized / oncurve_eth) * 100\n\nprint(f'\\033[1m ETH Fees annualized: {eth_annualized} (real) \\033[1m')\nprint(f'\\033[1m ETH Fees annualized as a percent of ETH on curve: {eth_annualized_percent_of_oncurve} (%) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"d87952a5-06e6-4320-bf8e-c32471167ee2"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
ETH Fees annualized: 114.04688217894396 (real) \n ETH Fees annualized as a percent of ETH on curve: 1.2959872974879996 (%) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
ETH Fees annualized: 114.04688217894396 (real) \n ETH Fees annualized as a percent of ETH on curve: 1.2959872974879996 (%) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Setting aside mechanics like leveraged vortexing for the moment, the baseline is that the protocol will break even on ETH if IL on 8800 ETH is 1.29% or less, relative to BNT."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"ea3f9edb-7889-4071-843e-9964859675f4"}}},{"cell_type":"markdown","source":["That means that if ETH increases by just 50% relative to BNT over a year, all else equal, the protocol loses ETH and the deficit increases."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"468ba4f4-545d-4e15-b70d-9f2e160e4de6"}}},{"cell_type":"markdown","source":["[](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876/1#proposed-2)Proposed\n-----------------------------------------------------------------------------------------------------------------------------\n\nLet's limit the ETH pool size to 520x the 7 day fees, i.e. an APR of 10% all else equal.\n\nThis gives us a limited trading liquidity of:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"937e79eb-d82c-4f93-b14f-ee7d3999d0c7"}}},{"cell_type":"code","source":["limited_pool_size_520 = int(round(520 * estimated_7day_eth_fees_real, 0))\nprint(f'\\033[1m {limited_pool_size_520} (ETH) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"1f206032-7c22-4575-b5a2-503774458605"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
1140 (ETH) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
1140 (ETH) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["If we assume that the fees generated on the limited trading liquidity are not significantly less than the fees on the current on-curve liquidity then this gives us an APR of 10% on ETH."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"cbc3f824-2a8e-40b6-bf78-1bf6b32ad50b"}}},{"cell_type":"markdown","source":["We spent all of bancor v2.1 with caps on trading pools showing that 10% APR is sustainable for many TKN, but the reality of how many fees we would miss on a 2400 ETH pool vs. an 8800 ETH pool is something that we would have to measure and monitor.\n\nContinuing with the assumption of comparable fees with the limited pool...\n\nThis now means that a 2x in ETH vs. BNT costs the protocol 240 ETH instead of 880 ETH. That is to say, over 1 year we can expect the protocol to break even on the 10% APR even if ETH moons 2x relative to BNT.\n\nWe also have 6400 ETH freed up to generate fees. Native staking on ETH yields about 3%.\n\n6400 ETH x 0.03 = 192 ETH ~= 200 ETH\n\nAssuming we do the most conservative thing other than doing nothing at all, use the native ETH staking mechanism, we now have a budget of 200 ETH from staking 6400 ETH and 240 ETH from a 10% APR on 2400 ETH to cover the IL on 2400 ETH.\n\nWith 440 ETH we can cover up to ~18% IL on 2400 ETH which allows ETH to annually moon ~4x relative to BNT\n\nClearly a 4x annual moon is a significantly larger safety margin than a 1.5x annual moon.\n\nAll we need to do is:\n\n- Limit pool to 520x the 7 day fees to give a minimum 10% APR\n- Move the off-curve liquidity into a conservative yield generating mechanism offering 3% e.g. native staking\n\nGenerally we could and should apply this 520x cap to all TKN on the platform as a rule of thumb and then backfill more sophisticated analytics over time.\n\nFor many TKN we might run into a situation where the 7 day fees are too small to support trading of any size, so we can set a minimum, which right now can be somewhat arbitrary like 100k BNT.\n\n[](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876/1#voting-3)Voting\n-------------------------------------------------------------------------------------------------------------------------\n\nYES: Cap all on-curve TKN trading liquidity to 520x their rolling 7 day fees\n\n- Frequency and level of automation of the cap management TBD and improved over time\n- Commit to alternative revenue generation for the off-curve capital\n- Commit to monitoring and ongoing analysis that is more sophisticated than what is presented above\n\nNO: Continue to attempt to cover double digit annual % IL with single digit % annual TKN fees"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"2f9033a8-e93b-4f49-8dad-ff4e62c0e100"}}}],"metadata":{"application/vnd.databricks.v1+notebook":{"notebookName":"limit_tradingliquidity_proposal_study","dashboards":[],"notebookMetadata":{"pythonIndentUnit":4},"language":"python","widgets":{},"notebookOrigID":1744197420073319}},"nbformat":4,"nbformat_minor":0} From 5ac725ae466cda263ec9f1907f6a193901452241 Mon Sep 17 00:00:00 2001 From: mikewcasale Date: Mon, 1 Aug 2022 06:04:37 -0700 Subject: [PATCH 04/16] Updated study --- ...limit_tradingliquidity_proposal_study.html | 43 ------------------- ...imit_tradingliquidity_proposal_study.ipynb | 2 +- 2 files changed, 1 insertion(+), 44 deletions(-) delete mode 100644 examples/studies/limit_tradingliquidity_proposal_study.html diff --git a/examples/studies/limit_tradingliquidity_proposal_study.html b/examples/studies/limit_tradingliquidity_proposal_study.html deleted file mode 100644 index cdb617a5..00000000 --- a/examples/studies/limit_tradingliquidity_proposal_study.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - -limit_tradingliquidity_proposal_study - Databricks - - - - - - - - - - - - - - - - - - diff --git a/examples/studies/limit_tradingliquidity_proposal_study.ipynb b/examples/studies/limit_tradingliquidity_proposal_study.ipynb index c622c7a4..d1fc07b9 100644 --- a/examples/studies/limit_tradingliquidity_proposal_study.ipynb +++ b/examples/studies/limit_tradingliquidity_proposal_study.ipynb @@ -1 +1 @@ -{"cells":[{"cell_type":"markdown","source":["Welcome to the Bancor Governance Forum. In this forum, the BancorDAO (Decentralized Autonomous Organization) proposes and discusses token Whitelistings, Trading liquidity limits, Fee changes, Bancor Improvement Proposals, and others.\n\nPlease head on to the [Information and Templates](https://gov.bancor.network/c/information-and-templates/16) category for more information on the DAO process.\n\nVoting happens on the [BancorDAO Snapshot Page](https://vote.bancor.network/)."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"681b934a-2625-4070-9b66-ba81e5913b98"}}},{"cell_type":"markdown","source":["[Proposal: Limit on-curve liquidity to max(520 x 7 day fees, 100k BNT)](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876)\n=============================================================================================================================================================================\n\n[LEVEL 1 Under Review](https://gov.bancor.network/c/level-1-under-review/14)\n\n\n[![](https://dub2.discourse-cdn.com/standard20/user_avatar/gov.bancor.network/thedavidmeister/90/129_2.png)](https://gov.bancor.network/u/thedavidmeister)\n\n[thedavidmeister](https://gov.bancor.network/u/thedavidmeister)"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"4efeefaa-431b-4ede-b2d6-9f53729739b3"}}},{"cell_type":"markdown","source":["TLDR:\n\n- We pay IL on 100% of TKN available for trading\n- We get diminishing returns on new fees per unit of trading liquidity\n- If IL > fees then the protocol dies (and is already in crisis due to existing deficits)\n- B3 has the unique ability to set a cap on trading liquidity\n- Taking capital off-curve has a dual benefit of limiting IL exposure AND making it available to other revenue opportunities (native staking etc.)\n- Currently the protocol deficit increases when ETH price increases by ~1.5x annually relative to BNT, making some assumptions, we could lift this to the protocol being profitable up to a ~4x ETH annual moon relative to BNT by limiting the on-curve trading liquidity to 520x 7 day trading fees + implementing some modest staking model (or similar)\n- We should set a simple cap based on the data we have and commission a more sophisticated model in the near future\n\nProposal:\n\nWhen we look at the IL curve:\n\n![image](https://aws1.discourse-cdn.com/standard20/uploads/bancordao/optimized/2X/e/e0d10c4f716b77cc23de68cb160db8c6e9dc28e1_2_690x387.png)\n\n\nWe see that the losses due to IL are a % of all the capital deployed on the trading curve.\n\nIf TKN moons 2x relative to BNT then the IL is ~10%, a 4x moon has ~20% IL, etc.\n\nMeanwhile there are only so many fees due to trade volume across all of defi and almost all trades through bancor currently are based on arbitrage and aggregators only. That is to say, there is negligible trading being done directly on bancor due to retail etc. as that market is largely monopolized by aggregators and a few platforms that take the lion's share of human traders such as uniswap.\n\nIn considering this proposal, please consider mainly how arb bots and aggregators will respond, not human traders, as the former is 10x+ the latter in terms of protocol fee generation."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"c7149321-2b9a-4cd0-878e-58e5b2367f38"}}},{"cell_type":"markdown","source":["Import Data"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"c318fe9f-fd11-412f-a9b5-67d55e934f7d"}}},{"cell_type":"code","source":["import pandas as pd\n\nfilepath = 'https://bancorml.s3.us-east-2.amazonaws.com/preprocessed_tradingliquidity_vs_deficit.csv'\ndf = pd.read_csv(filepath)"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"30b026a9-3151-42ac-be60-50b5be44630f"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Calculate Rolling Average Fee Revenue"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"8beb4fef-7b8f-4fa8-8b4c-75147450ce02"}}},{"cell_type":"code","source":["# For 7 day rolling averages\ndf['trade_revenue_real_rolling_7day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_real'].rolling(7, min_periods=1).mean().reset_index(drop=True)\ndf['trade_revenue_usd_rolling_7day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_usd'].rolling(7, min_periods=1).mean().reset_index(drop=True)\n\n# For 30 day rolling averages\ndf['trade_revenue_real_rolling_30day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_real'].rolling(30, min_periods=1).mean().reset_index(drop=True)\ndf['trade_revenue_usd_rolling_30day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_usd'].rolling(30, min_periods=1).mean().reset_index(drop=True)\ndf"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"5fb7205f-c2f8-4a49-b724-6129a472b5e4"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[41]:
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[41]:
"]}},{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymboltrade_counttargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usdbntpricesurplus_tknsurplus_bntsurplus_usdsurplus_perctrade_revenue_real_rolling_7day_avgtrade_revenue_usd_rolling_7day_avgtrade_revenue_real_rolling_30day_avgtrade_revenue_usd_rolling_30day_avg
02022-04-20dai39.2053429.1407940.0184480.0183182.296663-9.221023e+00-4.026950e+00-9.248547e+00-0.0000540.0184480.0183180.0184480.018318
12022-04-21bnt32.9879966.9919110.0059880.0140122.284838-2.999949e+00-2.999949e+00-6.854397e+00-0.0000140.0059880.0140120.0059880.014012
22022-04-22bnt11.3429143.0215570.0026910.0060552.231059-4.806735e+00-4.806735e+00-1.072411e+01-0.0000110.0026910.0060550.0026910.006055
32022-04-22dai2618.054738601.5260211.2385871.2054632.231059-6.283286e+02-2.744009e+02-6.122045e+02-0.0018281.2385871.2054631.2385871.205463
42022-04-23bnt11136.4753382511.6104972.2775065.0332882.227919-6.742615e+00-6.742615e+00-1.502200e+01-0.0000162.2775065.0332882.2775065.033288
...................................................
17602022-07-30usdt38048.8967058006.23911981.30198580.8711000.564534-1.262901e+06-2.190509e+06-1.236617e+06-0.40716081.30198580.87110081.30198580.871100
17612022-07-30vbnt1249419.82517123492.709503752.586170357.7569980.564534-1.939145e+05-1.594473e+05-9.001343e+04-0.056916752.586170357.756998752.586170357.756998
17622022-07-30wbtc243.11491874919.1347570.006242150.1354060.564534-1.726202e+02-7.197113e+06-4.063016e+06-0.4785640.006242150.1354060.006242150.135406
17632022-07-30woo47633485.015403143133.8950431269.509049286.8414730.564534-2.137629e+06-8.456805e+05-4.774155e+05-0.2676041269.509049286.8414731269.509049286.841473
17642022-07-30yfi170.7823099615.9333650.00156819.2704080.564534-1.200985e+00-2.402642e+04-1.356373e+04-0.2022760.00156819.2704080.00156819.270408
\n

1765 rows × 16 columns

\n
","textData":null,"removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"htmlSandbox","arguments":{}}},"output_type":"display_data","data":{"text/html":["
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymboltrade_counttargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usdbntpricesurplus_tknsurplus_bntsurplus_usdsurplus_perctrade_revenue_real_rolling_7day_avgtrade_revenue_usd_rolling_7day_avgtrade_revenue_real_rolling_30day_avgtrade_revenue_usd_rolling_30day_avg
02022-04-20dai39.2053429.1407940.0184480.0183182.296663-9.221023e+00-4.026950e+00-9.248547e+00-0.0000540.0184480.0183180.0184480.018318
12022-04-21bnt32.9879966.9919110.0059880.0140122.284838-2.999949e+00-2.999949e+00-6.854397e+00-0.0000140.0059880.0140120.0059880.014012
22022-04-22bnt11.3429143.0215570.0026910.0060552.231059-4.806735e+00-4.806735e+00-1.072411e+01-0.0000110.0026910.0060550.0026910.006055
32022-04-22dai2618.054738601.5260211.2385871.2054632.231059-6.283286e+02-2.744009e+02-6.122045e+02-0.0018281.2385871.2054631.2385871.205463
42022-04-23bnt11136.4753382511.6104972.2775065.0332882.227919-6.742615e+00-6.742615e+00-1.502200e+01-0.0000162.2775065.0332882.2775065.033288
...................................................
17602022-07-30usdt38048.8967058006.23911981.30198580.8711000.564534-1.262901e+06-2.190509e+06-1.236617e+06-0.40716081.30198580.87110081.30198580.871100
17612022-07-30vbnt1249419.82517123492.709503752.586170357.7569980.564534-1.939145e+05-1.594473e+05-9.001343e+04-0.056916752.586170357.756998752.586170357.756998
17622022-07-30wbtc243.11491874919.1347570.006242150.1354060.564534-1.726202e+02-7.197113e+06-4.063016e+06-0.4785640.006242150.1354060.006242150.135406
17632022-07-30woo47633485.015403143133.8950431269.509049286.8414730.564534-2.137629e+06-8.456805e+05-4.774155e+05-0.2676041269.509049286.8414731269.509049286.841473
17642022-07-30yfi170.7823099615.9333650.00156819.2704080.564534-1.200985e+00-2.402642e+04-1.356373e+04-0.2022760.00156819.2704080.00156819.270408
\n

1765 rows × 16 columns

\n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["[](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876/1#current-situation-1)Current situation\n-----------------------------------------------------------------------------------------------------------------------------------------------\n\nLet's look at how that translates to the current state of play for ETH.\n\nThere is 8807 ETH on the trading curve right now:\n\n![image](https://aws1.discourse-cdn.com/standard20/uploads/bancordao/original/2X/7/7fc569f4bf2f391578b84463ea82683fd815b20d.png)"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"bebfedd4-6b11-4eef-94a1-3d6b8c65730d"}}},{"cell_type":"markdown","source":["Based on the above, set `oncurve_eth` and `token_symbol` constants:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"d35d3dd9-3023-4049-b57e-cf27e0fbbcb5"}}},{"cell_type":"code","source":["oncurve_eth = 8800\ntoken_symbol = 'eth'"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"7de6b8cb-94fd-4a7e-9586-15156233f240"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Get the latest date in the dataset:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"ea01a7ac-32a5-4422-afc1-93ab9c723cc1"}}},{"cell_type":"code","source":["latest_date = df.sort_values('date', ascending=False)['date'].values[0]\nlatest_date"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"e8aba016-3643-403c-a470-81b2324264e3"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[76]: '2022-07-30'
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[76]: '2022-07-30'
"]}}],"execution_count":0},{"cell_type":"markdown","source":["30 day rolling average ETH fees are:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"aa51a4c9-ad48-49a0-aaba-2c626a33d6bf"}}},{"cell_type":"code","source":["eth_rolling_30day_real_avg = df[(df['date']==latest_date) & (df['targetSymbol']==token_symbol)]['trade_revenue_real_rolling_30day_avg'].values[0]\n\neth_rolling_30day_usd_avg = df[(df['date']==latest_date) & (df['targetSymbol']==token_symbol)]['trade_revenue_usd_rolling_30day_avg'].values[0]\n\nprint(f'\\033[1m 30 day rolling avg: {eth_rolling_30day_real_avg} (real/day) \\033[1m')\nprint(f'\\033[1m 30 day rolling avg: {eth_rolling_30day_usd_avg} (usd/day) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"52eb8924-e303-4cc7-a5c2-d8655b246d92"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
30 day rolling avg: 0.3133156103817142 (real/day) \n 30 day rolling avg: 533.9804979857236 (usd/day) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
30 day rolling avg: 0.3133156103817142 (real/day) \n 30 day rolling avg: 533.9804979857236 (usd/day) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Estimated 7 day ETH fees are:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"7f621e21-6cea-42b0-b991-fa8ecc906c3a"}}},{"cell_type":"code","source":["estimated_7day_eth_fees_real = eth_rolling_30day_real_avg * 7\nestimated_7day_eth_fees_usd = eth_rolling_30day_usd_avg * 7\n\nprint(f'\\033[1m Estimated 7 day ETH fees: {estimated_7day_eth_fees_real} (real) \\033[1m')\nprint(f'\\033[1m Estimated 7 day ETH fees: {estimated_7day_eth_fees_usd} (usd) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"2a835fe0-7fea-402a-b811-f55b1a87c911"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Estimated 7 day ETH fees: 2.193209272671999 (real) \n Estimated 7 day ETH fees: 3737.863485900065 (usd) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Estimated 7 day ETH fees: 2.193209272671999 (real) \n Estimated 7 day ETH fees: 3737.863485900065 (usd) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Comparing the above to prior naive estimate (limited data):\n\n![image](https://aws1.discourse-cdn.com/standard20/uploads/bancordao/original/2X/3/3b2d3eb390e5564193283285bad0d7a4a333cf53.png)\n\nIf we annualize the estimated fees we get:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":true,"inputWidgets":{},"nuid":"386e63bd-882d-4834-9477-406569bf005c"}}},{"cell_type":"code","source":["eth_annualized = 52 * estimated_7day_eth_fees_real\neth_annualized_percent_of_oncurve = (eth_annualized / oncurve_eth) * 100\n\nprint(f'\\033[1m ETH Fees annualized: {eth_annualized} (real) \\033[1m')\nprint(f'\\033[1m ETH Fees annualized as a percent of ETH on curve: {eth_annualized_percent_of_oncurve} (%) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"d87952a5-06e6-4320-bf8e-c32471167ee2"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
ETH Fees annualized: 114.04688217894396 (real) \n ETH Fees annualized as a percent of ETH on curve: 1.2959872974879996 (%) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
ETH Fees annualized: 114.04688217894396 (real) \n ETH Fees annualized as a percent of ETH on curve: 1.2959872974879996 (%) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Setting aside mechanics like leveraged vortexing for the moment, the baseline is that the protocol will break even on ETH if IL on 8800 ETH is 1.29% or less, relative to BNT."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"ea3f9edb-7889-4071-843e-9964859675f4"}}},{"cell_type":"markdown","source":["That means that if ETH increases by just 50% relative to BNT over a year, all else equal, the protocol loses ETH and the deficit increases."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"468ba4f4-545d-4e15-b70d-9f2e160e4de6"}}},{"cell_type":"markdown","source":["[](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876/1#proposed-2)Proposed\n-----------------------------------------------------------------------------------------------------------------------------\n\nLet's limit the ETH pool size to 520x the 7 day fees, i.e. an APR of 10% all else equal.\n\nThis gives us a limited trading liquidity of:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"937e79eb-d82c-4f93-b14f-ee7d3999d0c7"}}},{"cell_type":"code","source":["limited_pool_size_520 = int(round(520 * estimated_7day_eth_fees_real, 0))\nprint(f'\\033[1m {limited_pool_size_520} (ETH) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"1f206032-7c22-4575-b5a2-503774458605"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
1140 (ETH) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
1140 (ETH) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["If we assume that the fees generated on the limited trading liquidity are not significantly less than the fees on the current on-curve liquidity then this gives us an APR of 10% on ETH."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"cbc3f824-2a8e-40b6-bf78-1bf6b32ad50b"}}},{"cell_type":"markdown","source":["We spent all of bancor v2.1 with caps on trading pools showing that 10% APR is sustainable for many TKN, but the reality of how many fees we would miss on a 2400 ETH pool vs. an 8800 ETH pool is something that we would have to measure and monitor.\n\nContinuing with the assumption of comparable fees with the limited pool...\n\nThis now means that a 2x in ETH vs. BNT costs the protocol 240 ETH instead of 880 ETH. That is to say, over 1 year we can expect the protocol to break even on the 10% APR even if ETH moons 2x relative to BNT.\n\nWe also have 6400 ETH freed up to generate fees. Native staking on ETH yields about 3%.\n\n6400 ETH x 0.03 = 192 ETH ~= 200 ETH\n\nAssuming we do the most conservative thing other than doing nothing at all, use the native ETH staking mechanism, we now have a budget of 200 ETH from staking 6400 ETH and 240 ETH from a 10% APR on 2400 ETH to cover the IL on 2400 ETH.\n\nWith 440 ETH we can cover up to ~18% IL on 2400 ETH which allows ETH to annually moon ~4x relative to BNT\n\nClearly a 4x annual moon is a significantly larger safety margin than a 1.5x annual moon.\n\nAll we need to do is:\n\n- Limit pool to 520x the 7 day fees to give a minimum 10% APR\n- Move the off-curve liquidity into a conservative yield generating mechanism offering 3% e.g. native staking\n\nGenerally we could and should apply this 520x cap to all TKN on the platform as a rule of thumb and then backfill more sophisticated analytics over time.\n\nFor many TKN we might run into a situation where the 7 day fees are too small to support trading of any size, so we can set a minimum, which right now can be somewhat arbitrary like 100k BNT.\n\n[](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876/1#voting-3)Voting\n-------------------------------------------------------------------------------------------------------------------------\n\nYES: Cap all on-curve TKN trading liquidity to 520x their rolling 7 day fees\n\n- Frequency and level of automation of the cap management TBD and improved over time\n- Commit to alternative revenue generation for the off-curve capital\n- Commit to monitoring and ongoing analysis that is more sophisticated than what is presented above\n\nNO: Continue to attempt to cover double digit annual % IL with single digit % annual TKN fees"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"2f9033a8-e93b-4f49-8dad-ff4e62c0e100"}}}],"metadata":{"application/vnd.databricks.v1+notebook":{"notebookName":"limit_tradingliquidity_proposal_study","dashboards":[],"notebookMetadata":{"pythonIndentUnit":4},"language":"python","widgets":{},"notebookOrigID":1744197420073319}},"nbformat":4,"nbformat_minor":0} +{"cells":[{"cell_type":"markdown","source":["Welcome to the Bancor Governance Forum. In this forum, the BancorDAO (Decentralized Autonomous Organization) proposes and discusses token Whitelistings, Trading liquidity limits, Fee changes, Bancor Improvement Proposals, and others.\n\nPlease head on to the [Information and Templates](https://gov.bancor.network/c/information-and-templates/16) category for more information on the DAO process.\n\nVoting happens on the [BancorDAO Snapshot Page](https://vote.bancor.network/)."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"681b934a-2625-4070-9b66-ba81e5913b98"}}},{"cell_type":"markdown","source":["[Proposal: Limit on-curve liquidity to max(520 x 7 day fees, 100k BNT)](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876)\n=============================================================================================================================================================================\n\n[LEVEL 1 Under Review](https://gov.bancor.network/c/level-1-under-review/14)\n\n\n![](https://dub2.discourse-cdn.com/standard20/user_avatar/gov.bancor.network/thedavidmeister/90/129_2.png)\n\n[thedavidmeister](https://gov.bancor.network/u/thedavidmeister)"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"4efeefaa-431b-4ede-b2d6-9f53729739b3"}}},{"cell_type":"markdown","source":["TLDR:\n\n- We pay IL on 100% of TKN available for trading\n- We get diminishing returns on new fees per unit of trading liquidity\n- If IL > fees then the protocol dies (and is already in crisis due to existing deficits)\n- B3 has the unique ability to set a cap on trading liquidity\n- Taking capital off-curve has a dual benefit of limiting IL exposure AND making it available to other revenue opportunities (native staking etc.)\n- Currently the protocol deficit increases when ETH price increases by ~1.5x annually relative to BNT, making some assumptions, we could lift this to the protocol being profitable up to a ~4x ETH annual moon relative to BNT by limiting the on-curve trading liquidity to 520x 7 day trading fees + implementing some modest staking model (or similar)\n- We should set a simple cap based on the data we have and commission a more sophisticated model in the near future\n\nProposal:\n\nWhen we look at the IL curve:\n\n![image](https://aws1.discourse-cdn.com/standard20/uploads/bancordao/optimized/2X/e/e0d10c4f716b77cc23de68cb160db8c6e9dc28e1_2_690x387.png)\n\n\nWe see that the losses due to IL are a % of all the capital deployed on the trading curve.\n\nIf TKN moons 2x relative to BNT then the IL is ~10%, a 4x moon has ~20% IL, etc.\n\nMeanwhile there are only so many fees due to trade volume across all of defi and almost all trades through bancor currently are based on arbitrage and aggregators only. That is to say, there is negligible trading being done directly on bancor due to retail etc. as that market is largely monopolized by aggregators and a few platforms that take the lion's share of human traders such as uniswap.\n\nIn considering this proposal, please consider mainly how arb bots and aggregators will respond, not human traders, as the former is 10x+ the latter in terms of protocol fee generation."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"c7149321-2b9a-4cd0-878e-58e5b2367f38"}}},{"cell_type":"markdown","source":["Import Data"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"c318fe9f-fd11-412f-a9b5-67d55e934f7d"}}},{"cell_type":"code","source":["import pandas as pd\n\nfilepath = 'https://bancorml.s3.us-east-2.amazonaws.com/preprocessed_tradingliquidity_vs_deficit-3.csv'\ndf = pd.read_csv(filepath)"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"30b026a9-3151-42ac-be60-50b5be44630f"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Calculate Rolling Average Fee Revenue"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"8beb4fef-7b8f-4fa8-8b4c-75147450ce02"}}},{"cell_type":"code","source":["# For 7 day rolling averages\ndf['trade_revenue_real_rolling_7day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_real'].rolling(7, min_periods=1).mean().reset_index(drop=True)\ndf['trade_revenue_usd_rolling_7day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_usd'].rolling(7, min_periods=1).mean().reset_index(drop=True)\n\n# For 30 day rolling averages\ndf['trade_revenue_real_rolling_30day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_real'].rolling(30, min_periods=1).mean().reset_index(drop=True)\ndf['trade_revenue_usd_rolling_30day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_usd'].rolling(30, min_periods=1).mean().reset_index(drop=True)\ndf"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"5fb7205f-c2f8-4a49-b724-6129a472b5e4"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[20]:
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[20]:
"]}},{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymboltrade_countsourceAmount_realsourceAmount_real_usdtargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usdbntpricesurplus_tknsurplus_bntsurplus_usdsurplus_perctknTradingLiquidity_realbntTradingLiquidity_realspotRatepriceliquidity_realstakedBalance_realpoolTokenSupply_realtrade_revenue_real_rolling_7day_avgtrade_revenue_usd_rolling_7day_avgtrade_revenue_real_rolling_30day_avgtrade_revenue_usd_rolling_30day_avg
02022-04-20dai30.0030009.1762369.2053429.1407940.0184480.0183182.296663-9.221023e+00-4.026950e+00-9.248547e+00-0.0000549.161156e+044.000805e+040.4367142.29001.718604e+051.718697e+051.718697e+050.0184480.0183180.0184480.018318
12022-04-22dai20.202159601.632956618.054738601.5260211.2385871.2054632.231059-6.283286e+02-2.744009e+02-6.122045e+02-0.0018283.202751e+051.404095e+050.4384032.22003.437408e+053.437500e+053.437500e+051.2385871.2054631.2385871.205463
22022-04-25eth11628.1036213614.3900391.2177903649.3991440.0024407.3134252.190786-1.550104e-01-2.076344e+02-4.548826e+02-0.0013371.039690e+021.403459e+051349.8825102.22001.169769e+021.159120e+021.159120e+020.0024407.3134250.0024407.313425
32022-04-26dai37525.70364815846.22945316368.80860315957.23798432.80322431.9784332.214641-2.101020e+04-9.493450e+03-2.102459e+04-0.0305596.197640e+052.918862e+050.4709632.07006.828865e+056.875000e+056.874721e+0532.80322431.97843332.80322431.978433
42022-04-26eth12403.6148955071.6274291.8012575103.5023300.00361010.2274602.2146411.366771e+001.827579e+034.047433e+030.0057182.187025e+022.888900e+051320.9269332.07002.388591e+022.390141e+022.390098e+020.00361010.2274600.00361010.227460
..............................................................................
5722022-07-13ren31768.6301431315.90653711368.2421051331.75549322.7820482.6688490.439336-2.925943e+04-7.788998e+03-3.421986e+03-0.0741993.650763e+059.888587e+040.2708640.45183.654831e+053.943198e+053.938701e+0522.7820482.66884922.7820482.668849
5732022-07-13usdc1112820.58231539171.48915740310.19446440287.308795407.173676406.9425080.439336-1.319153e+06-2.915052e+06-1.280687e+06-0.5382419.223219e+052.044195e+062.2163570.45181.112240e+062.450837e+062.447838e+06407.173676406.942508407.173676406.942508
5742022-07-13vbnt1317417.39600417347.15745949549.09584017188.881593754.554759261.7596180.439336-5.969363e+04-4.785695e+04-2.102528e+04-0.0152821.550398e+061.250088e+060.8063020.45183.851069e+063.906057e+063.889583e+06754.554759261.759618754.554759261.759618
5752022-07-13wbtc877132.73606540043.3588912.07596339984.6993610.00416080.1289500.439336-1.634478e+02-7.133886e+06-3.134172e+06-0.4837491.746781e+027.624048e+0643646.2708670.45181.746781e+023.378767e+023.378000e+020.00416080.1289500.00416080.128950
5762022-07-13zcn32857.3593031643.0433658442.3908581667.28043942.4240758.3782940.439336-5.465076e+05-2.432456e+05-1.068665e+05-0.6552152.875819e+051.280001e+050.4450910.45182.875819e+058.340895e+058.329419e+0542.4240758.37829442.4240758.378294
\n

577 rows × 25 columns

\n
","textData":null,"removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"htmlSandbox","arguments":{}}},"output_type":"display_data","data":{"text/html":["
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymboltrade_countsourceAmount_realsourceAmount_real_usdtargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usdbntpricesurplus_tknsurplus_bntsurplus_usdsurplus_perctknTradingLiquidity_realbntTradingLiquidity_realspotRatepriceliquidity_realstakedBalance_realpoolTokenSupply_realtrade_revenue_real_rolling_7day_avgtrade_revenue_usd_rolling_7day_avgtrade_revenue_real_rolling_30day_avgtrade_revenue_usd_rolling_30day_avg
02022-04-20dai30.0030009.1762369.2053429.1407940.0184480.0183182.296663-9.221023e+00-4.026950e+00-9.248547e+00-0.0000549.161156e+044.000805e+040.4367142.29001.718604e+051.718697e+051.718697e+050.0184480.0183180.0184480.018318
12022-04-22dai20.202159601.632956618.054738601.5260211.2385871.2054632.231059-6.283286e+02-2.744009e+02-6.122045e+02-0.0018283.202751e+051.404095e+050.4384032.22003.437408e+053.437500e+053.437500e+051.2385871.2054631.2385871.205463
22022-04-25eth11628.1036213614.3900391.2177903649.3991440.0024407.3134252.190786-1.550104e-01-2.076344e+02-4.548826e+02-0.0013371.039690e+021.403459e+051349.8825102.22001.169769e+021.159120e+021.159120e+020.0024407.3134250.0024407.313425
32022-04-26dai37525.70364815846.22945316368.80860315957.23798432.80322431.9784332.214641-2.101020e+04-9.493450e+03-2.102459e+04-0.0305596.197640e+052.918862e+050.4709632.07006.828865e+056.875000e+056.874721e+0532.80322431.97843332.80322431.978433
42022-04-26eth12403.6148955071.6274291.8012575103.5023300.00361010.2274602.2146411.366771e+001.827579e+034.047433e+030.0057182.187025e+022.888900e+051320.9269332.07002.388591e+022.390141e+022.390098e+020.00361010.2274600.00361010.227460
..............................................................................
5722022-07-13ren31768.6301431315.90653711368.2421051331.75549322.7820482.6688490.439336-2.925943e+04-7.788998e+03-3.421986e+03-0.0741993.650763e+059.888587e+040.2708640.45183.654831e+053.943198e+053.938701e+0522.7820482.66884922.7820482.668849
5732022-07-13usdc1112820.58231539171.48915740310.19446440287.308795407.173676406.9425080.439336-1.319153e+06-2.915052e+06-1.280687e+06-0.5382419.223219e+052.044195e+062.2163570.45181.112240e+062.450837e+062.447838e+06407.173676406.942508407.173676406.942508
5742022-07-13vbnt1317417.39600417347.15745949549.09584017188.881593754.554759261.7596180.439336-5.969363e+04-4.785695e+04-2.102528e+04-0.0152821.550398e+061.250088e+060.8063020.45183.851069e+063.906057e+063.889583e+06754.554759261.759618754.554759261.759618
5752022-07-13wbtc877132.73606540043.3588912.07596339984.6993610.00416080.1289500.439336-1.634478e+02-7.133886e+06-3.134172e+06-0.4837491.746781e+027.624048e+0643646.2708670.45181.746781e+023.378767e+023.378000e+020.00416080.1289500.00416080.128950
5762022-07-13zcn32857.3593031643.0433658442.3908581667.28043942.4240758.3782940.439336-5.465076e+05-2.432456e+05-1.068665e+05-0.6552152.875819e+051.280001e+050.4450910.45182.875819e+058.340895e+058.329419e+0542.4240758.37829442.4240758.378294
\n

577 rows × 25 columns

\n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["[](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876/1#current-situation-1)Current situation\n-----------------------------------------------------------------------------------------------------------------------------------------------\n\nLet's look at how that translates to the current state of play for ETH.\n\nThere is 8807 ETH on the trading curve right now:\n\n![image](https://aws1.discourse-cdn.com/standard20/uploads/bancordao/original/2X/7/7fc569f4bf2f391578b84463ea82683fd815b20d.png)"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"bebfedd4-6b11-4eef-94a1-3d6b8c65730d"}}},{"cell_type":"markdown","source":["Get the latest date in the dataset:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"ea01a7ac-32a5-4422-afc1-93ab9c723cc1"}}},{"cell_type":"code","source":["latest_date = df.sort_values('date', ascending=False)['date'].values[0]\nlatest_date"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"e8aba016-3643-403c-a470-81b2324264e3"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[21]: '2022-07-13'
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[21]: '2022-07-13'
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Based on the above, set `oncurve_eth` and `token_symbol` constants:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"468ca5b7-0e4d-4765-8839-f89d49062352"}}},{"cell_type":"code","source":["token_symbol = 'eth'"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"a14c9306-d442-44b5-8ce2-79bab7878ef5"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
"]}}],"execution_count":0},{"cell_type":"code","source":["oncurve_eth = int(round(df[(df['date']==latest_date) & (df['targetSymbol']==token_symbol)]['tknTradingLiquidity_real'].values[0]))\noncurve_eth"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"99a3c628-d264-4ea7-9e2d-617f2d4b6d68"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[23]: 9724
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[23]: 9724
"]}}],"execution_count":0},{"cell_type":"markdown","source":["30 day rolling average ETH fees are:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"aa51a4c9-ad48-49a0-aaba-2c626a33d6bf"}}},{"cell_type":"code","source":["eth_rolling_30day_real_avg = df[(df['date']==latest_date) & (df['targetSymbol']==token_symbol)]['trade_revenue_real_rolling_30day_avg'].values[0]\n\neth_rolling_30day_usd_avg = df[(df['date']==latest_date) & (df['targetSymbol']==token_symbol)]['trade_revenue_usd_rolling_30day_avg'].values[0]\n\nprint(f'\\033[1m 30 day rolling avg: {eth_rolling_30day_real_avg} (real/day) \\033[1m \\n')\nprint(f'\\033[1m 30 day rolling avg: {eth_rolling_30day_usd_avg} (usd/day) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"52eb8924-e303-4cc7-a5c2-d8655b246d92"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
30 day rolling avg: 0.5032507641136772 (real/day) \n 30 day rolling avg: 532.0927496151701 (usd/day) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
30 day rolling avg: 0.5032507641136772 (real/day) \n 30 day rolling avg: 532.0927496151701 (usd/day) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Estimated 7 day ETH fees are:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"7f621e21-6cea-42b0-b991-fa8ecc906c3a"}}},{"cell_type":"code","source":["estimated_7day_eth_fees_real = eth_rolling_30day_real_avg * 7\nestimated_7day_eth_fees_usd = eth_rolling_30day_usd_avg * 7\n\nprint(f'\\033[1m Estimated 7 day ETH fees: {estimated_7day_eth_fees_real} (real) \\033[1m \\n')\nprint(f'\\033[1m Estimated 7 day ETH fees: {estimated_7day_eth_fees_usd} (usd) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"2a835fe0-7fea-402a-b811-f55b1a87c911"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Estimated 7 day ETH fees: 3.5227553487957404 (real) \n Estimated 7 day ETH fees: 3724.649247306191 (usd) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Estimated 7 day ETH fees: 3.5227553487957404 (real) \n Estimated 7 day ETH fees: 3724.649247306191 (usd) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Comparing the above to prior naive estimate (limited data):\n\n![image](https://aws1.discourse-cdn.com/standard20/uploads/bancordao/original/2X/3/3b2d3eb390e5564193283285bad0d7a4a333cf53.png)\n\nIf we annualize the estimated fees we get:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":true,"inputWidgets":{},"nuid":"386e63bd-882d-4834-9477-406569bf005c"}}},{"cell_type":"code","source":["eth_annualized = round(52 * estimated_7day_eth_fees_real, 2)\neth_annualized_percent_of_oncurve = round((eth_annualized / oncurve_eth) * 100, 2)\n\nprint(f'\\033[1m ETH Fees annualized: {eth_annualized} (real) \\033[1m \\n')\nprint(f'\\033[1m ETH Fees annualized as a percent of ETH on curve: {eth_annualized_percent_of_oncurve} (%) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"d87952a5-06e6-4320-bf8e-c32471167ee2"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
ETH Fees annualized: 183.18 (real) \n ETH Fees annualized as a percent of ETH on curve: 1.88 (%) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
ETH Fees annualized: 183.18 (real) \n ETH Fees annualized as a percent of ETH on curve: 1.88 (%) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Setting aside mechanics like leveraged vortexing for the moment, the baseline is that the protocol will break even on ETH if IL on 8800 ETH is 1.29% or less, relative to BNT."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"ea3f9edb-7889-4071-843e-9964859675f4"}}},{"cell_type":"markdown","source":["That means that if ETH increases by just 50% relative to BNT over a year, all else equal, the protocol loses ETH and the deficit increases."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"468ba4f4-545d-4e15-b70d-9f2e160e4de6"}}},{"cell_type":"markdown","source":["[](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876/1#proposed-2)Proposed\n-----------------------------------------------------------------------------------------------------------------------------\n\nLet's limit the ETH pool size to 520x the 7 day fees, i.e. an APR of 10% all else equal.\n\nThis gives us a limited trading liquidity of:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"937e79eb-d82c-4f93-b14f-ee7d3999d0c7"}}},{"cell_type":"code","source":["limited_pool_size_520 = int(round(520 * estimated_7day_eth_fees_real, 0))\nprint(f'\\033[1m {limited_pool_size_520} (ETH) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"1f206032-7c22-4575-b5a2-503774458605"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
1832 (ETH) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
1832 (ETH) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["If we assume that the fees generated on the limited trading liquidity are not significantly less than the fees on the current on-curve liquidity then this gives us an APR of 10% on ETH."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"cbc3f824-2a8e-40b6-bf78-1bf6b32ad50b"}}},{"cell_type":"markdown","source":["### TODO: Below not yet completed."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"3cd706e1-f95a-4c54-93a6-bd930a3d61fa"}}},{"cell_type":"markdown","source":["We spent all of bancor v2.1 with caps on trading pools showing that 10% APR is sustainable for many TKN, but the reality of how many fees we would miss on a 2400 ETH pool vs. an 8800 ETH pool is something that we would have to measure and monitor.\n\nContinuing with the assumption of comparable fees with the limited pool...\n\nThis now means that a 2x in ETH vs. BNT costs the protocol 240 ETH instead of 880 ETH. That is to say, over 1 year we can expect the protocol to break even on the 10% APR even if ETH moons 2x relative to BNT.\n\nWe also have 6400 ETH freed up to generate fees. Native staking on ETH yields about 3%.\n\n6400 ETH x 0.03 = 192 ETH ~= 200 ETH\n\nAssuming we do the most conservative thing other than doing nothing at all, use the native ETH staking mechanism, we now have a budget of 200 ETH from staking 6400 ETH and 240 ETH from a 10% APR on 2400 ETH to cover the IL on 2400 ETH.\n\nWith 440 ETH we can cover up to ~18% IL on 2400 ETH which allows ETH to annually moon ~4x relative to BNT\n\nClearly a 4x annual moon is a significantly larger safety margin than a 1.5x annual moon.\n\nAll we need to do is:\n\n- Limit pool to 520x the 7 day fees to give a minimum 10% APR\n- Move the off-curve liquidity into a conservative yield generating mechanism offering 3% e.g. native staking\n\nGenerally we could and should apply this 520x cap to all TKN on the platform as a rule of thumb and then backfill more sophisticated analytics over time.\n\nFor many TKN we might run into a situation where the 7 day fees are too small to support trading of any size, so we can set a minimum, which right now can be somewhat arbitrary like 100k BNT.\n\n[](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876/1#voting-3)Voting\n-------------------------------------------------------------------------------------------------------------------------\n\nYES: Cap all on-curve TKN trading liquidity to 520x their rolling 7 day fees\n\n- Frequency and level of automation of the cap management TBD and improved over time\n- Commit to alternative revenue generation for the off-curve capital\n- Commit to monitoring and ongoing analysis that is more sophisticated than what is presented above\n\nNO: Continue to attempt to cover double digit annual % IL with single digit % annual TKN fees"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"2f9033a8-e93b-4f49-8dad-ff4e62c0e100"}}}],"metadata":{"application/vnd.databricks.v1+notebook":{"notebookName":"limit_tradingliquidity_proposal_study","dashboards":[],"notebookMetadata":{"pythonIndentUnit":4},"language":"python","widgets":{},"notebookOrigID":1744197420073319}},"nbformat":4,"nbformat_minor":0} From c7de439927a0d4050377a11d71478c425eabeeab Mon Sep 17 00:00:00 2001 From: mikewcasale Date: Mon, 1 Aug 2022 06:21:02 -0700 Subject: [PATCH 05/16] Update limit_tradingliquidity_proposal_study.ipynb --- examples/studies/limit_tradingliquidity_proposal_study.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/studies/limit_tradingliquidity_proposal_study.ipynb b/examples/studies/limit_tradingliquidity_proposal_study.ipynb index d1fc07b9..a5cfb649 100644 --- a/examples/studies/limit_tradingliquidity_proposal_study.ipynb +++ b/examples/studies/limit_tradingliquidity_proposal_study.ipynb @@ -1 +1 @@ -{"cells":[{"cell_type":"markdown","source":["Welcome to the Bancor Governance Forum. In this forum, the BancorDAO (Decentralized Autonomous Organization) proposes and discusses token Whitelistings, Trading liquidity limits, Fee changes, Bancor Improvement Proposals, and others.\n\nPlease head on to the [Information and Templates](https://gov.bancor.network/c/information-and-templates/16) category for more information on the DAO process.\n\nVoting happens on the [BancorDAO Snapshot Page](https://vote.bancor.network/)."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"681b934a-2625-4070-9b66-ba81e5913b98"}}},{"cell_type":"markdown","source":["[Proposal: Limit on-curve liquidity to max(520 x 7 day fees, 100k BNT)](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876)\n=============================================================================================================================================================================\n\n[LEVEL 1 Under Review](https://gov.bancor.network/c/level-1-under-review/14)\n\n\n![](https://dub2.discourse-cdn.com/standard20/user_avatar/gov.bancor.network/thedavidmeister/90/129_2.png)\n\n[thedavidmeister](https://gov.bancor.network/u/thedavidmeister)"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"4efeefaa-431b-4ede-b2d6-9f53729739b3"}}},{"cell_type":"markdown","source":["TLDR:\n\n- We pay IL on 100% of TKN available for trading\n- We get diminishing returns on new fees per unit of trading liquidity\n- If IL > fees then the protocol dies (and is already in crisis due to existing deficits)\n- B3 has the unique ability to set a cap on trading liquidity\n- Taking capital off-curve has a dual benefit of limiting IL exposure AND making it available to other revenue opportunities (native staking etc.)\n- Currently the protocol deficit increases when ETH price increases by ~1.5x annually relative to BNT, making some assumptions, we could lift this to the protocol being profitable up to a ~4x ETH annual moon relative to BNT by limiting the on-curve trading liquidity to 520x 7 day trading fees + implementing some modest staking model (or similar)\n- We should set a simple cap based on the data we have and commission a more sophisticated model in the near future\n\nProposal:\n\nWhen we look at the IL curve:\n\n![image](https://aws1.discourse-cdn.com/standard20/uploads/bancordao/optimized/2X/e/e0d10c4f716b77cc23de68cb160db8c6e9dc28e1_2_690x387.png)\n\n\nWe see that the losses due to IL are a % of all the capital deployed on the trading curve.\n\nIf TKN moons 2x relative to BNT then the IL is ~10%, a 4x moon has ~20% IL, etc.\n\nMeanwhile there are only so many fees due to trade volume across all of defi and almost all trades through bancor currently are based on arbitrage and aggregators only. That is to say, there is negligible trading being done directly on bancor due to retail etc. as that market is largely monopolized by aggregators and a few platforms that take the lion's share of human traders such as uniswap.\n\nIn considering this proposal, please consider mainly how arb bots and aggregators will respond, not human traders, as the former is 10x+ the latter in terms of protocol fee generation."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"c7149321-2b9a-4cd0-878e-58e5b2367f38"}}},{"cell_type":"markdown","source":["Import Data"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"c318fe9f-fd11-412f-a9b5-67d55e934f7d"}}},{"cell_type":"code","source":["import pandas as pd\n\nfilepath = 'https://bancorml.s3.us-east-2.amazonaws.com/preprocessed_tradingliquidity_vs_deficit-3.csv'\ndf = pd.read_csv(filepath)"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"30b026a9-3151-42ac-be60-50b5be44630f"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Calculate Rolling Average Fee Revenue"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"8beb4fef-7b8f-4fa8-8b4c-75147450ce02"}}},{"cell_type":"code","source":["# For 7 day rolling averages\ndf['trade_revenue_real_rolling_7day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_real'].rolling(7, min_periods=1).mean().reset_index(drop=True)\ndf['trade_revenue_usd_rolling_7day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_usd'].rolling(7, min_periods=1).mean().reset_index(drop=True)\n\n# For 30 day rolling averages\ndf['trade_revenue_real_rolling_30day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_real'].rolling(30, min_periods=1).mean().reset_index(drop=True)\ndf['trade_revenue_usd_rolling_30day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_usd'].rolling(30, min_periods=1).mean().reset_index(drop=True)\ndf"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"5fb7205f-c2f8-4a49-b724-6129a472b5e4"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[20]:
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[20]:
"]}},{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymboltrade_countsourceAmount_realsourceAmount_real_usdtargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usdbntpricesurplus_tknsurplus_bntsurplus_usdsurplus_perctknTradingLiquidity_realbntTradingLiquidity_realspotRatepriceliquidity_realstakedBalance_realpoolTokenSupply_realtrade_revenue_real_rolling_7day_avgtrade_revenue_usd_rolling_7day_avgtrade_revenue_real_rolling_30day_avgtrade_revenue_usd_rolling_30day_avg
02022-04-20dai30.0030009.1762369.2053429.1407940.0184480.0183182.296663-9.221023e+00-4.026950e+00-9.248547e+00-0.0000549.161156e+044.000805e+040.4367142.29001.718604e+051.718697e+051.718697e+050.0184480.0183180.0184480.018318
12022-04-22dai20.202159601.632956618.054738601.5260211.2385871.2054632.231059-6.283286e+02-2.744009e+02-6.122045e+02-0.0018283.202751e+051.404095e+050.4384032.22003.437408e+053.437500e+053.437500e+051.2385871.2054631.2385871.205463
22022-04-25eth11628.1036213614.3900391.2177903649.3991440.0024407.3134252.190786-1.550104e-01-2.076344e+02-4.548826e+02-0.0013371.039690e+021.403459e+051349.8825102.22001.169769e+021.159120e+021.159120e+020.0024407.3134250.0024407.313425
32022-04-26dai37525.70364815846.22945316368.80860315957.23798432.80322431.9784332.214641-2.101020e+04-9.493450e+03-2.102459e+04-0.0305596.197640e+052.918862e+050.4709632.07006.828865e+056.875000e+056.874721e+0532.80322431.97843332.80322431.978433
42022-04-26eth12403.6148955071.6274291.8012575103.5023300.00361010.2274602.2146411.366771e+001.827579e+034.047433e+030.0057182.187025e+022.888900e+051320.9269332.07002.388591e+022.390141e+022.390098e+020.00361010.2274600.00361010.227460
..............................................................................
5722022-07-13ren31768.6301431315.90653711368.2421051331.75549322.7820482.6688490.439336-2.925943e+04-7.788998e+03-3.421986e+03-0.0741993.650763e+059.888587e+040.2708640.45183.654831e+053.943198e+053.938701e+0522.7820482.66884922.7820482.668849
5732022-07-13usdc1112820.58231539171.48915740310.19446440287.308795407.173676406.9425080.439336-1.319153e+06-2.915052e+06-1.280687e+06-0.5382419.223219e+052.044195e+062.2163570.45181.112240e+062.450837e+062.447838e+06407.173676406.942508407.173676406.942508
5742022-07-13vbnt1317417.39600417347.15745949549.09584017188.881593754.554759261.7596180.439336-5.969363e+04-4.785695e+04-2.102528e+04-0.0152821.550398e+061.250088e+060.8063020.45183.851069e+063.906057e+063.889583e+06754.554759261.759618754.554759261.759618
5752022-07-13wbtc877132.73606540043.3588912.07596339984.6993610.00416080.1289500.439336-1.634478e+02-7.133886e+06-3.134172e+06-0.4837491.746781e+027.624048e+0643646.2708670.45181.746781e+023.378767e+023.378000e+020.00416080.1289500.00416080.128950
5762022-07-13zcn32857.3593031643.0433658442.3908581667.28043942.4240758.3782940.439336-5.465076e+05-2.432456e+05-1.068665e+05-0.6552152.875819e+051.280001e+050.4450910.45182.875819e+058.340895e+058.329419e+0542.4240758.37829442.4240758.378294
\n

577 rows × 25 columns

\n
","textData":null,"removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"htmlSandbox","arguments":{}}},"output_type":"display_data","data":{"text/html":["
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymboltrade_countsourceAmount_realsourceAmount_real_usdtargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usdbntpricesurplus_tknsurplus_bntsurplus_usdsurplus_perctknTradingLiquidity_realbntTradingLiquidity_realspotRatepriceliquidity_realstakedBalance_realpoolTokenSupply_realtrade_revenue_real_rolling_7day_avgtrade_revenue_usd_rolling_7day_avgtrade_revenue_real_rolling_30day_avgtrade_revenue_usd_rolling_30day_avg
02022-04-20dai30.0030009.1762369.2053429.1407940.0184480.0183182.296663-9.221023e+00-4.026950e+00-9.248547e+00-0.0000549.161156e+044.000805e+040.4367142.29001.718604e+051.718697e+051.718697e+050.0184480.0183180.0184480.018318
12022-04-22dai20.202159601.632956618.054738601.5260211.2385871.2054632.231059-6.283286e+02-2.744009e+02-6.122045e+02-0.0018283.202751e+051.404095e+050.4384032.22003.437408e+053.437500e+053.437500e+051.2385871.2054631.2385871.205463
22022-04-25eth11628.1036213614.3900391.2177903649.3991440.0024407.3134252.190786-1.550104e-01-2.076344e+02-4.548826e+02-0.0013371.039690e+021.403459e+051349.8825102.22001.169769e+021.159120e+021.159120e+020.0024407.3134250.0024407.313425
32022-04-26dai37525.70364815846.22945316368.80860315957.23798432.80322431.9784332.214641-2.101020e+04-9.493450e+03-2.102459e+04-0.0305596.197640e+052.918862e+050.4709632.07006.828865e+056.875000e+056.874721e+0532.80322431.97843332.80322431.978433
42022-04-26eth12403.6148955071.6274291.8012575103.5023300.00361010.2274602.2146411.366771e+001.827579e+034.047433e+030.0057182.187025e+022.888900e+051320.9269332.07002.388591e+022.390141e+022.390098e+020.00361010.2274600.00361010.227460
..............................................................................
5722022-07-13ren31768.6301431315.90653711368.2421051331.75549322.7820482.6688490.439336-2.925943e+04-7.788998e+03-3.421986e+03-0.0741993.650763e+059.888587e+040.2708640.45183.654831e+053.943198e+053.938701e+0522.7820482.66884922.7820482.668849
5732022-07-13usdc1112820.58231539171.48915740310.19446440287.308795407.173676406.9425080.439336-1.319153e+06-2.915052e+06-1.280687e+06-0.5382419.223219e+052.044195e+062.2163570.45181.112240e+062.450837e+062.447838e+06407.173676406.942508407.173676406.942508
5742022-07-13vbnt1317417.39600417347.15745949549.09584017188.881593754.554759261.7596180.439336-5.969363e+04-4.785695e+04-2.102528e+04-0.0152821.550398e+061.250088e+060.8063020.45183.851069e+063.906057e+063.889583e+06754.554759261.759618754.554759261.759618
5752022-07-13wbtc877132.73606540043.3588912.07596339984.6993610.00416080.1289500.439336-1.634478e+02-7.133886e+06-3.134172e+06-0.4837491.746781e+027.624048e+0643646.2708670.45181.746781e+023.378767e+023.378000e+020.00416080.1289500.00416080.128950
5762022-07-13zcn32857.3593031643.0433658442.3908581667.28043942.4240758.3782940.439336-5.465076e+05-2.432456e+05-1.068665e+05-0.6552152.875819e+051.280001e+050.4450910.45182.875819e+058.340895e+058.329419e+0542.4240758.37829442.4240758.378294
\n

577 rows × 25 columns

\n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["[](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876/1#current-situation-1)Current situation\n-----------------------------------------------------------------------------------------------------------------------------------------------\n\nLet's look at how that translates to the current state of play for ETH.\n\nThere is 8807 ETH on the trading curve right now:\n\n![image](https://aws1.discourse-cdn.com/standard20/uploads/bancordao/original/2X/7/7fc569f4bf2f391578b84463ea82683fd815b20d.png)"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"bebfedd4-6b11-4eef-94a1-3d6b8c65730d"}}},{"cell_type":"markdown","source":["Get the latest date in the dataset:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"ea01a7ac-32a5-4422-afc1-93ab9c723cc1"}}},{"cell_type":"code","source":["latest_date = df.sort_values('date', ascending=False)['date'].values[0]\nlatest_date"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"e8aba016-3643-403c-a470-81b2324264e3"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[21]: '2022-07-13'
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[21]: '2022-07-13'
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Based on the above, set `oncurve_eth` and `token_symbol` constants:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"468ca5b7-0e4d-4765-8839-f89d49062352"}}},{"cell_type":"code","source":["token_symbol = 'eth'"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"a14c9306-d442-44b5-8ce2-79bab7878ef5"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
"]}}],"execution_count":0},{"cell_type":"code","source":["oncurve_eth = int(round(df[(df['date']==latest_date) & (df['targetSymbol']==token_symbol)]['tknTradingLiquidity_real'].values[0]))\noncurve_eth"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"99a3c628-d264-4ea7-9e2d-617f2d4b6d68"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[23]: 9724
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[23]: 9724
"]}}],"execution_count":0},{"cell_type":"markdown","source":["30 day rolling average ETH fees are:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"aa51a4c9-ad48-49a0-aaba-2c626a33d6bf"}}},{"cell_type":"code","source":["eth_rolling_30day_real_avg = df[(df['date']==latest_date) & (df['targetSymbol']==token_symbol)]['trade_revenue_real_rolling_30day_avg'].values[0]\n\neth_rolling_30day_usd_avg = df[(df['date']==latest_date) & (df['targetSymbol']==token_symbol)]['trade_revenue_usd_rolling_30day_avg'].values[0]\n\nprint(f'\\033[1m 30 day rolling avg: {eth_rolling_30day_real_avg} (real/day) \\033[1m \\n')\nprint(f'\\033[1m 30 day rolling avg: {eth_rolling_30day_usd_avg} (usd/day) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"52eb8924-e303-4cc7-a5c2-d8655b246d92"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
30 day rolling avg: 0.5032507641136772 (real/day) \n 30 day rolling avg: 532.0927496151701 (usd/day) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
30 day rolling avg: 0.5032507641136772 (real/day) \n 30 day rolling avg: 532.0927496151701 (usd/day) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Estimated 7 day ETH fees are:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"7f621e21-6cea-42b0-b991-fa8ecc906c3a"}}},{"cell_type":"code","source":["estimated_7day_eth_fees_real = eth_rolling_30day_real_avg * 7\nestimated_7day_eth_fees_usd = eth_rolling_30day_usd_avg * 7\n\nprint(f'\\033[1m Estimated 7 day ETH fees: {estimated_7day_eth_fees_real} (real) \\033[1m \\n')\nprint(f'\\033[1m Estimated 7 day ETH fees: {estimated_7day_eth_fees_usd} (usd) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"2a835fe0-7fea-402a-b811-f55b1a87c911"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Estimated 7 day ETH fees: 3.5227553487957404 (real) \n Estimated 7 day ETH fees: 3724.649247306191 (usd) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Estimated 7 day ETH fees: 3.5227553487957404 (real) \n Estimated 7 day ETH fees: 3724.649247306191 (usd) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Comparing the above to prior naive estimate (limited data):\n\n![image](https://aws1.discourse-cdn.com/standard20/uploads/bancordao/original/2X/3/3b2d3eb390e5564193283285bad0d7a4a333cf53.png)\n\nIf we annualize the estimated fees we get:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":true,"inputWidgets":{},"nuid":"386e63bd-882d-4834-9477-406569bf005c"}}},{"cell_type":"code","source":["eth_annualized = round(52 * estimated_7day_eth_fees_real, 2)\neth_annualized_percent_of_oncurve = round((eth_annualized / oncurve_eth) * 100, 2)\n\nprint(f'\\033[1m ETH Fees annualized: {eth_annualized} (real) \\033[1m \\n')\nprint(f'\\033[1m ETH Fees annualized as a percent of ETH on curve: {eth_annualized_percent_of_oncurve} (%) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"d87952a5-06e6-4320-bf8e-c32471167ee2"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
ETH Fees annualized: 183.18 (real) \n ETH Fees annualized as a percent of ETH on curve: 1.88 (%) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
ETH Fees annualized: 183.18 (real) \n ETH Fees annualized as a percent of ETH on curve: 1.88 (%) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Setting aside mechanics like leveraged vortexing for the moment, the baseline is that the protocol will break even on ETH if IL on 8800 ETH is 1.29% or less, relative to BNT."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"ea3f9edb-7889-4071-843e-9964859675f4"}}},{"cell_type":"markdown","source":["That means that if ETH increases by just 50% relative to BNT over a year, all else equal, the protocol loses ETH and the deficit increases."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"468ba4f4-545d-4e15-b70d-9f2e160e4de6"}}},{"cell_type":"markdown","source":["[](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876/1#proposed-2)Proposed\n-----------------------------------------------------------------------------------------------------------------------------\n\nLet's limit the ETH pool size to 520x the 7 day fees, i.e. an APR of 10% all else equal.\n\nThis gives us a limited trading liquidity of:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"937e79eb-d82c-4f93-b14f-ee7d3999d0c7"}}},{"cell_type":"code","source":["limited_pool_size_520 = int(round(520 * estimated_7day_eth_fees_real, 0))\nprint(f'\\033[1m {limited_pool_size_520} (ETH) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"1f206032-7c22-4575-b5a2-503774458605"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
1832 (ETH) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
1832 (ETH) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["If we assume that the fees generated on the limited trading liquidity are not significantly less than the fees on the current on-curve liquidity then this gives us an APR of 10% on ETH."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"cbc3f824-2a8e-40b6-bf78-1bf6b32ad50b"}}},{"cell_type":"markdown","source":["### TODO: Below not yet completed."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"3cd706e1-f95a-4c54-93a6-bd930a3d61fa"}}},{"cell_type":"markdown","source":["We spent all of bancor v2.1 with caps on trading pools showing that 10% APR is sustainable for many TKN, but the reality of how many fees we would miss on a 2400 ETH pool vs. an 8800 ETH pool is something that we would have to measure and monitor.\n\nContinuing with the assumption of comparable fees with the limited pool...\n\nThis now means that a 2x in ETH vs. BNT costs the protocol 240 ETH instead of 880 ETH. That is to say, over 1 year we can expect the protocol to break even on the 10% APR even if ETH moons 2x relative to BNT.\n\nWe also have 6400 ETH freed up to generate fees. Native staking on ETH yields about 3%.\n\n6400 ETH x 0.03 = 192 ETH ~= 200 ETH\n\nAssuming we do the most conservative thing other than doing nothing at all, use the native ETH staking mechanism, we now have a budget of 200 ETH from staking 6400 ETH and 240 ETH from a 10% APR on 2400 ETH to cover the IL on 2400 ETH.\n\nWith 440 ETH we can cover up to ~18% IL on 2400 ETH which allows ETH to annually moon ~4x relative to BNT\n\nClearly a 4x annual moon is a significantly larger safety margin than a 1.5x annual moon.\n\nAll we need to do is:\n\n- Limit pool to 520x the 7 day fees to give a minimum 10% APR\n- Move the off-curve liquidity into a conservative yield generating mechanism offering 3% e.g. native staking\n\nGenerally we could and should apply this 520x cap to all TKN on the platform as a rule of thumb and then backfill more sophisticated analytics over time.\n\nFor many TKN we might run into a situation where the 7 day fees are too small to support trading of any size, so we can set a minimum, which right now can be somewhat arbitrary like 100k BNT.\n\n[](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876/1#voting-3)Voting\n-------------------------------------------------------------------------------------------------------------------------\n\nYES: Cap all on-curve TKN trading liquidity to 520x their rolling 7 day fees\n\n- Frequency and level of automation of the cap management TBD and improved over time\n- Commit to alternative revenue generation for the off-curve capital\n- Commit to monitoring and ongoing analysis that is more sophisticated than what is presented above\n\nNO: Continue to attempt to cover double digit annual % IL with single digit % annual TKN fees"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"2f9033a8-e93b-4f49-8dad-ff4e62c0e100"}}}],"metadata":{"application/vnd.databricks.v1+notebook":{"notebookName":"limit_tradingliquidity_proposal_study","dashboards":[],"notebookMetadata":{"pythonIndentUnit":4},"language":"python","widgets":{},"notebookOrigID":1744197420073319}},"nbformat":4,"nbformat_minor":0} +{"cells":[{"cell_type":"markdown","source":["Welcome to the Bancor Governance Forum. In this forum, the BancorDAO (Decentralized Autonomous Organization) proposes and discusses token Whitelistings, Trading liquidity limits, Fee changes, Bancor Improvement Proposals, and others.\n\nPlease head on to the [Information and Templates](https://gov.bancor.network/c/information-and-templates/16) category for more information on the DAO process.\n\nVoting happens on the [BancorDAO Snapshot Page](https://vote.bancor.network/)."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"681b934a-2625-4070-9b66-ba81e5913b98"}}},{"cell_type":"markdown","source":["[Proposal: Limit on-curve liquidity to max(520 x 7 day fees, 100k BNT)](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876)\n=============================================================================================================================================================================\n\n[LEVEL 1 Under Review](https://gov.bancor.network/c/level-1-under-review/14)\n\n\n![](https://dub2.discourse-cdn.com/standard20/user_avatar/gov.bancor.network/thedavidmeister/90/129_2.png)\n\n[thedavidmeister](https://gov.bancor.network/u/thedavidmeister)"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"4efeefaa-431b-4ede-b2d6-9f53729739b3"}}},{"cell_type":"markdown","source":["TLDR:\n\n- We pay IL on 100% of TKN available for trading\n- We get diminishing returns on new fees per unit of trading liquidity\n- If IL > fees then the protocol dies (and is already in crisis due to existing deficits)\n- B3 has the unique ability to set a cap on trading liquidity\n- Taking capital off-curve has a dual benefit of limiting IL exposure AND making it available to other revenue opportunities (native staking etc.)\n- Currently the protocol deficit increases when ETH price increases by ~1.5x annually relative to BNT, making some assumptions, we could lift this to the protocol being profitable up to a ~4x ETH annual moon relative to BNT by limiting the on-curve trading liquidity to 520x 7 day trading fees + implementing some modest staking model (or similar)\n- We should set a simple cap based on the data we have and commission a more sophisticated model in the near future\n\nProposal:\n\nWhen we look at the IL curve:\n\n![image](https://aws1.discourse-cdn.com/standard20/uploads/bancordao/optimized/2X/e/e0d10c4f716b77cc23de68cb160db8c6e9dc28e1_2_690x387.png)\n\n\nWe see that the losses due to IL are a % of all the capital deployed on the trading curve.\n\nIf TKN moons 2x relative to BNT then the IL is ~10%, a 4x moon has ~20% IL, etc.\n\nMeanwhile there are only so many fees due to trade volume across all of defi and almost all trades through bancor currently are based on arbitrage and aggregators only. That is to say, there is negligible trading being done directly on bancor due to retail etc. as that market is largely monopolized by aggregators and a few platforms that take the lion's share of human traders such as uniswap.\n\nIn considering this proposal, please consider mainly how arb bots and aggregators will respond, not human traders, as the former is 10x+ the latter in terms of protocol fee generation."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"c7149321-2b9a-4cd0-878e-58e5b2367f38"}}},{"cell_type":"markdown","source":["Import Data"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"c318fe9f-fd11-412f-a9b5-67d55e934f7d"}}},{"cell_type":"code","source":["import pandas as pd\n\nfilepath = 'https://bancorml.s3.us-east-2.amazonaws.com/preprocessed_tradingliquidity_vs_deficit-3.csv'\ndf = pd.read_csv(filepath)"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"30b026a9-3151-42ac-be60-50b5be44630f"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Calculate Rolling Average Fee Revenue"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"8beb4fef-7b8f-4fa8-8b4c-75147450ce02"}}},{"cell_type":"code","source":["# For 7 day rolling averages\ndf['trade_revenue_real_rolling_7day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_real'].rolling(7, min_periods=1).mean().reset_index(drop=True)\ndf['trade_revenue_usd_rolling_7day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_usd'].rolling(7, min_periods=1).mean().reset_index(drop=True)\n\n# For 30 day rolling averages\ndf['trade_revenue_real_rolling_30day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_real'].rolling(30, min_periods=1).mean().reset_index(drop=True)\ndf['trade_revenue_usd_rolling_30day_avg'] = df.groupby(['date', 'targetSymbol'])['trade_revenue_usd'].rolling(30, min_periods=1).mean().reset_index(drop=True)\ndf"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"5fb7205f-c2f8-4a49-b724-6129a472b5e4"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[29]:
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[29]:
"]}},{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymboltrade_countsourceAmount_realsourceAmount_real_usdtargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usdbntpricesurplus_tknsurplus_bntsurplus_usdsurplus_perctknTradingLiquidity_realbntTradingLiquidity_realspotRatepriceliquidity_realstakedBalance_realpoolTokenSupply_realtrade_revenue_real_rolling_7day_avgtrade_revenue_usd_rolling_7day_avgtrade_revenue_real_rolling_30day_avgtrade_revenue_usd_rolling_30day_avg
02022-04-20dai30.0030009.1762369.2053429.1407940.0184480.0183182.296663-9.221023e+00-4.026950e+00-9.248547e+00-0.0000549.161156e+044.000805e+040.4367142.29001.718604e+051.718697e+051.718697e+050.0184480.0183180.0184480.018318
12022-04-22dai20.202159601.632956618.054738601.5260211.2385871.2054632.231059-6.283286e+02-2.744009e+02-6.122045e+02-0.0018283.202751e+051.404095e+050.4384032.22003.437408e+053.437500e+053.437500e+051.2385871.2054631.2385871.205463
22022-04-25eth11628.1036213614.3900391.2177903649.3991440.0024407.3134252.190786-1.550104e-01-2.076344e+02-4.548826e+02-0.0013371.039690e+021.403459e+051349.8825102.22001.169769e+021.159120e+021.159120e+020.0024407.3134250.0024407.313425
32022-04-26dai37525.70364815846.22945316368.80860315957.23798432.80322431.9784332.214641-2.101020e+04-9.493450e+03-2.102459e+04-0.0305596.197640e+052.918862e+050.4709632.07006.828865e+056.875000e+056.874721e+0532.80322431.97843332.80322431.978433
42022-04-26eth12403.6148955071.6274291.8012575103.5023300.00361010.2274602.2146411.366771e+001.827579e+034.047433e+030.0057182.187025e+022.888900e+051320.9269332.07002.388591e+022.390141e+022.390098e+020.00361010.2274600.00361010.227460
..............................................................................
5722022-07-13ren31768.6301431315.90653711368.2421051331.75549322.7820482.6688490.439336-2.925943e+04-7.788998e+03-3.421986e+03-0.0741993.650763e+059.888587e+040.2708640.45183.654831e+053.943198e+053.938701e+0522.7820482.66884922.7820482.668849
5732022-07-13usdc1112820.58231539171.48915740310.19446440287.308795407.173676406.9425080.439336-1.319153e+06-2.915052e+06-1.280687e+06-0.5382419.223219e+052.044195e+062.2163570.45181.112240e+062.450837e+062.447838e+06407.173676406.942508407.173676406.942508
5742022-07-13vbnt1317417.39600417347.15745949549.09584017188.881593754.554759261.7596180.439336-5.969363e+04-4.785695e+04-2.102528e+04-0.0152821.550398e+061.250088e+060.8063020.45183.851069e+063.906057e+063.889583e+06754.554759261.759618754.554759261.759618
5752022-07-13wbtc877132.73606540043.3588912.07596339984.6993610.00416080.1289500.439336-1.634478e+02-7.133886e+06-3.134172e+06-0.4837491.746781e+027.624048e+0643646.2708670.45181.746781e+023.378767e+023.378000e+020.00416080.1289500.00416080.128950
5762022-07-13zcn32857.3593031643.0433658442.3908581667.28043942.4240758.3782940.439336-5.465076e+05-2.432456e+05-1.068665e+05-0.6552152.875819e+051.280001e+050.4450910.45182.875819e+058.340895e+058.329419e+0542.4240758.37829442.4240758.378294
\n

577 rows × 25 columns

\n
","textData":null,"removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"htmlSandbox","arguments":{}}},"output_type":"display_data","data":{"text/html":["
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymboltrade_countsourceAmount_realsourceAmount_real_usdtargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usdbntpricesurplus_tknsurplus_bntsurplus_usdsurplus_perctknTradingLiquidity_realbntTradingLiquidity_realspotRatepriceliquidity_realstakedBalance_realpoolTokenSupply_realtrade_revenue_real_rolling_7day_avgtrade_revenue_usd_rolling_7day_avgtrade_revenue_real_rolling_30day_avgtrade_revenue_usd_rolling_30day_avg
02022-04-20dai30.0030009.1762369.2053429.1407940.0184480.0183182.296663-9.221023e+00-4.026950e+00-9.248547e+00-0.0000549.161156e+044.000805e+040.4367142.29001.718604e+051.718697e+051.718697e+050.0184480.0183180.0184480.018318
12022-04-22dai20.202159601.632956618.054738601.5260211.2385871.2054632.231059-6.283286e+02-2.744009e+02-6.122045e+02-0.0018283.202751e+051.404095e+050.4384032.22003.437408e+053.437500e+053.437500e+051.2385871.2054631.2385871.205463
22022-04-25eth11628.1036213614.3900391.2177903649.3991440.0024407.3134252.190786-1.550104e-01-2.076344e+02-4.548826e+02-0.0013371.039690e+021.403459e+051349.8825102.22001.169769e+021.159120e+021.159120e+020.0024407.3134250.0024407.313425
32022-04-26dai37525.70364815846.22945316368.80860315957.23798432.80322431.9784332.214641-2.101020e+04-9.493450e+03-2.102459e+04-0.0305596.197640e+052.918862e+050.4709632.07006.828865e+056.875000e+056.874721e+0532.80322431.97843332.80322431.978433
42022-04-26eth12403.6148955071.6274291.8012575103.5023300.00361010.2274602.2146411.366771e+001.827579e+034.047433e+030.0057182.187025e+022.888900e+051320.9269332.07002.388591e+022.390141e+022.390098e+020.00361010.2274600.00361010.227460
..............................................................................
5722022-07-13ren31768.6301431315.90653711368.2421051331.75549322.7820482.6688490.439336-2.925943e+04-7.788998e+03-3.421986e+03-0.0741993.650763e+059.888587e+040.2708640.45183.654831e+053.943198e+053.938701e+0522.7820482.66884922.7820482.668849
5732022-07-13usdc1112820.58231539171.48915740310.19446440287.308795407.173676406.9425080.439336-1.319153e+06-2.915052e+06-1.280687e+06-0.5382419.223219e+052.044195e+062.2163570.45181.112240e+062.450837e+062.447838e+06407.173676406.942508407.173676406.942508
5742022-07-13vbnt1317417.39600417347.15745949549.09584017188.881593754.554759261.7596180.439336-5.969363e+04-4.785695e+04-2.102528e+04-0.0152821.550398e+061.250088e+060.8063020.45183.851069e+063.906057e+063.889583e+06754.554759261.759618754.554759261.759618
5752022-07-13wbtc877132.73606540043.3588912.07596339984.6993610.00416080.1289500.439336-1.634478e+02-7.133886e+06-3.134172e+06-0.4837491.746781e+027.624048e+0643646.2708670.45181.746781e+023.378767e+023.378000e+020.00416080.1289500.00416080.128950
5762022-07-13zcn32857.3593031643.0433658442.3908581667.28043942.4240758.3782940.439336-5.465076e+05-2.432456e+05-1.068665e+05-0.6552152.875819e+051.280001e+050.4450910.45182.875819e+058.340895e+058.329419e+0542.4240758.37829442.4240758.378294
\n

577 rows × 25 columns

\n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["[](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876/1#current-situation-1)Current situation\n-----------------------------------------------------------------------------------------------------------------------------------------------\n\nLet's look at how that translates to the current state of play for ETH.\n\nThere is 8807 ETH on the trading curve right now:\n\n![image](https://aws1.discourse-cdn.com/standard20/uploads/bancordao/original/2X/7/7fc569f4bf2f391578b84463ea82683fd815b20d.png)"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"bebfedd4-6b11-4eef-94a1-3d6b8c65730d"}}},{"cell_type":"markdown","source":["Get the latest date in the dataset:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"ea01a7ac-32a5-4422-afc1-93ab9c723cc1"}}},{"cell_type":"code","source":["latest_date = df.sort_values('date', ascending=False)['date'].values[0]\nlatest_date"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"e8aba016-3643-403c-a470-81b2324264e3"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[30]: '2022-07-13'
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[30]: '2022-07-13'
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Based on the above, set `oncurve_eth` and `token_symbol` constants:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"468ca5b7-0e4d-4765-8839-f89d49062352"}}},{"cell_type":"code","source":["token_symbol = 'eth'"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"a14c9306-d442-44b5-8ce2-79bab7878ef5"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
"]}}],"execution_count":0},{"cell_type":"code","source":["oncurve_eth = int(round(df[(df['date']==latest_date) & (df['targetSymbol']==token_symbol)]['tknTradingLiquidity_real'].values[0]))\noncurve_eth"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"99a3c628-d264-4ea7-9e2d-617f2d4b6d68"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[32]: 9724
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[32]: 9724
"]}}],"execution_count":0},{"cell_type":"markdown","source":["30 day rolling average ETH fees are:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"aa51a4c9-ad48-49a0-aaba-2c626a33d6bf"}}},{"cell_type":"code","source":["eth_rolling_30day_real_avg = df[(df['date']==latest_date) & (df['targetSymbol']==token_symbol)]['trade_revenue_real_rolling_30day_avg'].values[0]\n\neth_rolling_30day_usd_avg = df[(df['date']==latest_date) & (df['targetSymbol']==token_symbol)]['trade_revenue_usd_rolling_30day_avg'].values[0]\n\nprint(f'\\033[1m 30 day rolling avg: {eth_rolling_30day_real_avg} (real/day) \\033[1m \\n')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"52eb8924-e303-4cc7-a5c2-d8655b246d92"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
30 day rolling avg: 0.5032507641136772 (real/day) \n\n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
30 day rolling avg: 0.5032507641136772 (real/day) \n\n
"]}}],"execution_count":0},{"cell_type":"code","source":["print(f'\\033[1m 30 day rolling avg: {eth_rolling_30day_usd_avg} (usd/day) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"b9b9b980-07fe-4e3a-b533-26be6ea5e10d"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
30 day rolling avg: 532.0927496151701 (usd/day) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
30 day rolling avg: 532.0927496151701 (usd/day) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Estimated 7 day ETH fees are:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"7f621e21-6cea-42b0-b991-fa8ecc906c3a"}}},{"cell_type":"code","source":["estimated_7day_eth_fees_real = eth_rolling_30day_real_avg * 7\nestimated_7day_eth_fees_usd = eth_rolling_30day_usd_avg * 7\n\nprint(f'\\033[1m Estimated 7 day ETH fees: {estimated_7day_eth_fees_real} (real) \\033[1m \\n')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"2a835fe0-7fea-402a-b811-f55b1a87c911"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Estimated 7 day ETH fees: 3.5227553487957404 (real) \n\n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Estimated 7 day ETH fees: 3.5227553487957404 (real) \n\n
"]}}],"execution_count":0},{"cell_type":"code","source":["print(f'\\033[1m Estimated 7 day ETH fees: {estimated_7day_eth_fees_usd} (usd) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"7ca63500-0877-4fde-8055-70dbf1fb9dfb"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Estimated 7 day ETH fees: 3724.649247306191 (usd) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Estimated 7 day ETH fees: 3724.649247306191 (usd) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Comparing the above to prior naive estimate (limited data):\n\n![image](https://aws1.discourse-cdn.com/standard20/uploads/bancordao/original/2X/3/3b2d3eb390e5564193283285bad0d7a4a333cf53.png)\n\nIf we annualize the estimated fees we get:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":true,"inputWidgets":{},"nuid":"386e63bd-882d-4834-9477-406569bf005c"}}},{"cell_type":"code","source":["eth_annualized = round(52 * estimated_7day_eth_fees_real, 2)\neth_annualized_percent_of_oncurve = round((eth_annualized / oncurve_eth) * 100, 2)\n\nprint(f'\\033[1m ETH Fees annualized: {eth_annualized} (real) \\033[1m \\n')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"d87952a5-06e6-4320-bf8e-c32471167ee2"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
ETH Fees annualized: 183.18 (real) \n\n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
ETH Fees annualized: 183.18 (real) \n\n
"]}}],"execution_count":0},{"cell_type":"code","source":["print(f'\\033[1m ETH Fees annualized as a percent of ETH on curve: {eth_annualized_percent_of_oncurve} (%) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"1bdc4c18-33ef-4e3a-838c-1a9bf75fcc1d"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
ETH Fees annualized as a percent of ETH on curve: 1.88 (%) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
ETH Fees annualized as a percent of ETH on curve: 1.88 (%) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["Setting aside mechanics like leveraged vortexing for the moment, the baseline is that the protocol will break even on ETH if IL on 8800 ETH is 1.29% or less, relative to BNT."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"ea3f9edb-7889-4071-843e-9964859675f4"}}},{"cell_type":"markdown","source":["That means that if ETH increases by just 50% relative to BNT over a year, all else equal, the protocol loses ETH and the deficit increases."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"468ba4f4-545d-4e15-b70d-9f2e160e4de6"}}},{"cell_type":"markdown","source":["[](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876/1#proposed-2)Proposed\n-----------------------------------------------------------------------------------------------------------------------------\n\nLet's limit the ETH pool size to 520x the 7 day fees, i.e. an APR of 10% all else equal.\n\nThis gives us a limited trading liquidity of:"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"937e79eb-d82c-4f93-b14f-ee7d3999d0c7"}}},{"cell_type":"code","source":["limited_pool_size_520 = int(round(520 * estimated_7day_eth_fees_real, 0))\nprint(f'\\033[1m {limited_pool_size_520} (ETH) \\033[1m')"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"1f206032-7c22-4575-b5a2-503774458605"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
1832 (ETH) \n
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
1832 (ETH) \n
"]}}],"execution_count":0},{"cell_type":"markdown","source":["If we assume that the fees generated on the limited trading liquidity are not significantly less than the fees on the current on-curve liquidity then this gives us an APR of 10% on ETH."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"cbc3f824-2a8e-40b6-bf78-1bf6b32ad50b"}}},{"cell_type":"markdown","source":["### TODO: Below not yet completed."],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"3cd706e1-f95a-4c54-93a6-bd930a3d61fa"}}},{"cell_type":"markdown","source":["We spent all of bancor v2.1 with caps on trading pools showing that 10% APR is sustainable for many TKN, but the reality of how many fees we would miss on a 2400 ETH pool vs. an 8800 ETH pool is something that we would have to measure and monitor.\n\nContinuing with the assumption of comparable fees with the limited pool...\n\nThis now means that a 2x in ETH vs. BNT costs the protocol 240 ETH instead of 880 ETH. That is to say, over 1 year we can expect the protocol to break even on the 10% APR even if ETH moons 2x relative to BNT.\n\nWe also have 6400 ETH freed up to generate fees. Native staking on ETH yields about 3%.\n\n6400 ETH x 0.03 = 192 ETH ~= 200 ETH\n\nAssuming we do the most conservative thing other than doing nothing at all, use the native ETH staking mechanism, we now have a budget of 200 ETH from staking 6400 ETH and 240 ETH from a 10% APR on 2400 ETH to cover the IL on 2400 ETH.\n\nWith 440 ETH we can cover up to ~18% IL on 2400 ETH which allows ETH to annually moon ~4x relative to BNT\n\nClearly a 4x annual moon is a significantly larger safety margin than a 1.5x annual moon.\n\nAll we need to do is:\n\n- Limit pool to 520x the 7 day fees to give a minimum 10% APR\n- Move the off-curve liquidity into a conservative yield generating mechanism offering 3% e.g. native staking\n\nGenerally we could and should apply this 520x cap to all TKN on the platform as a rule of thumb and then backfill more sophisticated analytics over time.\n\nFor many TKN we might run into a situation where the 7 day fees are too small to support trading of any size, so we can set a minimum, which right now can be somewhat arbitrary like 100k BNT.\n\n[](https://gov.bancor.network/t/proposal-limit-on-curve-liquidity-to-max-520-x-7-day-fees-100k-bnt/3876/1#voting-3)Voting\n-------------------------------------------------------------------------------------------------------------------------\n\nYES: Cap all on-curve TKN trading liquidity to 520x their rolling 7 day fees\n\n- Frequency and level of automation of the cap management TBD and improved over time\n- Commit to alternative revenue generation for the off-curve capital\n- Commit to monitoring and ongoing analysis that is more sophisticated than what is presented above\n\nNO: Continue to attempt to cover double digit annual % IL with single digit % annual TKN fees"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"2f9033a8-e93b-4f49-8dad-ff4e62c0e100"}}}],"metadata":{"application/vnd.databricks.v1+notebook":{"notebookName":"limit_tradingliquidity_proposal_study","dashboards":[],"notebookMetadata":{"pythonIndentUnit":4},"language":"python","widgets":{},"notebookOrigID":1744197420073319}},"nbformat":4,"nbformat_minor":0} From 14bc04037f76074a5d705224ce2782c5a332e5b6 Mon Sep 17 00:00:00 2001 From: mikewcasale Date: Thu, 4 Aug 2022 12:43:34 -0700 Subject: [PATCH 06/16] Create join_tables.ipynb --- examples/studies/join_tables.ipynb | 1 + 1 file changed, 1 insertion(+) create mode 100644 examples/studies/join_tables.ipynb diff --git a/examples/studies/join_tables.ipynb b/examples/studies/join_tables.ipynb new file mode 100644 index 00000000..7de689ed --- /dev/null +++ b/examples/studies/join_tables.ipynb @@ -0,0 +1 @@ +{"cells":[{"cell_type":"code","source":["total_liquidity = spark.sql('select * from default.events_poolcollection_totalliquidityupdated_csv')\n\n# convert to python\ntotal_liquidity = total_liquidity.toPandas()\n\n# convert to date\ntotal_liquidity['date'] = total_liquidity['time'].dt.date\n\n# sort by timestamp\ntotal_liquidity = total_liquidity.sort_values('time', ascending=False)\n\n# drop all but the last timestamp\ntotal_liquidity = total_liquidity.drop_duplicates(subset=['date', 'poolSymbol'])\n\n# keep only what we need\ntotal_liquidity = total_liquidity[['date', 'poolSymbol', 'liquidity_real', 'stakedBalance_real', 'poolTokenSupply_real']]\n\n#cleanup\ntotal_liquidity = total_liquidity.rename({'poolSymbol':'targetSymbol'}, axis=1)\ntotal_liquidity"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"169b59db-3107-4a7f-a46c-e48d17450614"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
/databricks/spark/python/pyspark/sql/pandas/utils.py:79: UserWarning: The conversion of DecimalType columns is inefficient and may take a long time. Column names: [liquidity, stakedBalance, poolTokenSupply] If those columns are not necessary, you may consider dropping them or converting to primitive types before the conversion.\n warnings.warn(\nOut[65]:
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
/databricks/spark/python/pyspark/sql/pandas/utils.py:79: UserWarning: The conversion of DecimalType columns is inefficient and may take a long time. Column names: [liquidity, stakedBalance, poolTokenSupply] If those columns are not necessary, you may consider dropping them or converting to primitive types before the conversion.\n warnings.warn(\nOut[65]:
"]}},{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymbolliquidity_realstakedBalance_realpoolTokenSupply_real
74482022-07-31ocean6.912618e+056.843423e+056.843039e+05
74472022-07-31link1.953899e+063.559284e+063.545272e+06
74422022-07-31usdc1.545114e+062.700176e+062.693568e+06
74412022-07-31aave8.895992e+029.905408e+029.896419e+02
74402022-07-31eth8.271622e+031.637554e+041.633647e+04
..................
312022-04-19dai1.718687e+051.718687e+051.718687e+05
302022-04-19eth5.711200e+015.711200e+015.711200e+01
292022-04-18dai1.718457e+051.718457e+051.718457e+05
252022-04-18link1.237110e+041.237110e+041.237110e+04
172022-04-18eth5.710200e+015.710200e+015.710200e+01
\n

1360 rows × 5 columns

\n
","textData":null,"removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"htmlSandbox","arguments":{}}},"output_type":"display_data","data":{"text/html":["
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymbolliquidity_realstakedBalance_realpoolTokenSupply_real
74482022-07-31ocean6.912618e+056.843423e+056.843039e+05
74472022-07-31link1.953899e+063.559284e+063.545272e+06
74422022-07-31usdc1.545114e+062.700176e+062.693568e+06
74412022-07-31aave8.895992e+029.905408e+029.896419e+02
74402022-07-31eth8.271622e+031.637554e+041.633647e+04
..................
312022-04-19dai1.718687e+051.718687e+051.718687e+05
302022-04-19eth5.711200e+015.711200e+015.711200e+01
292022-04-18dai1.718457e+051.718457e+051.718457e+05
252022-04-18link1.237110e+041.237110e+041.237110e+04
172022-04-18eth5.710200e+015.710200e+015.710200e+01
\n

1360 rows × 5 columns

\n
"]}}],"execution_count":0},{"cell_type":"code","source":["spot_rates = spark.sql('select * from default.events_v3_historical_spotrates_emarates_parquet')\nspot_rates = spot_rates.toPandas()\nspot_rates = spot_rates.rename({'poolSymbol':'targetSymbol'}, axis=1)\nspot_rates"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"Events - v3_historical_spotrates_emarates","showTitle":true,"inputWidgets":{},"nuid":"db5a4322-b7d1-48b4-b997-a2c974715ae8"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[7]:
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[7]:
"]}},{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
blocknumbertimetargetSymbolspotRateemaRatebntpricespotRate_usdemaRate_usd
0146250662022-04-20dai0.43671402886434593890368199380.43671402886434593890367760802.29666306950168231.0029849820260350271631482421.002984982026035027163138169
1146250662022-04-20eth1345.7501984151451972164296761345.7501984151451972066238392.29666306950168233090.7347814746253594860620343090.734781474625359463541331
2146250662022-04-20link6.0786026200873362445420686876.0786026200873362445414847162.296663069501682313.9605021517307500506563630213.96050215173075005065502183
3146250662022-04-20bnt112.29666306950168232.29666306950168232.2966630695016823
4146313562022-04-21dai0.43671402886434593890367961030.43671402886434593890367760802.28483822096018850.99782090477876858481312510280.9978209047787685848131205279
...........................
4897152533052022-07-31wsteth3150.6054388621830023493250713222.2009550379241684304226910.56871962615807981791.8111473613136602939113921832.528922555375931418315045
4898152533052022-07-31wxt00E+180.56871962615807980E-160E+2
4899152533052022-07-31yfi19095.5864821306620606784298219499.332231128776646389179640.568719626158079810860.0348053866323022593445511089.65293681975395140237928
4900152533052022-07-31zcn0.33738452624082442944750705510.34313245747988842871486082340.56871962615807980.19187720163520253387829387670.1951461629406653599523725750
4901152533052022-07-31bnt110.56871962615807980.56871962615807980.5687196261580798
\n

4902 rows × 8 columns

\n
","textData":null,"removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"htmlSandbox","arguments":{}}},"output_type":"display_data","data":{"text/html":["
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
blocknumbertimetargetSymbolspotRateemaRatebntpricespotRate_usdemaRate_usd
0146250662022-04-20dai0.43671402886434593890368199380.43671402886434593890367760802.29666306950168231.0029849820260350271631482421.002984982026035027163138169
1146250662022-04-20eth1345.7501984151451972164296761345.7501984151451972066238392.29666306950168233090.7347814746253594860620343090.734781474625359463541331
2146250662022-04-20link6.0786026200873362445420686876.0786026200873362445414847162.296663069501682313.9605021517307500506563630213.96050215173075005065502183
3146250662022-04-20bnt112.29666306950168232.29666306950168232.2966630695016823
4146313562022-04-21dai0.43671402886434593890367961030.43671402886434593890367760802.28483822096018850.99782090477876858481312510280.9978209047787685848131205279
...........................
4897152533052022-07-31wsteth3150.6054388621830023493250713222.2009550379241684304226910.56871962615807981791.8111473613136602939113921832.528922555375931418315045
4898152533052022-07-31wxt00E+180.56871962615807980E-160E+2
4899152533052022-07-31yfi19095.5864821306620606784298219499.332231128776646389179640.568719626158079810860.0348053866323022593445511089.65293681975395140237928
4900152533052022-07-31zcn0.33738452624082442944750705510.34313245747988842871486082340.56871962615807980.19187720163520253387829387670.1951461629406653599523725750
4901152533052022-07-31bnt110.56871962615807980.56871962615807980.5687196261580798
\n

4902 rows × 8 columns

\n
"]}}],"execution_count":0},{"cell_type":"code","source":["trading_liquidity = spark.sql('select * from default.events_poolcollection_tradingliquidityupdated_spotrates_csv')\n\n# convert to pandas\ntrading_liquidity = trading_liquidity.toPandas()\n\n# convert to date\ntrading_liquidity['date'] = trading_liquidity['time'].dt.date\n\n# sort by datetime\ntrading_liquidity = trading_liquidity.sort_values('time', ascending=False)\n\n# keep only needed columns\ntrading_liquidity = trading_liquidity[[\n 'blocknumber', \n 'date', \n 'poolSymbol', \n 'tknTradingLiquidity_real', \n 'bntTradingLiquidity_real', \n 'spotRate', \n 'price'\n]]\n\ntrading_liquidity = trading_liquidity.rename({'poolSymbol':'targetSymbol'}, axis=1)\ntrading_liquidity"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"Events - poolcollection_tradingliquidityupdated_spotrates","showTitle":true,"inputWidgets":{},"nuid":"de7d552c-ad83-4638-9979-c5d374327bfd"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[4]:
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[4]:
"]}},{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
blocknumberdatetargetSymboltknTradingLiquidity_realbntTradingLiquidity_realspotRateprice
490763151368442022-07-13temp4.063618e+053.579333e+040.0880820.4518
490726151368442022-07-13reth0.000000e+000.000000e+000.0000000.4518
490737151368442022-07-13mfg1.395533e+062.531836e+040.0181420.4518
490736151368442022-07-13usdc9.223219e+052.044195e+062.2163570.4518
490735151368442022-07-13mkr4.071976e+017.632130e+041874.3064530.4518
........................
3146232082022-04-20eth1.486048e+012.000000e+041345.8515282.2800
5146232082022-04-20dai4.580000e+042.000000e+040.4366812.2800
2146232062022-04-20dai4.580000e+042.000000e+040.4366812.2800
1146232062022-04-20eth1.486048e+012.000000e+041345.8515282.2800
0146232022022-04-20eth1.486048e+012.000000e+041345.8515282.2800
\n

490764 rows × 7 columns

\n
","textData":null,"removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"htmlSandbox","arguments":{}}},"output_type":"display_data","data":{"text/html":["
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
blocknumberdatetargetSymboltknTradingLiquidity_realbntTradingLiquidity_realspotRateprice
490763151368442022-07-13temp4.063618e+053.579333e+040.0880820.4518
490726151368442022-07-13reth0.000000e+000.000000e+000.0000000.4518
490737151368442022-07-13mfg1.395533e+062.531836e+040.0181420.4518
490736151368442022-07-13usdc9.223219e+052.044195e+062.2163570.4518
490735151368442022-07-13mkr4.071976e+017.632130e+041874.3064530.4518
........................
3146232082022-04-20eth1.486048e+012.000000e+041345.8515282.2800
5146232082022-04-20dai4.580000e+042.000000e+040.4366812.2800
2146232062022-04-20dai4.580000e+042.000000e+040.4366812.2800
1146232062022-04-20eth1.486048e+012.000000e+041345.8515282.2800
0146232022022-04-20eth1.486048e+012.000000e+041345.8515282.2800
\n

490764 rows × 7 columns

\n
"]}}],"execution_count":0},{"cell_type":"code","source":["events_bancornetwork_tokenstraded_updated_csv = spark.sql('select * from default.events_bancornetwork_tokenstraded_updated_csv')\nevents_bancornetwork_tokenstraded_updated_csv = events_bancornetwork_tokenstraded_updated_csv.toPandas()\n\ntrade_count = events_bancornetwork_tokenstraded_updated_csv.groupby(['blocknumber', 'targetSymbol'])[[\n 'sourceAmount_real']].count()\ntrade_count = trade_count.reset_index()\ntrade_count = trade_count.rename({'sourceAmount_real':'trade_count'}, axis=1)\ntrade_count"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"Events - tokenstraded_updated","showTitle":true,"inputWidgets":{},"nuid":"a103bbfe-6824-402d-bda1-07bd5ebd7339"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[2]:
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[2]:
"]}},{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
blocknumbertargetSymboltrade_count
014623625dai1
114623992dai1
214624215dai1
314628426bnt1
414628429bnt1
............
1764115253029wbtc1
1764215253034usdc1
1764315253080woo1
1764415253095wnxm1
1764515253096wnxm1
\n

17646 rows × 3 columns

\n
","textData":null,"removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"htmlSandbox","arguments":{}}},"output_type":"display_data","data":{"text/html":["
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
blocknumbertargetSymboltrade_count
014623625dai1
114623992dai1
214624215dai1
314628426bnt1
414628429bnt1
............
1764115253029wbtc1
1764215253034usdc1
1764315253080woo1
1764415253095wnxm1
1764515253096wnxm1
\n

17646 rows × 3 columns

\n
"]}}],"execution_count":0},{"cell_type":"code","source":["trade_count['trade_count'].unique()"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"b1b5c8c8-24b1-404d-b015-e0ac6d93a860"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[3]: array([1, 2, 3, 4, 5, 6])
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[3]: array([1, 2, 3, 4, 5, 6])
"]}}],"execution_count":0},{"cell_type":"code","source":["daily_trades = spark.sql('select * from default.events_combined_tokenstraded_daily_parquet')\ndaily_trades = daily_trades.toPandas()\ndaily_trades"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"Events - combined_tokenstraded_daily","showTitle":true,"inputWidgets":{},"nuid":"49443bb8-0ef4-4776-988a-ab7f88382b7b"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[5]:
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[5]:
"]}},{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
timev2_totalVolume_realv2_totalVolume_real_bntv2_totalVolume_real_usdv2_daily_tx_countv2_daily_trade_countv2_average_trade_size_usdpoolSymbolv2_targetFeeAmount_realv2_targetFeeAmount_real_bntv2_targetFeeAmount_real_usdv2_actualTotalFees_real_usdv2_average_fee_size_usdv3_totalVolume_realv3_totalVolume_real_bntv3_totalVolume_real_usdv3_daily_tx_countv3_daily_trade_countv3_average_trade_size_usdv3_targetFeeAmount_realv3_targetFeeAmount_real_bntv3_targetFeeAmount_real_usdv3_actualTotalFees_real_usdv3_average_fee_size_usd__index_level_0__
02022-01-014608.8483781649357101487918.32250405813792043226094.0301142.0213047.015057aave0.0850728139084229316.71728549104910867522.36856022.36856011.184280000000000000
12022-01-016.564457235883314658595.9298843728002889801975.0003892.02987.5001945alcx0.0131552249216098481.1942482652761527933.9579163.9579161.978958000000000001
22022-01-0115902.2276923574489983163207.42080607809700382310501.2226847.071500.174669142857142857142857aleph30.8798453323131412685.43935057023027154117.81263917.8126392.544662714285714285714285714000000000002
32022-01-0155643.00030295774146874916164.00043703304119950952745.9091534.0413186.47728825alpha99.75843952653367168820.64220733029178738167.28164867.28164816.820412000000000003
42022-01-016289.5253667492842343576289.52536674928423435720692.5384561.0120692.538456amp00000000000000004
..............................................................................
212192022-07-23000000vbnt0000052270.30717181450890992947149.6866082506949277634584423881.134420697950891840571347.071695.485845923437346648596443435.866736553418881934356.8381934185755298295650850180.7370698700110877124994117181.444884564979940024534911725.920697794997134289219273121219
212202022-08-01000000vbnt000008984.0073893475643295338189.0235263673646295626693874625.1604876922875427769956701.012298.73579339341823369147407074.08604310419307560261.9796898608397806785972680235.0061288334023081272717369835.0061288334023081272717369835.0061288334023081272717369821220
212212022-07-27000000wnxm000001806.44132337819122610325393.6970181945200832789582112829.197136911813358579059332.023202.7516277478028307746444224.251678063239722136128.061477355344542374189956264.7020530858141985888783334088.6495216474542981605935333844.3247608237271490802967666921221
212222022-07-21000000wsteth000004660.962833978745278730559.5333854480719568705104399290.39782704754934561579491831.01147.02347274159136927916952210.0001774162103439040.56769984184782154591465892310.29463621791901938232970798110.58619062198489377476470798100.586190621984893774764707981021222
212232022-07-27000000wsteth00000496.8474044759204288682073.6173657685587511477408281041.1699503542200625815345642.02265.29632952274630872319654640.0006498740578305262.1172026415610959171360171511.0633119419749334491838495501.7157216336977402719054495500.85786081684887013595272477521223
\n

21224 rows × 25 columns

\n
","textData":null,"removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"htmlSandbox","arguments":{}}},"output_type":"display_data","data":{"text/html":["
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
timev2_totalVolume_realv2_totalVolume_real_bntv2_totalVolume_real_usdv2_daily_tx_countv2_daily_trade_countv2_average_trade_size_usdpoolSymbolv2_targetFeeAmount_realv2_targetFeeAmount_real_bntv2_targetFeeAmount_real_usdv2_actualTotalFees_real_usdv2_average_fee_size_usdv3_totalVolume_realv3_totalVolume_real_bntv3_totalVolume_real_usdv3_daily_tx_countv3_daily_trade_countv3_average_trade_size_usdv3_targetFeeAmount_realv3_targetFeeAmount_real_bntv3_targetFeeAmount_real_usdv3_actualTotalFees_real_usdv3_average_fee_size_usd__index_level_0__
02022-01-014608.8483781649357101487918.32250405813792043226094.0301142.0213047.015057aave0.0850728139084229316.71728549104910867522.36856022.36856011.184280000000000000
12022-01-016.564457235883314658595.9298843728002889801975.0003892.02987.5001945alcx0.0131552249216098481.1942482652761527933.9579163.9579161.978958000000000001
22022-01-0115902.2276923574489983163207.42080607809700382310501.2226847.071500.174669142857142857142857aleph30.8798453323131412685.43935057023027154117.81263917.8126392.544662714285714285714285714000000000002
32022-01-0155643.00030295774146874916164.00043703304119950952745.9091534.0413186.47728825alpha99.75843952653367168820.64220733029178738167.28164867.28164816.820412000000000003
42022-01-016289.5253667492842343576289.52536674928423435720692.5384561.0120692.538456amp00000000000000004
..............................................................................
212192022-07-23000000vbnt0000052270.30717181450890992947149.6866082506949277634584423881.134420697950891840571347.071695.485845923437346648596443435.866736553418881934356.8381934185755298295650850180.7370698700110877124994117181.444884564979940024534911725.920697794997134289219273121219
212202022-08-01000000vbnt000008984.0073893475643295338189.0235263673646295626693874625.1604876922875427769956701.012298.73579339341823369147407074.08604310419307560261.9796898608397806785972680235.0061288334023081272717369835.0061288334023081272717369835.0061288334023081272717369821220
212212022-07-27000000wnxm000001806.44132337819122610325393.6970181945200832789582112829.197136911813358579059332.023202.7516277478028307746444224.251678063239722136128.061477355344542374189956264.7020530858141985888783334088.6495216474542981605935333844.3247608237271490802967666921221
212222022-07-21000000wsteth000004660.962833978745278730559.5333854480719568705104399290.39782704754934561579491831.01147.02347274159136927916952210.0001774162103439040.56769984184782154591465892310.29463621791901938232970798110.58619062198489377476470798100.586190621984893774764707981021222
212232022-07-27000000wsteth00000496.8474044759204288682073.6173657685587511477408281041.1699503542200625815345642.02265.29632952274630872319654640.0006498740578305262.1172026415610959171360171511.0633119419749334491838495501.7157216336977402719054495500.85786081684887013595272477521223
\n

21224 rows × 25 columns

\n
"]}}],"execution_count":0},{"cell_type":"code","source":["events_bancornetwork_tokenstraded_updated_csv = spark.sql('select * from default.events_bancornetwork_tokenstraded_updated_csv')\nevents_bancornetwork_tokenstraded_updated_csv = events_bancornetwork_tokenstraded_updated_csv.toPandas()\nevents_bancornetwork_tokenstraded_updated_csv['date'] = events_bancornetwork_tokenstraded_updated_csv['time'].dt.date\n\ntrade_revenue = events_bancornetwork_tokenstraded_updated_csv.groupby(['date', 'targetSymbol'])[[\n 'sourceAmount_real', \n 'sourceAmount_real_usd', \n 'targetAmount_real', \n 'targetAmount_real_usd', \n 'targetFeeAmount_real',\n 'targetFeeAmount_real_usd']].sum()\n\ntrade_revenue = trade_revenue.reset_index()\ntrade_revenue = trade_revenue.rename({'targetFeeAmount_real':'trade_revenue_real',\n 'targetFeeAmount_real_usd':'trade_revenue_usd'}, axis=1)\ntrade_revenue"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"29788b8c-fa3f-4010-aec9-9e7a7c270702"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
/databricks/spark/python/pyspark/sql/pandas/utils.py:79: UserWarning: The conversion of DecimalType columns is inefficient and may take a long time. Column names: [sourceAmount, targetAmount, bntAmount, targetFeeAmount, bntFeeAmount] If those columns are not necessary, you may consider dropping them or converting to primitive types before the conversion.\n warnings.warn(\nOut[68]:
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
/databricks/spark/python/pyspark/sql/pandas/utils.py:79: UserWarning: The conversion of DecimalType columns is inefficient and may take a long time. Column names: [sourceAmount, targetAmount, bntAmount, targetFeeAmount, bntFeeAmount] If those columns are not necessary, you may consider dropping them or converting to primitive types before the conversion.\n warnings.warn(\nOut[68]:
"]}},{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymbolsourceAmount_realsourceAmount_real_usdtargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usd
02022-04-20dai0.0030009.1762369.2053429.1407940.0184480.018318
12022-04-21bnt0.0022257.0058212.9879966.9919110.0059880.014012
22022-04-22bnt0.0010003.0275531.3429143.0215570.0026910.006055
32022-04-22dai0.202159601.632956618.054738601.5260211.2385871.205463
42022-04-23bnt0.8564702496.1871591136.4753382511.6104972.2775065.033288
...........................
17962022-07-31wbtc116717.87329262546.1791652.63739362402.5310870.005285125.052651
17972022-07-31wnxm119062.457517119188.1639985622.047552118663.69303656.7883591198.623162
17982022-07-31woo64690.34393654149.251861235042.60667954043.104665471.027268108.302815
17992022-07-31yfi24847.7365562877.6139710.2375862885.9774920.0004765.783522
18002022-07-31zcn1918.9036511026.6206725223.5852621028.94552326.2491725.170581
\n

1801 rows × 8 columns

\n
","textData":null,"removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"htmlSandbox","arguments":{}}},"output_type":"display_data","data":{"text/html":["
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymbolsourceAmount_realsourceAmount_real_usdtargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usd
02022-04-20dai0.0030009.1762369.2053429.1407940.0184480.018318
12022-04-21bnt0.0022257.0058212.9879966.9919110.0059880.014012
22022-04-22bnt0.0010003.0275531.3429143.0215570.0026910.006055
32022-04-22dai0.202159601.632956618.054738601.5260211.2385871.205463
42022-04-23bnt0.8564702496.1871591136.4753382511.6104972.2775065.033288
...........................
17962022-07-31wbtc116717.87329262546.1791652.63739362402.5310870.005285125.052651
17972022-07-31wnxm119062.457517119188.1639985622.047552118663.69303656.7883591198.623162
17982022-07-31woo64690.34393654149.251861235042.60667954043.104665471.027268108.302815
17992022-07-31yfi24847.7365562877.6139710.2375862885.9774920.0004765.783522
18002022-07-31zcn1918.9036511026.6206725223.5852621028.94552326.2491725.170581
\n

1801 rows × 8 columns

\n
"]}}],"execution_count":0},{"cell_type":"code","source":["trades_by_tkn = trade_count.merge(trade_revenue, on=['date', 'targetSymbol'])\ntrades_by_tkn"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"ea4534d8-54ea-48a0-ab89-2d98701a0083"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[69]:
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[69]:
"]}},{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymboltrade_countsourceAmount_realsourceAmount_real_usdtargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usd
02022-04-20dai30.0030009.1762369.2053429.1407940.0184480.018318
12022-04-21bnt30.0022257.0058212.9879966.9919110.0059880.014012
22022-04-22bnt10.0010003.0275531.3429143.0215570.0026910.006055
32022-04-22dai20.202159601.632956618.054738601.5260211.2385871.205463
42022-04-23bnt10.8564702496.1871591136.4753382511.6104972.2775065.033288
..............................
17962022-07-31wbtc22116717.87329262546.1791652.63739362402.5310870.005285125.052651
17972022-07-31wnxm51119062.457517119188.1639985622.047552118663.69303656.7883591198.623162
17982022-07-31woo2964690.34393654149.251861235042.60667954043.104665471.027268108.302815
17992022-07-31yfi624847.7365562877.6139710.2375862885.9774920.0004765.783522
18002022-07-31zcn21918.9036511026.6206725223.5852621028.94552326.2491725.170581
\n

1801 rows × 9 columns

\n
","textData":null,"removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"htmlSandbox","arguments":{}}},"output_type":"display_data","data":{"text/html":["
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymboltrade_countsourceAmount_realsourceAmount_real_usdtargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usd
02022-04-20dai30.0030009.1762369.2053429.1407940.0184480.018318
12022-04-21bnt30.0022257.0058212.9879966.9919110.0059880.014012
22022-04-22bnt10.0010003.0275531.3429143.0215570.0026910.006055
32022-04-22dai20.202159601.632956618.054738601.5260211.2385871.205463
42022-04-23bnt10.8564702496.1871591136.4753382511.6104972.2775065.033288
..............................
17962022-07-31wbtc22116717.87329262546.1791652.63739362402.5310870.005285125.052651
17972022-07-31wnxm51119062.457517119188.1639985622.047552118663.69303656.7883591198.623162
17982022-07-31woo2964690.34393654149.251861235042.60667954043.104665471.027268108.302815
17992022-07-31yfi624847.7365562877.6139710.2375862885.9774920.0004765.783522
18002022-07-31zcn21918.9036511026.6206725223.5852621028.94552326.2491725.170581
\n

1801 rows × 9 columns

\n
"]}}],"execution_count":0},{"cell_type":"code","source":["deficit_by_tkn = spark.sql('select * from default.events_v3_historical_deficit_by_tkn_csv')\ndeficit_by_tkn = deficit_by_tkn.toPandas()\ndeficit_by_tkn = deficit_by_tkn.rename({'time': 'date', 'poolSymbol':'targetSymbol'}, axis=1)\ndeficit_by_tkn = deficit_by_tkn.drop(['_c0', 'bntprice'], axis=1)\ndeficit_by_tkn"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":true,"inputWidgets":{},"nuid":"70d33053-89d7-44ea-9b9d-365ad3229cc8"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[10]:
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[10]:
"]}},{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
targetSymbolblocknumberdatesurplus_tknsurplus_bntsurplus_usdsurplus_perc
0dai146250662022-04-20-9.221023e+00-4.026950e+00-9.248547e+00-0.000054
1eth146250662022-04-203.000000e-034.037251e+009.272204e+000.000053
2link146250662022-04-200.000000e+000.000000e+000.000000e+000.000000
3bnt146250662022-04-20-6.862458e-03-6.862458e-03-1.576075e-02-0.000000
4dai146313562022-04-21-9.221023e+00-4.026950e+00-9.200929e+00-0.000036
........................
4803wsteth152469022022-07-30-8.002986e-01-2.578723e+03-1.455777e+03-0.044810
4804wxt152469022022-07-30-7.305932e+04-0.000000e+00-0.000000e+00-0.755542
4805yfi152469022022-07-30-1.200985e+00-2.402642e+04-1.356373e+04-0.202276
4806zcn152469022022-07-30-5.653728e+05-2.004780e+05-1.131767e+05-0.623519
4807bnt152469022022-07-304.081710e+074.081710e+072.304265e+070.934543
\n

4808 rows × 7 columns

\n
","textData":null,"removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"htmlSandbox","arguments":{}}},"output_type":"display_data","data":{"text/html":["
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
targetSymbolblocknumberdatesurplus_tknsurplus_bntsurplus_usdsurplus_perc
0dai146250662022-04-20-9.221023e+00-4.026950e+00-9.248547e+00-0.000054
1eth146250662022-04-203.000000e-034.037251e+009.272204e+000.000053
2link146250662022-04-200.000000e+000.000000e+000.000000e+000.000000
3bnt146250662022-04-20-6.862458e-03-6.862458e-03-1.576075e-02-0.000000
4dai146313562022-04-21-9.221023e+00-4.026950e+00-9.200929e+00-0.000036
........................
4803wsteth152469022022-07-30-8.002986e-01-2.578723e+03-1.455777e+03-0.044810
4804wxt152469022022-07-30-7.305932e+04-0.000000e+00-0.000000e+00-0.755542
4805yfi152469022022-07-30-1.200985e+00-2.402642e+04-1.356373e+04-0.202276
4806zcn152469022022-07-30-5.653728e+05-2.004780e+05-1.131767e+05-0.623519
4807bnt152469022022-07-304.081710e+074.081710e+072.304265e+070.934543
\n

4808 rows × 7 columns

\n
"]}}],"execution_count":0},{"cell_type":"code","source":["spot_rates['blocknumber']=spot_rates['blocknumber'].astype(int)\ndeficit_by_tkn['blocknumber']=deficit_by_tkn['blocknumber'].astype(int)\n\ndf = spot_rates.merge(deficit_by_tkn, on=['blocknumber', 'targetSymbol'])\ndf"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"98b71b8f-38ca-4327-bf09-7ba0b9506efa"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[14]:
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[14]:
"]}},{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
blocknumbertimetargetSymbolspotRateemaRatebntpricespotRate_usdemaRate_usddatesurplus_tknsurplus_bntsurplus_usdsurplus_perc
0146250662022-04-20dai0.43671402886434593890368199380.43671402886434593890367760802.29666306950168231.0029849820260350271631482421.0029849820260350271631381692022-04-20-9.221023e+00-4.026950e+00-9.248547e+00-0.000054
1146250662022-04-20eth1345.7501984151451972164296761345.7501984151451972066238392.29666306950168233090.7347814746253594860620343090.7347814746253594635413312022-04-203.000000e-034.037251e+009.272204e+000.000053
2146250662022-04-20link6.0786026200873362445420686876.0786026200873362445414847162.296663069501682313.9605021517307500506563630213.960502151730750050655021832022-04-200.000000e+000.000000e+000.000000e+000.000000
3146250662022-04-20bnt112.29666306950168232.29666306950168232.29666306950168232022-04-20-6.862458e-03-6.862458e-03-1.576075e-02-0.000000
4146313562022-04-21dai0.43671402886434593890367961030.43671402886434593890367760802.28483822096018850.99782090477876858481312510280.99782090477876858481312052792022-04-21-9.221023e+00-4.026950e+00-9.200929e+00-0.000036
..........................................
4803152469022022-07-30wsteth3150.6054388621830023493250713222.2009550379241684304226910.56453418212373471778.6244646226527107615608621819.0425807906513679142299332022-07-30-8.002986e-01-2.578723e+03-1.455777e+03-0.044810
4804152469022022-07-30wxt00E+180.56453418212373470E-160E+22022-07-30-7.305932e+04-0.000000e+00-0.000000e+00-0.755542
4805152469022022-07-30yfi20385.0687760730805663774628720005.589971480669218456372830.564534182123734711508.0681290364980792467675111293.839372452628599498016902022-07-30-1.200985e+00-2.402642e+04-1.356373e+04-0.202276
4806152469022022-07-30zcn0.35112487140151296367058232290.35459434659468854330099218280.56453418212373470.19822199209995464513357269520.20018062944053260743478701022022-07-30-5.653728e+05-2.004780e+05-1.131767e+05-0.623519
4807152469022022-07-30bnt110.56453418212373470.56453418212373470.56453418212373472022-07-304.081710e+074.081710e+072.304265e+070.934543
\n

4808 rows × 13 columns

\n
","textData":null,"removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"htmlSandbox","arguments":{}}},"output_type":"display_data","data":{"text/html":["
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
blocknumbertimetargetSymbolspotRateemaRatebntpricespotRate_usdemaRate_usddatesurplus_tknsurplus_bntsurplus_usdsurplus_perc
0146250662022-04-20dai0.43671402886434593890368199380.43671402886434593890367760802.29666306950168231.0029849820260350271631482421.0029849820260350271631381692022-04-20-9.221023e+00-4.026950e+00-9.248547e+00-0.000054
1146250662022-04-20eth1345.7501984151451972164296761345.7501984151451972066238392.29666306950168233090.7347814746253594860620343090.7347814746253594635413312022-04-203.000000e-034.037251e+009.272204e+000.000053
2146250662022-04-20link6.0786026200873362445420686876.0786026200873362445414847162.296663069501682313.9605021517307500506563630213.960502151730750050655021832022-04-200.000000e+000.000000e+000.000000e+000.000000
3146250662022-04-20bnt112.29666306950168232.29666306950168232.29666306950168232022-04-20-6.862458e-03-6.862458e-03-1.576075e-02-0.000000
4146313562022-04-21dai0.43671402886434593890367961030.43671402886434593890367760802.28483822096018850.99782090477876858481312510280.99782090477876858481312052792022-04-21-9.221023e+00-4.026950e+00-9.200929e+00-0.000036
..........................................
4803152469022022-07-30wsteth3150.6054388621830023493250713222.2009550379241684304226910.56453418212373471778.6244646226527107615608621819.0425807906513679142299332022-07-30-8.002986e-01-2.578723e+03-1.455777e+03-0.044810
4804152469022022-07-30wxt00E+180.56453418212373470E-160E+22022-07-30-7.305932e+04-0.000000e+00-0.000000e+00-0.755542
4805152469022022-07-30yfi20385.0687760730805663774628720005.589971480669218456372830.564534182123734711508.0681290364980792467675111293.839372452628599498016902022-07-30-1.200985e+00-2.402642e+04-1.356373e+04-0.202276
4806152469022022-07-30zcn0.35112487140151296367058232290.35459434659468854330099218280.56453418212373470.19822199209995464513357269520.20018062944053260743478701022022-07-30-5.653728e+05-2.004780e+05-1.131767e+05-0.623519
4807152469022022-07-30bnt110.56453418212373470.56453418212373470.56453418212373472022-07-304.081710e+074.081710e+072.304265e+070.934543
\n

4808 rows × 13 columns

\n
"]}}],"execution_count":0},{"cell_type":"code","source":["import pandas as pd\n\ndeficit_by_tkn['date'] = pd.to_datetime(deficit_by_tkn['date']).dt.date\ntrades_by_tkn['date'] = pd.to_datetime(trades_by_tkn['date']).dt.date\ntotal_liquidity['date'] = pd.to_datetime(total_liquidity['date']).dt.date\ntrading_liquidity['date'] = pd.to_datetime(trading_liquidity['date']).dt.date\n\ndf = trades_by_tkn.merge(deficit_by_tkn, on=['date', 'targetSymbol'])\ndf = df.merge(trading_liquidity, on=['date', 'targetSymbol'])\ndf = df.merge(total_liquidity, on=['date', 'targetSymbol'])\n\ndf"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"Primary Joins","showTitle":true,"inputWidgets":{},"nuid":"4ba2918c-a259-49aa-a384-8443740d7ac7"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[71]:
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[71]:
"]}},{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymboltrade_countsourceAmount_realsourceAmount_real_usdtargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usdbntpricesurplus_tknsurplus_bntsurplus_usdsurplus_perctknTradingLiquidity_realbntTradingLiquidity_realspotRatepriceliquidity_realstakedBalance_realpoolTokenSupply_real
02022-04-20dai30.0030009.1762369.2053429.1407940.0184480.0183182.296663-9.221023e+00-4.026950e+00-9.248547e+00-0.0000549.161156e+044.000805e+040.4367142.29001.718604e+051.718697e+051.718697e+05
12022-04-22dai20.202159601.632956618.054738601.5260211.2385871.2054632.231059-6.283286e+02-2.744009e+02-6.122045e+02-0.0018283.202751e+051.404095e+050.4384032.22003.437408e+053.437500e+053.437500e+05
22022-04-25eth11628.1036213614.3900391.2177903649.3991440.0024407.3134252.190786-1.550104e-01-2.076344e+02-4.548826e+02-0.0013371.039690e+021.403459e+051349.8825102.22001.169769e+021.159120e+021.159120e+02
32022-04-26dai37525.70364815846.22945316368.80860315957.23798432.80322431.9784332.214641-2.101020e+04-9.493450e+03-2.102459e+04-0.0305596.197640e+052.918862e+050.4709632.07006.828865e+056.875000e+056.874721e+05
42022-04-26eth12403.6148955071.6274291.8012575103.5023300.00361010.2274602.2146411.366771e+001.827579e+034.047433e+030.0057182.187025e+022.888900e+051320.9269332.07002.388591e+022.390141e+022.390098e+02
..................................................................
5722022-07-13ren31768.6301431315.90653711368.2421051331.75549322.7820482.6688490.439336-2.925943e+04-7.788998e+03-3.421986e+03-0.0741993.650763e+059.888587e+040.2708640.45183.654831e+053.943198e+053.938701e+05
5732022-07-13usdc1112820.58231539171.48915740310.19446440287.308795407.173676406.9425080.439336-1.319153e+06-2.915052e+06-1.280687e+06-0.5382419.223219e+052.044195e+062.2163570.45181.112240e+062.450837e+062.447838e+06
5742022-07-13vbnt1317417.39600417347.15745949549.09584017188.881593754.554759261.7596180.439336-5.969363e+04-4.785695e+04-2.102528e+04-0.0152821.550398e+061.250088e+060.8063020.45183.851069e+063.906057e+063.889583e+06
5752022-07-13wbtc877132.73606540043.3588912.07596339984.6993610.00416080.1289500.439336-1.634478e+02-7.133886e+06-3.134172e+06-0.4837491.746781e+027.624048e+0643646.2708670.45181.746781e+023.378767e+023.378000e+02
5762022-07-13zcn32857.3593031643.0433658442.3908581667.28043942.4240758.3782940.439336-5.465076e+05-2.432456e+05-1.068665e+05-0.6552152.875819e+051.280001e+050.4450910.45182.875819e+058.340895e+058.329419e+05
\n

577 rows × 21 columns

\n
","textData":null,"removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"htmlSandbox","arguments":{}}},"output_type":"display_data","data":{"text/html":["
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymboltrade_countsourceAmount_realsourceAmount_real_usdtargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usdbntpricesurplus_tknsurplus_bntsurplus_usdsurplus_perctknTradingLiquidity_realbntTradingLiquidity_realspotRatepriceliquidity_realstakedBalance_realpoolTokenSupply_real
02022-04-20dai30.0030009.1762369.2053429.1407940.0184480.0183182.296663-9.221023e+00-4.026950e+00-9.248547e+00-0.0000549.161156e+044.000805e+040.4367142.29001.718604e+051.718697e+051.718697e+05
12022-04-22dai20.202159601.632956618.054738601.5260211.2385871.2054632.231059-6.283286e+02-2.744009e+02-6.122045e+02-0.0018283.202751e+051.404095e+050.4384032.22003.437408e+053.437500e+053.437500e+05
22022-04-25eth11628.1036213614.3900391.2177903649.3991440.0024407.3134252.190786-1.550104e-01-2.076344e+02-4.548826e+02-0.0013371.039690e+021.403459e+051349.8825102.22001.169769e+021.159120e+021.159120e+02
32022-04-26dai37525.70364815846.22945316368.80860315957.23798432.80322431.9784332.214641-2.101020e+04-9.493450e+03-2.102459e+04-0.0305596.197640e+052.918862e+050.4709632.07006.828865e+056.875000e+056.874721e+05
42022-04-26eth12403.6148955071.6274291.8012575103.5023300.00361010.2274602.2146411.366771e+001.827579e+034.047433e+030.0057182.187025e+022.888900e+051320.9269332.07002.388591e+022.390141e+022.390098e+02
..................................................................
5722022-07-13ren31768.6301431315.90653711368.2421051331.75549322.7820482.6688490.439336-2.925943e+04-7.788998e+03-3.421986e+03-0.0741993.650763e+059.888587e+040.2708640.45183.654831e+053.943198e+053.938701e+05
5732022-07-13usdc1112820.58231539171.48915740310.19446440287.308795407.173676406.9425080.439336-1.319153e+06-2.915052e+06-1.280687e+06-0.5382419.223219e+052.044195e+062.2163570.45181.112240e+062.450837e+062.447838e+06
5742022-07-13vbnt1317417.39600417347.15745949549.09584017188.881593754.554759261.7596180.439336-5.969363e+04-4.785695e+04-2.102528e+04-0.0152821.550398e+061.250088e+060.8063020.45183.851069e+063.906057e+063.889583e+06
5752022-07-13wbtc877132.73606540043.3588912.07596339984.6993610.00416080.1289500.439336-1.634478e+02-7.133886e+06-3.134172e+06-0.4837491.746781e+027.624048e+0643646.2708670.45181.746781e+023.378767e+023.378000e+02
5762022-07-13zcn32857.3593031643.0433658442.3908581667.28043942.4240758.3782940.439336-5.465076e+05-2.432456e+05-1.068665e+05-0.6552152.875819e+051.280001e+050.4450910.45182.875819e+058.340895e+058.329419e+05
\n

577 rows × 21 columns

\n
"]}}],"execution_count":0},{"cell_type":"code","source":["df = df.sort_values(['date', 'targetSymbol', 'trade_count'])\ndf\n"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"776385dc-a9c9-42ce-b5c5-6f4329dec998"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[72]:
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[72]:
"]}},{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymboltrade_countsourceAmount_realsourceAmount_real_usdtargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usdbntpricesurplus_tknsurplus_bntsurplus_usdsurplus_perctknTradingLiquidity_realbntTradingLiquidity_realspotRatepriceliquidity_realstakedBalance_realpoolTokenSupply_real
02022-04-20dai30.0030009.1762369.2053429.1407940.0184480.0183182.296663-9.221023e+00-4.026950e+00-9.248547e+00-0.0000549.161156e+044.000805e+040.4367142.29001.718604e+051.718697e+051.718697e+05
12022-04-22dai20.202159601.632956618.054738601.5260211.2385871.2054632.231059-6.283286e+02-2.744009e+02-6.122045e+02-0.0018283.202751e+051.404095e+050.4384032.22003.437408e+053.437500e+053.437500e+05
22022-04-25eth11628.1036213614.3900391.2177903649.3991440.0024407.3134252.190786-1.550104e-01-2.076344e+02-4.548826e+02-0.0013371.039690e+021.403459e+051349.8825102.22001.169769e+021.159120e+021.159120e+02
32022-04-26dai37525.70364815846.22945316368.80860315957.23798432.80322431.9784332.214641-2.101020e+04-9.493450e+03-2.102459e+04-0.0305596.197640e+052.918862e+050.4709632.07006.828865e+056.875000e+056.874721e+05
42022-04-26eth12403.6148955071.6274291.8012575103.5023300.00361010.2274602.2146411.366771e+001.827579e+034.047433e+030.0057182.187025e+022.888900e+051320.9269332.07002.388591e+022.390141e+022.390098e+02
..................................................................
5722022-07-13ren31768.6301431315.90653711368.2421051331.75549322.7820482.6688490.439336-2.925943e+04-7.788998e+03-3.421986e+03-0.0741993.650763e+059.888587e+040.2708640.45183.654831e+053.943198e+053.938701e+05
5732022-07-13usdc1112820.58231539171.48915740310.19446440287.308795407.173676406.9425080.439336-1.319153e+06-2.915052e+06-1.280687e+06-0.5382419.223219e+052.044195e+062.2163570.45181.112240e+062.450837e+062.447838e+06
5742022-07-13vbnt1317417.39600417347.15745949549.09584017188.881593754.554759261.7596180.439336-5.969363e+04-4.785695e+04-2.102528e+04-0.0152821.550398e+061.250088e+060.8063020.45183.851069e+063.906057e+063.889583e+06
5752022-07-13wbtc877132.73606540043.3588912.07596339984.6993610.00416080.1289500.439336-1.634478e+02-7.133886e+06-3.134172e+06-0.4837491.746781e+027.624048e+0643646.2708670.45181.746781e+023.378767e+023.378000e+02
5762022-07-13zcn32857.3593031643.0433658442.3908581667.28043942.4240758.3782940.439336-5.465076e+05-2.432456e+05-1.068665e+05-0.6552152.875819e+051.280001e+050.4450910.45182.875819e+058.340895e+058.329419e+05
\n

577 rows × 21 columns

\n
","textData":null,"removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"htmlSandbox","arguments":{}}},"output_type":"display_data","data":{"text/html":["
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymboltrade_countsourceAmount_realsourceAmount_real_usdtargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usdbntpricesurplus_tknsurplus_bntsurplus_usdsurplus_perctknTradingLiquidity_realbntTradingLiquidity_realspotRatepriceliquidity_realstakedBalance_realpoolTokenSupply_real
02022-04-20dai30.0030009.1762369.2053429.1407940.0184480.0183182.296663-9.221023e+00-4.026950e+00-9.248547e+00-0.0000549.161156e+044.000805e+040.4367142.29001.718604e+051.718697e+051.718697e+05
12022-04-22dai20.202159601.632956618.054738601.5260211.2385871.2054632.231059-6.283286e+02-2.744009e+02-6.122045e+02-0.0018283.202751e+051.404095e+050.4384032.22003.437408e+053.437500e+053.437500e+05
22022-04-25eth11628.1036213614.3900391.2177903649.3991440.0024407.3134252.190786-1.550104e-01-2.076344e+02-4.548826e+02-0.0013371.039690e+021.403459e+051349.8825102.22001.169769e+021.159120e+021.159120e+02
32022-04-26dai37525.70364815846.22945316368.80860315957.23798432.80322431.9784332.214641-2.101020e+04-9.493450e+03-2.102459e+04-0.0305596.197640e+052.918862e+050.4709632.07006.828865e+056.875000e+056.874721e+05
42022-04-26eth12403.6148955071.6274291.8012575103.5023300.00361010.2274602.2146411.366771e+001.827579e+034.047433e+030.0057182.187025e+022.888900e+051320.9269332.07002.388591e+022.390141e+022.390098e+02
..................................................................
5722022-07-13ren31768.6301431315.90653711368.2421051331.75549322.7820482.6688490.439336-2.925943e+04-7.788998e+03-3.421986e+03-0.0741993.650763e+059.888587e+040.2708640.45183.654831e+053.943198e+053.938701e+05
5732022-07-13usdc1112820.58231539171.48915740310.19446440287.308795407.173676406.9425080.439336-1.319153e+06-2.915052e+06-1.280687e+06-0.5382419.223219e+052.044195e+062.2163570.45181.112240e+062.450837e+062.447838e+06
5742022-07-13vbnt1317417.39600417347.15745949549.09584017188.881593754.554759261.7596180.439336-5.969363e+04-4.785695e+04-2.102528e+04-0.0152821.550398e+061.250088e+060.8063020.45183.851069e+063.906057e+063.889583e+06
5752022-07-13wbtc877132.73606540043.3588912.07596339984.6993610.00416080.1289500.439336-1.634478e+02-7.133886e+06-3.134172e+06-0.4837491.746781e+027.624048e+0643646.2708670.45181.746781e+023.378767e+023.378000e+02
5762022-07-13zcn32857.3593031643.0433658442.3908581667.28043942.4240758.3782940.439336-5.465076e+05-2.432456e+05-1.068665e+05-0.6552152.875819e+051.280001e+050.4450910.45182.875819e+058.340895e+058.329419e+05
\n

577 rows × 21 columns

\n
"]}}],"execution_count":0},{"cell_type":"code","source":["df = df.drop_duplicates(subset=['date','targetSymbol'])\ndf"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"c55edb7b-4ce9-491e-a4ff-a47903fad180"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
Out[76]:
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
Out[76]:
"]}},{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymboltrade_countsourceAmount_realsourceAmount_real_usdtargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usdbntpricesurplus_tknsurplus_bntsurplus_usdsurplus_perctknTradingLiquidity_realbntTradingLiquidity_realspotRatepriceliquidity_realstakedBalance_realpoolTokenSupply_real
02022-04-20dai30.0030009.1762369.2053429.1407940.0184480.0183182.296663-9.221023e+00-4.026950e+00-9.248547e+00-0.0000549.161156e+044.000805e+040.4367142.29001.718604e+051.718697e+051.718697e+05
12022-04-22dai20.202159601.632956618.054738601.5260211.2385871.2054632.231059-6.283286e+02-2.744009e+02-6.122045e+02-0.0018283.202751e+051.404095e+050.4384032.22003.437408e+053.437500e+053.437500e+05
22022-04-25eth11628.1036213614.3900391.2177903649.3991440.0024407.3134252.190786-1.550104e-01-2.076344e+02-4.548826e+02-0.0013371.039690e+021.403459e+051349.8825102.22001.169769e+021.159120e+021.159120e+02
32022-04-26dai37525.70364815846.22945316368.80860315957.23798432.80322431.9784332.214641-2.101020e+04-9.493450e+03-2.102459e+04-0.0305596.197640e+052.918862e+050.4709632.07006.828865e+056.875000e+056.874721e+05
42022-04-26eth12403.6148955071.6274291.8012575103.5023300.00361010.2274602.2146411.366771e+001.827579e+034.047433e+030.0057182.187025e+022.888900e+051320.9269332.07002.388591e+022.390141e+022.390098e+02
..................................................................
5722022-07-13ren31768.6301431315.90653711368.2421051331.75549322.7820482.6688490.439336-2.925943e+04-7.788998e+03-3.421986e+03-0.0741993.650763e+059.888587e+040.2708640.45183.654831e+053.943198e+053.938701e+05
5732022-07-13usdc1112820.58231539171.48915740310.19446440287.308795407.173676406.9425080.439336-1.319153e+06-2.915052e+06-1.280687e+06-0.5382419.223219e+052.044195e+062.2163570.45181.112240e+062.450837e+062.447838e+06
5742022-07-13vbnt1317417.39600417347.15745949549.09584017188.881593754.554759261.7596180.439336-5.969363e+04-4.785695e+04-2.102528e+04-0.0152821.550398e+061.250088e+060.8063020.45183.851069e+063.906057e+063.889583e+06
5752022-07-13wbtc877132.73606540043.3588912.07596339984.6993610.00416080.1289500.439336-1.634478e+02-7.133886e+06-3.134172e+06-0.4837491.746781e+027.624048e+0643646.2708670.45181.746781e+023.378767e+023.378000e+02
5762022-07-13zcn32857.3593031643.0433658442.3908581667.28043942.4240758.3782940.439336-5.465076e+05-2.432456e+05-1.068665e+05-0.6552152.875819e+051.280001e+050.4450910.45182.875819e+058.340895e+058.329419e+05
\n

577 rows × 21 columns

\n
","textData":null,"removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"htmlSandbox","arguments":{}}},"output_type":"display_data","data":{"text/html":["
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetargetSymboltrade_countsourceAmount_realsourceAmount_real_usdtargetAmount_realtargetAmount_real_usdtrade_revenue_realtrade_revenue_usdbntpricesurplus_tknsurplus_bntsurplus_usdsurplus_perctknTradingLiquidity_realbntTradingLiquidity_realspotRatepriceliquidity_realstakedBalance_realpoolTokenSupply_real
02022-04-20dai30.0030009.1762369.2053429.1407940.0184480.0183182.296663-9.221023e+00-4.026950e+00-9.248547e+00-0.0000549.161156e+044.000805e+040.4367142.29001.718604e+051.718697e+051.718697e+05
12022-04-22dai20.202159601.632956618.054738601.5260211.2385871.2054632.231059-6.283286e+02-2.744009e+02-6.122045e+02-0.0018283.202751e+051.404095e+050.4384032.22003.437408e+053.437500e+053.437500e+05
22022-04-25eth11628.1036213614.3900391.2177903649.3991440.0024407.3134252.190786-1.550104e-01-2.076344e+02-4.548826e+02-0.0013371.039690e+021.403459e+051349.8825102.22001.169769e+021.159120e+021.159120e+02
32022-04-26dai37525.70364815846.22945316368.80860315957.23798432.80322431.9784332.214641-2.101020e+04-9.493450e+03-2.102459e+04-0.0305596.197640e+052.918862e+050.4709632.07006.828865e+056.875000e+056.874721e+05
42022-04-26eth12403.6148955071.6274291.8012575103.5023300.00361010.2274602.2146411.366771e+001.827579e+034.047433e+030.0057182.187025e+022.888900e+051320.9269332.07002.388591e+022.390141e+022.390098e+02
..................................................................
5722022-07-13ren31768.6301431315.90653711368.2421051331.75549322.7820482.6688490.439336-2.925943e+04-7.788998e+03-3.421986e+03-0.0741993.650763e+059.888587e+040.2708640.45183.654831e+053.943198e+053.938701e+05
5732022-07-13usdc1112820.58231539171.48915740310.19446440287.308795407.173676406.9425080.439336-1.319153e+06-2.915052e+06-1.280687e+06-0.5382419.223219e+052.044195e+062.2163570.45181.112240e+062.450837e+062.447838e+06
5742022-07-13vbnt1317417.39600417347.15745949549.09584017188.881593754.554759261.7596180.439336-5.969363e+04-4.785695e+04-2.102528e+04-0.0152821.550398e+061.250088e+060.8063020.45183.851069e+063.906057e+063.889583e+06
5752022-07-13wbtc877132.73606540043.3588912.07596339984.6993610.00416080.1289500.439336-1.634478e+02-7.133886e+06-3.134172e+06-0.4837491.746781e+027.624048e+0643646.2708670.45181.746781e+023.378767e+023.378000e+02
5762022-07-13zcn32857.3593031643.0433658442.3908581667.28043942.4240758.3782940.439336-5.465076e+05-2.432456e+05-1.068665e+05-0.6552152.875819e+051.280001e+050.4450910.45182.875819e+058.340895e+058.329419e+05
\n

577 rows × 21 columns

\n
"]}}],"execution_count":0},{"cell_type":"code","source":["df['trade_revenue_real_rolling_7day_avg'] = df[\n 'trade_revenue_real'\n].rolling(7, min_periods=1).mean()\n\ndf['trade_revenue_usd_rolling_7day_avg'] = df[\n 'trade_revenue_usd'\n].rolling(7, min_periods=1).mean()\n\ndf['trade_revenue_real_rolling_30day_avg'] = df[\n 'trade_revenue_real'\n].rolling(30, min_periods=1).mean()\n\ndf['trade_revenue_usd_rolling_30day_avg'] = df[\n 'trade_revenue_usd'\n].rolling(30, min_periods=1).mean()\n\ndf"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"c8604fe0-55a1-47e9-b78d-7de5739a9b1e"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
"]}}],"execution_count":0},{"cell_type":"code","source":["import mlflow\n\nfilepath = '/dbfs/FileStore/tables/research/preprocessed_tradingliquidity_vs_deficit.csv'\ndf.to_csv(filepath, index=False)\nmlflow.log_artifact(filepath)\n"],"metadata":{"application/vnd.databricks.v1+cell":{"title":"","showTitle":false,"inputWidgets":{},"nuid":"d25989ae-f719-41b6-8106-5fc5f880a729"}},"outputs":[{"output_type":"display_data","metadata":{"application/vnd.databricks.v1+output":{"datasetInfos":[],"data":"
","removedWidgets":[],"addedWidgets":{},"metadata":{},"type":"html","arguments":{}}},"output_type":"display_data","data":{"text/html":["\n
"]}}],"execution_count":0}],"metadata":{"application/vnd.databricks.v1+notebook":{"notebookName":"join_tables","dashboards":[],"notebookMetadata":{"pythonIndentUnit":4},"language":"python","widgets":{},"notebookOrigID":1744197420073310}},"nbformat":4,"nbformat_minor":0} From eb9e88cde51c3df1d9f03cdb8ba0c42dbcb8176b Mon Sep 17 00:00:00 2001 From: mikewcasale Date: Sun, 7 Aug 2022 06:11:55 -0700 Subject: [PATCH 07/16] updated scenario_generator imports --- bancor_research/scenario_generator/agents.py | 15 ++++-- .../scenario_generator/batch_run.py | 7 +++ bancor_research/scenario_generator/model.py | 50 +++++++++--------- .../{random_walk.py => monte_carlo.py} | 6 +-- bancor_research/scenario_generator/run.py | 3 +- bancor_research/scenario_generator/server.py | 10 ++++ bancor_research/scenario_generator/utils.py | 2 + .../ahp}/Analytical Hierarchy Process.png | Bin .../studies/ahp}/ahp-example.ipynb | 0 .../studies/ahp}/ahp_example.csv | 0 .../proposal_with_data.ipynb} | 0 .../simulation.ipynb | 36 +++++++++++++ 12 files changed, 96 insertions(+), 33 deletions(-) rename bancor_research/scenario_generator/{random_walk.py => monte_carlo.py} (87%) rename {bancor_research/bancor_ahp => examples/studies/ahp}/Analytical Hierarchy Process.png (100%) rename {bancor_research/bancor_ahp => examples/studies/ahp}/ahp-example.ipynb (100%) rename {bancor_research/bancor_ahp => examples/studies/ahp}/ahp_example.csv (100%) rename examples/studies/{limit_tradingliquidity_proposal_study.ipynb => limit_max_on_curve_liquidity/proposal_with_data.ipynb} (100%) create mode 100644 examples/studies/limit_max_on_curve_liquidity/simulation.ipynb diff --git a/bancor_research/scenario_generator/agents.py b/bancor_research/scenario_generator/agents.py index c8e80be6..ec23c550 100644 --- a/bancor_research/scenario_generator/agents.py +++ b/bancor_research/scenario_generator/agents.py @@ -3,16 +3,23 @@ # Licensed under the MIT LICENSE. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------------------------------- """Mesa Agent-based implementations of the Bancor protocol.""" +from decimal import Decimal +from typing import Tuple import mesa +from bancor_research.bancor_simulator.v3.spec import get_prices, State, get_bnt_trading_liquidity, \ + get_tkn_trading_liquidity, get_trading_fee, get_user_balance, get_is_trading_enabled, get_network_fee, get_ema_rate, \ + get_spot_rate, get_vault_balance, get_pooltoken_balance, get_staked_balance, get_external_protection_vault, \ + get_protocol_wallet_balance, get_vortex_balance, get_bnt_funding_limit, get_bnbnt_rate, get_max_bnt_deposit, \ + get_user_pending_withdrawals from bancor_research.bancor_simulator.v3.spec.actions import ( unpack_withdrawal_cooldown, vortex_burner, ) from bancor_research.bancor_simulator.v3.spec.network import BancorDapp -from bancor_research.bancor_simulator.v3.simulation.random_walk import RandomWalker -from bancor_research.bancor_simulator.v3.simulation.utils import ( +from bancor_research.scenario_generator.monte_carlo import MonteCarlo +from bancor_research.scenario_generator.utils import ( trade_tkn_to_ema, trade_bnt_to_ema, process_arbitrage_trade, @@ -26,7 +33,7 @@ ) -class Trader(RandomWalker): +class Trader(MonteCarlo): """ Represents a Bancor dapp user (trader and/or arbitrageur). Subclass to Mesa Agent """ @@ -328,7 +335,7 @@ def step(self): self.transact() -class LP(RandomWalker): +class LP(MonteCarlo): """ Represents a Bancor dapp liquidity provider. Subclass to Mesa Agent """ diff --git a/bancor_research/scenario_generator/batch_run.py b/bancor_research/scenario_generator/batch_run.py index 5333d27d..1f89141f 100644 --- a/bancor_research/scenario_generator/batch_run.py +++ b/bancor_research/scenario_generator/batch_run.py @@ -22,6 +22,13 @@ """ import os +import mesa +from bancor_research.scenario_generator.constants import SIMULATION_MAX_STEPS, SIMULATION_OUTPUT_PATH + +from bancor_research.scenario_generator.model import BancorSimulation + +from bancor_research.bancor_simulator.v3.spec import * + # Add any desired parameters to sweep below. br_params = { "trading_fee": [ diff --git a/bancor_research/scenario_generator/model.py b/bancor_research/scenario_generator/model.py index 2c6ccd0b..0e2c059c 100644 --- a/bancor_research/scenario_generator/model.py +++ b/bancor_research/scenario_generator/model.py @@ -2,20 +2,20 @@ # -------------------------------------------------------------------------------------------------------------------- # Licensed under the MIT LICENSE. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------------------------------- -"""Main Bancor Simulation module interface.""" - +"""Main Bancor Simulation module interface. +If you want to perform a parameter sweep, call batch_run.py instead of run.py. +For details see batch_run.py in the same directory as run.py. +""" import mesa import itertools from decimal import Decimal -from mesa.datacollection import DataCollector -from pydantic.types import Any -from bancor_research.bancor_simulator.v3.simulation.agents import Trader, LP, Protocol +from bancor_research.scenario_generator.agents import Protocol, Trader, LP -""" -If you want to perform a parameter sweep, call batch_run.py instead of run.py. -For details see batch_run.py in the same directory as run.py. -""" +from bancor_research.bancor_simulator.v3.spec import * +from bancor_research.scenario_generator.constants import * +from mesa.datacollection import DataCollector +from pydantic.types import Any def track_params(model): @@ -53,22 +53,22 @@ class BancorSimulation(mesa.Model): max_steps = SIMULATION_MAX_STEPS def __init__( - self, - height=grid_h, - width=grid_w, - init_traders=SIMULATION_NUM_TRADERS, - init_lps=SIMULATION_NUM_LPs, - whale_threshold=SIMULATION_WHALE_THRESHOLD, - trading_fee=float(DEFAULT_TRADING_FEE), - network_fee=float(DEFAULT_NETWORK_FEE), - withdrawal_fee=float(DEFAULT_WITHDRAWAL_FEE), - whitelisted_tokens=None, - target_tvl=SIMULATION_TARGET_TVL, - price_feeds=DEFAULT_PRICE_FEEDS, - bnt_funding_limit=float(DEFAULT_BNT_FUNDING_LIMIT), - bnt_min_liquidity=float(DEFAULT_BNT_MIN_LIQUIDITY), - *args: Any, - **kwargs: Any + self, + height=grid_h, + width=grid_w, + init_traders=SIMULATION_NUM_TRADERS, + init_lps=SIMULATION_NUM_LPs, + whale_threshold=SIMULATION_WHALE_THRESHOLD, + trading_fee=float(DEFAULT_TRADING_FEE), + network_fee=float(DEFAULT_NETWORK_FEE), + withdrawal_fee=float(DEFAULT_WITHDRAWAL_FEE), + whitelisted_tokens=None, + target_tvl=SIMULATION_TARGET_TVL, + price_feeds=DEFAULT_PRICE_FEEDS, + bnt_funding_limit=float(DEFAULT_BNT_FUNDING_LIMIT), + bnt_min_liquidity=float(DEFAULT_BNT_MIN_LIQUIDITY), + *args: Any, + **kwargs: Any ): if whitelisted_tokens is None: diff --git a/bancor_research/scenario_generator/random_walk.py b/bancor_research/scenario_generator/monte_carlo.py similarity index 87% rename from bancor_research/scenario_generator/random_walk.py rename to bancor_research/scenario_generator/monte_carlo.py index 6ea3efb2..e5645a38 100644 --- a/bancor_research/scenario_generator/random_walk.py +++ b/bancor_research/scenario_generator/monte_carlo.py @@ -4,15 +4,15 @@ # -------------------------------------------------------------------------- """ -Generalized behavior for random walking, one grid cell at a time. +Generalized behavior for monte carlo simulation """ import mesa -class RandomWalker(mesa.Agent): +class MonteCarlo(mesa.Agent): """ - Class implementing random walker methods in a generalized manner. + Class implementing monte carlo methods in a generalized manner. """ grid = None diff --git a/bancor_research/scenario_generator/run.py b/bancor_research/scenario_generator/run.py index 1350945c..1a06b4dc 100644 --- a/bancor_research/scenario_generator/run.py +++ b/bancor_research/scenario_generator/run.py @@ -1,3 +1,4 @@ -from bancor_research.bancor_simulator.v3.simulation.server import server +# coding=utf-8 +from bancor_research.scenario_generator.server import server server.launch() diff --git a/bancor_research/scenario_generator/server.py b/bancor_research/scenario_generator/server.py index d47cdb22..815646e0 100644 --- a/bancor_research/scenario_generator/server.py +++ b/bancor_research/scenario_generator/server.py @@ -3,8 +3,18 @@ # Licensed under the MIT LICENSE. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------------------------------- """Sets up the interactive visualization server for the Mesa Agent-based simulation.""" +from decimal import Decimal + +import mesa # The colors here are taken from Matplotlib's tab10 palette +from bancor_research.scenario_generator.model import BancorSimulation + +from bancor_research.scenario_generator.constants import SIMULATION_WHALE_THRESHOLD + +from bancor_research.bancor_simulator.v3.spec import DEFAULT_TRADING_FEE, DEFAULT_NETWORK_FEE, DEFAULT_WITHDRAWAL_FEE +from bancor_research.scenario_generator.agents import Trader, LP + RICH_COLOR = "#2ca02c" # Green POOR_COLOR = "#d62728" # Red MID_COLOR = "#1f77b4" # Blue diff --git a/bancor_research/scenario_generator/utils.py b/bancor_research/scenario_generator/utils.py index bfe637bb..9984df47 100644 --- a/bancor_research/scenario_generator/utils.py +++ b/bancor_research/scenario_generator/utils.py @@ -3,6 +3,8 @@ # Licensed under the MIT LICENSE. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------------------------------- """Simulation utility functions.""" +from decimal import Decimal +from typing import Tuple def trade_tkn_to_ema( diff --git a/bancor_research/bancor_ahp/Analytical Hierarchy Process.png b/examples/studies/ahp/Analytical Hierarchy Process.png similarity index 100% rename from bancor_research/bancor_ahp/Analytical Hierarchy Process.png rename to examples/studies/ahp/Analytical Hierarchy Process.png diff --git a/bancor_research/bancor_ahp/ahp-example.ipynb b/examples/studies/ahp/ahp-example.ipynb similarity index 100% rename from bancor_research/bancor_ahp/ahp-example.ipynb rename to examples/studies/ahp/ahp-example.ipynb diff --git a/bancor_research/bancor_ahp/ahp_example.csv b/examples/studies/ahp/ahp_example.csv similarity index 100% rename from bancor_research/bancor_ahp/ahp_example.csv rename to examples/studies/ahp/ahp_example.csv diff --git a/examples/studies/limit_tradingliquidity_proposal_study.ipynb b/examples/studies/limit_max_on_curve_liquidity/proposal_with_data.ipynb similarity index 100% rename from examples/studies/limit_tradingliquidity_proposal_study.ipynb rename to examples/studies/limit_max_on_curve_liquidity/proposal_with_data.ipynb diff --git a/examples/studies/limit_max_on_curve_liquidity/simulation.ipynb b/examples/studies/limit_max_on_curve_liquidity/simulation.ipynb new file mode 100644 index 00000000..f5746948 --- /dev/null +++ b/examples/studies/limit_max_on_curve_liquidity/simulation.ipynb @@ -0,0 +1,36 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file From 295d7206947beb5c5435bed70fbbaa8329247410 Mon Sep 17 00:00:00 2001 From: mikewcasale Date: Sun, 7 Aug 2022 07:30:49 -0700 Subject: [PATCH 08/16] fixed scenario_generator --- .../bancor_simulator/v3/spec/network.py | 19 ++++++------ bancor_research/scenario_generator/agents.py | 25 ++++++++-------- .../scenario_generator/constants.py | 23 ++++++++++++-- examples/simulation-example.ipynb | 6 ++-- .../simulation.ipynb | 30 +++++++++++++++---- 5 files changed, 70 insertions(+), 33 deletions(-) diff --git a/bancor_research/bancor_simulator/v3/spec/network.py b/bancor_research/bancor_simulator/v3/spec/network.py index a7bad838..d7e79e0b 100644 --- a/bancor_research/bancor_simulator/v3/spec/network.py +++ b/bancor_research/bancor_simulator/v3/spec/network.py @@ -15,8 +15,8 @@ def userAmount(state: State, tkn_name: str, user_name: str, amount: str): - if amount.endswith("%"): - return get_user_balance(state, user_name, tkn_name) * Decimal(amount[:-1]) / 100 + if str(amount).endswith("%"): + return get_user_balance(state, user_name, tkn_name) * Decimal(str(amount)[:-1]) / 100 return Decimal(amount) @@ -164,17 +164,16 @@ def show_history(self): def deposit( self, tkn_name: str, - tkn_amt_abs_or_rel: str, + tkn_amt: str, user_name: str, timestamp: int = 0, - bntkn: Decimal = Decimal("0"), action_name="deposit", ): """ Top level logic for deposit actions. """ state = self.get_state(copy_type="initial", timestamp=timestamp) - tkn_amt = userAmount(state, tkn_name, user_name, tkn_amt_abs_or_rel) + tkn_amt = userAmount(state, tkn_name, user_name, tkn_amt) state, tkn_name, tkn_amt, user_name = validate_input( state, tkn_name, tkn_amt, user_name, timestamp ) @@ -196,11 +195,11 @@ def deposit( transaction_id=self.transaction_id, state=state, ) - return bntkn + # return bntkn def trade( self, - tkn_amt_abs_or_rel: str, + tkn_amt: str, source_token: str, target_token: str, user_name: str, @@ -211,7 +210,7 @@ def trade( Main logic for trade actions. """ state = self.get_state(copy_type="initial", timestamp=timestamp) - tkn_amt = userAmount(state, source_token, user_name, tkn_amt_abs_or_rel) + tkn_amt = userAmount(state, source_token, user_name, tkn_amt) state, source_token, tkn_amt, user_name = validate_input( state, source_token, tkn_amt, user_name, timestamp ) @@ -233,7 +232,7 @@ def trade( def begin_cooldown( self, - tkn_amt_abs_or_rel: str, + tkn_amt: str, tkn_name: str, user_name: str, timestamp: int = 0, @@ -243,7 +242,7 @@ def begin_cooldown( Begin the withdrawal cooldown operation. """ state = self.get_state(copy_type="initial", timestamp=timestamp) - tkn_amt = userAmount(state, tkn_name, user_name, tkn_amt_abs_or_rel) + tkn_amt = userAmount(state, tkn_name, user_name, tkn_amt) state, tkn_name, tkn_amt, user_name = validate_input( state, tkn_name, tkn_amt, user_name, timestamp ) diff --git a/bancor_research/scenario_generator/agents.py b/bancor_research/scenario_generator/agents.py index ec23c550..96782c8d 100644 --- a/bancor_research/scenario_generator/agents.py +++ b/bancor_research/scenario_generator/agents.py @@ -274,7 +274,7 @@ def perform_random_ema_force_trade(self): return self def get_random_tkn_names(self, state: State) -> Tuple[str, str]: - tokens = state.whitelisted_tokens + tokens = [tkn for tkn in state.whitelisted_tokens] source_tkn = self.random.choice(tokens) target_tkn = self.random.choice([tkn for tkn in tokens if tkn != source_tkn]) return source_tkn, target_tkn @@ -439,7 +439,7 @@ def get_random_bnt_funding_limit(self, bnt_funding_amt: Decimal) -> Decimal: def set_random_trading_fee(self): state = self.protocol.v3.global_state for i in range(self.random.randint(1, 3)): - tkn_name = self.random.choice(state.whitelisted_tokens) + tkn_name = self.random.choice([tkn for tkn in state.whitelisted_tokens]) trading_fee = get_trading_fee(state, tkn_name) trading_fee = self.get_random_trading_fee(trading_fee) state.set_trading_fee(tkn_name, trading_fee) @@ -448,7 +448,7 @@ def set_random_trading_fee(self): def set_random_network_fee(self): state = self.protocol.v3.global_state - tkn_name = self.random.choice(state.whitelisted_tokens) + tkn_name = self.random.choice([tkn for tkn in state.whitelisted_tokens]) network_fee = get_network_fee(state, tkn_name) network_fee = self.get_random_network_fee(network_fee) state.set_network_fee(tkn_name, network_fee) @@ -458,7 +458,7 @@ def set_random_network_fee(self): def set_random_withdrawal_fee(self): state = self.protocol.v3.global_state withdrawal_fee = state.withdrawal_fee - tkn_name = self.random.choice(state.whitelisted_tokens) + tkn_name = self.random.choice([tkn for tkn in state.whitelisted_tokens]) withdrawal_fee = self.get_random_withdrawal_fee(withdrawal_fee) state.set_withdrawal_fee(tkn_name, withdrawal_fee) self.protocol.v3.set_state(state) @@ -466,7 +466,7 @@ def set_random_withdrawal_fee(self): def set_random_bnt_funding_limit(self): state = self.protocol.v3.global_state - tkn_name = self.random.choice(state.whitelisted_tokens) + tkn_name = self.random.choice([tkn for tkn in state.whitelisted_tokens]) bnt_funding_limit = get_bnt_funding_limit(state, tkn_name) updated_bnt_funding_limit = self.get_random_bnt_funding_limit(bnt_funding_limit) state.set_bnt_funding_limit(tkn_name, updated_bnt_funding_limit) @@ -474,9 +474,10 @@ def set_random_bnt_funding_limit(self): return self def perform_random_enable_trading(self): - self.protocol.v3.dao_msig_init_pools( - self.protocol.v3.global_state.whitelisted_tokens, "bnt" - ) + state = self.protocol.v3.global_state + tokens = [tkn for tkn in state.whitelisted_tokens] + for tkn in tokens: + self.protocol.v3.enable_trading(tkn) return self def get_random_withdrawal_amt(self, tkn_name: str) -> Decimal: @@ -504,7 +505,7 @@ def get_random_amt(self, amt: Decimal) -> Decimal: return Decimal(self.random.uniform(float(min_amt), float(max_amt))) def get_random_tkn_names(self, state: State) -> Tuple[str, str]: - tokens = state.whitelisted_tokens + tokens = [tkn for tkn in state.whitelisted_tokens] source_tkn = self.random.choice(tokens) target_tkn = self.random.choice([tkn for tkn in tokens if tkn != source_tkn]) return source_tkn, target_tkn @@ -561,7 +562,7 @@ def create_random_autocompounding_rewards(self): timestamp = state.timestamp start_time = 1 + timestamp - tkn_name = self.random.choice(state.whitelisted_tokens) + tkn_name = self.random.choice([tkn for tkn in state.whitelisted_tokens]) distribution_type = self.random.choice(["flat", "exp"]) if distribution_type == "flat": @@ -782,7 +783,7 @@ def perform_random_withdrawal(self): state = self.protocol.v3.global_state timestamp = state.timestamp user_name = self.random.choice(state.usernames) - tkn_name = self.random.choice(state.whitelisted_tokens) + tkn_name = self.random.choice([tkn for tkn in state.whitelisted_tokens]) pending_withdrawals = get_user_pending_withdrawals(state, user_name, tkn_name) if len(pending_withdrawals) > 0: id_number = self.random.choice(pending_withdrawals) @@ -978,10 +979,8 @@ def __init__( self.v3 = BancorDapp( price_feeds=price_feeds, whitelisted_tokens=whitelisted_tokens, - trading_fee=trading_fee, network_fee=network_fee, withdrawal_fee=withdrawal_fee, - bnt_funding_limit=bnt_funding_limit, bnt_min_liquidity=bnt_min_liquidity, ) diff --git a/bancor_research/scenario_generator/constants.py b/bancor_research/scenario_generator/constants.py index b5e6849d..d42f355b 100644 --- a/bancor_research/scenario_generator/constants.py +++ b/bancor_research/scenario_generator/constants.py @@ -5,6 +5,8 @@ """Simulation constants and default state variables.""" from decimal import Decimal +from bancor_research.bancor_simulator.v3.spec.state import DEFAULT_TRADING_FEE, DEFAULT_BNT_FUNDING_LIMIT + SIMULATION_TARGET_TVL: Decimal = Decimal("160000000") SIMULATION_TARGET_TRADE_VOLUME: Decimal = Decimal("20000000") SIMULATION_WHALE_THRESHOLD: Decimal = Decimal("1000000") @@ -13,6 +15,23 @@ SIMULATION_TARGET_NUM_WITHDRAWALS_PER_DAY: int = 200 SIMULATION_NUM_TRADERS = 2 SIMULATION_NUM_LPs = 2 -SIMULATION_WHITELISTED_TOKENS = ["tkn", "bnt"] +SIMULATION_WHITELISTED_TOKENS = { + "eth": { + "trading_fee": DEFAULT_TRADING_FEE, + "bnt_funding_limit": DEFAULT_BNT_FUNDING_LIMIT, + }, + "link": { + "trading_fee": DEFAULT_TRADING_FEE, + "bnt_funding_limit": DEFAULT_BNT_FUNDING_LIMIT, + }, + "tkn": { + "trading_fee": DEFAULT_TRADING_FEE, + "bnt_funding_limit": DEFAULT_BNT_FUNDING_LIMIT, + }, + "wbtc": { + "trading_fee": DEFAULT_TRADING_FEE, + "bnt_funding_limit": DEFAULT_BNT_FUNDING_LIMIT, + }, +} SIMULATION_MAX_STEPS = 100 -SIMULATION_OUTPUT_PATH: str = "data/simulation_output.csv" +SIMULATION_OUTPUT_PATH: str = "examples/studies/limit_max_on_curve_liquidity/data/simulation_output.csv" diff --git a/examples/simulation-example.ipynb b/examples/simulation-example.ipynb index adcd74d9..f6bafdb7 100644 --- a/examples/simulation-example.ipynb +++ b/examples/simulation-example.ipynb @@ -8,7 +8,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "4it [00:01, 2.85it/s]\r\n" + "python: can't open file '/Users/mikewcasale/Local/projects/bancor/research/examples/bancor_simulator/v3/simulator/batch_run.py': [Errno 2] No such file or directory\r\n" ] } ], @@ -37,9 +37,9 @@ ], "metadata": { "kernelspec": { - "name": "pycharm-c19c9c8d", + "name": "python3", "language": "python", - "display_name": "PyCharm (simulator-v3)" + "display_name": "Python 3 (ipykernel)" }, "language_info": { "codemirror_mode": { diff --git a/examples/studies/limit_max_on_curve_liquidity/simulation.ipynb b/examples/studies/limit_max_on_curve_liquidity/simulation.ipynb index f5746948..28585074 100644 --- a/examples/studies/limit_max_on_curve_liquidity/simulation.ipynb +++ b/examples/studies/limit_max_on_curve_liquidity/simulation.ipynb @@ -2,21 +2,41 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "collapsed": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "zsh:1: permission denied: /Users/mikewcasale/Local/projects/bancor/research/bancor_research/scenario_generator/batch_run.py\r\n" + ] + } + ], "source": [ - "" + "! /Users/mikewcasale/Local/projects/bancor/research/bancor_research/scenario_generator/batch_run.py" ] + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "name": "bancor_research_env", "language": "python", - "name": "python3" + "display_name": "bancor_research_env" }, "language_info": { "codemirror_mode": { From c2c90c763c36b567ba53d78917ae19cba09947b7 Mon Sep 17 00:00:00 2001 From: mikewcasale Date: Sun, 7 Aug 2022 14:31:16 +0000 Subject: [PATCH 09/16] fixup: Format Python code with Black --- bancor_research/bancor_simulator/v3/spec/network.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bancor_research/bancor_simulator/v3/spec/network.py b/bancor_research/bancor_simulator/v3/spec/network.py index d7e79e0b..d6cacefc 100644 --- a/bancor_research/bancor_simulator/v3/spec/network.py +++ b/bancor_research/bancor_simulator/v3/spec/network.py @@ -16,7 +16,11 @@ def userAmount(state: State, tkn_name: str, user_name: str, amount: str): if str(amount).endswith("%"): - return get_user_balance(state, user_name, tkn_name) * Decimal(str(amount)[:-1]) / 100 + return ( + get_user_balance(state, user_name, tkn_name) + * Decimal(str(amount)[:-1]) + / 100 + ) return Decimal(amount) From 1e2da1a638f652d5ebb9c9e20dfd2a852f3479df Mon Sep 17 00:00:00 2001 From: mikewcasale Date: Mon, 8 Aug 2022 13:52:41 -0700 Subject: [PATCH 10/16] Update agents.py --- bancor_research/scenario_generator/agents.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/bancor_research/scenario_generator/agents.py b/bancor_research/scenario_generator/agents.py index 96782c8d..fceb2a4c 100644 --- a/bancor_research/scenario_generator/agents.py +++ b/bancor_research/scenario_generator/agents.py @@ -275,8 +275,7 @@ def perform_random_ema_force_trade(self): def get_random_tkn_names(self, state: State) -> Tuple[str, str]: tokens = [tkn for tkn in state.whitelisted_tokens] - source_tkn = self.random.choice(tokens) - target_tkn = self.random.choice([tkn for tkn in tokens if tkn != source_tkn]) + source_tkn, target_tkn = self.random.sample(tokens, 2) return source_tkn, target_tkn def get_average_trading_fee(self): @@ -475,8 +474,7 @@ def set_random_bnt_funding_limit(self): def perform_random_enable_trading(self): state = self.protocol.v3.global_state - tokens = [tkn for tkn in state.whitelisted_tokens] - for tkn in tokens: + for tkn in [tkn for tkn in state.whitelisted_tokens]: self.protocol.v3.enable_trading(tkn) return self @@ -506,8 +504,7 @@ def get_random_amt(self, amt: Decimal) -> Decimal: def get_random_tkn_names(self, state: State) -> Tuple[str, str]: tokens = [tkn for tkn in state.whitelisted_tokens] - source_tkn = self.random.choice(tokens) - target_tkn = self.random.choice([tkn for tkn in tokens if tkn != source_tkn]) + source_tkn, target_tkn = self.random.sample(tokens, 2) return source_tkn, target_tkn def is_protocol_bnbnt_healthy( From c38e1fee6f2874d1963a9045f2d414b74a7dc910 Mon Sep 17 00:00:00 2001 From: mikewcasale Date: Mon, 8 Aug 2022 13:55:09 -0700 Subject: [PATCH 11/16] Update constants.py --- bancor_research/scenario_generator/constants.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/bancor_research/scenario_generator/constants.py b/bancor_research/scenario_generator/constants.py index d42f355b..8621fbdf 100644 --- a/bancor_research/scenario_generator/constants.py +++ b/bancor_research/scenario_generator/constants.py @@ -4,8 +4,9 @@ # -------------------------------------------------------------------------------------------------------------------- """Simulation constants and default state variables.""" from decimal import Decimal - -from bancor_research.bancor_simulator.v3.spec.state import DEFAULT_TRADING_FEE, DEFAULT_BNT_FUNDING_LIMIT +from bancor_research import DEFAULT +DEFAULT_TRADING_FEE = DEFAULT.TRADING_FEE +DEFAULT_BNT_FUNDING_LIMIT = DEFAULT.BNT_FUNDING_LIMIT SIMULATION_TARGET_TVL: Decimal = Decimal("160000000") SIMULATION_TARGET_TRADE_VOLUME: Decimal = Decimal("20000000") @@ -15,6 +16,8 @@ SIMULATION_TARGET_NUM_WITHDRAWALS_PER_DAY: int = 200 SIMULATION_NUM_TRADERS = 2 SIMULATION_NUM_LPs = 2 + + SIMULATION_WHITELISTED_TOKENS = { "eth": { "trading_fee": DEFAULT_TRADING_FEE, From d4ea9de7040af1af57545140cdd98400a03546fc Mon Sep 17 00:00:00 2001 From: mikewcasale Date: Mon, 8 Aug 2022 14:01:14 -0700 Subject: [PATCH 12/16] Update constants.py --- bancor_research/scenario_generator/constants.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bancor_research/scenario_generator/constants.py b/bancor_research/scenario_generator/constants.py index 8621fbdf..296ac7f1 100644 --- a/bancor_research/scenario_generator/constants.py +++ b/bancor_research/scenario_generator/constants.py @@ -7,7 +7,9 @@ from bancor_research import DEFAULT DEFAULT_TRADING_FEE = DEFAULT.TRADING_FEE DEFAULT_BNT_FUNDING_LIMIT = DEFAULT.BNT_FUNDING_LIMIT - +DEFAULT_NETWORK_FEE = DEFAULT.NETWORK_FEE +DEFAULT_WITHDRAWAL_FEE = DEFAULT.WITHDRAWAL_FEE + SIMULATION_TARGET_TVL: Decimal = Decimal("160000000") SIMULATION_TARGET_TRADE_VOLUME: Decimal = Decimal("20000000") SIMULATION_WHALE_THRESHOLD: Decimal = Decimal("1000000") From 7f1fd3ef9f1acf469b3f1050306de2080a2206d5 Mon Sep 17 00:00:00 2001 From: mikewcasale Date: Mon, 8 Aug 2022 14:01:18 -0700 Subject: [PATCH 13/16] Update server.py --- bancor_research/scenario_generator/server.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/bancor_research/scenario_generator/server.py b/bancor_research/scenario_generator/server.py index 815646e0..5b52333e 100644 --- a/bancor_research/scenario_generator/server.py +++ b/bancor_research/scenario_generator/server.py @@ -6,13 +6,11 @@ from decimal import Decimal import mesa +from bancor_research.scenario_generator.constants import * # The colors here are taken from Matplotlib's tab10 palette from bancor_research.scenario_generator.model import BancorSimulation -from bancor_research.scenario_generator.constants import SIMULATION_WHALE_THRESHOLD - -from bancor_research.bancor_simulator.v3.spec import DEFAULT_TRADING_FEE, DEFAULT_NETWORK_FEE, DEFAULT_WITHDRAWAL_FEE from bancor_research.scenario_generator.agents import Trader, LP RICH_COLOR = "#2ca02c" # Green From 3e22680326f39336f62e65cb0ce00ff045dfae65 Mon Sep 17 00:00:00 2001 From: mikewcasale Date: Mon, 8 Aug 2022 14:11:22 -0700 Subject: [PATCH 14/16] Update network.py - changed `tkn_amt: str` to `tkn_amt: Any` - changed camelcase functions to lowercase for simulator python style consistency --- .../bancor_simulator/v3/spec/network.py | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/bancor_research/bancor_simulator/v3/spec/network.py b/bancor_research/bancor_simulator/v3/spec/network.py index 77b32638..2ece2663 100644 --- a/bancor_research/bancor_simulator/v3/spec/network.py +++ b/bancor_research/bancor_simulator/v3/spec/network.py @@ -13,11 +13,11 @@ from bancor_research import DEFAULT, PandasDataFrame, read_price_feeds, pd -def toDecimal(percent: str): +def to_decimal(percent: str): return Decimal(percent[:-1]) / 100 -def userAmount(state: State, tkn_name: str, user_name: str, amount: str): +def get_user_amount(state: State, tkn_name: str, user_name: str, amount: Any): if str(amount).endswith("%"): return ( get_user_balance(state, user_name, tkn_name) @@ -78,7 +78,7 @@ def __init__( whitelisted_tokens = { k: { - "trading_fee": toDecimal(v["trading_fee"]), + "trading_fee": to_decimal(v["trading_fee"]), "bnt_funding_limit": Decimal(v["bnt_funding_limit"]), } for k, v in whitelisted_tokens.items() @@ -96,9 +96,9 @@ def __init__( whitelisted_tokens=whitelisted_tokens, usernames=[], cooldown_time=cooldown_time, - network_fee=toDecimal(network_fee), + network_fee=to_decimal(network_fee), bnt_min_liquidity=Decimal(bnt_min_liquidity), - withdrawal_fee=toDecimal(withdrawal_fee), + withdrawal_fee=to_decimal(withdrawal_fee), ) # initialize bnt @@ -191,11 +191,11 @@ def deposit( Top level logic for deposit actions. """ state = self.get_state(copy_type="initial", timestamp=timestamp) - tkn_amt = userAmount(state, tkn_name, user_name, tkn_amt) + tkn_amt = get_user_amount(state, tkn_name, user_name, tkn_amt) state, tkn_name, tkn_amt, user_name = validate_input( state, tkn_name, tkn_amt, user_name, timestamp ) - tkn_amt = userAmount(state, tkn_name, user_name, tkn_amt) + tkn_amt = get_user_amount(state, tkn_name, user_name, tkn_amt) if tkn_name == "bnt": state = deposit_bnt( state=state, tkn_name=tkn_name, tkn_amt=tkn_amt, user_name=user_name @@ -228,14 +228,14 @@ def trade( Main logic for trade actions. """ state = self.get_state(copy_type="initial", timestamp=timestamp) - tkn_amt = userAmount(state, source_token, user_name, tkn_amt) + tkn_amt = get_user_amount(state, source_token, user_name, tkn_amt) state, source_token, tkn_amt, user_name = validate_input( state, source_token, tkn_amt, user_name, timestamp ) state, target_token, user_name = validate_input( state, target_token, user_name, timestamp ) - tkn_amt = userAmount(state, source_token, user_name, tkn_amt) + tkn_amt = get_user_amount(state, source_token, user_name, tkn_amt) state = process_trade( state, tkn_amt, source_token, target_token, user_name, timestamp ) @@ -261,11 +261,11 @@ def begin_cooldown( Begin the withdrawal cooldown operation. """ state = self.get_state(copy_type="initial", timestamp=timestamp) - tkn_amt = userAmount(state, tkn_name, user_name, tkn_amt) + tkn_amt = get_user_amount(state, tkn_name, user_name, tkn_amt) state, tkn_name, tkn_amt, user_name = validate_input( state, tkn_name, tkn_amt, user_name, timestamp ) - tkn_amt = userAmount(state, tkn_name, user_name, tkn_amt) + tkn_amt = get_user_amount(state, tkn_name, user_name, tkn_amt) state, id_number = begin_withdrawal_cooldown( state, tkn_amt, tkn_name, user_name ) @@ -525,7 +525,7 @@ def burn_pool_tokens( state, tkn_name, user_name = validate_input( state, tkn_name, user_name, timestamp ) - tkn_amt = userAmount(state, tkn_name, user_name, tkn_amt) + tkn_amt = get_user_amount(state, tkn_name, user_name, tkn_amt) if tkn_name != "bnt": state.decrease_pooltoken_balance(tkn_name, tkn_amt) state.decrease_user_balance( @@ -589,7 +589,7 @@ def join_standard_rewards_program( state, tkn_name, user_name = validate_input( state, tkn_name, user_name, timestamp ) - tkn_amt = userAmount(state, tkn_name, user_name, tkn_amt) + tkn_amt = get_user_amount(state, tkn_name, user_name, tkn_amt) state = join_standard_reward_program( state=state, user_name=user_name, @@ -618,7 +618,7 @@ def leave_standard_rewards_program( state, tkn_name, user_name = validate_input( state, tkn_name, user_name, timestamp ) - tkn_amt = userAmount(state, tkn_name, user_name, tkn_amt) + tkn_amt = get_user_amount(state, tkn_name, user_name, tkn_amt) state = leave_standard_reward_program( state=state, user_name=user_name, @@ -702,7 +702,7 @@ def set_trading_fee( """ state = self.get_state(copy_type="initial", timestamp=timestamp) state, tkn_name, user_name = validate_input(state, tkn_name, "", timestamp) - value = toDecimal(percent) + value = to_decimal(percent) state.set_trading_fee(tkn_name, value) self.next_transaction(state) handle_logging( @@ -722,7 +722,7 @@ def set_network_fee( """ state = self.get_state(copy_type="initial", timestamp=timestamp) state, tkn_name, user_name = validate_input(state, tkn_name, "", timestamp) - value = toDecimal(percent) + value = to_decimal(percent) state.set_network_fee(tkn_name, value) self.next_transaction(state) handle_logging( @@ -742,7 +742,7 @@ def set_withdrawal_fee( """ state = self.get_state(copy_type="initial", timestamp=timestamp) state, tkn_name, user_name = validate_input(state, tkn_name, "", timestamp) - value = toDecimal(percent) + value = to_decimal(percent) state.set_withdrawal_fee(tkn_name, value) self.next_transaction(state) handle_logging( @@ -762,7 +762,7 @@ def set_bnt_funding_limit( """ state = self.get_state(copy_type="initial", timestamp=timestamp) state, tkn_name, user_name = validate_input(state, tkn_name, "", timestamp) - value = toDecimal(amount) + value = to_decimal(amount) state.set_bnt_funding_limit(tkn_name, value) self.next_transaction(state) handle_logging( From 80aaa3c3d2f3908b82e27045106913420513d0e4 Mon Sep 17 00:00:00 2001 From: mikewcasale Date: Mon, 8 Aug 2022 14:11:32 -0700 Subject: [PATCH 15/16] Update constants.py --- bancor_research/scenario_generator/constants.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bancor_research/scenario_generator/constants.py b/bancor_research/scenario_generator/constants.py index 296ac7f1..e99b418c 100644 --- a/bancor_research/scenario_generator/constants.py +++ b/bancor_research/scenario_generator/constants.py @@ -9,7 +9,7 @@ DEFAULT_BNT_FUNDING_LIMIT = DEFAULT.BNT_FUNDING_LIMIT DEFAULT_NETWORK_FEE = DEFAULT.NETWORK_FEE DEFAULT_WITHDRAWAL_FEE = DEFAULT.WITHDRAWAL_FEE - + SIMULATION_TARGET_TVL: Decimal = Decimal("160000000") SIMULATION_TARGET_TRADE_VOLUME: Decimal = Decimal("20000000") SIMULATION_WHALE_THRESHOLD: Decimal = Decimal("1000000") From ac98abf1bcf1addfaba01afeb948ee7d11b3eeaa Mon Sep 17 00:00:00 2001 From: mikewcasale Date: Mon, 8 Aug 2022 14:17:20 -0700 Subject: [PATCH 16/16] Update network.py - fixed some inconsistent usage --- bancor_research/bancor_simulator/v3/spec/network.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/bancor_research/bancor_simulator/v3/spec/network.py b/bancor_research/bancor_simulator/v3/spec/network.py index 2ece2663..6445903f 100644 --- a/bancor_research/bancor_simulator/v3/spec/network.py +++ b/bancor_research/bancor_simulator/v3/spec/network.py @@ -195,7 +195,6 @@ def deposit( state, tkn_name, tkn_amt, user_name = validate_input( state, tkn_name, tkn_amt, user_name, timestamp ) - tkn_amt = get_user_amount(state, tkn_name, user_name, tkn_amt) if tkn_name == "bnt": state = deposit_bnt( state=state, tkn_name=tkn_name, tkn_amt=tkn_amt, user_name=user_name @@ -232,10 +231,6 @@ def trade( state, source_token, tkn_amt, user_name = validate_input( state, source_token, tkn_amt, user_name, timestamp ) - state, target_token, user_name = validate_input( - state, target_token, user_name, timestamp - ) - tkn_amt = get_user_amount(state, source_token, user_name, tkn_amt) state = process_trade( state, tkn_amt, source_token, target_token, user_name, timestamp ) @@ -265,7 +260,6 @@ def begin_cooldown( state, tkn_name, tkn_amt, user_name = validate_input( state, tkn_name, tkn_amt, user_name, timestamp ) - tkn_amt = get_user_amount(state, tkn_name, user_name, tkn_amt) state, id_number = begin_withdrawal_cooldown( state, tkn_amt, tkn_name, user_name )

+ciQ4^351qC=Wx%<0ODYGr7;4T!+}sn0Y4# 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�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 KM>IYsdFyv$d3P27 diff --git a/bancor_research/bancor_ahp/ahp-example.ipynb b/bancor_research/bancor_ahp/ahp-example.ipynb index ecf5d75c..5a0746b7 100644 --- a/bancor_research/bancor_ahp/ahp-example.ipynb +++ b/bancor_research/bancor_ahp/ahp-example.ipynb @@ -51,14 +51,14 @@ }, { "cell_type": "code", - "execution_count": 1027, + "execution_count": 1029, "outputs": [ { "data": { - "text/plain": " Fees Resources Deficit Alignment Risk Total\n0 0.346 0.45 0.318 0.222 0.222 1.558\n1 0.269 0.40 0.273 0.259 0.185 1.386\n2 0.192 0.05 0.227 0.259 0.259 0.987\n3 0.192 0.10 0.182 0.259 0.333 1.066", - "text/html": "