{ "cells": [ { "cell_type": "code", "execution_count": 25, "id": "7683de09-4b5b-46d3-bfc4-384b14c7768c", "metadata": {}, "outputs": [], "source": [ "import sys\n", "import os\n", "\n", "\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "\n", "\n", "# Prevent scientific notation in pandas output.\n", "pd.set_option('display.float_format', lambda x: '%.3f' % x)\n", "\n", "\n", "# Add the parent directory to sys.path\n", "sys.path.insert(0, os.path.abspath(os.path.join(os.getcwd(), '..')))\n", "\n", "\n", "from database import Database\n", "from model.ticker import Ticker\n", "\n", "\n", "DB_PATH = \"sqlite:///../finance.db\"\n", "\n", "\n", "db = Database(database_url=DB_PATH)" ] }, { "cell_type": "code", "execution_count": 26, "id": "4b691b1a-850c-4b70-8132-4cd7dde7fe97", "metadata": {}, "outputs": [], "source": [ "year = 2010\n", "year_2010 = f\"SELECT * FROM sma WHERE strftime('%Y', sma.date) = '{year}'\"" ] }, { "cell_type": "code", "execution_count": 27, "id": "d92bf552-b9f1-4b07-a15e-49b62e0ae546", "metadata": {}, "outputs": [], "source": [ "year = 2000\n", "year_2000 = f\"SELECT * FROM sma WHERE strftime('%Y', sma.date) = '{year}'\"" ] }, { "cell_type": "code", "execution_count": 28, "id": "61aa9543-9e4c-4729-b832-b95c06de77ac", "metadata": {}, "outputs": [], "source": [ "year = 2020\n", "year_2020 = f\"SELECT * FROM sma WHERE strftime('%Y', sma.date) = '{year}'\"" ] }, { "cell_type": "code", "execution_count": 29, "id": "fc783f6d-1a10-49f4-be6b-350728535176", "metadata": {}, "outputs": [], "source": [ "df_2010 = pd.read_sql(year_2010, db.engine)\n", "df_2010['date'] = pd.to_datetime(df_2010['date'], format='%Y-%m-%d %H:%M:%S.%f')" ] }, { "cell_type": "code", "execution_count": 30, "id": "3289bf8b-c822-4c78-a68f-ebdacdbb8c0c", "metadata": {}, "outputs": [], "source": [ "df_2000 = pd.read_sql(year_2000, db.engine)\n", "df_2000['date'] = pd.to_datetime(df_2000['date'], format='%Y-%m-%d %H:%M:%S.%f')" ] }, { "cell_type": "code", "execution_count": 31, "id": "02942a47-e742-47d4-aeb0-77ca4e0d1967", "metadata": {}, "outputs": [], "source": [ "df_2020 = pd.read_sql(year_2020, db.engine)\n", "df_2020['date'] = pd.to_datetime(df_2020['date'], format='%Y-%m-%d %H:%M:%S.%f')" ] }, { "cell_type": "code", "execution_count": 32, "id": "f6e520da-ae1c-4c8b-8715-b7845bd30552", "metadata": {}, "outputs": [], "source": [ "symbol = 'HPAR-fake'\n", "\n", "hpar_2000 = df_2000[df_2000['symbol'] == symbol]\n", "hpar_2010 = df_2010[df_2010['symbol'] == symbol]\n", "hpar_2020 = df_2020[df_2020['symbol'] == symbol]" ] }, { "cell_type": "code", "execution_count": 33, "id": "941a0a7b-28ae-4ec4-8beb-23acb240a8b5", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | id | \n", "date | \n", "symbol | \n", "sma_5 | \n", "sma_10 | \n", "sma_20 | \n", "sma_50 | \n", "sma_100 | \n", "sma_200 | \n", "
---|---|---|---|---|---|---|---|---|---|
0 | \n", "1 | \n", "2000-01-03 | \n", "HPAR-fake | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
1 | \n", "2 | \n", "2000-01-04 | \n", "HPAR-fake | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
2 | \n", "3 | \n", "2000-01-05 | \n", "HPAR-fake | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
3 | \n", "4 | \n", "2000-01-06 | \n", "HPAR-fake | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
4 | \n", "5 | \n", "2000-01-07 | \n", "HPAR-fake | \n", "99.581 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
255 | \n", "256 | \n", "2000-12-25 | \n", "HPAR-fake | \n", "59.474 | \n", "59.585 | \n", "60.467 | \n", "63.515 | \n", "67.022 | \n", "73.605 | \n", "
256 | \n", "257 | \n", "2000-12-26 | \n", "HPAR-fake | \n", "59.345 | \n", "59.454 | \n", "60.366 | \n", "63.277 | \n", "66.897 | \n", "73.417 | \n", "
257 | \n", "258 | \n", "2000-12-27 | \n", "HPAR-fake | \n", "59.264 | \n", "59.338 | \n", "60.278 | \n", "63.063 | \n", "66.769 | \n", "73.238 | \n", "
258 | \n", "259 | \n", "2000-12-28 | \n", "HPAR-fake | \n", "59.412 | \n", "59.436 | \n", "60.205 | \n", "62.887 | \n", "66.644 | \n", "73.064 | \n", "
259 | \n", "260 | \n", "2000-12-29 | \n", "HPAR-fake | \n", "59.502 | \n", "59.465 | \n", "60.078 | \n", "62.721 | \n", "66.512 | \n", "72.893 | \n", "
260 rows × 9 columns
\n", "\n", " | id | \n", "date | \n", "symbol | \n", "sma_5 | \n", "sma_10 | \n", "sma_20 | \n", "sma_50 | \n", "sma_100 | \n", "sma_200 | \n", "
---|---|---|---|---|---|---|---|---|---|
0 | \n", "2610 | \n", "2010-01-01 | \n", "HPAR-fake | \n", "51.884 | \n", "52.313 | \n", "52.161 | \n", "53.432 | \n", "51.925 | \n", "53.475 | \n", "
1 | \n", "2611 | \n", "2010-01-04 | \n", "HPAR-fake | \n", "51.872 | \n", "52.260 | \n", "52.077 | \n", "53.417 | \n", "51.946 | \n", "53.449 | \n", "
2 | \n", "2612 | \n", "2010-01-05 | \n", "HPAR-fake | \n", "51.959 | \n", "52.312 | \n", "52.072 | \n", "53.405 | \n", "51.973 | \n", "53.428 | \n", "
3 | \n", "2613 | \n", "2010-01-06 | \n", "HPAR-fake | \n", "52.078 | \n", "52.271 | \n", "52.069 | \n", "53.409 | \n", "52.005 | \n", "53.407 | \n", "
4 | \n", "2614 | \n", "2010-01-07 | \n", "HPAR-fake | \n", "52.306 | \n", "52.229 | \n", "52.119 | \n", "53.403 | \n", "52.030 | \n", "53.391 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
256 | \n", "2866 | \n", "2010-12-27 | \n", "HPAR-fake | \n", "49.988 | \n", "50.002 | \n", "48.291 | \n", "46.279 | \n", "45.890 | \n", "47.166 | \n", "
257 | \n", "2867 | \n", "2010-12-28 | \n", "HPAR-fake | \n", "49.941 | \n", "50.039 | \n", "48.499 | \n", "46.411 | \n", "45.926 | \n", "47.165 | \n", "
258 | \n", "2868 | \n", "2010-12-29 | \n", "HPAR-fake | \n", "49.998 | \n", "50.082 | \n", "48.723 | \n", "46.551 | \n", "45.963 | \n", "47.166 | \n", "
259 | \n", "2869 | \n", "2010-12-30 | \n", "HPAR-fake | \n", "50.082 | \n", "50.165 | \n", "48.949 | \n", "46.695 | \n", "46.005 | \n", "47.170 | \n", "
260 | \n", "2870 | \n", "2010-12-31 | \n", "HPAR-fake | \n", "50.299 | \n", "50.207 | \n", "49.212 | \n", "46.852 | \n", "46.059 | \n", "47.180 | \n", "
261 rows × 9 columns
\n", "\n", " | id | \n", "date | \n", "symbol | \n", "sma_5 | \n", "sma_10 | \n", "sma_20 | \n", "sma_50 | \n", "sma_100 | \n", "sma_200 | \n", "
---|---|---|---|---|---|---|---|---|---|
0 | \n", "5218 | \n", "2020-01-01 | \n", "HPAR-fake | \n", "51.882 | \n", "52.465 | \n", "52.040 | \n", "50.035 | \n", "50.018 | \n", "51.250 | \n", "
1 | \n", "5219 | \n", "2020-01-02 | \n", "HPAR-fake | \n", "51.558 | \n", "52.415 | \n", "52.081 | \n", "50.111 | \n", "50.063 | \n", "51.197 | \n", "
2 | \n", "5220 | \n", "2020-01-03 | \n", "HPAR-fake | \n", "51.527 | \n", "52.330 | \n", "52.115 | \n", "50.209 | \n", "50.117 | \n", "51.147 | \n", "
3 | \n", "5221 | \n", "2020-01-06 | \n", "HPAR-fake | \n", "51.618 | \n", "52.193 | \n", "52.117 | \n", "50.298 | \n", "50.171 | \n", "51.102 | \n", "
4 | \n", "5222 | \n", "2020-01-07 | \n", "HPAR-fake | \n", "51.828 | \n", "52.109 | \n", "52.120 | \n", "50.398 | \n", "50.237 | \n", "51.065 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
257 | \n", "5475 | \n", "2020-12-25 | \n", "HPAR-fake | \n", "63.722 | \n", "62.907 | \n", "64.027 | \n", "65.468 | \n", "62.996 | \n", "61.716 | \n", "
258 | \n", "5476 | \n", "2020-12-28 | \n", "HPAR-fake | \n", "64.075 | \n", "62.987 | \n", "63.950 | \n", "65.420 | \n", "63.055 | \n", "61.731 | \n", "
259 | \n", "5477 | \n", "2020-12-29 | \n", "HPAR-fake | \n", "64.307 | \n", "63.241 | \n", "63.903 | \n", "65.383 | \n", "63.123 | \n", "61.752 | \n", "
260 | \n", "5478 | \n", "2020-12-30 | \n", "HPAR-fake | \n", "64.618 | \n", "63.615 | \n", "63.860 | \n", "65.360 | \n", "63.187 | \n", "61.767 | \n", "
261 | \n", "5479 | \n", "2020-12-31 | \n", "HPAR-fake | \n", "64.922 | \n", "64.063 | \n", "63.843 | \n", "65.348 | \n", "63.255 | \n", "61.776 | \n", "
262 rows × 9 columns
\n", "