aboutsummaryrefslogtreecommitdiffstats
path: root/python/notebooks/Interest Statement.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'python/notebooks/Interest Statement.ipynb')
-rw-r--r--python/notebooks/Interest Statement.ipynb24
1 files changed, 20 insertions, 4 deletions
diff --git a/python/notebooks/Interest Statement.ipynb b/python/notebooks/Interest Statement.ipynb
index 9903cb57..6209ef98 100644
--- a/python/notebooks/Interest Statement.ipynb
+++ b/python/notebooks/Interest Statement.ipynb
@@ -6,7 +6,7 @@
"metadata": {},
"outputs": [],
"source": [
- "from db import dbconn\n",
+ "from utils.db import dbconn\n",
"conn = dbconn('dawndb')\n",
"import pandas as pd\n",
"pd.options.display.float_format = \"{:,.2f}\".format\n",
@@ -17,7 +17,7 @@
"df_balances = pd.read_sql_query(\"SELECT * FROM strategy_im\",\n",
" conn,\n",
" parse_dates=['date'],\n",
- " index_col=['date'])\n",
+ " index_col=['date']).sort_index()\n",
"df_balances[['broker', 'strategy']] = df_balances[['broker', 'strategy']].astype('category')"
]
},
@@ -27,6 +27,21 @@
"metadata": {},
"outputs": [],
"source": [
+ "drange = pd.date_range(\"2019-05-01\", \"2019-05-31\")\n",
+ "df_balances = (df_balances.\n",
+ " groupby([\"broker\", \"strategy\"], group_keys=False).\n",
+ " apply(lambda df: df.reindex(drange, method=\"ffill\")).\n",
+ " dropna())\n",
+ "df_balances.index.name='date'\n",
+ "df_balances.join(df_rates)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
"from IPython.display import display\n",
"\n",
"def f(df_balances, df_rates, broker, start_date, end_date):\n",
@@ -38,6 +53,7 @@
" rates = df_rates.reindex(drange, method=\"ffill\").values /100 /360\n",
" df = df.reindex(drange, method=\"ffill\") * rates\n",
" display(df.sum().to_frame(name='amount'))\n",
+ " print(df.sum().sum())\n",
" \n",
"from functools import partial\n",
"f_print = partial(f, df_balances, df_rates)"
@@ -60,12 +76,12 @@
"start_date = widgets.DatePicker(\n",
" description='start:',\n",
" disabled=False,\n",
- " value=datetime.date(2019, 4, 1)\n",
+ " value=datetime.date(2019, 5, 1)\n",
")\n",
"end_date = widgets.DatePicker(\n",
" description='end:',\n",
" disabled=False,\n",
- " value=datetime.date(2019, 4, 30)\n",
+ " value=datetime.date(2019, 5, 31)\n",
")\n",
"output = widgets.interactive_output(f_print, {'broker': broker_widget, 'start_date': start_date, 'end_date': end_date})\n",
"output.layout= Layout(margin='auto auto auto 90px')\n",