conviction/abc_sim.ipynb

879 lines
113 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"#import networkx as nx\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import scipy.stats as sts\n",
"import seaborn as sns\n",
"\n",
"%matplotlib inline\n",
"\n",
"#import conviction files\n",
"#from conviction_helpers import *\n",
"#from conviction_system_logic3 import *\n",
"from bonding_curve_eq import *"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"System initialization"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"hatch_raise = 100000 # fiat units\n",
"hatch_price = .1 #fiat per tokens\n",
"theta = .35 #share of funds going to funding pool at launch\n",
"\n",
"R0 = hatch_raise*(1-theta)\n",
"F0 = hatch_raise*theta\n",
"S0 = hatch_raise/hatch_price\n",
"\n",
"kappa = 2\n",
"V0 = invariant(R0,S0,kappa)\n",
"P0 = spot_price(R0, V0, kappa)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"agent initialization"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"#number of agents\n",
"n= 100\n",
"\n",
"#gain factors\n",
"g = sts.expon.rvs(loc=.1, scale=1, size=n)\n",
"phat0 = g*F0/S0\n",
"\n",
"#holdings fiat\n",
"h = sts.expon.rvs( loc=10,scale=10, size=n)\n",
"\n",
"#holdings tokens\n",
"s_dist = sts.expon.rvs(loc=10, scale=10, size=n)\n",
"s0 = s_dist/sum(s_dist)*S0\n",
"\n",
"#lambda for revenue process\n",
"lam = 20\n",
"\n",
"#phi for exiting funds\n",
"phi = .02"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"params= {\n",
" 'kappa': [kappa],\n",
" 'lambda': [lam],\n",
" 'gains': [g],\n",
" 'population':[n],\n",
" 'phi': [phi],\n",
" 'invariant': [V0]}"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"initial_conditions = {'holdings': h,\n",
" 'tokens': s0,\n",
" 'supply': S0,\n",
" 'prices': phat0,\n",
" 'funds':F0,\n",
" 'reserve': R0,\n",
" 'spot_price': P0,\n",
" 'action': {}}"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'action': {},\n",
" 'funds': 35000.0,\n",
" 'holdings': array([14.88127433, 18.87466608, 19.57784342, 14.63793196, 21.44444536,\n",
" 10.317408 , 19.62750331, 12.01878857, 14.2677462 , 16.97842563,\n",
" 17.72176759, 14.36539909, 14.6211707 , 15.81277377, 43.90061536,\n",
" 32.13775627, 34.48529219, 10.21543366, 10.07163269, 19.75850271,\n",
" 12.78694008, 13.45157174, 15.95477221, 23.29108154, 37.35631614,\n",
" 39.58434326, 16.12025781, 12.39256593, 30.15218853, 19.4749183 ,\n",
" 13.22210379, 23.05457693, 18.71490291, 15.90044881, 26.39627265,\n",
" 12.73248402, 22.60235735, 14.70512244, 12.26744585, 12.10522647,\n",
" 13.02446565, 13.70205896, 12.64071173, 17.15759214, 10.38946039,\n",
" 15.67547335, 17.51918024, 40.69697866, 13.43426017, 22.45919271,\n",
" 33.11092485, 10.3702571 , 12.67652359, 22.35003255, 41.30033197,\n",
" 19.89817066, 21.58959114, 24.56040609, 11.79517901, 14.46493707,\n",
" 10.98525867, 29.4206448 , 11.44259455, 34.82126874, 17.11043099,\n",
" 14.42873539, 12.03525765, 15.62657785, 11.49295128, 11.17655876,\n",
" 14.8351585 , 16.80015068, 21.43715064, 19.88951087, 27.3182167 ,\n",
" 27.32968491, 15.98285466, 20.48773575, 10.36637018, 15.99174039,\n",
" 22.70250809, 11.59151592, 19.91487937, 41.6028378 , 22.34268929,\n",
" 11.19780958, 12.51695259, 18.74055083, 23.47436995, 18.89681038,\n",
" 34.23362347, 18.99016726, 24.95746923, 19.96234447, 19.82704739,\n",
" 15.0748816 , 15.75287258, 18.27690911, 17.47564471, 13.72176299]),\n",
" 'prices': array([0.03294614, 0.00940077, 0.01333852, 0.01809726, 0.01099961,\n",
" 0.01619589, 0.04005964, 0.02872198, 0.06206674, 0.05914043,\n",
" 0.0555128 , 0.33451821, 0.04662551, 0.01209451, 0.03678592,\n",
" 0.03062592, 0.00902995, 0.04908896, 0.03527864, 0.00708443,\n",
" 0.00781666, 0.01942934, 0.05060054, 0.02886485, 0.00613693,\n",
" 0.01036006, 0.03659552, 0.02118436, 0.00725899, 0.01188288,\n",
" 0.00642702, 0.05644966, 0.08644936, 0.04552085, 0.07097738,\n",
" 0.01992168, 0.01907129, 0.01044349, 0.01770096, 0.00510643,\n",
" 0.01080443, 0.02528366, 0.0784599 , 0.01263797, 0.05077802,\n",
" 0.01194453, 0.02399326, 0.09576521, 0.01171497, 0.04145192,\n",
" 0.03314502, 0.01770759, 0.10754922, 0.02147692, 0.02764718,\n",
" 0.01051694, 0.04740914, 0.03670041, 0.04153406, 0.0486834 ,\n",
" 0.01255856, 0.01528643, 0.02165657, 0.03893526, 0.03341573,\n",
" 0.03414267, 0.00425014, 0.02526114, 0.03479073, 0.064243 ,\n",
" 0.11291872, 0.05897103, 0.0805738 , 0.12528287, 0.02783384,\n",
" 0.02739186, 0.01020661, 0.00948711, 0.03665115, 0.04075837,\n",
" 0.03300171, 0.01090048, 0.03258498, 0.01960781, 0.03104233,\n",
" 0.00439894, 0.01476272, 0.1509597 , 0.01648629, 0.00709618,\n",
" 0.00394137, 0.10226403, 0.00770832, 0.01139406, 0.0429253 ,\n",
" 0.02088549, 0.01244634, 0.07329495, 0.07380645, 0.01203784]),\n",
" 'reserve': 65000.0,\n",
" 'spot_price': 0.13,\n",
" 'supply': 1000000.0,\n",
" 'tokens': array([13096.35486701, 39192.75780827, 5143.39901326, 8676.39267665,\n",
" 6085.77275984, 10677.14237645, 9498.16345001, 37365.37568705,\n",
" 5735.9586308 , 12450.56787716, 6970.05178029, 6806.4269829 ,\n",
" 11196.88037079, 21589.17668658, 13929.74572977, 4922.46715105,\n",
" 18368.06474348, 6813.8709843 , 5262.53462563, 5244.19111365,\n",
" 9224.38623021, 12331.47865543, 9779.30947527, 10321.13438509,\n",
" 9888.3442418 , 5565.45119667, 7394.15230012, 6153.29611894,\n",
" 6374.36775059, 8384.59373554, 5901.26820104, 5280.9741122 ,\n",
" 7961.12189863, 7249.68225614, 7769.96491627, 7703.90997781,\n",
" 6886.57571724, 17854.60801791, 17421.1576242 , 4858.88984413,\n",
" 19573.51463391, 21640.61374031, 5222.39634989, 7713.06481448,\n",
" 20200.10034359, 19222.93274242, 16170.93888703, 5303.68168166,\n",
" 6888.20359956, 13940.73353357, 6206.76381704, 4804.367405 ,\n",
" 11338.09485446, 7047.46283623, 5029.74185701, 11610.47820826,\n",
" 7270.91362391, 6459.23134685, 5216.36860302, 5690.88336926,\n",
" 9365.16213184, 5196.72238947, 7015.54186227, 17074.80223226,\n",
" 14047.04939724, 14750.38277542, 5459.524232 , 5599.79909671,\n",
" 5227.67311217, 10499.18563596, 7287.83810777, 5650.46016706,\n",
" 8041.99341221, 8725.73606823, 7811.32629003, 9676.30570825,\n",
" 14088.69849558, 5763.02324408, 5605.29482125, 8233.52624461,\n",
" 4814.53588356, 8027.1648952 , 11060.88292885, 5117.79179897,\n",
" 14123.17188357, 6837.18388707, 5779.50624142, 6824.53960058,\n",
" 8143.41885925, 18779.72343612, 17821.25423193, 9288.83431639,\n",
" 8794.42841422, 11530.65370998, 7403.60704324, 16754.89539846,\n",
" 11115.486416 , 7926.30527074, 5846.89760111, 9009.22454127])}"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"initial_conditions"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"#change in F (revenue and spending accounted for)\n",
"def revenue_process(params, step, sL, s):\n",
" lam = params['lambda']\n",
" rv = sts.expon.rvs(scale=1/lam)\n",
" delF= 1-1/lam+rv\n",
" return({'delF':delF})"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"def update_funds(params, step, sL, s, _input):\n",
" \n",
" funds = s['funds']*_input['delF']\n",
" \n",
" key = 'funds'\n",
" value = funds\n",
" \n",
" return (key, value)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"def update_prices(params, step, sL, s, _input):\n",
" \n",
" g = params['gains']\n",
" phat = g*s['funds']/s['supply']\n",
" \n",
" key = 'prices'\n",
" value = phat\n",
" \n",
" return (key, value)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"#change in F (revenue and spending accounted for)\n",
"def choose_agent(params, step, sL, s):\n",
" n = params['population']\n",
" rv = np.random.randint(0,n)\n",
" return({'agent':rv})"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"def agent_action(params, step, sL, s, _input):\n",
" \n",
" a = _input['agent']\n",
" h_a = s['holdings'][a]\n",
" phat_a = s['prices'][a]\n",
" s_a = s['tokens'][a]\n",
" p = s['spot_price']\n",
" \n",
" if p>phat_a:\n",
" mech = 'burn'\n",
" #solve for burn s.t. p=phat\n",
" #if ha is enough\n",
" amt = 1000 #fill in logic here\n",
" if amt> s_a:\n",
" amt = s_a\n",
" \n",
" else: # p<phat_a:\n",
" mech = 'bond'\n",
" #solve for buy s.t. p=phat\n",
" #if sa is enough\n",
" amt = 1000 #fill in logic here\n",
" if amt> h_a:\n",
" amt = h_a\n",
" \n",
" key = 'action'\n",
" value = {'agent':a, 'mech':mech, 'amt':amt}\n",
" \n",
" return (key, value)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"def resolve_action(params, step, sL, s):\n",
" action = s['action']\n",
" a = action['agent']\n",
" amt = action['amt']\n",
" h_a = s['holdings'][a]\n",
" s_a = s['tokens'][a]\n",
" R = s['reserve']\n",
" S = s['supply']\n",
" F = s['funds']\n",
" V0 = params['invariant']\n",
" \n",
" if action['mech'] == 'bond':\n",
" h_a = h_a-amt\n",
" dS, pbar = mint(amt, R,S, V0, params['kappa'])\n",
" R = R+amt\n",
" S = S+dS\n",
" s_a = s_a+dS\n",
" P = spot_price(R, V0, kappa)\n",
" \n",
" elif action['mech'] == 'burn':\n",
" s_a = s_a-amt\n",
" dR, pbar = withdraw(amt, R,S, V0, params['kappa'])\n",
" R = R-dR\n",
" F = F + params['phi']*dR\n",
" S = S-amt\n",
" h_a = h_a + (1-params['phi'])*dR\n",
" P = spot_price(R, V0, kappa)\n",
" \n",
" return({'F':F, 'S':S, 'R':R,'P':P, 'a':a,'s_a':s_a, 'h_a':h_a})"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"def update_F(params, step, sL, s, _input):\n",
" \n",
" F = _input['F']\n",
" \n",
" key = 'funds'\n",
" value = F\n",
" \n",
" return (key, value)\n",
"\n",
"def update_S(params, step, sL, s, _input):\n",
" \n",
" S = _input['S']\n",
" \n",
" key = 'supply'\n",
" value = S\n",
" \n",
" return (key, value)\n",
"\n",
"def update_R(params, step, sL, s, _input):\n",
" \n",
" R = _input['R']\n",
" \n",
" key = 'reserve'\n",
" value = R\n",
" \n",
" return (key, value)\n",
"\n",
"def update_P(params, step, sL, s, _input):\n",
" \n",
" P = _input['P']\n",
" \n",
" key = 'spot_price'\n",
" value = P\n",
" \n",
" return (key, value)\n",
"\n",
"def update_holdings(params, step, sL, s, _input):\n",
" \n",
" h_a = _input['h_a']\n",
" a = _input['a']\n",
" \n",
" h = s['holdings']\n",
" h[a] = h_a\n",
" \n",
" key = 'holdings'\n",
" value = h\n",
" \n",
" return (key, value)\n",
"\n",
"def update_tokens(params, step, sL, s, _input):\n",
" \n",
" s_a = _input['s_a']\n",
" a = _input['a']\n",
" \n",
" tokens = s['holdings']\n",
" tokens[a] = s_a\n",
" \n",
" key = 'holdings'\n",
" value = tokens\n",
" \n",
" return (key, value)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # \n",
"# The Partial State Update Blocks\n",
"partial_state_update_blocks = [\n",
" { \n",
" 'policies': { \n",
" #new proposals or new participants\n",
" 'random': revenue_process\n",
" },\n",
" 'variables': {\n",
" 'funds': update_funds,\n",
" 'prices': update_prices\n",
" }\n",
" },\n",
" {\n",
" 'policies': {\n",
" 'random': choose_agent\n",
" },\n",
" 'variables': { \n",
" 'action': agent_action, \n",
" }\n",
" },\n",
" {\n",
" 'policies': {\n",
" 'act': resolve_action,\n",
" },\n",
" 'variables': {\n",
" 'funds': update_F, #\n",
" 'supply': update_S, \n",
" 'reserve': update_R,\n",
" 'spot_price': update_P,\n",
" 'holdings': update_holdings,\n",
" 'tokens': update_tokens\n",
" }\n",
" }\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"time_periods_per_run = 1000\n",
"monte_carlo_runs = 1\n",
"\n",
"from cadCAD.configuration.utils import config_sim\n",
"simulation_parameters = config_sim({\n",
" 'T': range(time_periods_per_run),\n",
" 'N': monte_carlo_runs,\n",
" 'M': params\n",
"})"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[{'N': 1, 'T': range(0, 1000), 'M': {'kappa': 2, 'lambda': 20, 'gains': array([0.94131832, 0.26859354, 0.38110061, 0.51706446, 0.31427464,\n",
" 0.46273963, 1.14456103, 0.82062798, 1.7733353 , 1.68972652,\n",
" 1.58607992, 9.5576631 , 1.33215736, 0.34555754, 1.05102631,\n",
" 0.87502626, 0.25799865, 1.40254163, 1.00796124, 0.20241237,\n",
" 0.22333319, 0.55512391, 1.44572973, 0.82470992, 0.1753408 ,\n",
" 0.2960016 , 1.04558639, 0.60526736, 0.20739984, 0.33951077,\n",
" 0.18362902, 1.61284755, 2.46998174, 1.30059563, 2.02792526,\n",
" 0.56919073, 0.544894 , 0.29838542, 0.50574184, 0.14589808,\n",
" 0.30869799, 0.72239021, 2.24171138, 0.36108484, 1.45080069,\n",
" 0.34127224, 0.68552167, 2.73614881, 0.33471352, 1.18434063,\n",
" 0.9470007 , 0.50593117, 3.07283481, 0.61362619, 0.78991929,\n",
" 0.30048405, 1.35454682, 1.04858323, 1.18668756, 1.39095441,\n",
" 0.35881591, 0.43675517, 0.61875908, 1.11243611, 0.95473521,\n",
" 0.97550478, 0.12143258, 0.72174688, 0.99402087, 1.83551415,\n",
" 3.22624923, 1.68488665, 2.30210848, 3.57951071, 0.79525259,\n",
" 0.78262467, 0.29161745, 0.27106025, 1.04717585, 1.16452491,\n",
" 0.94290594, 0.31144239, 0.93099942, 0.56022315, 0.88692378,\n",
" 0.12568412, 0.42179193, 4.31313433, 0.47103677, 0.20274799,\n",
" 0.11261044, 2.9218295 , 0.22023773, 0.3255446 , 1.22643706,\n",
" 0.59672838, 0.35560964, 2.09414155, 2.10875582, 0.34393833]), 'population': 100, 'phi': 0.02, 'invariant': 15384615.384615384}}, {'N': 1, 'T': range(0, 1000), 'M': {'kappa': 2, 'lambda': 20, 'gains': array([0.94131832, 0.26859354, 0.38110061, 0.51706446, 0.31427464,\n",
" 0.46273963, 1.14456103, 0.82062798, 1.7733353 , 1.68972652,\n",
" 1.58607992, 9.5576631 , 1.33215736, 0.34555754, 1.05102631,\n",
" 0.87502626, 0.25799865, 1.40254163, 1.00796124, 0.20241237,\n",
" 0.22333319, 0.55512391, 1.44572973, 0.82470992, 0.1753408 ,\n",
" 0.2960016 , 1.04558639, 0.60526736, 0.20739984, 0.33951077,\n",
" 0.18362902, 1.61284755, 2.46998174, 1.30059563, 2.02792526,\n",
" 0.56919073, 0.544894 , 0.29838542, 0.50574184, 0.14589808,\n",
" 0.30869799, 0.72239021, 2.24171138, 0.36108484, 1.45080069,\n",
" 0.34127224, 0.68552167, 2.73614881, 0.33471352, 1.18434063,\n",
" 0.9470007 , 0.50593117, 3.07283481, 0.61362619, 0.78991929,\n",
" 0.30048405, 1.35454682, 1.04858323, 1.18668756, 1.39095441,\n",
" 0.35881591, 0.43675517, 0.61875908, 1.11243611, 0.95473521,\n",
" 0.97550478, 0.12143258, 0.72174688, 0.99402087, 1.83551415,\n",
" 3.22624923, 1.68488665, 2.30210848, 3.57951071, 0.79525259,\n",
" 0.78262467, 0.29161745, 0.27106025, 1.04717585, 1.16452491,\n",
" 0.94290594, 0.31144239, 0.93099942, 0.56022315, 0.88692378,\n",
" 0.12568412, 0.42179193, 4.31313433, 0.47103677, 0.20274799,\n",
" 0.11261044, 2.9218295 , 0.22023773, 0.3255446 , 1.22643706,\n",
" 0.59672838, 0.35560964, 2.09414155, 2.10875582, 0.34393833]), 'population': 100, 'phi': 0.04, 'invariant': 15384615.384615384}}]\n",
"[{'N': 1, 'T': range(0, 1000), 'M': {'kappa': 2, 'lambda': 20, 'gains': array([0.94131832, 0.26859354, 0.38110061, 0.51706446, 0.31427464,\n",
" 0.46273963, 1.14456103, 0.82062798, 1.7733353 , 1.68972652,\n",
" 1.58607992, 9.5576631 , 1.33215736, 0.34555754, 1.05102631,\n",
" 0.87502626, 0.25799865, 1.40254163, 1.00796124, 0.20241237,\n",
" 0.22333319, 0.55512391, 1.44572973, 0.82470992, 0.1753408 ,\n",
" 0.2960016 , 1.04558639, 0.60526736, 0.20739984, 0.33951077,\n",
" 0.18362902, 1.61284755, 2.46998174, 1.30059563, 2.02792526,\n",
" 0.56919073, 0.544894 , 0.29838542, 0.50574184, 0.14589808,\n",
" 0.30869799, 0.72239021, 2.24171138, 0.36108484, 1.45080069,\n",
" 0.34127224, 0.68552167, 2.73614881, 0.33471352, 1.18434063,\n",
" 0.9470007 , 0.50593117, 3.07283481, 0.61362619, 0.78991929,\n",
" 0.30048405, 1.35454682, 1.04858323, 1.18668756, 1.39095441,\n",
" 0.35881591, 0.43675517, 0.61875908, 1.11243611, 0.95473521,\n",
" 0.97550478, 0.12143258, 0.72174688, 0.99402087, 1.83551415,\n",
" 3.22624923, 1.68488665, 2.30210848, 3.57951071, 0.79525259,\n",
" 0.78262467, 0.29161745, 0.27106025, 1.04717585, 1.16452491,\n",
" 0.94290594, 0.31144239, 0.93099942, 0.56022315, 0.88692378,\n",
" 0.12568412, 0.42179193, 4.31313433, 0.47103677, 0.20274799,\n",
" 0.11261044, 2.9218295 , 0.22023773, 0.3255446 , 1.22643706,\n",
" 0.59672838, 0.35560964, 2.09414155, 2.10875582, 0.34393833]), 'population': 100, 'phi': 0.02, 'invariant': 15384615.384615384}}, {'N': 1, 'T': range(0, 1000), 'M': {'kappa': 2, 'lambda': 20, 'gains': array([0.94131832, 0.26859354, 0.38110061, 0.51706446, 0.31427464,\n",
" 0.46273963, 1.14456103, 0.82062798, 1.7733353 , 1.68972652,\n",
" 1.58607992, 9.5576631 , 1.33215736, 0.34555754, 1.05102631,\n",
" 0.87502626, 0.25799865, 1.40254163, 1.00796124, 0.20241237,\n",
" 0.22333319, 0.55512391, 1.44572973, 0.82470992, 0.1753408 ,\n",
" 0.2960016 , 1.04558639, 0.60526736, 0.20739984, 0.33951077,\n",
" 0.18362902, 1.61284755, 2.46998174, 1.30059563, 2.02792526,\n",
" 0.56919073, 0.544894 , 0.29838542, 0.50574184, 0.14589808,\n",
" 0.30869799, 0.72239021, 2.24171138, 0.36108484, 1.45080069,\n",
" 0.34127224, 0.68552167, 2.73614881, 0.33471352, 1.18434063,\n",
" 0.9470007 , 0.50593117, 3.07283481, 0.61362619, 0.78991929,\n",
" 0.30048405, 1.35454682, 1.04858323, 1.18668756, 1.39095441,\n",
" 0.35881591, 0.43675517, 0.61875908, 1.11243611, 0.95473521,\n",
" 0.97550478, 0.12143258, 0.72174688, 0.99402087, 1.83551415,\n",
" 3.22624923, 1.68488665, 2.30210848, 3.57951071, 0.79525259,\n",
" 0.78262467, 0.29161745, 0.27106025, 1.04717585, 1.16452491,\n",
" 0.94290594, 0.31144239, 0.93099942, 0.56022315, 0.88692378,\n",
" 0.12568412, 0.42179193, 4.31313433, 0.47103677, 0.20274799,\n",
" 0.11261044, 2.9218295 , 0.22023773, 0.3255446 , 1.22643706,\n",
" 0.59672838, 0.35560964, 2.09414155, 2.10875582, 0.34393833]), 'population': 100, 'phi': 0.04, 'invariant': 15384615.384615384}}]\n"
]
}
],
"source": [
"from cadCAD.configuration import append_configs\n",
"# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #\n",
"# The configurations above are then packaged into a `Configuration` object\n",
"append_configs(\n",
" initial_state=initial_conditions, #dict containing variable names and initial values\n",
" partial_state_update_blocks=partial_state_update_blocks, #dict containing state update functions\n",
" sim_configs=simulation_parameters #dict containing simulation parameters\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"from tabulate import tabulate\n",
"from cadCAD.engine import ExecutionMode, ExecutionContext, Executor\n",
"from cadCAD import configs\n",
"import pandas as pd\n",
"\n",
"exec_mode = ExecutionMode()\n",
"multi_proc_ctx = ExecutionContext(context=exec_mode.multi_proc)\n",
"run = Executor(exec_context=multi_proc_ctx, configs=configs)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
" __________ ____ \n",
" ________ __ _____/ ____/ | / __ \\\n",
" / ___/ __` / __ / / / /| | / / / /\n",
" / /__/ /_/ / /_/ / /___/ ___ |/ /_/ / \n",
" \\___/\\__,_/\\__,_/\\____/_/ |_/_____/ \n",
" by BlockScience\n",
" \n",
"Execution Mode: multi_proc: [<cadCAD.configuration.Configuration object at 0x1a1bc624e0>, <cadCAD.configuration.Configuration object at 0x1a1bcc9f60>]\n",
"Configurations: [<cadCAD.configuration.Configuration object at 0x1a1bc624e0>, <cadCAD.configuration.Configuration object at 0x1a1bcc9f60>]\n"
]
}
],
"source": [
"i = 0\n",
"verbose = False\n",
"results = {}\n",
"for raw_result, tensor_field in run.execute():\n",
" result = pd.DataFrame(raw_result)\n",
" if verbose:\n",
" print()\n",
" print(f\"Tensor Field: {type(tensor_field)}\")\n",
" print(tabulate(tensor_field, headers='keys', tablefmt='psql'))\n",
" print(f\"Output: {type(result)}\")\n",
" print(tabulate(result, headers='keys', tablefmt='psql'))\n",
" print()\n",
" results[i] = {}\n",
" results[i]['result'] = result\n",
" results[i]['simulation_parameters'] = simulation_parameters[i]\n",
" i += 1\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"experiment_index = 0\n",
"df = results[experiment_index]['result']"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x1a1be02f60>"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a1be02978>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df.funds.apply(np.log).plot()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x1a1c869fd0>"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a1be020b8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"(df.funds.diff()/df.funds).hist()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"rdf = df[df.substep == 3]"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x1a1c23d2b0>"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a1c079da0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"rdf.prices.apply(np.min).plot()\n",
"rdf.prices.apply(np.median).plot()\n",
"rdf.prices.apply(np.mean).plot()\n",
"rdf.prices.apply(np.max).plot()\n",
"rdf.spot_price.plot()\n",
"plt.legend(['min', 'median','mean','max', 'spot'])"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3 {'agent': 17, 'mech': 'burn', 'amt': 1000}\n",
"6 {'agent': 36, 'mech': 'burn', 'amt': 1000}\n",
"9 {'agent': 83, 'mech': 'burn', 'amt': 1000}\n",
"12 {'agent': 19, 'mech': 'burn', 'amt': 1000}\n",
"15 {'agent': 70, 'mech': 'burn', 'amt': 1000}\n",
"18 {'agent': 92, 'mech': 'burn', 'amt': 1000}\n",
"21 {'agent': 3, 'mech': 'burn', 'amt': 1000}\n",
"24 {'agent': 6, 'mech': 'burn', 'amt': 1000}\n",
"27 {'agent': 57, 'mech': 'burn', 'amt': 1000}\n",
"30 {'agent': 60, 'mech': 'burn', 'amt': 1000}\n",
"33 {'agent': 63, 'mech': 'burn', 'amt': 1000}\n",
"36 {'agent': 10, 'mech': 'burn', 'amt': 1000}\n",
"39 {'agent': 20, 'mech': 'burn', 'amt': 1000}\n",
"42 {'agent': 93, 'mech': 'burn', 'amt': 1000}\n",
"45 {'agent': 85, 'mech': 'burn', 'amt': 1000}\n",
"48 {'agent': 52, 'mech': 'burn', 'amt': 1000}\n",
"51 {'agent': 1, 'mech': 'burn', 'amt': 1000}\n",
"54 {'agent': 17, 'mech': 'burn', 'amt': 1000}\n",
"57 {'agent': 18, 'mech': 'burn', 'amt': 1000}\n",
"60 {'agent': 48, 'mech': 'burn', 'amt': 1000}\n",
"63 {'agent': 26, 'mech': 'burn', 'amt': 1000}\n",
"66 {'agent': 79, 'mech': 'burn', 'amt': 1000}\n",
"69 {'agent': 24, 'mech': 'burn', 'amt': 1000}\n",
"72 {'agent': 83, 'mech': 'burn', 'amt': 1000}\n",
"75 {'agent': 85, 'mech': 'burn', 'amt': 1000}\n",
"78 {'agent': 1, 'mech': 'burn', 'amt': 1000}\n",
"81 {'agent': 3, 'mech': 'burn', 'amt': 1000}\n",
"84 {'agent': 81, 'mech': 'burn', 'amt': 1000}\n",
"87 {'agent': 41, 'mech': 'burn', 'amt': 1000}\n",
"90 {'agent': 68, 'mech': 'burn', 'amt': 1000}\n",
" ... \n",
"2913 {'agent': 57, 'mech': 'burn', 'amt': 1000}\n",
"2916 {'agent': 57, 'mech': 'burn', 'amt': 1000}\n",
"2919 {'agent': 25, 'mech': 'burn', 'amt': 1000}\n",
"2922 {'agent': 71, 'mech': 'burn', 'amt': 1000}\n",
"2925 {'agent': 8, 'mech': 'burn', 'amt': 1000}\n",
"2928 {'agent': 14, 'mech': 'burn', 'amt': 1000}\n",
"2931 {'agent': 14, 'mech': 'burn', 'amt': 1000}\n",
"2934 {'agent': 3, 'mech': 'burn', 'amt': 1000}\n",
"2937 {'agent': 26, 'mech': 'burn', 'amt': 1000}\n",
"2940 {'agent': 55, 'mech': 'burn', 'amt': 1000}\n",
"2943 {'agent': 78, 'mech': 'burn', 'amt': 1000}\n",
"2946 {'agent': 98, 'mech': 'burn', 'amt': 1000}\n",
"2949 {'agent': 34, 'mech': 'burn', 'amt': 1000}\n",
"2952 {'agent': 4, 'mech': 'burn', 'amt': 1000}\n",
"2955 {'agent': 39, 'mech': 'burn', 'amt': 1000}\n",
"2958 {'agent': 73, 'mech': 'burn', 'amt': 1000}\n",
"2961 {'agent': 71, 'mech': 'burn', 'amt': 1000}\n",
"2964 {'agent': 63, 'mech': 'burn', 'amt': 1000}\n",
"2967 {'agent': 84, 'mech': 'burn', 'amt': 1000}\n",
"2970 {'agent': 17, 'mech': 'burn', 'amt': 1000}\n",
"2973 {'agent': 3, 'mech': 'burn', 'amt': 1000}\n",
"2976 {'agent': 34, 'mech': 'burn', 'amt': 1000}\n",
"2979 {'agent': 72, 'mech': 'burn', 'amt': 1000}\n",
"2982 {'agent': 82, 'mech': 'burn', 'amt': 1000}\n",
"2985 {'agent': 35, 'mech': 'burn', 'amt': 1000}\n",
"2988 {'agent': 39, 'mech': 'burn', 'amt': 1000}\n",
"2991 {'agent': 67, 'mech': 'burn', 'amt': 1000}\n",
"2994 {'agent': 88, 'mech': 'burn', 'amt': 1000}\n",
"2997 {'agent': 75, 'mech': 'burn', 'amt': 1000}\n",
"3000 {'agent': 65, 'mech': 'burn', 'amt': 1000}\n",
"Name: action, Length: 1000, dtype: object"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rdf.action"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x1a1c8fee80>"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAD8CAYAAACb4nSYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3Xl4VOXd//H3dyYhEMKesIOETfY1CXGt1g1tK3Un7LL5WG1/Wq2169PaVX2sdrFWQiL7Ym19atXWarX10ZqQgOwIBEQI+xoIO8n9+2NOYggBJpBkJjOf13XlysxZJt+bM3zmzH3OuY855xARkejgC3UBIiJSdxT6IiJRRKEvIhJFFPoiIlFEoS8iEkUU+iIiUUShLyISRRT6IiJRRKEvIhJFYkJdQGWJiYmuS5cuoS5DRKReWbx48R7nXNL5lgu70O/SpQv5+fmhLkNEpF4xs8+CWU7dOyIiUUShLyISRRT6IiJRRKEvIhJFFPoiIlFEoS8iEkUU+iIiUSRiQr+k1PGLN9dQuP9IqEsREQlbERP6m/cdYd6izWRk5rDtwNFQlyMiEpYiJvSTExszZ9IwDhw+ychpOWwvUvCLiFQWMaEPMLBTc2ZNSmP/4RNkTMthR9GxUJckIhJWIir0AQZ3bsGMiWnsPnScUZk57Dqo4BcRKRNxoQ8w9JIWzJyYxs6DxxiZmcOuQwp+ERGI0NAHSOnSkhkT09hRdIyMaTnsPnQ81CWJiIRcxIY+QGqXlrw0IZVtB44xKjOHPcUKfhGJbhEd+gDDurYie0IqW/YfYXRmLnsV/CISxSI+9AEu69aK7PGpbNp7mNHTc9l3+ESoSxIRCYmoCH2Ay7snkjU+lU/3BIJ/v4JfRKJQ1IQ+wJU9Eskcl8KG3cWMycrlwBEFv4hEl6gKfYCreyYxbexQ1u8sZmzWIoqOnAx1SSIidSbqQh/gmktb8+LYoazdcYhx2bkUHVXwi0h0iMrQB7i2V2teGDOE1dsPMi57EQePKfhFJPJFbegDXNe7Dc+PGsKqrUWMz17EIQW/iES4qA59gBv7tuV3o4aworCICS/lUXz8VKhLEhGpNVEf+gDD+7XltxmDWbrlAPe+tIjDCn4RiVAKfc/N/dvxm5GDWbL5APfOyOPICQW/iEQehX4FXxrQjufuGUT+pn1MnJHH0RMloS5JRKRGKfQr+crA9jx7zyAWfbqPSTMV/CISWYIKfTMbbmZrzazAzB6vYv7VZrbEzE6Z2Z0Vpg8ys4/MbJWZLTeze2qy+NoyYlAHnrl7IB9t3MuUWfkcO6ngF5HIcN7QNzM/8DxwM9AHyDCzPpUW2wxMAOZVmn4EGOec6wsMB54zs+YXW3RduG1wR/7nzoF8uGGPgl9EIkYwe/ppQIFzbqNz7gSwABhRcQHn3Cbn3HKgtNL0dc659d7jbcAuIKlGKq8DdwztyFN3DOCDgj3cN3uxgl9E6r1gQr8DsKXC80JvWrWYWRrQANhQ3XVD6a6UTjx5+wD+vW43989ZzPFTCn4Rqb+CCX2rYpqrzh8xs3bAbOBe51xpFfOnmlm+meXv3r27Oi9dJ+5O7cQvbu/Pe2t387U5SxT8IlJvBRP6hUCnCs87AtuC/QNm1hR4A/i+cy6nqmWcc9OccynOuZSkpPDs/clI68xPv9qPf36yiwfmfsyJU2d8domIhL1gQj8P6GFmyWbWABgJvBbMi3vLvwrMcs798cLLDA9j0i/hJyP68s6anXx9/hJOlij4RaR+OW/oO+dOAQ8CbwFrgJedc6vM7AkzuxXAzFLNrBC4C3jRzFZ5q98NXA1MMLOl3s+gWmlJHRl7WRd+fGtf3lq1k2/M/1jBLyL1ijlXre75WpeSkuLy8/NDXcZ5ZX/wKU+8vpov9W/Hr0cOIsav69xEJHTMbLFzLuV8y8XURTGRaOKVyZQ6x0/fWIMZPHePgl9Ewp9C/yJMvqorpc7x8zc/wWfGr+4eqOAXkbCm0L9IU6/uRkkpPPn3T/AZPHP3IPy+qs5yFREJPYV+Dbj/mm6UOsfTb63F5zOevnOggl9EwpJCv4Y8cG13Sksdz7y9Dp8ZT90xAJ+CX0TCjEK/Bn39uh6UOMdz76zHb8Yvbu+v4BeRsKLQr2EPXd+T0lLHb94twOeDn31VwS8i4UOhXwsevqEnpQ5+914BPjN++tV+mCn4RST0FPq1wMx45MaelDjHC//agM+MJ0b0VfCLSMgp9GuJmfHYTZdSWup48f2N+H3Gf3+lj4JfREJKoV+LzIzHb+5FSalj+gefYgY//LKCX0RCR6Ffy8yM732pN6UOsj/8FL/3XMEvIqGg0K8DZsYPvtybUhfY4/f7At8AFPwiUtcU+nXELNCnX+oCffxmxreHX6rgF5E6pdCvQ2bGj2/tS6lz/OHfG/D74NEbFfwiUncU+nXMzHji1n6UlMLz723Ab8Y3b7w01GWJSJRQ6IeAz2f87Kv9cK7syl3joet7hrosEYkCCv0Q8fmMn9/Wn5LSwFg9PjO+cV2PUJclIhFOoR9CPp/xyzsGUOrgV2+vw+8zHri2e6jLEpEIptAPMb/PeOrOAbiy8fjNuP+abqEuS0QilEI/DPh9xtN3DaTEufI7cN33BQW/iNQ8hX6Y8PuMZ+4aSKmDX/ztE/w+Y/JVXUNdlohEGIV+GInx+3j27oGUOsdP31iDmTHpyuRQlyUiEUShH2Zi/D6eu2cQpaWOn7y+Gr/BhCsU/CJSM3yhLkDOFOv38ZuMwdzUtw0/+utqZn20KdQliUiEUOiHqVi/j99mDOGGPm344V9WMSfns1CXJCIRQKEfxhrE+Hh+1BCu792a7//vSublbg51SSJSzyn0w1yDGB/Pjx7CF3u15ruvrmBhnoJfRC6cQr8eiIvx8/vRQ7jm0iQe//MKXs7fEuqSRKSeUujXEw1j/fxhzFCu6pHEt/+0nFcWF4a6JBGphxT69UjDWD/Txg7lyu6JfOuVZbz6sYJfRKpHoV/PBII/hcu6tuKRl5fxl6VbQ12SiNQjCv16qFEDP1njUxmW3IqHFy7ltWXbACjcf4SX87bgnAtxhSISrnRFbj3VqIGfrAkp3PtSHg8vXIrfjFXbivj9vzawYmsRT4zoq9swisgZtKdfj8U3iCF7QipDO7fgGws+5u8rdwAwO+czfvzX1drjF5EzKPTrucZxMWTfm8rgTs3ZuOcwgzo1Z+IVycz4zyZ+8voaBb+InEbdOxEgIS6GGRPT+K/Zi+nfsRmP3XQppc6R/eGn+Ay+96Xe6uoREUChHzES4mKYM3lY+fP//kofnHNM/+BT/D7j8Zt7KfhFJLjuHTMbbmZrzazAzB6vYv7VZrbEzE6Z2Z2V5o03s/Xez/iaKlzOzcz40a19GZPemRff38hTb61VV4+InH9P38z8wPPADUAhkGdmrznnVldYbDMwAXi00rotgf8GUgAHLPbW3V8z5cu5mBlP3NqPUgcv/GsDPoNHb7xUe/wiUSyY7p00oMA5txHAzBYAI4Dy0HfObfLmlVZa9ybgbefcPm/+28BwYP5FVy5B8fmMn47oR2mp4/n3NuA345s3XhrqskQkRIIJ/Q5AxRG+CoFhZ1k2mHU7BLmu1BCfz/j5bf0pdY7fvFuAz2c8dH3PUJclIiEQTOhX1RcQbOdwUOua2VRgKkDnzp2DfGmpDp/P+OXtAyh18Nw76/Gb8fXreoS6LBGpY8EcyC0EOlV43hHYFuTrB7Wuc26acy7FOZeSlJQU5EtLdfl8xpN3DOD2wR145u11PP9eQahLEpE6Fsyefh7Qw8ySga3ASGBUkK//FvBzM2vhPb8R+E61q5Qa4/cZT981kFLnePqttfjMuP+abqEuS0TqyHlD3zl3ysweJBDgfiDbObfKzJ4A8p1zr5lZKvAq0AL4ipn92DnX1zm3z8x+QuCDA+CJsoO6Ejp+n/E/dw2kxMGTf/8Evw+mXq3gF4kGQV2c5Zx7E3iz0rQfVnicR6Drpqp1s4Hsi6hRakGM38ezdwf2+H/+5if4zJh8VddQlyUitUxX5EaxGL+PX98zCOccP31jDT4zJl6ZHOqyRKQWKfSjXIzfx69HDqa09GOeeH01PoMJVyj4RSKVRtkUYv0+fpMxmBv7tOFHf13N7I82hbokEaklCn0BoEGMj9+NGsL1vdvwg7+sYm7uZ6EuSURqgUJfyjWI8fH86MF8sVdrvvfqSuYv2hzqkkSkhin05TRxMX5eGDOEay5N4jt/XsHCPAW/SCRR6MsZ4mL8/GHMUK7umcTjf17BH/O3nH8lEakXFPpSpYaxfqaNHcqV3RN57E/L+dPiwlCXJCI1QKEvZ9Uw1k/muBQu79aKR19ZxqsfK/hF6juFvpxTw1g/08elkp7cikdeXsZflm4NdUkichEU+nJejRr4yZqQQlpySx5euJS/Lgt2kFURCTcKfQlKfIMYsiekknJJSx5auJQ3lm8PdUkicgEU+hK0+AYxvHRvKkM6N+cbCz7mbysU/CL1jUJfqqVxXAwv3ZvGoE7N+fr8j/n7yh2hLklEqkGhL9WWEBfDjHtT6d+xGQ/OW8Lbq3eGuiQRCZJCXy5Ik4axzJyYRt8Ozfja3MX8c42CX6Q+UOjLBWvaMJZZE9Po3a4p989Zwnuf7Ap1SSJyHgp9uSjNGsUye+IwerZN4L7Zi/nXWgW/SDhT6MtFaxYfy5xJw+jeOoGpsxfz/rrdoS5JRM5CoS81onl8A+ZOHka3pASmzMrng/V7Ql2SiFRBoS81pkXjQPAnJzZm0sw8/lOg4BcJNwp9qVEtveDv0qoxE2fm8dGGvaEuSUQqUOhLjWuVEMfcKcPo1CKeiTPyyN2o4BcJFwp9qRWJCXHMm5JOhxaNuHdGHnmb9oW6JBFBoS+1KKlJHPOmDKNts4ZMyF5EvoJfJOQU+lKrWjdpyPwp6bRu2pAJL+WxZPP+UJckEtUU+lLr2jQNBH9iQgPGZy1i6ZYDoS5JJGop9KVOtG3WkPlT02mZ0ICxWbksU/CLhIRCX+pMu2aNmD8lnebxsYzNymVFYVGoSxKJOgp9qVPtmweCv2mjWMZk5bJyq4JfpC4p9KXOdWwRz/wp6STExTAmK5fV2w6GuiSRqKHQl5Do1DKeBVPTiY/1M3p6Dmu2K/hF6oJCX0KmU8t45k9Np2Gsn9HTc1m741CoSxKJeAp9CalLWjVm/pR0Yv3GqMwc1u1U8IvUJoW+hFyXxMYsmHoZfl8g+Ncr+EVqjUJfwkJyYmPmT03HzMjIzKVgV3GoSxKJSAp9CRvdkhKYP2UYAKMyc9i4W8EvUtMU+hJWurduwvwpwyh1jozMHD7dczjUJYlEFIW+hJ0ebZowd3I6J0scGdNy2KTgF6kxQYW+mQ03s7VmVmBmj1cxP87MFnrzc82sizc91sxmmtkKM1tjZt+p2fIlUl3atgnzpgzj+KkSMjJz2Lz3SKhLEokI5w19M/MDzwM3A32ADDPrU2mxScB+51x34FngSW/6XUCcc64/MBS4r+wDQeR8erVtytzJ6Rw9GQj+LfsU/CIXK5g9/TSgwDm30Tl3AlgAjKi0zAhgpvf4FeA6MzPAAY3NLAZoBJwAdOmlBK1P+6bMnTyM4uOnGDkth8L9Cn6RixFM6HcAtlR4XuhNq3IZ59wpoAhoReAD4DCwHdgM/I9z7ozbJ5nZVDPLN7P83bt3V7sREtn6tm/G3MnDOHTsJBmZOWw9cDTUJYnUW8GEvlUxzQW5TBpQArQHkoFHzKzrGQs6N805l+KcS0lKSgqiJIk2/To0Y87kYRw4cpKMaTlsU/CLXJBgQr8Q6FTheUdg29mW8bpymgH7gFHA351zJ51zu4APgZSLLVqi04COzZkzaRj7D58gIzOHHUXHQl2SSL0TTOjnAT3MLNnMGgAjgdcqLfMaMN57fCfwrnPOEejS+aIFNAbSgU9qpnSJRgM7NWfWpDT2FgeCf+dBBb9IdZw39L0++geBt4A1wMvOuVVm9oSZ3eotlgW0MrMC4JtA2WmdzwMJwEoCHx4vOeeW13AbJMoM7tyCmRNT2XXwGBmZOexS8IsEzQI75OEjJSXF5efnh7oMqQfyN+1jXPYi2nn3323dpGGoSxIJGTNb7Jw7b/e5rsiVeiulS0tm3JvG9qJj3PTs+7y3dleoSxIJewp9qdfSkgPBH+P3MXVWPv9cszPUJYmENYW+1HtpyS1555tfoHe7ptw/ZwnvfaI9fpGzUehLRGjWKJbZE4fRs20C981ezL/U1SNSJYW+RIxm8bHMmTSM7q0TmDp7Me+v09XdIpUp9CWiNI9vwNzJw+iWlMCUWfl8sH5PqEsSCSsKfYk4LRoHgj85sTGTZ+XxnwIFv0gZhb5EpJZe8F/SsjETZ+bx0Ya9oS5JJCwo9CVitUqIY+6UYXRqEc/EGXnkblTwiyj0JaIlJsQxb0o67Zs35N4ZeeRtOmNk73N6Z/VO7njhPxrVUyKGQl8iXlKTOOZPSadt04ZMyF5EfjWCf9GmfSz+bD8ZmTlsL1LwS/2n0Jeo0LqpNz5P04ZMeCmPJZv3B7XegSMnaNzAz97iE4zKzNWonlLvKfQlarRp2pD5U9JJTGjA+KxFLN1y4LzrHDhykk4t45k5MS0wquc0jeop9ZtCX6JKW29EzhaNGzA2K5dl5wj+IydO8Y/VO9m6/yhDL2nBzIlp7CgbzvmQgl/qJ4W+RJ12zRoxf2o6zeNjGZuVy4rCoiqX2+7dmatb6wTg9FE9R2XmsvvQ8TqrWaSmKPQlKnVo3oj5U9Jp2iiWMVm5rNx6ZvAfOHISgIeu71E+LS25JdkTUtm6/yijp+ewp1jBL/WLQl+iVscW8cyfkk5CXAxjsnJZte3z4H85fwujMnOAwNAOFaV3bUXWhBQ27zvCmOm57FXwSz2i0Jeo1qllIPjjY/2MmZ7Lmu0HAZibu5njp0oBaN4o9oz1Lu+WSNb4VD7dc5jR03PZd/hEndYtcqEU+hL1OreKZ/7UdOJi/IyensvaHYdo3MAPwLDklrRrXvVtGK/onsj08Sls3HOYMdNzOXBEwS/hT6EvAlzSqjHzp6YT6zdGZeawYXcx1/VqzcL7LiMuxn/W9a7qkUTmuBQKdhczenouRd5xAJFwpdAX8SQnNmb+lHT8PmPnweM0iz+zW6cqX+iZxItjh7J+ZzFjsnIpOqrgl/Cl0BepoGtSAvOmpNOuWUN6tG4S9HrXXtqaP4wdwic7DjJOwS9hzJxzoa7hNCkpKS4/Pz/UZUiUKyl1+H1W7fXeWb2T++cupm/7ZsyelEaThsF9WxC5WGa22DmXcr7ltKcvUoULCXyA6/u04flRQ1i5tYjx2Ys4dEx7/BJeFPoiNezGvm353aghLC8sYsJLeRQfPxXqkkTKKfRFasHwfm35bcZglm45wL0vLeKwgl/ChEJfpJbc3L8dvx45iCWbD3DvjDyOnDg9+A8eO0lJaXgdU5PIp9AXqUVfHtCeZ+8ZRP6mfUyckcfREyXl825+7v8Ym5V72jSR2qbQF6lltw4MBP+iT/cxaWYg+EtKHVsPHOU/G/YyZVY+x04q+KVuKPRF6sCIQR145u6BfLQxEPJlwzKnJbfkww17zgj+2TmfMXmmDgJLzVPoi9SR2wZ35Ok7B/Lhhj1MmpkHwD0pnXjyjgF8ULCHqbMXlwf/h+v38M6aXUzIXqTglxql0BepQ3cO7ciTdwxgtTeaZ9NGsdyd0olf3t6f99ft5v45izl+qoSDx07SIj6Wj7ccYOJLeTr7R2qMQl+kjpWFfMNYH11axQNwT2pnfnF7f95bu5v75yxhb/EJBnduwXP3DCL/s8BB4Mpn/4hciJhQFyASje5J7cwdQzoS4/98vysjrTOlzvG9V1cC0Kd9U74ysD2lzvHwwqVMmpFP9oRUGjU4+6ifIuejPX2REKkY+GVGD7uEn4zoC0AL745dZQeBcz7dy+RZeTrTRy6K9vRFwszYy7rQLSmh/IbsEDgIXFoKj76yjCmz8skcl0LDWO3xS/VpT18kDF3ePZE2TU+/Y9cdQzvyVBVn+ohUh0JfpB65K6UTT94+4LQzfUSqI6jQN7PhZrbWzArM7PEq5seZ2UJvfq6Zdakwb4CZfWRmq8xshZlVfcNREQnK3amdTjvTR8Ev1XHe0DczP/A8cDPQB8gwsz6VFpsE7HfOdQeeBZ701o0B5gD/5ZzrC1wDaIBxkYuUkdaZn93Wj3c/2cUDc5dw4lRpqEuql8LtJlJ1IZg9/TSgwDm30Tl3AlgAjKi0zAhgpvf4FeA6MzPgRmC5c24ZgHNur3NOuyUiNaDsTJ931uziwXlLOFlyevB/sH4Pa3ccClF14e/4qRIu/+W7PPOPtVEV/sGEfgdgS4Xnhd60Kpdxzp0CioBWQE/AmdlbZrbEzB67+JJFpMzYy7rw41v78o/VO/n6vI9PC/7HXlnGnS/8h6VbDoSwwvC17/AJthcd47fvFvDMP9adEfyvflzI1gNHQ1Rd7Qkm9Ku6b1zlj8WzLRMDXAmM9n7fZmbXnfEHzKaaWb6Z5e/evTuIkkSkzPjLu/DDL/fh76t28NCCpZzygv/A0ZMcOn6KsVm5LC9U8Fd26FjgCueuSY353XsFPPvO+vJ5RUdP8vDCZdz9h4/Ysu9IqEqsFcGEfiHQqcLzjsC2sy3j9eM3A/Z50//tnNvjnDsCvAkMqfwHnHPTnHMpzrmUpKSk6rdCJMpNvDKZ73+pN2+s2M5DC5dy/FQJR06UcE9KJ5rHxzJmei4rCotCXWZYKQv9H3ypD3endOQ3/1zPr73gP3g0cOhx64GjZGTmULg/coI/mNDPA3qYWbKZNQBGAq9VWuY1YLz3+E7gXRf4rvQWMMDM4r0Pgy8Aq2umdBGpaPJVXfnuLb14ffl2vjZnCQA92zZh/pR0mjSMZUxWLiu3KvjLlN20vmmjWH55+wDuGNKRZ99Zx2//uZ6D3rwHru1G0dGTZGTmsC1CunrOG/peH/2DBAJ8DfCyc26VmT1hZrd6i2UBrcysAPgm8Li37n7gVwQ+OJYCS5xzb9R8M0QEYOrV3fj28F7885NdADRpGEPHFvEsmJpOQlwMY7JyWb3tYIirDA9le/pNGsbg8xlP3TmA2wd34Jm31/Hs24E9/iu6JTJn0jAOHD7JyGk5bC+q/8Ef1Hn6zrk3nXM9nXPdnHM/86b90Dn3mvf4mHPuLudcd+dcmnNuY4V15zjn+jrn+jnndCBXpJbdf003vnXTpQDlV/V2ahnP/CnpNIr1M3p6Dmu2K/grhj6A32c8fddARgxqzztrdnrzYhnYqTmzJqWx7/AJMqblsKPoWMhqrgm6IlckAj1wbXfe/9a1XNU9sXxa51aBPf64GD+jp+dG/emcxccDXThNGsaWT/P7jGfuGshXBrYHILFJYNC7wZ1bMHNiGrsPHWdUZg67Dtbf4Ffoi0Sozq3i8flOP7HuklaNmT81nVi/MSozh3U7ozf4Dx07hc+gcaWhqmP8Pp67ZxDvPXoN7Zo1Kp8+9JJA8O84eIyRmTnsOlQ/g1+hLxJlkhMbM29KOn5fIPgLdkVn8BcdPUlCXAyB60hP5/cZyYmNz5ie0qUlM+5NY0fRMTKm5ZTf67g+UeiLRKFuSQnMm5IOGBmZuWzYXRzqkurU6m0HmfXRZxw8Vv27kaUltyR7QirbDhxjVGYOe4rrV/Ar9EWiVPfWCSyYOgznHBnTctgYRcG/ae9hANo1u7DxH9O7tiJ7Qipb9h9hdGYue+tR8Cv0RaJY99ZNmDclnZJSR0ZmDp/uORzqkk6zbMsBfvG3NTU+kmixd6P5hVMvu+DXuKxbK7LGp7Jp72FGT89l3+ETNVVerVLoi0S5nm2aMHfKME6WBPb4P9sbPsH/+vJtvPjvjTU+kuhhL/SbNrq4mwde0T2RrPGpfLonEPz760HwK/RFhF5tmzJ38jCOnyohY1oOm/eGx7ADxcdP4fcZ76zZxQPzai74i72+/MZxF3/H2Ct7JJI5LoUNu4sZk5XLgSOnB39pqWN2zmdh0wWk0BcRAHq3a8qcycM4crKEjMyckA40dvj4KZxzFB8voXPLeH58a1/eXr2Tr88/cwjpC1F8/BRxMT5iq7g5/YW4umcS08YOZf3OYsZmLaLoyOe3DVm/q5gf/O9KMjJzwiL4FfoiUq5v+2bMmTSM4uOnGDktdAON3fCrfzNxRh77Dh8nIS6mfCTRt1bt5P8t+Piig7/4+KnyK3FryjWXtubFsUNZu+MQY7NzKfIGbSsb42fdzuKw6PtX6IvIafp1CAT/oWOBgcbqekz5klLHtqJjvLd2Nx8W7KVxXODiqbKRRN9csYOHFn4+hPSFKD5+ioQa6Nqp7NperXlhzBDWbD/IuOxFHDwWGN4a4JEbeoZF379CX0TO0L9jM2ZPGsaBIyfJqKGBxpxz3Dc7n5fzt5wxb2xWLj96bRWlpY7DJwIhObBTc+D0YRLKRhJ9Y/l2Hn552QUHf/GxUzXSn1+V63q34flRQ1i1tYjx2YvY6Y3VM7xf2/K+/9HTz+z7rysKfRGp0sBOzZk1MY39h08wsgYGGjt6soS3Vu3ksVeWs2DR5tPm5W3ax4z/bOL7f1lZPhDayNROTB+Xwje+2OO0ZctGEv3rsm088sdllJSefk8n5xyvLC4850VTtbWnX+bGvm353aghrCgs4onXA6PJN46LKe/7L9gVOOhbse+/rij0ReSsBnduwcxJaewtPkFGZg47L2KgsbJz45s0jOE7r64o3+MvKXUcO1lK+2YNmZe7me/+eQUQCMnr+7Shf8dmZ7xW2Uiif1m6jW9VCv6tB47y6B+Xcc+LH511mITaDn0I7Nn/NmMwx70zjhK8Ywhlff/rdhSf1vdfVxT6InJOQzq3YObEVHYdPEbGRYwwefh44AKr793Smyu7J/LtPy3nlcWF5d05E69M5r6ru/LvdYFbpjY5Tyg/cG13HrmhJ3/+eCuPvbK8PPjLvils2H24ymES9hYfZ9W2g+yrg+6Vm/u34/ejh3D74A6ntee0vv+s3PKbttQFhb6InNfQS1oyY6I30FjmhQ00VnZBVMvGDcgcl8IV3RL51ivLmJPzGRDYs3/85l5MuSoZgKQmced9za9E8Ry/AAAH7klEQVRf14OHru/Bn5YU8viflgeOCXh/54Fru1G4/yijKp0qWXbVcfvmjap8zZp2U9+2/OqeQWcM7HZd7zb8fvRQVm8/yPjsReVn+dQ2hb6IBCW1S0teuoiBxg54/dcJcTE0jPWTOS6Fy7q24qm/rwUCoW9mfPeW3vzfY9fSt33ToF73oet78o0vduePiwv57qsrys+W+WKv1mRNSGHzviOnnSp5+ETgG8fEK7pUq/7acEOfNuV9/+OzF5V3gdUmhb6IBG1YhYHGKu9Bn8/T//g83AEaNfCTNT6V9K4tgc/vYGVmdGoZX+WQx2fz8A09efDa7izI28LP31hT/ncu7/b5MAmjMnPYf/hE+TeB2jp7p7pu6tuW340azLLCIia+lHfGgemaptAXkWq5rFsrssen8tneI9W62MjvZXivdk3KpzVq4Cd7Qio//Wo/Luva6oJrMjMeubEn91/TjfW7AqOFNm4QCPUrugeGSdjonSO/df/R0+aHg+H92vHbjMHcmdIRvy/4D7sLodAXkWq7PIiBxkpLHZ/sOIhzgT3XsvvNxsWcfqeq+AYxjEm/hIax/jNeozrMjMduupT7r+lGi/hYEhM+PyZwdc8kMselULC7mKfe+gQInz39Mrf0b8fdKZ1q/e8o9EXkglQcaKyqi43yP9vP8Of+j5+8vgbnAgdYK9+asKaZGd8e3ov8799Ao0p/6ws9k3hx7FCMwJ502ZW+0UahLyIX7FwXG5Ud6M3+8FN+9sYaio/X3lWwlZ2ti+TaSwMHd++7uusZ3ziihUJfRC7K2S42KjtgelPfNkz/4FM+2XGo1vf0g3FVjyS+c0vvUJcRMgp9EbloVQ00dsQ7NfLnt/VnTHpnAOLDrB89GmkLiEiNKLvY6GtzFzM+e1H52TiN42J44tZ+JCcmkNalZYirFIW+iNSYsouNHpi7hOWFRfh9RlyMDzNj0pXJoS5PUPeOiNSwsouNAOJj/dW6yEpqn/b0RaTGDe/Xjunj/BR4F0pJ+FDoi0ituLZXa67t1TrUZUgl6t4REYkiCn0RkSii0BcRiSIKfRGRKKLQFxGJIgp9EZEootAXEYkiCn0RkShiZXe1CRdmthv47AJXTwT21GA5oaS2hKdIaUuktAPUljKXOOeSzrdQ2IX+xTCzfOdcSqjrqAlqS3iKlLZESjtAbakude+IiEQRhb6ISBSJtNCfFuoCapDaEp4ipS2R0g5QW6olovr0RUTk3CJtT19ERM4hYkLfzIab2VozKzCzx0NdTzDMbJOZrTCzpWaW701raWZvm9l673cLb7qZ2W+89i03syEhrDvbzHaZ2coK06pdt5mN95Zfb2bjw6gtPzKzrd52WWpmt1SY9x2vLWvN7KYK00P+/jOzTmb2npmtMbNVZvb/vOn1atucox31bruYWUMzW2Rmy7y2/Nibnmxmud6/70Iza+BNj/OeF3jzu5yvjdXmnKv3P4Af2AB0BRoAy4A+oa4riLo3AYmVpj0FPO49fhx40nt8C/A3wIB0IDeEdV8NDAFWXmjdQEtgo/e7hfe4RZi05UfAo1Us28d7b8UByd57zh8u7z+gHTDEe9wEWOfVXK+2zTnaUe+2i/dvm+A9jgVyvX/rl4GR3vQ/APd7j78G/MF7PBJYeK42XkhNkbKnnwYUOOc2OudOAAuAESGu6UKNAGZ6j2cCX60wfZYLyAGam1m7UBTonHsf2FdpcnXrvgl42zm3zzm3H3gbGF771Z/uLG05mxHAAufccefcp0ABgfdeWLz/nHPbnXNLvMeHgDVAB+rZtjlHO84mbLeL929bds/IWO/HAV8EXvGmV94mZdvqFeA6MzPO3sZqi5TQ7wBsqfC8kHO/ScKFA/5hZovNbKo3rY1zbjsE3vxA2f3mwr2N1a073NvzoNflkV3WHUI9aovXLTCYwJ5lvd02ldoB9XC7mJnfzJYCuwh8gG4ADjjnTlVRV3nN3vwioBU12JZICX2rYlp9OC3pCufcEOBm4AEzu/ocy9bXNp6t7nBuzwtAN2AQsB14xpteL9piZgnAn4CHnHMHz7VoFdPCpj1VtKNebhfnXIlzbhDQkcDeee+qFvN+13pbIiX0C4FOFZ53BLaFqJagOee2eb93Aa8SeEPsLOu28X7v8hYP9zZWt+6wbY9zbqf3H7UUyOTzr9Fh3xYziyUQlHOdc3/2Jte7bVNVO+rzdgFwzh0A/kWgT7+5mcVUUVd5zd78ZgS6H2usLZES+nlAD++IeAMCB0BeC3FN52Rmjc2sSdlj4EZgJYG6y86WGA/8xXv8GjDOO+MiHSgq+8oeJqpb91vAjWbWwvuafqM3LeQqHSu5jcB2gUBbRnpnWCQDPYBFhMn7z+v7zQLWOOd+VWFWvdo2Z2tHfdwuZpZkZs29x42A6wkco3gPuNNbrPI2KdtWdwLvusCR3LO1sfrq8kh2bf4QOBNhHYH+su+Fup4g6u1K4Gj8MmBVWc0E+u/+Caz3frd0n58F8LzXvhVASghrn0/g6/VJAnsgky6kbmAigQNSBcC9YdSW2V6ty73/bO0qLP89ry1rgZvD6f0HXEngK/9yYKn3c0t92zbnaEe92y7AAOBjr+aVwA+96V0JhHYB8Ecgzpve0Hte4M3ver42VvdHV+SKiESRSOneERGRICj0RUSiiEJfRCSKKPRFRKKIQl9EJIoo9EVEoohCX0Qkiij0RUSiyP8HdmsJ2ku2lTUAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1a1d2de358>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"rdf.spot_price.plot()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}