{ "cells": [ { "cell_type": "code", "execution_count": 1, "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", "execution_count": 2, "id": "4b8ccd5f-dfff-4202-82c4-f66a30c122b6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: total: 125 ms\n", "Wall time: 99 ms\n" ] }, { "data": { "text/plain": [ "[(datetime.datetime(2022, 1, 31, 0, 0), 310.980011),\n", " (datetime.datetime(2021, 5, 28, 0, 0), 249.67999300000002)]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "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": "ffd9665d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(datetime.datetime(2022, 1, 31, 0, 0), 310.980011)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ts['2022-01-31']" ] }, { "cell_type": "code", "execution_count": 3, "id": "086d4377-d1b1-4e51-84c0-39dee28ef75e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: total: 15.6 ms\n", "Wall time: 16 ms\n" ] }, { "data": { "text/plain": [ "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, 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": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "s = ts.dates >= '2022-01-01'\n", "ts[s]" ] }, { "cell_type": "code", "execution_count": 4, "id": "e815edc9-3746-4192-814e-bd27b2771a0c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: total: 15.6 ms\n", "Wall time: 4 ms\n" ] }, { "data": { "text/plain": [ "[(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.3932290000000003),\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": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "ts.iloc[:10]" ] }, { "cell_type": "code", "execution_count": 11, "id": "dc469722-c816-4b57-8d91-7a3b865f86be", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: total: 297 ms\n", "Wall time: 290 ms\n" ] } ], "source": [ "%%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": 6, "id": "e5d357b4-4fe5-4a0a-8107-0ab6828d7c41", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "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(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": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rr" ] }, { "cell_type": "code", "execution_count": 7, "id": "4bad2efa", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Series([1.0, 2.0, 3.0, 4.0, 5.0])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sr = Series([1, 2, 3, 4, 5], 'number')\n", "sr" ] }, { "cell_type": "code", "execution_count": 2, "id": "adceda69", "metadata": {}, "outputs": [], "source": [ "from fincal.fincal import TimeSeries\n", "import datetime\n", "ts = TimeSeries(data = [('2021-01-01', 220), ('2021-02-01', 230), ('2021-03-01', 240)], frequency='M')" ] }, { "cell_type": "code", "execution_count": 5, "id": "68cf9f8c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(datetime.datetime(2021, 2, 1, 0, 0), 0.045454545454545414)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ts.calculate_returns('2021-02-05', interval_type='months', interval_value=1, compounding=False)" ] }, { "cell_type": "code", "execution_count": 6, "id": "a583347f", "metadata": {}, "outputs": [], "source": [ "D = {'a': 1, 'b': 2}" ] }, { "cell_type": "code", "execution_count": 10, "id": "f79ac787", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['a', 'b'])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "D.keys()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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" } }, "nbformat": 4, "nbformat_minor": 5 }