|
|
@ -2,7 +2,7 @@ |
|
|
|
"cells": [ |
|
|
|
{ |
|
|
|
"cell_type": "code", |
|
|
|
"execution_count": 2, |
|
|
|
"execution_count": 1, |
|
|
|
"id": "3f7938c0-98e3-43b8-86e8-4f000cda7ce5", |
|
|
|
"metadata": {}, |
|
|
|
"outputs": [], |
|
|
@ -16,189 +16,176 @@ |
|
|
|
}, |
|
|
|
{ |
|
|
|
"cell_type": "code", |
|
|
|
"execution_count": 3, |
|
|
|
"execution_count": 2, |
|
|
|
"id": "4b8ccd5f-dfff-4202-82c4-f66a30c122b6", |
|
|
|
"metadata": {}, |
|
|
|
"outputs": [], |
|
|
|
"outputs": [ |
|
|
|
{ |
|
|
|
"data": { |
|
|
|
"text/plain": [ |
|
|
|
"[(datetime.datetime(2022, 1, 31, 0, 0), 310.980011),\n", |
|
|
|
" (datetime.datetime(2021, 5, 28, 0, 0), 249.679993)]" |
|
|
|
] |
|
|
|
}, |
|
|
|
"execution_count": 2, |
|
|
|
"metadata": {}, |
|
|
|
"output_type": "execute_result" |
|
|
|
} |
|
|
|
], |
|
|
|
"source": [ |
|
|
|
"dfd = pd.read_csv('test_files/nav_history_daily - copy.csv')\n", |
|
|
|
"dfd = dfd[dfd['amfi_code'] == 118825].reset_index(drop=True)" |
|
|
|
"dfd = pd.read_csv('test_files/msft.csv')\n", |
|
|
|
"# dfd = dfd[dfd['amfi_code'] == 118825].reset_index(drop=True)\n", |
|
|
|
"ts = TimeSeries([(i.date, i.nav) for i in dfd.itertuples()], frequency='D')\n", |
|
|
|
"repr(ts)\n", |
|
|
|
"ts[['2022-01-31', '2021-05-28']]" |
|
|
|
] |
|
|
|
}, |
|
|
|
{ |
|
|
|
"cell_type": "code", |
|
|
|
"execution_count": 12, |
|
|
|
"id": "c52b0c2c-dd01-48dd-9ffa-3147ec9571ef", |
|
|
|
"execution_count": 3, |
|
|
|
"id": "086d4377-d1b1-4e51-84c0-39dee28ef75e", |
|
|
|
"metadata": {}, |
|
|
|
"outputs": [ |
|
|
|
{ |
|
|
|
"name": "stdout", |
|
|
|
"output_type": "stream", |
|
|
|
"text": [ |
|
|
|
"Warning: The input data contains duplicate dates which have been ignored.\n" |
|
|
|
"Wall time: 17 ms\n" |
|
|
|
] |
|
|
|
}, |
|
|
|
{ |
|
|
|
"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", |
|
|
|
"TimeSeries([(datetime.datetime(2022, 1, 3, 0, 0), 334.75),\n", |
|
|
|
"\t (datetime.datetime(2022, 1, 4, 0, 0), 329.01001),\n", |
|
|
|
"\t (datetime.datetime(2022, 1, 5, 0, 0), 316.380005)\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')" |
|
|
|
"\t (datetime.datetime(2022, 2, 16, 0, 0), 299.5),\n", |
|
|
|
"\t (datetime.datetime(2022, 2, 17, 0, 0), 290.730011),\n", |
|
|
|
"\t (datetime.datetime(2022, 2, 18, 0, 0), 287.929993)], frequency='D')" |
|
|
|
] |
|
|
|
}, |
|
|
|
"execution_count": 12, |
|
|
|
"execution_count": 3, |
|
|
|
"metadata": {}, |
|
|
|
"output_type": "execute_result" |
|
|
|
} |
|
|
|
], |
|
|
|
"source": [ |
|
|
|
"ts = TimeSeries([(i.date, i.nav) for i in dfd.itertuples()], frequency='D')\n", |
|
|
|
"ts" |
|
|
|
"%%time\n", |
|
|
|
"s = ts.dates >= '2022-01-01'\n", |
|
|
|
"ts[s]" |
|
|
|
] |
|
|
|
}, |
|
|
|
{ |
|
|
|
"cell_type": "code", |
|
|
|
"execution_count": 6, |
|
|
|
"id": "9e8ff6c6-3a36-435a-ba87-5b9844c18779", |
|
|
|
"execution_count": 4, |
|
|
|
"id": "e815edc9-3746-4192-814e-bd27b2771a0c", |
|
|
|
"metadata": {}, |
|
|
|
"outputs": [ |
|
|
|
{ |
|
|
|
"name": "stdout", |
|
|
|
"output_type": "stream", |
|
|
|
"text": [ |
|
|
|
"Wall time: 5.97 ms\n" |
|
|
|
] |
|
|
|
}, |
|
|
|
{ |
|
|
|
"data": { |
|
|
|
"text/plain": [ |
|
|
|
"[(datetime.datetime(2022, 1, 31, 0, 0), 85.18),\n", |
|
|
|
" (datetime.datetime(2021, 5, 31, 0, 0), 74.85)]" |
|
|
|
"[(datetime.datetime(1992, 2, 19, 0, 0), 2.398438),\n", |
|
|
|
" (datetime.datetime(1992, 2, 20, 0, 0), 2.447917),\n", |
|
|
|
" (datetime.datetime(1992, 2, 21, 0, 0), 2.385417),\n", |
|
|
|
" (datetime.datetime(1992, 2, 24, 0, 0), 2.393229),\n", |
|
|
|
" (datetime.datetime(1992, 2, 25, 0, 0), 2.411458),\n", |
|
|
|
" (datetime.datetime(1992, 2, 26, 0, 0), 2.541667),\n", |
|
|
|
" (datetime.datetime(1992, 2, 27, 0, 0), 2.601563),\n", |
|
|
|
" (datetime.datetime(1992, 2, 28, 0, 0), 2.572917),\n", |
|
|
|
" (datetime.datetime(1992, 3, 2, 0, 0), 2.5625),\n", |
|
|
|
" (datetime.datetime(1992, 3, 3, 0, 0), 2.567708)]" |
|
|
|
] |
|
|
|
}, |
|
|
|
"execution_count": 6, |
|
|
|
"execution_count": 4, |
|
|
|
"metadata": {}, |
|
|
|
"output_type": "execute_result" |
|
|
|
} |
|
|
|
], |
|
|
|
"source": [ |
|
|
|
"ts[['2022-01-31', '2021-05-31']]" |
|
|
|
"%%time\n", |
|
|
|
"ts.iloc[:10]" |
|
|
|
] |
|
|
|
}, |
|
|
|
{ |
|
|
|
"cell_type": "code", |
|
|
|
"execution_count": 8, |
|
|
|
"id": "086d4377-d1b1-4e51-84c0-39dee28ef75e", |
|
|
|
"metadata": {}, |
|
|
|
"execution_count": 5, |
|
|
|
"id": "dc469722-c816-4b57-8d91-7a3b865f86be", |
|
|
|
"metadata": { |
|
|
|
"tags": [] |
|
|
|
}, |
|
|
|
"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')" |
|
|
|
] |
|
|
|
}, |
|
|
|
"execution_count": 8, |
|
|
|
"metadata": {}, |
|
|
|
"output_type": "execute_result" |
|
|
|
"name": "stdout", |
|
|
|
"output_type": "stream", |
|
|
|
"text": [ |
|
|
|
"Wall time: 311 ms\n" |
|
|
|
] |
|
|
|
} |
|
|
|
], |
|
|
|
"source": [ |
|
|
|
"ts[ts.dates>'2021-02-14']" |
|
|
|
"%%time\n", |
|
|
|
"from_date = datetime.date(1994, 1, 1)\n", |
|
|
|
"to_date = datetime.date(2022, 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": 9, |
|
|
|
"id": "6f1226a3-2327-435b-88e7-fd0fdcc8cc1c", |
|
|
|
"execution_count": 6, |
|
|
|
"id": "e5d357b4-4fe5-4a0a-8107-0ab6828d7c41", |
|
|
|
"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", |
|
|
|
"TimeSeries([(datetime.datetime(1994, 1, 3, 0, 0), -0.06149359306648605),\n", |
|
|
|
"\t (datetime.datetime(1994, 1, 4, 0, 0), -0.05433177603118022),\n", |
|
|
|
"\t (datetime.datetime(1994, 1, 5, 0, 0), -0.04913276300578029)\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')" |
|
|
|
"\t (datetime.datetime(2021, 12, 29, 0, 0), 0.5255410267822715),\n", |
|
|
|
"\t (datetime.datetime(2021, 12, 30, 0, 0), 0.5306749265370103),\n", |
|
|
|
"\t (datetime.datetime(2021, 12, 31, 0, 0), 0.5120942811985818)], frequency='D')" |
|
|
|
] |
|
|
|
}, |
|
|
|
"execution_count": 9, |
|
|
|
"execution_count": 6, |
|
|
|
"metadata": {}, |
|
|
|
"output_type": "execute_result" |
|
|
|
} |
|
|
|
], |
|
|
|
"source": [ |
|
|
|
"s = ts.dates > '2020-01-01'\n", |
|
|
|
"ts[s]" |
|
|
|
"rr" |
|
|
|
] |
|
|
|
}, |
|
|
|
{ |
|
|
|
"cell_type": "code", |
|
|
|
"execution_count": 10, |
|
|
|
"id": "e815edc9-3746-4192-814e-bd27b2771a0c", |
|
|
|
"execution_count": 7, |
|
|
|
"id": "4bad2efa", |
|
|
|
"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)]" |
|
|
|
"Series([1.0, 2.0, 3.0, 4.0, 5.0])" |
|
|
|
] |
|
|
|
}, |
|
|
|
"execution_count": 10, |
|
|
|
"execution_count": 7, |
|
|
|
"metadata": {}, |
|
|
|
"output_type": "execute_result" |
|
|
|
} |
|
|
|
], |
|
|
|
"source": [ |
|
|
|
"ts.iloc[:10]" |
|
|
|
"sr = Series([1, 2, 3, 4, 5], 'number')\n", |
|
|
|
"sr" |
|
|
|
] |
|
|
|
}, |
|
|
|
{ |
|
|
|
"cell_type": "code", |
|
|
|
"execution_count": 11, |
|
|
|
"id": "dc469722-c816-4b57-8d91-7a3b865f86be", |
|
|
|
"metadata": { |
|
|
|
"tags": [] |
|
|
|
}, |
|
|
|
"outputs": [ |
|
|
|
{ |
|
|
|
"name": "stdout", |
|
|
|
"output_type": "stream", |
|
|
|
"text": [ |
|
|
|
"CPU times: total: 15.6 ms\n", |
|
|
|
"Wall time: 10 ms\n" |
|
|
|
] |
|
|
|
} |
|
|
|
], |
|
|
|
"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": [] |
|
|
|
} |
|
|
|
], |
|
|
|
"metadata": { |
|
|
@ -217,7 +204,7 @@ |
|
|
|
"name": "python", |
|
|
|
"nbconvert_exporter": "python", |
|
|
|
"pygments_lexer": "ipython3", |
|
|
|
"version": "3.8.3" |
|
|
|
"version": "3.9.2" |
|
|
|
} |
|
|
|
}, |
|
|
|
"nbformat": 4, |
|
|
|