PyFacts/testing.ipynb

226 lines
5.7 KiB
Plaintext
Raw Normal View History

2022-02-21 02:52:04 +00:00
{
"cells": [
{
"cell_type": "code",
2022-02-22 02:55:57 +00:00
"execution_count": 2,
2022-02-21 02:52:04 +00:00
"id": "3f7938c0-98e3-43b8-86e8-4f000cda7ce5",
"metadata": {},
"outputs": [],
"source": [
"import datetime\n",
"import pandas as pd\n",
"\n",
"from fincal.fincal import TimeSeries\n",
"from fincal.core import Series"
]
},
{
"cell_type": "code",
2022-02-22 02:55:57 +00:00
"execution_count": 3,
2022-02-21 07:41:38 +00:00
"id": "4b8ccd5f-dfff-4202-82c4-f66a30c122b6",
2022-02-21 02:52:04 +00:00
"metadata": {},
"outputs": [],
"source": [
2022-02-21 07:41:38 +00:00
"dfd = pd.read_csv('test_files/nav_history_daily - copy.csv')\n",
2022-02-21 02:52:04 +00:00
"dfd = dfd[dfd['amfi_code'] == 118825].reset_index(drop=True)"
]
},
{
"cell_type": "code",
2022-02-22 02:55:57 +00:00
"execution_count": 12,
2022-02-21 07:41:38 +00:00
"id": "c52b0c2c-dd01-48dd-9ffa-3147ec9571ef",
2022-02-21 02:52:04 +00:00
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Warning: The input data contains duplicate dates which have been ignored.\n"
]
2022-02-21 07:41:38 +00:00
},
{
"data": {
"text/plain": [
"TimeSeries([(datetime.datetime(2013, 1, 2, 0, 0), 18.972),\n",
"\t (datetime.datetime(2013, 1, 3, 0, 0), 19.011),\n",
"\t (datetime.datetime(2013, 1, 4, 0, 0), 19.008)\n",
"\t ...\n",
"\t (datetime.datetime(2022, 2, 10, 0, 0), 86.5),\n",
"\t (datetime.datetime(2022, 2, 11, 0, 0), 85.226),\n",
"\t (datetime.datetime(2022, 2, 14, 0, 0), 82.53299999999999)], frequency='D')"
2022-02-21 07:41:38 +00:00
]
},
2022-02-22 02:55:57 +00:00
"execution_count": 12,
2022-02-21 07:41:38 +00:00
"metadata": {},
"output_type": "execute_result"
2022-02-21 02:52:04 +00:00
}
],
"source": [
2022-02-21 07:41:38 +00:00
"ts = TimeSeries([(i.date, i.nav) for i in dfd.itertuples()], frequency='D')\n",
"ts"
2022-02-21 02:52:04 +00:00
]
},
{
"cell_type": "code",
2022-02-22 02:55:57 +00:00
"execution_count": 6,
2022-02-21 07:41:38 +00:00
"id": "9e8ff6c6-3a36-435a-ba87-5b9844c18779",
2022-02-21 02:52:04 +00:00
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[(datetime.datetime(2022, 1, 31, 0, 0), 85.18),\n",
" (datetime.datetime(2021, 5, 31, 0, 0), 74.85)]"
2022-02-21 02:52:04 +00:00
]
},
2022-02-22 02:55:57 +00:00
"execution_count": 6,
2022-02-21 02:52:04 +00:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ts[['2022-01-31', '2021-05-31']]"
2022-02-21 02:52:04 +00:00
]
},
{
"cell_type": "code",
2022-02-22 02:55:57 +00:00
"execution_count": 8,
"id": "086d4377-d1b1-4e51-84c0-39dee28ef75e",
2022-02-21 02:52:04 +00:00
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"TimeSeries([(datetime.datetime(2021, 2, 15, 0, 0), 73.483),\n",
"\t (datetime.datetime(2021, 2, 16, 0, 0), 73.237),\n",
"\t (datetime.datetime(2021, 2, 17, 0, 0), 72.98)\n",
"\t ...\n",
"\t (datetime.datetime(2022, 2, 10, 0, 0), 86.5),\n",
"\t (datetime.datetime(2022, 2, 11, 0, 0), 85.226),\n",
"\t (datetime.datetime(2022, 2, 14, 0, 0), 82.53299999999999)], frequency='D')"
]
},
2022-02-22 02:55:57 +00:00
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
2022-02-21 07:41:38 +00:00
"source": [
"ts[ts.dates>'2021-02-14']"
2022-02-21 07:41:38 +00:00
]
},
{
"cell_type": "code",
2022-02-22 02:55:57 +00:00
"execution_count": 9,
"id": "6f1226a3-2327-435b-88e7-fd0fdcc8cc1c",
2022-02-21 07:41:38 +00:00
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"TimeSeries([(datetime.datetime(2020, 1, 2, 0, 0), 58.285),\n",
"\t (datetime.datetime(2020, 1, 3, 0, 0), 58.056999999999995),\n",
"\t (datetime.datetime(2020, 1, 6, 0, 0), 56.938)\n",
"\t ...\n",
"\t (datetime.datetime(2022, 2, 10, 0, 0), 86.5),\n",
"\t (datetime.datetime(2022, 2, 11, 0, 0), 85.226),\n",
"\t (datetime.datetime(2022, 2, 14, 0, 0), 82.53299999999999)], frequency='D')"
2022-02-21 07:41:38 +00:00
]
},
2022-02-22 02:55:57 +00:00
"execution_count": 9,
2022-02-21 07:41:38 +00:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s = ts.dates > '2020-01-01'\n",
"ts[s]"
2022-02-21 07:41:38 +00:00
]
},
{
"cell_type": "code",
2022-02-22 02:55:57 +00:00
"execution_count": 10,
"id": "e815edc9-3746-4192-814e-bd27b2771a0c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[(datetime.datetime(2013, 1, 2, 0, 0), 18.972),\n",
" (datetime.datetime(2013, 1, 3, 0, 0), 19.011),\n",
" (datetime.datetime(2013, 1, 4, 0, 0), 19.008),\n",
" (datetime.datetime(2013, 1, 7, 0, 0), 18.95),\n",
" (datetime.datetime(2013, 1, 8, 0, 0), 18.954),\n",
" (datetime.datetime(2013, 1, 9, 0, 0), 18.94),\n",
" (datetime.datetime(2013, 1, 10, 0, 0), 18.957),\n",
" (datetime.datetime(2013, 1, 11, 0, 0), 18.948),\n",
" (datetime.datetime(2013, 1, 14, 0, 0), 19.177),\n",
" (datetime.datetime(2013, 1, 15, 0, 0), 19.272000000000002)]"
]
},
2022-02-22 02:55:57 +00:00
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ts.iloc[:10]"
]
},
{
"cell_type": "code",
2022-02-22 02:55:57 +00:00
"execution_count": 11,
2022-02-21 07:41:38 +00:00
"id": "dc469722-c816-4b57-8d91-7a3b865f86be",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: total: 15.6 ms\n",
2022-02-22 02:55:57 +00:00
"Wall time: 10 ms\n"
2022-02-21 02:52:04 +00:00
]
}
],
"source": [
"%%time\n",
"from_date = datetime.date(2020, 1, 1)\n",
"to_date = datetime.date(2021, 1, 1)\n",
"# print(ts.calculate_returns(to_date, years=7))\n",
"rr = ts.calculate_rolling_returns(from_date, to_date)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e5d357b4-4fe5-4a0a-8107-0ab6828d7c41",
"metadata": {},
"outputs": [],
"source": []
2022-02-21 02:52:04 +00:00
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
2022-02-21 02:52:04 +00:00
"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.8.3"
2022-02-21 02:52:04 +00:00
}
},
"nbformat": 4,
"nbformat_minor": 5
}