{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "895740bb", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T05:35:38.686759Z", "iopub.status.busy": "2023-05-31T05:35:38.686330Z", "iopub.status.idle": "2023-05-31T05:35:41.896020Z", "shell.execute_reply": "2023-05-31T05:35:41.894426Z" }, "papermill": { "duration": 3.221657, "end_time": "2023-05-31T05:35:41.899020", "exception": false, "start_time": "2023-05-31T05:35:38.677363", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import seaborn as sns\n", "import xgboost as xgb\n", "import lightgbm as lgb\n", "from sklearn.model_selection import train_test_split\n", "from decimal import ROUND_HALF_UP, Decimal\n", "from sklearn.metrics import mean_squared_error\n", "from scipy import stats\n", "from matplotlib import pyplot as plt\n", "\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "code", "execution_count": 2, "id": "2ece1f67", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T05:35:41.915229Z", "iopub.status.busy": "2023-05-31T05:35:41.914796Z", "iopub.status.idle": "2023-05-31T05:35:41.955533Z", "shell.execute_reply": "2023-05-31T05:35:41.953766Z" }, "papermill": { "duration": 0.052885, "end_time": "2023-05-31T05:35:41.958429", "exception": false, "start_time": "2023-05-31T05:35:41.905544", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/kaggle/input/jpx-tokyo-stock-exchange-prediction/stock_list.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/example_test_files/sample_submission.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/example_test_files/options.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/example_test_files/financials.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/example_test_files/secondary_stock_prices.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/example_test_files/trades.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/example_test_files/stock_prices.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/jpx_tokyo_market_prediction/competition.cpython-37m-x86_64-linux-gnu.so\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/jpx_tokyo_market_prediction/__init__.py\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/data_specifications/stock_fin_spec.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/data_specifications/trades_spec.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/data_specifications/stock_price_spec.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/data_specifications/options_spec.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/data_specifications/stock_list_spec.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/train_files/options.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/train_files/financials.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/train_files/secondary_stock_prices.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/train_files/trades.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/train_files/stock_prices.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/supplemental_files/options.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/supplemental_files/financials.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/supplemental_files/secondary_stock_prices.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/supplemental_files/trades.csv\n", "/kaggle/input/jpx-tokyo-stock-exchange-prediction/supplemental_files/stock_prices.csv\n" ] } ], "source": [ "import os\n", "for dirname, _, filenames in os.walk('/kaggle/input'):\n", " for filename in filenames:\n", " print(os.path.join(dirname, filename))" ] }, { "cell_type": "code", "execution_count": 3, "id": "5e94d396", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T05:35:41.975614Z", "iopub.status.busy": "2023-05-31T05:35:41.975116Z", "iopub.status.idle": "2023-05-31T05:35:47.330650Z", "shell.execute_reply": "2023-05-31T05:35:47.329096Z" }, "papermill": { "duration": 5.367018, "end_time": "2023-05-31T05:35:47.333233", "exception": false, "start_time": "2023-05-31T05:35:41.966215", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
RowIdDateSecuritiesCodeOpenHighLowCloseVolumeAdjustmentFactorExpectedDividendSupervisionFlagTarget
020170104_13012017-01-0413012734.02755.02730.02742.0314001.0NaNFalse0.000730
120170104_13322017-01-041332568.0576.0563.0571.027985001.0NaNFalse0.012324
220170104_13332017-01-0413333150.03210.03140.03210.02708001.0NaNFalse0.006154
320170104_13762017-01-0413761510.01550.01510.01550.0113001.0NaNFalse0.011053
420170104_13772017-01-0413773270.03350.03270.03330.01508001.0NaNFalse0.003026
.......................................
233252620211203_99902021-12-039990514.0528.0513.0528.0442001.0NaNFalse0.034816
233252720211203_99912021-12-039991782.0794.0782.0794.0359001.0NaNFalse0.025478
233252820211203_99932021-12-0399931690.01690.01645.01645.072001.0NaNFalse-0.004302
233252920211203_99942021-12-0399942388.02396.02380.02389.065001.0NaNFalse0.009098
233253020211203_99972021-12-039997690.0711.0686.0696.03811001.0NaNFalse0.018414
\n", "

2332531 rows × 12 columns

\n", "
" ], "text/plain": [ " RowId Date SecuritiesCode Open High Low \\\n", "0 20170104_1301 2017-01-04 1301 2734.0 2755.0 2730.0 \n", "1 20170104_1332 2017-01-04 1332 568.0 576.0 563.0 \n", "2 20170104_1333 2017-01-04 1333 3150.0 3210.0 3140.0 \n", "3 20170104_1376 2017-01-04 1376 1510.0 1550.0 1510.0 \n", "4 20170104_1377 2017-01-04 1377 3270.0 3350.0 3270.0 \n", "... ... ... ... ... ... ... \n", "2332526 20211203_9990 2021-12-03 9990 514.0 528.0 513.0 \n", "2332527 20211203_9991 2021-12-03 9991 782.0 794.0 782.0 \n", "2332528 20211203_9993 2021-12-03 9993 1690.0 1690.0 1645.0 \n", "2332529 20211203_9994 2021-12-03 9994 2388.0 2396.0 2380.0 \n", "2332530 20211203_9997 2021-12-03 9997 690.0 711.0 686.0 \n", "\n", " Close Volume AdjustmentFactor ExpectedDividend SupervisionFlag \\\n", "0 2742.0 31400 1.0 NaN False \n", "1 571.0 2798500 1.0 NaN False \n", "2 3210.0 270800 1.0 NaN False \n", "3 1550.0 11300 1.0 NaN False \n", "4 3330.0 150800 1.0 NaN False \n", "... ... ... ... ... ... \n", "2332526 528.0 44200 1.0 NaN False \n", "2332527 794.0 35900 1.0 NaN False \n", "2332528 1645.0 7200 1.0 NaN False \n", "2332529 2389.0 6500 1.0 NaN False \n", "2332530 696.0 381100 1.0 NaN False \n", "\n", " Target \n", "0 0.000730 \n", "1 0.012324 \n", "2 0.006154 \n", "3 0.011053 \n", "4 0.003026 \n", "... ... \n", "2332526 0.034816 \n", "2332527 0.025478 \n", "2332528 -0.004302 \n", "2332529 0.009098 \n", "2332530 0.018414 \n", "\n", "[2332531 rows x 12 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "train = pd.read_csv('/kaggle/input/jpx-tokyo-stock-exchange-prediction/train_files/stock_prices.csv')\n", "train" ] }, { "cell_type": "markdown", "id": "9b4985ff", "metadata": { "papermill": { "duration": 0.007561, "end_time": "2023-05-31T05:35:47.347541", "exception": false, "start_time": "2023-05-31T05:35:47.339980", "status": "completed" }, "tags": [] }, "source": [ "## Feature engineering" ] }, { "cell_type": "code", "execution_count": 4, "id": "5e725fef", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T05:35:47.362878Z", "iopub.status.busy": "2023-05-31T05:35:47.362480Z", "iopub.status.idle": "2023-05-31T05:35:47.370285Z", "shell.execute_reply": "2023-05-31T05:35:47.369178Z" }, "papermill": { "duration": 0.018149, "end_time": "2023-05-31T05:35:47.372310", "exception": false, "start_time": "2023-05-31T05:35:47.354161", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "def adjust_price(price):\n", " price.loc[: ,\"Date\"] = pd.to_datetime(price.loc[: ,\"Date\"], format=\"%Y-%m-%d\")\n", "\n", " def generate_adjusted_close(df):\n", " df = df.sort_values(\"Date\", ascending=False)\n", " df.loc[:, \"CumulativeAdjustmentFactor\"] = df[\"AdjustmentFactor\"].cumprod()\n", " df.loc[:, \"AdjustedClose\"] = (\n", " df[\"CumulativeAdjustmentFactor\"] * df[\"Close\"]\n", " ).map(lambda x: float(\n", " Decimal(str(x)).quantize(Decimal('0.1'), rounding=ROUND_HALF_UP)\n", " ))\n", " df = df.sort_values(\"Date\")\n", " df.loc[df[\"AdjustedClose\"] == 0, \"AdjustedClose\"] = np.nan\n", " df.loc[:, \"AdjustedClose\"] = df.loc[:, \"AdjustedClose\"].ffill()\n", " return df\n", "\n", " price = price.sort_values([\"SecuritiesCode\", \"Date\"])\n", " price = price.groupby(\"SecuritiesCode\").apply(generate_adjusted_close).reset_index(drop=True)\n", "\n", " return price" ] }, { "cell_type": "code", "execution_count": 5, "id": "a949fea4", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T05:35:47.387377Z", "iopub.status.busy": "2023-05-31T05:35:47.387041Z", "iopub.status.idle": "2023-05-31T05:35:47.392290Z", "shell.execute_reply": "2023-05-31T05:35:47.390725Z" }, "papermill": { "duration": 0.01535, "end_time": "2023-05-31T05:35:47.394628", "exception": false, "start_time": "2023-05-31T05:35:47.379278", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "def z_score(df):\n", " return stats.zscore(df)" ] }, { "cell_type": "code", "execution_count": 6, "id": "af7fd44b", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T05:35:47.410554Z", "iopub.status.busy": "2023-05-31T05:35:47.410199Z", "iopub.status.idle": "2023-05-31T05:35:47.418156Z", "shell.execute_reply": "2023-05-31T05:35:47.416503Z" }, "papermill": { "duration": 0.018723, "end_time": "2023-05-31T05:35:47.420588", "exception": false, "start_time": "2023-05-31T05:35:47.401865", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "def interpolate_nan(df):\n", " sec_codes = df.SecuritiesCode.unique().tolist()\n", " for code in sec_codes:\n", " df.loc[df.SecuritiesCode == code, \"High\"] = df[df.SecuritiesCode == code][\"High\"].interpolate(method='spline', order=3, limit_direction='both')\n", " df.loc[df.SecuritiesCode == code, \"Low\"] = df[df.SecuritiesCode == code][\"Low\"].interpolate(method='spline', order=3, limit_direction='both')\n", " df.loc[df.SecuritiesCode == code , \"Close\"] = df[df.SecuritiesCode == code][\"Close\"].interpolate(method='spline', order=3, limit_direction='both')\n", " df.loc[df.SecuritiesCode == code , \"Open\"] = df[df.SecuritiesCode == code][\"Open\"].interpolate(method='spline', order=3, limit_direction='both')\n", " return df" ] }, { "cell_type": "code", "execution_count": 7, "id": "03bfc619", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T05:35:47.435965Z", "iopub.status.busy": "2023-05-31T05:35:47.435500Z", "iopub.status.idle": "2023-05-31T05:35:47.441600Z", "shell.execute_reply": "2023-05-31T05:35:47.440373Z" }, "papermill": { "duration": 0.01712, "end_time": "2023-05-31T05:35:47.444298", "exception": false, "start_time": "2023-05-31T05:35:47.427178", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "def ForceIndex(data, days = 10):\n", " FI = pd.Series(data['Close'].diff(days) * data['Volume'], name=\"ForceIndex\")\n", " return FI" ] }, { "cell_type": "code", "execution_count": 8, "id": "c777d8e9", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T05:35:47.460792Z", "iopub.status.busy": "2023-05-31T05:35:47.460410Z", "iopub.status.idle": "2023-05-31T05:35:47.502674Z", "shell.execute_reply": "2023-05-31T05:35:47.500595Z" }, "papermill": { "duration": 0.05413, "end_time": "2023-05-31T05:35:47.505878", "exception": false, "start_time": "2023-05-31T05:35:47.451748", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "class ta:\n", " @classmethod\n", " def SMA(cls, ohlc, period=10, column='Close') -> pd.Series:\n", " \"\"\"\n", " Simple moving average\n", " \"\"\"\n", " return pd.Series(\n", " data=ohlc[column].rolling(window=period).mean(),\n", " dtype=float,\n", " name=f'{period} period SMA'\n", " )\n", "\n", " @classmethod\n", " def SMM(cls, ohlc, period=10, column='Close') -> pd.Series:\n", " \"\"\"\n", " Simple moving median, an alternative to moving average\n", " \"\"\"\n", " return pd.Series(\n", " data=ohlc[column].rolling(window=period).median(),\n", " dtype=float,\n", " name=f'{period} period SMM'\n", " )\n", "\n", " @classmethod\n", " def SSMA(cls, ohlc, period=10, column='Close', adjust=True) -> pd.Series:\n", " \"\"\"\n", " Smoothed simple moving average\n", " \"\"\"\n", " return pd.Series(\n", " ohlc[column].ewm(ignore_na=False, alpha=1.0 / period, min_periods=0, adjust=adjust).mean(),\n", " dtype=float,\n", " name=f'{period} period SSMA'\n", " )\n", "\n", " @classmethod\n", " def EMA(cls, ohlc, period=10, column='Close', adjust=True) -> pd.Series:\n", " \"\"\"\n", " Exponential Moving Average\n", " \"\"\"\n", " return pd.Series(\n", " data=ohlc[column].ewm(span=period, adjust=adjust).mean(),\n", " dtype=float,\n", " name=f'{period} period EMA'\n", " )\n", "\n", " @classmethod\n", " def DEMA(cls, ohlc, period=10, column='Close', adjust=True) -> pd.Series:\n", " \"\"\"\n", " Double Exponential Moving Average\n", " \"\"\"\n", " return pd.Series(\n", " data=2 * cls.EMA(ohlc, period, column) - cls.EMA(ohlc, period, column).ewm(span=period,\n", " adjust=adjust).mean(),\n", " dtype=float,\n", " name=f'{period} period DEMA'\n", " )\n", "\n", " @classmethod\n", " def TEMA(cls, ohlc, period=10, column='Close', adjust=True) -> pd.Series:\n", " \"\"\"\n", " Triple exponential moving average\n", " \"\"\"\n", " triple_ema = 3 * cls.EMA(ohlc, period, column)\n", " ema_ema_ema = (\n", " cls.EMA(ohlc, period, column).\n", " ewm(ignore_na=False, span=period, adjust=adjust).mean().\n", " ewm(ignore_na=False, span=period, adjust=adjust).mean()\n", " )\n", " return pd.Series(\n", " data=triple_ema - 3 * cls.EMA(ohlc, period, column).ewm(span=period, adjust=adjust).mean() + ema_ema_ema,\n", " dtype=float,\n", " name=f'{period} period TEMA'\n", " )\n", "\n", " @classmethod\n", " def TRIMA(cls, ohlc, period=10, column='Close') -> pd.Series:\n", " \"\"\"\n", " Triangular Moving Average\n", " \"\"\"\n", " return pd.Series(\n", " data=cls.SMA(ohlc, period, column).rolling(window=period).sum() / period,\n", " dtype=float,\n", " name=f'{period} period TRIMA'\n", " )\n", "\n", " @classmethod\n", " def TRIX(cls, ohlc, period=10, column='Close', adjust=True) -> pd.Series:\n", " \"\"\"\n", " The TRIX indicator calculates the rate of change of a triple exponential moving average.\n", " The values oscillate around zero. Buy/sell signals are generated when the TRIX crosses above/below zero.\n", " \"\"\"\n", " data = ohlc[column]\n", "\n", " def _ema(data, period, adjust):\n", " return pd.Series(data.ewm(span=period, adjust=adjust).mean())\n", "\n", " m = _ema(_ema(_ema(data, period, adjust), period, adjust), period, adjust)\n", " return pd.Series(\n", " data=100 * (m.diff() / m),\n", " dtype=float,\n", " name=f'{period} period TRIX'\n", " )\n", "\n", " @classmethod\n", " def VAMA(cls, ohlcv, period=10, column='Close') -> pd.Series:\n", " \"\"\"\n", " Volume Adjusted Moving Average\n", " \"\"\"\n", " vp = ohlcv['Volume'] * ohlcv[column]\n", " vol_sum = ohlcv['Volume'].rolling(window=period).mean()\n", " vol_ratio = pd.Series(vp / vol_sum, name=\"VAMA\")\n", " cum_sum = (vol_ratio * ohlcv[column]).rolling(window=period).sum()\n", " cum_div = vol_ratio.rolling(window=period).sum()\n", "\n", " return pd.Series(\n", " data=cum_sum / cum_div,\n", " dtype=float,\n", " name=f'{period} period VAMA'\n", " )\n", "\n", " @classmethod\n", " def WMA(cls, ohlc, period=10, column='Close') -> pd.Series:\n", " \"\"\"\n", " Weighted moving average\n", " \"\"\"\n", " denominator = (period * (period + 1)) / 2\n", " weights = np.arange(1, period + 1)\n", "\n", " def linear(w):\n", " def _compute(x):\n", " return (w * x).sum() / denominator\n", "\n", " return _compute\n", "\n", " _close = ohlc[column].rolling(period, min_periods=period)\n", " return pd.Series(\n", " data=_close.apply(linear(weights), raw=True),\n", " dtype=float,\n", " name=f'{period} period WMA',\n", " )\n", "\n", " @classmethod\n", " def SMMA(cls, ohlc, period=10, column='Close', adjust=True) -> pd.Series:\n", " \"\"\"\n", " Smoothed Moving Average gives recent prices an equal weighting to historic prices.\n", " \"\"\"\n", " return pd.Series(\n", " data=ohlc[column].ewm(alpha=1 / period, adjust=adjust).mean(),\n", " dtype=float,\n", " name=f'{period} period SMMA'\n", " )\n", "\n", " @classmethod\n", " def MACD(cls, ohlc, period_fast=12, period_slow=26, signal=9, column='Close', adjust=True) \\\n", " -> [pd.Series, pd.Series, pd.Series]:\n", " \"\"\"\n", " MACD, MACD Signal and MACD difference\n", " \"\"\"\n", " EMA_fast = pd.Series(\n", " ohlc[column].ewm(ignore_na=False, span=period_fast, adjust=adjust).mean(),\n", " dtype=float,\n", " name='EMA_fast'\n", " )\n", " EMA_slow = pd.Series(\n", " ohlc[column].ewm(ignore_na=False, span=period_slow, adjust=adjust).mean(),\n", " dtype=float,\n", " name='EMA_slow'\n", " )\n", " MACD = pd.Series(\n", " EMA_fast - EMA_slow,\n", " dtype=float,\n", " name='MACD'\n", " )\n", " MACD_signal = pd.Series(\n", " MACD.ewm(ignore_na=False, span=signal, adjust=adjust).mean(),\n", " dtype=float,\n", " name='SIGNAL'\n", " )\n", " MACD_difference = MACD - MACD_signal\n", " return [MACD, MACD_signal, MACD_difference]\n", "\n", " @classmethod\n", " def MOM(cls, ohlc, period=10, column='Close') -> pd.Series:\n", " \"\"\"\n", " Market momentum\n", " \"\"\"\n", " return pd.Series(\n", " data=ohlc[column].diff(period),\n", " dtype=float,\n", " name=f'{period} period MOM'\n", " )\n", "\n", " @classmethod\n", " def ROC(cls, ohlc, period=10, column='Close') -> pd.Series:\n", " \"\"\"\n", " The Rate-of-Change indicator\n", " \"\"\"\n", " return pd.Series(\n", " data=(ohlc[column].diff(period) / ohlc[column].shift(period)) * 100,\n", " dtype=float,\n", " name='ROC'\n", " )\n", "\n", " @classmethod\n", " def RSI(cls, ohlc, period=10, column='Close', adjust=True) -> pd.Series:\n", " \"\"\"\n", " Relative Strength Index\n", " \"\"\"\n", " delta = ohlc[column].diff()\n", " up, down = delta.copy(), delta.copy()\n", " up[up < 0] = 0\n", " down[down > 0] = 0\n", "\n", " # EMAs of ups and downs\n", " _gain = up.ewm(alpha=1.0 / period, adjust=adjust).mean()\n", " _loss = down.abs().ewm(alpha=1.0 / period, adjust=adjust).mean()\n", " RS = _gain / _loss\n", " return pd.Series(\n", " data=100 - (100 / (1 + RS)),\n", " dtype=float,\n", " name=f'{period} period RSI'\n", " )\n", "\n", " @classmethod\n", " def TR(cls, ohlc) -> pd.Series:\n", " \"\"\"\n", " True Range is the maximum of three price ranges.\n", " Most recent period's high minus the most recent period's low.\n", " Absolute value of the most recent period's high minus the previous close.\n", " Absolute value of the most recent period's low minus the previous close.\n", " \"\"\"\n", " TR1 = pd.Series(ohlc['High'] - ohlc['Low']).abs()\n", " TR2 = pd.Series(ohlc['High'] - ohlc['Close'].shift()).abs()\n", " TR3 = pd.Series(ohlc['Close'].shift() - ohlc['Low']).abs()\n", " _TR = pd.concat([TR1, TR2, TR3], axis=1)\n", " _TR['TR'] = _TR.max(axis=1)\n", " return pd.Series(\n", " data=_TR['TR'],\n", " dtype=float,\n", " name='TR'\n", " )\n", "\n", " @classmethod\n", " def ATR(cls, ohlc, period=10) -> pd.Series:\n", " \"\"\"\n", " Average True Range is moving average of True Range.\n", " \"\"\"\n", " TR = cls.TR(ohlc)\n", " return pd.Series(\n", " data=TR.rolling(center=False, window=period).mean(),\n", " dtype=float,\n", " name=f'{period} period ATR'\n", " )\n", "\n", " @classmethod\n", " def BBANDS(cls, ohlc, period=14, MA=None, column=\"Close\", std_multiplier=2) -> [pd.Series, pd.Series, pd.Series]:\n", " \"\"\"\n", " Bollinger Bands\n", " \"\"\"\n", "\n", " std = ohlc[column].rolling(window=period).std()\n", " if not isinstance(MA, pd.Series):\n", " middle_band = pd.Series(cls.SMA(ohlc, period), dtype=float, name='BB_MIDDLE')\n", " else:\n", " middle_band = pd.Series(MA, dtype=float, name='BB_MIDDLE')\n", "\n", " upper_bb = pd.Series(middle_band + (std_multiplier * std), dtype=float, name='BB_UPPER')\n", " lower_bb = pd.Series(middle_band - (std_multiplier * std), dtype=float, name='BB_LOWER')\n", " return [upper_bb, middle_band, lower_bb]\n", "\n", " @classmethod\n", " def KC(cls, ohlc, period=20, atr_period=10, MA=None, kc_mult=2) -> [pd.Series, pd.Series]:\n", " \"\"\"\n", " Keltner Channels\n", " \"\"\"\n", " if not isinstance(MA, pd.Series):\n", " middle = pd.Series(cls.EMA(ohlc, period), dtype=float, name='KC_MIDDLE')\n", " else:\n", " middle = pd.Series(MA, dtype=float, name='KC_MIDDLE')\n", "\n", " up = pd.Series(middle + (kc_mult * cls.ATR(ohlc, atr_period)), dtype=float, name='KC_UPPER')\n", " down = pd.Series(middle - (kc_mult * cls.ATR(ohlc, atr_period)), dtype=float, name='KC_LOWER')\n", " return [up, down]\n", "\n", " @classmethod\n", " def STOCH(cls, ohlc, period=14) -> pd.Series:\n", " \"\"\"\n", " Stochastic oscillator %K\n", " \"\"\"\n", "\n", " highest_high = ohlc['High'].rolling(center=False, window=period).max()\n", " lowest_low = ohlc['Low'].rolling(center=False, window=period).min()\n", " stoch = pd.Series(\n", " data=(ohlc['Close'] - lowest_low) / (highest_high - lowest_low) * 100,\n", " dtype=float,\n", " name=f'{period} period STOCH %K',\n", " )\n", " return stoch\n", "\n", " @classmethod\n", " def WILLIAMS(cls, ohlc, period=14) -> pd.Series:\n", " \"\"\"\n", " Williams %R\n", " \"\"\"\n", "\n", " highest_high = ohlc['High'].rolling(center=False, window=period).max()\n", " lowest_low = ohlc['Low'].rolling(center=False, window=period).min()\n", " wr = pd.Series(\n", " data=(highest_high - ohlc[\"Close\"]) / (highest_high - lowest_low),\n", " dtype=float,\n", " name=f'{period} Williams %R',\n", " )\n", "\n", " return wr * -100" ] }, { "cell_type": "code", "execution_count": 9, "id": "d1c9a278", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T05:35:47.522488Z", "iopub.status.busy": "2023-05-31T05:35:47.522115Z", "iopub.status.idle": "2023-05-31T05:35:47.545860Z", "shell.execute_reply": "2023-05-31T05:35:47.544642Z" }, "papermill": { "duration": 0.034892, "end_time": "2023-05-31T05:35:47.548410", "exception": false, "start_time": "2023-05-31T05:35:47.513518", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "def OBV(data):\n", " obv = pd.Series(0,index=data.index, name=\"OBV\") # Initialize OBV series with zeros\n", " obv[data['Close'] > data['Close'].shift()] = data['Volume'] # If close price is higher than previous, add volume\n", " obv[data['Close'] < data['Close'].shift()] = -data['Volume'] # If close price is lower than previous, subtract volume\n", " obv = obv.cumsum() # Calculate cumulative sum\n", " return obv\n", "\n", "def ADX(data, window=14):\n", " high_low = data['High'] - data['Low']\n", " high_close = abs(data['High'] - data['Close'].shift())\n", " low_close = abs(data['Low'] - data['Close'].shift())\n", " true_range = pd.concat([high_low, high_close, low_close], axis=1).max(axis=1)\n", "\n", " up_move = data['High'] - data['High'].shift()\n", " down_move = data['Low'].shift() - data['Low']\n", " plus_dm = pd.Series(0.0, index=data.index)\n", " minus_dm = pd.Series(0.0, index=data.index)\n", " plus_dm[(up_move > down_move) & (up_move > 0)] = up_move\n", " minus_dm[(down_move > up_move) & (down_move > 0)] = down_move\n", "\n", " atr = true_range.rolling(window).mean()\n", "\n", " plus_di = 100 * (plus_dm.rolling(window).sum() / atr)\n", " minus_di = 100 * (minus_dm.rolling(window).sum() / atr)\n", "\n", " dx = 100 * (abs(plus_di - minus_di) / (plus_di + minus_di))\n", "\n", " adx = dx.rolling(window).mean()\n", " adx = pd.Series(adx, name=\"ADX\")\n", " plus_di = pd.Series(plus_di, name=\"PLUS_DI\")\n", " minus_di = pd.Series(minus_di, name=\"MINUS_DI\")\n", " return adx, plus_di, minus_di\n", "\n", "def AROON(data, period=14):\n", " high_max_index = data['High'].rolling(window=period).apply(lambda x: x.argmax(), raw=True)\n", " low_min_index = data['Low'].rolling(window=period).apply(lambda x: x.argmin(), raw=True)\n", " \n", " aroon_up = (period - high_max_index) * 100 / period\n", " aroon_down = (period - low_min_index) * 100 / period\n", " \n", " aroon_up = pd.Series(aroon_up, name=\"AROON_UP\")\n", " aroon_down = pd.Series(aroon_down, name=\"AROON_DOWN\")\n", " return aroon_up, aroon_down\n", "\n", "def APO(data, short_period=12, long_period=26):\n", " short_ema = data['Close'].ewm(span=short_period).mean()\n", " long_ema = data['Close'].ewm(span=long_period).mean()\n", " apo = short_ema - long_ema\n", " apo = pd.Series(name=\"APO\")\n", " return apo\n", "\n", "def SAR(data, acceleration=0.02, maximum=0.2):\n", " high = data['High']\n", " low = data['Low']\n", " close = data['Close']\n", "\n", " sar = [float('nan')] * len(data)\n", " sar[0] = low[0]\n", "\n", " af = acceleration\n", " ep = high[0]\n", " trend = 1\n", "\n", " for i in range(1, len(data)):\n", " if trend == 1:\n", " if low[i] > sar[i-1]:\n", " sar[i] = sar[i-1] + af * (ep - sar[i-1])\n", " if sar[i] > high[i-1]:\n", " sar[i] = high[i-1]\n", " trend = -1\n", " ep = low[i]\n", " af = acceleration\n", " else:\n", " sar[i] = low[i]\n", " ep = high[i]\n", " af = acceleration\n", " else:\n", " if high[i] < sar[i-1]:\n", " sar[i] = sar[i-1] + af * (ep - sar[i-1])\n", " if sar[i] < low[i-1]:\n", " sar[i] = low[i-1]\n", " trend = 1\n", " ep = high[i]\n", " af = acceleration\n", " else:\n", " sar[i] = high[i]\n", " ep = low[i]\n", " af = acceleration\n", "\n", " af += acceleration\n", " if af > maximum:\n", " af = maximum\n", " sar = pd.Series(sar, name=\"SAR\")\n", " return sar\n", "\n", "def MFI(data, period=14):\n", " typical_price = (data['High'] + data['Low'] + data['Close']) / 3\n", " raw_money_flow = typical_price * data['Volume']\n", " positive_money_flow = raw_money_flow * (typical_price > typical_price.shift(1))\n", " negative_money_flow = raw_money_flow * (typical_price < typical_price.shift(1))\n", " \n", " positive_flow_sum = positive_money_flow.rolling(window=period).sum()\n", " negative_flow_sum = negative_money_flow.rolling(window=period).sum()\n", " \n", " money_ratio = positive_flow_sum / negative_flow_sum\n", " mfi = 100 - (100 / (1 + money_ratio))\n", " mfi = pd.Series(mfi, name=\"MFI\")\n", " return mfi" ] }, { "cell_type": "code", "execution_count": 10, "id": "dddaeebd", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T05:35:47.565258Z", "iopub.status.busy": "2023-05-31T05:35:47.564815Z", "iopub.status.idle": "2023-05-31T05:35:47.575582Z", "shell.execute_reply": "2023-05-31T05:35:47.574537Z" }, "papermill": { "duration": 0.022333, "end_time": "2023-05-31T05:35:47.577560", "exception": false, "start_time": "2023-05-31T05:35:47.555227", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "def compute_indicators(data):\n", " FX = ForceIndex(data, days=10)\n", " data = data.join(FX)\n", " data = data.join(ta.WILLIAMS(data))\n", " data = data.join(ta.STOCH(data))\n", " data = data.join(ta.KC(data))\n", " data = data.join(ta.BBANDS(data))\n", " data = data.join(ta.ATR(data))\n", " data = data.join(ta.TR(data))\n", " data = data.join(ta.RSI(data))\n", " data = data.join(ta.ROC(data))\n", " data = data.join(ta.MOM(data))\n", " data = data.join(ta.MACD(data))\n", " data = data.join(ta.SMMA(data))\n", " data = data.join(ta.WMA(data))\n", " data = data.join(ta.VAMA(data))\n", " data = data.join(ta.TRIX(data))\n", " data = data.join(ta.TRIMA(data))\n", " data = data.join(ta.TEMA(data))\n", " data = data.join(ta.DEMA(data))\n", " data = data.join(ta.EMA(data))\n", " data = data.join(ta.SSMA(data))\n", " data = data.join(ta.SMM(data))\n", " data = data.join(ta.SMA(data))\n", " data = data.join(OBV(data))\n", " adx, plus_di, minus_di = ADX(data)\n", " data = data.join(adx)\n", " data = data.join(plus_di)\n", " data = data.join(minus_di)\n", " data = data.join(MFI(data))\n", " data = data.join(SAR(data))\n", " aroon_up, aroon_down = AROON(data)\n", " data = data.join(aroon_up)\n", " data = data.join(aroon_down)\n", " data.fillna(0, inplace=True)\n", " return data\n", " " ] }, { "cell_type": "code", "execution_count": 11, "id": "9e6fe4bb", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T05:35:47.593739Z", "iopub.status.busy": "2023-05-31T05:35:47.593374Z", "iopub.status.idle": "2023-05-31T05:35:47.600738Z", "shell.execute_reply": "2023-05-31T05:35:47.599012Z" }, "papermill": { "duration": 0.018032, "end_time": "2023-05-31T05:35:47.603073", "exception": false, "start_time": "2023-05-31T05:35:47.585041", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "def preprocess_data(df):\n", " df = adjust_price(df)\n", " df['Close'] = df['AdjustedClose']\n", " df = df.drop(columns='AdjustedClose')\n", " \n", " df = interpolate_nan(df)\n", " df = compute_indicators(df)\n", " \n", " df = df.iloc[90:]\n", " df.reset_index(drop=True, inplace=True)\n", " df = df.set_index(['SecuritiesCode','Date'])\n", " df = df.drop(columns=['RowId', 'Open', 'High', 'Low', 'Close',\n", " 'Volume', 'AdjustmentFactor', 'ExpectedDividend', 'SupervisionFlag', 'CumulativeAdjustmentFactor'])\n", " y = df.loc[:, :\"Target\"]\n", " X = z_score(df.drop(columns=\"Target\"))\n", " return X, y" ] }, { "cell_type": "markdown", "id": "a11fbad2", "metadata": { "papermill": { "duration": 0.006872, "end_time": "2023-05-31T05:35:47.616419", "exception": false, "start_time": "2023-05-31T05:35:47.609547", "status": "completed" }, "tags": [] }, "source": [ "### Get train dataset" ] }, { "cell_type": "code", "execution_count": 12, "id": "c16d3372", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T05:35:47.632285Z", "iopub.status.busy": "2023-05-31T05:35:47.631909Z", "iopub.status.idle": "2023-05-31T05:56:59.885702Z", "shell.execute_reply": "2023-05-31T05:56:59.884171Z" }, "papermill": { "duration": 1272.265793, "end_time": "2023-05-31T05:56:59.889340", "exception": false, "start_time": "2023-05-31T05:35:47.623547", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "X, y = preprocess_data(train)" ] }, { "cell_type": "code", "execution_count": 13, "id": "b62c5c27", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T05:56:59.904434Z", "iopub.status.busy": "2023-05-31T05:56:59.904072Z", "iopub.status.idle": "2023-05-31T05:57:01.208239Z", "shell.execute_reply": "2023-05-31T05:57:01.207165Z" }, "papermill": { "duration": 1.314372, "end_time": "2023-05-31T05:57:01.210518", "exception": false, "start_time": "2023-05-31T05:56:59.896146", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "params_lgb = {'learning_rate': 0.005,\n", " 'metric':'None',\n", " 'objective': 'regression',\n", " 'boosting': 'gbdt',\n", " 'verbosity': 0,\n", " 'n_jobs': -1,\n", " 'force_col_wise':True} \n", "\n", "X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.33, random_state=42)\n", "lgb_train = lgb.Dataset(X_train, y_train)\n", "lgb_eval = lgb.Dataset(X_val, y_val, reference=lgb_train)" ] }, { "cell_type": "markdown", "id": "e32ec0f5", "metadata": { "papermill": { "duration": 0.005808, "end_time": "2023-05-31T05:57:01.222742", "exception": false, "start_time": "2023-05-31T05:57:01.216934", "status": "completed" }, "tags": [] }, "source": [ "## Learning model" ] }, { "cell_type": "code", "execution_count": 14, "id": "8348bbbb", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T05:57:01.236455Z", "iopub.status.busy": "2023-05-31T05:57:01.236130Z", "iopub.status.idle": "2023-05-31T05:57:01.242216Z", "shell.execute_reply": "2023-05-31T05:57:01.240709Z" }, "papermill": { "duration": 0.015678, "end_time": "2023-05-31T05:57:01.244307", "exception": false, "start_time": "2023-05-31T05:57:01.228629", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "def feval_pearsonr(y_pred, lgb_train):\n", " y_true = lgb_train.get_label()\n", " return 'pearsonr', stats.pearsonr(y_true, y_pred)[0], True" ] }, { "cell_type": "code", "execution_count": 15, "id": "457cf1e2", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T05:57:01.260893Z", "iopub.status.busy": "2023-05-31T05:57:01.260230Z", "iopub.status.idle": "2023-05-31T06:37:38.011435Z", "shell.execute_reply": "2023-05-31T06:37:38.009652Z" }, "papermill": { "duration": 2436.762483, "end_time": "2023-05-31T06:37:38.014292", "exception": false, "start_time": "2023-05-31T05:57:01.251809", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[LightGBM] [Warning] Found whitespace in feature_names, replace with underlines\n", "[LightGBM] [Warning] Found whitespace in feature_names, replace with underlines\n", "Training until validation scores don't improve for 300 rounds\n", "Did not meet early stopping. Best iteration is:\n", "[10000]\ttraining's pearsonr: 0.285465\tvalid_1's pearsonr: 0.127555\n" ] } ], "source": [ "model = lgb.train(params = params_lgb, \n", " train_set = lgb_train, \n", " valid_sets = [lgb_train, lgb_eval], \n", " num_boost_round = 10000, \n", " feval=feval_pearsonr,\n", " callbacks=[lgb.early_stopping(stopping_rounds=300, verbose=True)])" ] }, { "cell_type": "code", "execution_count": 16, "id": "7c8b1450", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T06:37:38.029666Z", "iopub.status.busy": "2023-05-31T06:37:38.029314Z", "iopub.status.idle": "2023-05-31T06:37:38.703543Z", "shell.execute_reply": "2023-05-31T06:37:38.702099Z" }, "papermill": { "duration": 0.684123, "end_time": "2023-05-31T06:37:38.705545", "exception": false, "start_time": "2023-05-31T06:37:38.021422", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "image/png": "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Bg4cmON/A1evXrV45KwkjRgxwjhBsVOnTrnu+/r16/r666/1xx9/3KXqAQAAAADAw4oAHAAAAAAAAB54BQoU0KJFi+Ts7Cyz2ayePXuqadOmmj9/vnbt2qV9+/YpKipKkyZNUu3atVWxYkVt2rTJYo6uXbtKunESWPPmzTV58mRt3rxZu3fv1owZM1SlShVt3LhRtWvXzrWWp556SpJ09uxZDR48WHv37tXRo0d19OjRLI9n7du3ryTp8uXLql+/vubMmaN9+/Zp8+bNCg8PV0hIiIoUKSIvL6+78jl17txZ3bp1k3QjoFS+fHmNHDlS69evV2xsrLZt26b58+erV69e8vPz02uvvWZxwpi1q169ulavXq3atWtr0aJFxveic+fOGjFihCSpWLFiGjVqVJZ7w8PDVaZMGUnS+PHj1b59e61Zs0b79u3T0qVL1aBBA82fP1+SVKtWLfXu3fuO6838Lq1atUqff/65fv31V+O7lBkes7GxUZcuXSRJsbGxevrpp7Vw4ULt2bNHP/30k9544w3VrVtX9vb2CggIuOOabmX8+PGqWLGiJGnatGmqUaOGZs2apZ07d2rfvn1atWqV3nzzTZUuXVpr1661uLd27dpG4PP48eOqUqWKBg4cqLVr1+rnn3/Wzp07tXDhQr3++usqUaKEunTpor///vue7wkAAAAAAFg32/wuAAAAAAAAAMiLihUratu2berYsaOOHDmiH374QT/88EOO411dXS3e16hRQ2PHjtXo0aN14cIFDR8+PMs9b7zxhipUqKBt27blOG+nTp00adIk/fbbb5o6daqmTp1q9JUsWVIJCQnG+yZNmmjAgAH65JNP9McffxinjGUqXry4Vq5cqebNm99i93k3Z84cFS1aVFOmTNG5c+c0ceJETZw4MduxTk5OKlCgwF1bO7+99tpr2rRpk+bNm6dOnTpl6ff19dUPP/wgNze3LH0uLi766aef1KxZM/3vf//T8uXLtXz58izjateurVWrVt2Vz23IkCH69ttvlZaWpldffdWir1u3bpo3b54kaeLEidq2bZtiY2O1e/dude7c2WKsh4eHli5dqvDwcB0+fPiO68qNo6OjNmzYoA4dOmjz5s3au3fvbYUBx4wZI3d3dw0bNkypqan6+OOP9fHHH2c7tlChQsZjYgEAAAAAAHLCCXAAAAAAAACwGpUq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qmvXrqpRo4b69OmT61xpaWlKSUmxuAAAAAAAAAAAAADgQRQWFqYWLVqoQoUKatWqlb7//nsdPnxY3333nSTJy8tLS5Ys0erVq+Xs7Cw3NzclJyeratWqKlCggDGPyWTKMrfZbDbaL1++rB49eqh27drauXOntm3bpqCgIDVv3lyXL1++P5sFAMDKEYB7RMyZM0cvvPCCJKlp06ZKTU21eLRpTsqVKydJSkhIsGgfOXKkbGxstGvXLs2dOzfbv7jdbNKkSXJzczOuzOfXAwAAAAAAAAAAAMCDztfXVyVLltSRI0eMtsaNG+vYsWM6e/aszp07py+//FKnTp1S6dKlJUk+Pj46c+ZMlrn+/PNPFS1aVJL09ddfKyEhQREREapRo4ZCQkL09ddf6/jx41q5cuX92RwAAFaOANwjID4+Xrt371anTp0kSba2tgoLC9PcuXNveW/mKXH/DritX79eiYmJMpvNiomJueU8w4cPV3JysnGdPHnyP+wEAAAAAAAAAAAAAO6/v/76SydPnpSvr2+WPk9PT7m7u2vDhg06e/asWrduLUmqVauWkpOTtXv3bmPsrl27lJycrKeeekqSdOnSJdnY2Fj8PjbzfUZGxj3eFQAADwceGv4ImDNnjq5du6bHHnvMaDObzSpYsKAuXLiQ671xcXGSZPwrBUm6cOGCevXqpbffflsFCxZU3759Va9ePXl6euY4j52dnezs7O5wJwAAAAAAAAAAAABw51JTU3X06FHj/fHjxxUbGysPDw95eHhozJgx6tChg3x9fZWQkKC3335bnp6eateunXFPRESEAgMD5eXlpR07duj111/XoEGDVLZsWUlSYGCgmjZtql69eunzzz+XJPXu3VstW7Y0xjRq1EhDhw7Va6+9pv79+ysjI0OTJ0+Wra2tQkND7+MnAgCA9eIEuIfctWvXNH/+fE2ZMkWxsbHGtX//fpUsWVILFizI8d6MjAx98sknKl26tIKDg432/v37y9vbWyNHjtSwYcNUvHhx9evX735sBwAAAAAAAAAAAADu2J49exQcHGz8HnTw4MEKDg5WeHi4ChQooAMHDqhNmzYKCAhQt27dFBAQoB07dsjFxcWYIz4+Xm3btlVgYKDGjRunESNG6IMPPrBYZ8GCBapYsaIaN26sxo0bq1KlSvryyy+N/nLlymn16tX65ZdfVKtWLT39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P368WZunp6ckqUaNGkpMTNT58+e1fPlyHTlyRB06dHjo+wAAAAAAAMCTKz4+XklJSQoNDTW12dnZKTAwULt27Xqgay9atEglSpTQyy+//EDXAQAAAAAAwN+z+ABcYTwFejcGg0GffvqpwsPDZW9vr4oVK2rlypVmYy5cuKCOHTuqVKlScnV1VevWrZWQkGDq79Gjh9q0aaMpU6bIw8NDVatWlZT7Fahnz55V69at5eDgICcnJ3Xo0EG///672VpTp05V+fLl5ejoqN69e+vGjRv5/Kb+/ztZsGCBunXrps6dOysyMlKS5ODgkOspVkdHx1xtkmRjYyM3Nzd5eHjon//8p/r06aM9e/YoNTX1jutmZmYqNTXV7AIAAAAAAAAKKikpSZJUvnx5s/by5cub+h6UqKgode7cWfb29g90HQAAAAAAAPw9iw/A3U1hPQX6/vvvq127djp8+LC6du2qV155RcePH5ckpaenKzg4WA4ODtq+fbt27NghBwcHhYWFmU56k6QffvhBx48fV0xMjNavX59rDaPRqDZt2ig5OVnbtm1TTEyMTp8+rY4dO5rGrFixQmPHjtWkSZO0f/9+ubu7a+7cuff0nWzZskXp6ekKCQlRt27dtGLFivs6DS8pKUmrV6+WtbW1KSCXlylTpsjZ2dl03T5NDgAAAAAAALgfBoPB7LPRaMzVVph2796tY8eO8fpTAAAAAACAR4RNURfwIN3tKdAzZ87ke5727dvrtddekyRNmDBBMTExmj17tubOnatly5bJyspK8+fPN/2wtmDBArm4uGjr1q2m8F3JkiU1f/58FStWLM81Nm3apJ9++knx8fGmcNjixYtVo0YNxcbGqmHDhpo1a5Z69eplqmXixInatGnTPZ0CFxkZqU6dOsna2lo1atSQr6+vli9fbpozP44cOSIHBwfl5OQoIyNDkvTWW2+pZMmSd7xnxIgRGjJkiOlzamoqITgAAAAAAAAUmJubm6S/fgN0d3c3tV+6dCnX74GFaf78+apbt67q16//wNYAAAAAAABA/j3WJ8Dddr9PgTZp0iTX59snwB04cECnTp2So6OjHBwc5ODgoNKlS+vGjRs6ffq06Z5atWrdMfwmScePH5enp6dZKMzf318uLi6mtY4fP55nLfl19epVrV69Wl27djW1de3aVVFRUfmeQ5L8/PwUFxen2NhYTZo0SXXr1tWkSZPueo+dnZ2cnJzMLgAAAAAAAKCgKlasKDc3N8XExJjabt68qW3btqlp06YPZM20tDStWLGC098AAAAAAAAeIY/1CXAP8inQ2wG6nJwc1a9fX0uWLMk1pmzZsqZ/vtvpaNKdQ3mF+cqGpUuX6saNG2rUqJHZ/Dk5OTp27Jj8/f3zNU+xYsXk6+srSapRo4Z+/fVXvfHGG1q8eHGh1AkAAAAAAABIfwXOTp06ZfocHx+vuLg4lS5dWl5eXho0aJAmT56sKlWqqEqVKpo8ebJKlCihzp07m+5JSkpSUlKSaZ4jR47I0dFRXl5eKl26tCTp7NmzSk5O1tmzZ5Wdna24uDhJkq+vrxwcHExzLV++XLdu3VKXLl0ewu4BAAAAAACQH4/1CXCF9RTonj17cn2uVq2aJKlevXr69ddfVa5cOfn6+ppdzs7O+V7D399fZ8+e1blz50xtx44dU0pKiqpXry5Jql69ep615FdkZKSGDh2quLg403X48GEFBwff8ylw/+3999/Xl19+qYMHDxZ4DgAAAAAAAOB/7d+/XwEBAQoICJAkDRkyRAEBARozZowk6d1339WgQYPUv39/NWjQQBcuXND3338vR0dH0xzz5s1TQECA+vTpI0lq1qyZAgICtHbtWtOYMWPGKCAgQGPHjlVaWpppzf3795vVExkZqbZt26pUqVIPeusAAAAAAADIJ4sPwKWlpZnCXNL/PwV69uxZGQwG01OgX331lX7++Wf16NEj11Ogf2flypWKiorSyZMnNXbsWO3bt08DBw6UJHXp0kVlypRR69at9eOPPyo+Pl7btm3T22+/rfPnz+d7jZCQENWuXVtdunTRwYMHtW/fPr366qsKDAxUgwYNJElvv/22oqKizGo5evRovuaPi4vTwYMH9dprr6lmzZpm1yuvvKJFixYpKysr3/X+t0qVKql169amHx4BAAAAAACAwhAUFCSj0Zjrio6OlvTXWxoiIiKUmJioGzduaNu2bapZs6bZHBEREXnO0aNHD9OY6OjoPMcEBQWZzbVr16483wQBAAAAAACAomPxAbjCeAr074wbN07Lli1T7dq1tXDhQi1ZssT0utASJUpo+/bt8vLyUtu2bVW9enX16tVLGRkZcnJyyvcaBoNBa9asUalSpdSsWTOFhISoUqVKWr58uWlMx44dNWbMGL333nuqX7++zpw5ozfeeCNf80dGRsrf3990ct1/a9OmjZKTk7Vu3bp81/u/hg4dqm+++UZ79+4t8BwAAAAAAAAAAAAAAAAAcC8MRqPRWNRFPMoMBoO++uortWnTpqhLeaykpqbK2dlZnoNWyMquRFGXAwAAAAAAgEdIwtSWRV0CAAAAAAAAisDtTFFKSkq+Dx+z+BPgAAAAAAAAAAAAAAAAAABPpic6ALdkyRI5ODjkedWoUaOoy7tnd9qLg4ODfvzxx6IuDwAAAAAAAAAAAAAAAAAKlU1RF1CUXnzxRTVq1CjPPltbW0mSJb0hNi4u7o59FSpUeHiFAAAAAAAAAAAAAAAAAMBD8EQH4BwdHeXo6FjUZRQaX1/foi4BAAAAAAAAAAAAAAAAAB6aJ/oVqAAAAAAAAAAAAAAAAAAAy0UADgAAAAAAAAAAAAAAAABgkQjAAQAAAAAAAAAAAAAAAAAsEgE4AAAAAAAAAAAAAAAAAIBFIgAHAAAAAAAAAAAAAAAAALBINkVdAAAAAAAAAIBHW8LUlkVdAgAAAAAAAJAnToADAAAAAAAAAAAAAAAAAFgkAnAAAAAAAAAAAAAAAAAAAItEAA4AAAAAAAAAAAAAAAAAYJEIwAEAAAAAAAAAAAAAAAAALBIBOAAAAAAAAAAAAAAAAACARSIABwAAAAAAAAAAAAAAAACwSATgAAAAAAAAAAAAAAAAAAAWiQAcAAAAAAAAAAAAAAAAAMAiEYADAAAAAAAAAAAAAAAAAFgkAnAAAAAAAAAAAAAAAAAAAItEAA4AAAAAAAAAAAAAAAAAYJEIwAEAAAAAAADIl2vXrmnQoEHy9vaWvb29mjZtqtjYWFN/WlqaBg4cqKeeekr29vaqXr26Pv3001zz7N69W88++6xKliwpFxcXBQUFKSMjw9R/8OBBNW/eXC4uLnJ1ddXrr7+utLS0h7JHAAAAAAAAWBYCcI+YS5cuqW/fvvLy8pKdnZ3c3NzUokUL7d69W5Lk4+OjWbNmmd1z6NAhdezYUe7u7rKzs5O3t7deeOEFrVu3TkajUZKUkJAgg8GgcuXK6dq1a2b3161bVxEREblqWbp0qaytrdWvX79cfVu3bpXBYNDVq1cLZd8AAAAAAAB49L322muKiYnR4sWLdeTIEYWGhiokJEQXLlyQJA0ePFgbNmzQF198oePHj2vw4MF688039fXXX5vm2L17t8LCwhQaGqp9+/YpNjZWAwcOlJXVXz9VXrx4USEhIfL19dXevXu1YcMGHT16VD169CiKLQMAAAAAAOARRwDuEdOuXTsdPnxYCxcu1MmTJ7V27VoFBQUpOTk5z/Fff/21GjdurLS0NC1cuFDHjh3TypUr1aZNG40ePVopKSlm469du6YPP/wwX7VERUXp3Xff1bJly5Senn7fewMAAAAAAIDlysjI0KpVqzR9+nQ1a9ZMvr6+ioiIUMWKFU2nvO3evVvdu3dXUFCQfHx89Prrr6tOnTrav3+/aZ7Bgwfrrbfe0vDhw1WjRg1VqVJFL7/8suzs7CRJ69evl62trT755BP5+fmpYcOG+uSTT7Rq1SqdOnWqSPYOAAAAAACARxcBuEfI1atXtWPHDk2bNk3BwcHy9vbW008/rREjRqhly5a5xl+/fl29e/dWy5Yt9c033yg0NFSVK1fW008/rddee02HDx+Ws7Oz2T1vvvmmZsyYoUuXLt21loSEBO3atUvDhw9XtWrV9J///KdQ9woAAAAAAADLcuvWLWVnZ6t48eJm7fb29tqxY4ck6ZlnntHatWt14cIFGY1GbdmyRSdPnlSLFi0k/fX2g71796pcuXJq2rSpypcvr8DAQNP9kpSZmalixYqZToS7vYYks3EAAAAAAACARADukeLg4CAHBwetWbNGmZmZfzv++++/1+XLl/Xuu+/ecYzBYDD7/Morr8jX11fjx4+/69xRUVFq2bKlnJ2d1bVrV0VGRuZvE3eQmZmp1NRUswsAAAAAAACWw9HRUU2aNNGECRN08eJFZWdn64svvtDevXuVmJgoSfr444/l7++vp556SsWKFVNYWJjmzp2rZ555RpL022+/SZIiIiLUp08fbdiwQfXq1dNzzz2nX3/9VZL07LPPKikpSR988IFu3rypK1euaOTIkZJkWgcAAAAAAAC4jQDcI8TGxkbR0dFauHChXFxc9I9//EMjR47UTz/9lOf4kydPSpL8/PxMbbGxsaYgnYODg9avX292j8Fg0NSpU/X555/r9OnTec6bk5Oj6Ohode3aVZLUqVMn7d69+75eMTFlyhQ5OzubLk9PzwLPBQAAAAAAgKKxePFiGY1GVahQQXZ2dvr444/VuXNnWVtbS/orALdnzx6tXbtWBw4c0EcffaT+/ftr06ZNkv763UmS+vbtq549eyogIEAzZ86Un5+foqKiJEk1atTQwoUL9dFHH6lEiRJyc3NTpUqVVL58edM6AAAAAAAAwG0E4B4x7dq108WLF7V27Vq1aNFCW7duVb169RQdHZ2v+2vXrq24uDjFxcXp+vXrunXrVq4xLVq00DPPPKP3338/zzm+//57Xb9+XeHh4ZKkMmXKKDQ01PQjZEGMGDFCKSkppuvcuXMFngsAAAAAAABFo3Llytq2bZvS0tJ07tw57du3T1lZWapYsaIyMjI0cuRIzZgxQ61atVLt2rU1cOBAdezYUR9++KEkyd3dXZLk7+9vNm/16tV19uxZ0+fOnTsrKSlJFy5c0OXLlxUREaE//vhDFStWfHibBQAAAAAAgEUgAPcIKl68uJo3b64xY8Zo165d6tGjh8aOHZtrXJUqVSRJJ06cMLXZ2dnJ19dXvr6+d11j6tSpWr58uQ4dOpSrLyoqSsnJySpRooRsbGxkY2Ojb7/9VgsXLlR2dnaB9mRnZycnJyezCwAAAAAAAJapZMmScnd315UrV7Rx40a1bt1aWVlZysrKkpWV+U+O1tbWppPffHx85OHhYfZ7lvTXmw68vb1zrVO+fHk5ODho+fLlpt/MAAAAAAAAgP9mU9QF4O/5+/trzZo1udpDQ0NVunRpTZs2TV999dU9zfn000+rbdu2Gj58uFn75cuX9fXXX2vZsmWqUaOGqT0nJ0f//Oc/9d133+mFF14o0D4AAAAAAABg2TZu3Cij0Sg/Pz+dOnVKw4YNk5+fn3r27ClbW1sFBgZq2LBhsre3l7e3t7Zt26ZFixZpxowZkiSDwaBhw4Zp7NixqlOnjurWrauFCxfql19+0X/+8x/TOnPmzFHTpk3l4OCgmJgYDRs2TFOnTpWLi0sR7RwAAAAAAACPKgJwj5DLly+rffv26tWrl2rXri1HR0ft379f06dPV+vWrXONd3Bw0Pz589WxY0e1bNlSb731lqpUqaK0tDRt2LBB0l9P2N7JpEmTVKNGDdnY/P9/BosXL5arq6vat2+f62ndF154QZGRkWYBuCNHjsjR0dFsXN26dQuyfQAAAAAAADziUlJSNGLECJ0/f16lS5dWu3btNGnSJNna2kqSli1bphEjRqhLly5KTk6Wt7e3Jk2apH79+pnmGDRokG7cuKHBgwcrOTlZderUUUxMjCpXrmwas2/fPo0dO1ZpaWmqVq2aPvvsM3Xr1u2h7xcAAAAAAACPPgJwjxAHBwc1atRIM2fO1OnTp5WVlSVPT0/16dNHI0eOzPOel156Sbt27dK0adP06quvKjk5Wc7OzmrQoIGWLVt219Paqlatql69eunzzz83tUVFRemll17KFX6TpHbt2qljx476/fffTW3NmjXLNc5oNN7LtgEAAAAAAGAhOnTooA4dOtyx383NTQsWLPjbeYYPH57rzQT/bdGiRQWqDwAAAAAAAE8eg5G0EopAamqqnJ2d5TlohazsShR1OQAAAAAAALiLhKkti7oEAAAAAAAAPAFuZ4pSUlLk5OSUr3tyH/MFAAAAAAAAAAAAAAAAAIAFIAAHAAAAAAAAAAAAAAAAALBIBOAAAAAAAAAAAAAAAAAAABaJABwAAAAAAAAAAAAAAAAAwCIRgAMAAAAAAAAAAAAAAAAAWCQCcAAAAAAAAAAAAAAAAAAAi0QADgAAAAAAAAAAAAAAAABgkQjAAQAAAAAAAAAAAAAAAAAsEgE4AAAAAAAAAAAAAAAAAIBFIgAHAAAAAAAAAAAAAAAAALBINkVdAAAAAAAAAIDcEqa2LOoSAAAAAAAAgEceJ8ABAAAAAAAAAAAAAAAAACwSATgAAAAAAAAAAAAAAAAAgEUiAAcAAAAAAAAAAAAAAAAAsEgE4AAAAAAAAAAAAAAAAAAAFokAHAAAAAAAAAAAAAAAAADAIhGAAwAAAAAAAAAAAAAAAABYJAJwAAAAAAAAAAAAAAAAAACLRAAOAAAAAAAAAAAAAAAAAGCRCMABAAAAAAAAAAAAAAAAACwSATgAAAAAAAAAAAAAAAAAgEUiAAcAAAAAAAAAAAAAAAAAsEgE4AAAAAAAAIBH2LVr1zRo0CB5e3vL3t5eTZs2VWxsrKm/R48eMhgMZlfjxo1N/QkJCbn6b18rV640jbty5Yq6desmZ2dnOTs7q1u3brp69erD3CoAAAAAAABwzwjA3aNdu3bJ2tpaYWFhZu3/+0Ois7OzGjdurHXr1uWaIyMjQ2PHjpWfn5/s7OxUpkwZvfzyyzp69GiuscnJyRo0aJB8fHxUrFgxubu7q2fPnjp79qzZuNs/dE6dOtWsfc2aNTIYDPnaW3R0tFxcXPLsc3FxUXR0tOnzf+/V0dFRDRo00OrVq/O1DgAAAAAAAPLvtddeU0xMjBYvXqwjR44oNDRUISEhunDhgmlMWFiYEhMTTde3335r6vP09DTrS0xM1Lhx41SyZEmFh4ebxnXu3FlxcXHasGGDNmzYoLi4OHXr1u2h7hUAAAAAAAC4VwTg7lFUVJTefPNN7dixI1cITZI2bdqkxMRE7d27V08//bTatWunn3/+2dSfmZmpkJAQRUVFacKECTp58qS+/fZbZWdnq1GjRtqzZ49pbHJysho3bqxNmzZp7ty5OnXqlJYvX67Tp0+rYcOG+u2338zWLl68uKZNm6YrV648uC/gvyxYsECJiYmKjY1VnTp11L59e+3evfuhrA0AAAAAAPAkyMjI0KpVqzR9+nQ1a9ZMvr6+ioiIUMWKFfXpp5+axtnZ2cnNzc10lS5d2tRnbW1t1ufm5qavvvpKHTt2lIODgyTp+PHj2rBhg+bPn68mTZqoSZMm+ve//63169frxIkTD33fAAAAAAAAQH4RgLsH169f14oVK/TGG2/ohRdeMDsR7TZXV1e5ubmpWrVqmjRpkrKysrRlyxZT/6xZs7R7926tX79eHTp0kLe3t55++mmtWrVK1atXV+/evWU0GiVJo0aN0sWLF7Vp0yY9//zz8vLyUrNmzbRx40bZ2tpqwIABZmuHhITIzc1NU6ZMeaDfw20uLi6mvc6bN0/FixfX2rVrH8raAAAAAAAAT4Jbt24pOztbxYsXN2u3t7fXjh07TJ+3bt2qcuXKqWrVqurTp48uXbp0xzkPHDiguLg49e7d29S2e/duOTs7q1GjRqa2xo0by9nZWbt27SrEHQEAAAAAAACFiwDcPVi+fLn8/Pzk5+enrl27asGCBaaw2v/KysrSv//9b0mSra2tqX3p0qVq3ry56tSpYzbeyspKgwcP1rFjx3T48GHl5ORo2bJl6tKli9zc3MzG2tvbq3///tq4caOSk5NN7dbW1po8ebJmz56t8+fPF9a288XW1lY2NjbKysrKsz8zM1OpqalmFwAAAAAAAO7O0dFRTZo00YQJE3Tx4kVlZ2friy++0N69e5WYmChJCg8P15IlS7R582Z99NFHio2N1bPPPqvMzMw854yMjFT16tXVtGlTU1tSUpLKlSuXa2y5cuWUlJT0YDYHAAAAAAAAFAICcPcgMjJSXbt2lSSFhYUpLS1NP/zwg9mYpk2bysHBQcWLF9fQoUPl4+OjDh06mPpPnjyp6tWr5zn/7faTJ0/qjz/+0NWrV+861mg06tSpU2btL730kurWrauxY8cWeJ/3KjMzUxMnTlRqaqqee+65PMdMmTJFzs7OpsvT0/Oh1QcAAAAAAGDJFi9eLKPRqAoVKsjOzk4ff/yxOnfuLGtra0lSx44d1bJlS9WsWVOtWrXSd999p5MnT+qbb77JNVdGRoaWLl1qdvrbbQaDIVeb0WjMsx0AAAAAAAB4VBCAy6cTJ05o37596tSpkyTJxsZGHTt2VFRUlNm45cuX69ChQ1q7dq18fX01f/58lS5dOl9r3D5NLj8/Kt5t7LRp07Rw4UIdO3YsX+sW1CuvvCIHBweVKFFCM2bM0Icffqjw8PA8x44YMUIpKSmm69y5cw+0NgAAAAAAgMdF5cqVtW3bNqWlpencuXPat2+fsrKyVLFixTzHu7u7y9vbW7/++muuvv/85z9KT0/Xq6++atbu5uam33//Pdf4P/74Q+XLly+cjQAAAAAAAAAPgE1RF2ApIiMjdevWLVWoUMHUZjQaZWtrqytXrpjaPD09VaVKFVWpUkUODg5q166djh07ZnqFRNWqVe8YTPvll18kSVWqVFHZsmXl4uJy17EGg0GVK1fO1desWTO1aNFCI0eOVI8ePfK9RycnJ6WlpSk7O9v0BLEkZWdnKy0tTc7OzmbjZ86cqZCQEDk5OeX5ioz/ZmdnJzs7u3zXAgAAAAAAAHMlS5ZUyZIldeXKFW3cuFHTp0/Pc9zly5d17tw5ubu75+qLjIzUiy++qLJly5q1N2nSRCkpKdq3b5+efvppSdLevXuVkpJi9qpUAAAAAAAA4FHDCXD5cOvWLS1atEgfffSR4uLiTNfhw4fl7e2tJUuW5HlfYGCgatasqUmTJpnaOnXqpE2bNunw4cNmY3NycjRz5kz5+/urTp06srKyUocOHbR06VIlJSWZjc3IyNDcuXPVokWLO54uN3XqVK1bt067du3K9z6rVaum7OxsHTp0yKz94MGDys7Olp+fn1m7m5ubfH19/zb8BgAAAAAAgILbuHGjNmzYoPj4eMXExCg4OFh+fn7q2bOn0tLS9M4772j37t1KSEjQ1q1b1apVK5UpU0YvvfSS2TynTp3S9u3b9dprr+Vao3r16goLC1OfPn20Z88e7dmzR3369NELL7yQ6zchAAAAAAAA4FFCAC4f1q9frytXrqh3796qWbOm2fXyyy8rMjLyjvcOHTpUn332mS5cuCBJGjx4sJ5++mm1atVKK1eu1NmzZxUbG6t27drp+PHjioyMNL3WdNKkSXJzc1Pz5s313Xff6dy5c9q+fbtatGihrKwsffLJJ3dct1atWurSpYtmz56d7336+/srPDxcvXr10qZNmxQfH69Nmzapd+/eCg8Pl7+/f77nAgAAAAAAQOFISUnRgAEDVK1aNb366qt65pln9P3338vW1lbW1tY6cuSIWrdurapVq6p79+6qWrWqdu/eLUdHR7N5oqKiVKFCBYWGhua5zpIlS1SrVi2FhoYqNDRUtWvX1uLFix/GFgEAAAAAAIACMxiNRmNRF/Goa9WqlXJycvTNN9/k6jt48KDq16+vAwcOqH79+jp06JDq1q1r6jcajapevbqeffZZzZ07V5KUnp6uKVOmaNmyZTpz5owcHR0VHBysiIgI1axZ02z+P//8U+PHj9eaNWuUmJgoV1dXhYWFafz48fLy8jKN69Gjh65evao1a9aY2s6cOSM/Pz9lZmYqv/+aU1NTFRERoXXr1un8+fN66qmn9MILLygiIsLsFagGg0FfffWV2rRpk69581rH2dlZnoNWyMquRIHmAAAAAAAAeJwlTG1Z1CUAAAAAAAAAD9XtTFFKSoqcnJzydQ8BOBQJAnAAAAAAAAB3RwAOAAAAAAAAT5qCBOB4BSoAAAAAAAAAAAAAAAAAwCIVWgDu6tWrhTUVHpDw8HA5ODjkeU2ePLmoywMAAAAAAAAAAAAAAACAe2JTkJumTZsmHx8fdezYUZLUoUMHrVq1Sm5ubvr2229Vp06dQi0ShWP+/PnKyMjIs6906dIPuRoAAAAAAAAAAAAAAAAAuD8FCsB99tln+uKLLyRJMTExiomJ0XfffacVK1Zo2LBh+v777wu1SBSOChUqFHUJAAAAAAAAAAAAAAAAAFBoChSAS0xMlKenpyRp/fr16tChg0JDQ+Xj46NGjRoVaoEAAAAAAAAAAAAAAAAAAOTFqiA3lSpVSufOnZMkbdiwQSEhIZIko9Go7OzswqsOAAAAAAAAAAAAAAAAAIA7KNAJcG3btlXnzp1VpUoVXb58WeHh4ZKkuLg4+fr6FmqBAAAAAAAAAAAAAAAAAADkpUABuJkzZ8rHx0fnzp3T9OnT5eDgIOmvV6P279+/UAsEAAAAAAAAAAAAAAAAACAvBQrA2dra6p133snVPmjQoPutBwAAAAAAAAAAAAAAAACAfLEq6I2LFy/WM888Iw8PD505c0aSNGvWLH399deFVhwAAAAAAAAAAAAAAAAAAHdSoBPgPv30U40ZM0aDBg3SpEmTlJ2dLUlycXHRrFmz1Lp160ItEgAAAAAAALAUCVNbFnUJAAAAAAAAwBOjQCfAzZ49W//+9781atQoWVtbm9obNGigI0eOFFpxAAAAAAAAAAAAAAAAAADcSYECcPHx8QoICMjVbmdnp+vXr993UQAAAAAAAAAAAAAAAAAA/J0CBeAqVqyouLi4XO3fffed/P3977cmAAAAAAAAAAAAAAAAAAD+lk1Bbho2bJgGDBigGzduyGg0at++ffryyy81ZcoUzZ8/v7BrBAAAAAAAAAAAAAAAAAAglwIF4Hr27Klbt27p3XffVXp6ujp37qwKFSroX//6lzp16lTYNQIAAAAAAAAAAAAAAAAAkMs9B+Bu3bqlJUuWqFWrVurTp4/+/PNP5eTkqFy5cg+iPgAAAAAAAAAAAAAAAAAA8mR1rzfY2NjojTfeUGZmpiSpTJkyhN8AAAAAAAAAAAAAAAAAAA/dPQfgJKlRo0Y6dOhQYdcCAAAAAAAAAAAAAAAAAEC+3fMrUCWpf//+Gjp0qM6fP6/69eurZMmSZv21a9culOIAAAAAAAAAAAAAAAAAALiTAgXgOnbsKEl66623TG0Gg0FGo1EGg0HZ2dmFUx0AAAAAAAAAAAAAAAAAAHdQoABcfHx8YdcBAAAAAAAAAAAAAAAAAMA9sSrITd7e3ne98BcfHx/NmjXrvuaIiIhQ3bp1C6UeAAAAAAAAPDzXrl3ToEGD5O3tLXt7ezVt2lSxsbF5ju3bt68MBkOu35I+//xzBQUFycnJSQaDQVevXr3jepmZmapbt64MBoPi4uIKbyMAAAAAAADAI6xAAbhFixbd9SpM27dvV6tWreTh4SGDwaA1a9aY9RuNRkVERMjDw0P29vYKCgrS0aNHC7WGgoqNjdXrr7/+0NaLiIiQwWBQWFhYrr7p06fLYDAoKCjIrD05OVmDBg2Sj4+PihUrJnd3d/Xs2VNnz541G9ejRw8ZDAb169cv19z9+/eXwWBQjx49CnM7AAAAAAAAFu21115TTEyMFi9erCNHjig0NFQhISG6cOGC2bg1a9Zo79698vDwyDVHenq6wsLCNHLkyL9d7913381zDgAAAAAAAOBxVqBXoL799ttmn7OyspSenq5ixYqpRIkSevXVVwulOEm6fv266tSpo549e6pdu3a5+qdPn64ZM2YoOjpaVatW1cSJE9W8eXOdOHFCjo6OhVbHvbh586aKFSumsmXLPvS13d3dtWXLFp0/f15PPfWUqX3BggXy8vIyG5ucnKzGjRurWLFimjt3rmrWrKmEhASNHj1aDRs21O7du1WpUiXTeE9PTy1btkwzZ86Uvb29JOnGjRv68ssvc80NAAAAAADwJMvIyNCqVav09ddfq1mzZpL+enhxzZo1+vTTTzVx4kRJ0oULFzRw4EBt3LhRLVu2zDXPoEGDJElbt26963rfffedvv/+e61atUrfffddoe4FAAAAAAAAeJQV6AS4K1eumF1paWk6ceKEnnnmGX355ZeFWmB4eLgmTpyotm3b5uozGo2aNWuWRo0apbZt26pmzZpauHCh0tPTtXTp0nzNbzAY9Omnnyo8PFz29vaqWLGiVq5caTbmwoUL6tixo0qVKiVXV1e1bt1aCQkJpv4ePXqoTZs2mjJlijw8PFS1alVJuV+BevbsWbVu3VoODg5ycnJShw4d9Pvvv5utNXXqVJUvX16Ojo7q3bu3bty4kc9v6i/lypVTaGioFi5caGrbtWuX/vzzz1w/oo4aNUoXL17Upk2b9Pzzz8vLy0vNmjXTxo0bZWtrqwEDBpiNr1evnry8vLR69WpT2+rVq+Xp6amAgIB7qhMAAAAAAOBxduvWLWVnZ6t48eJm7fb29tqxY4ckKScnR926ddOwYcNUo0aNAq/1+++/q0+fPlq8eLFKlChxX3UDAAAAAAAAlqZAAbi8VKlSRVOnTs11OtyDFB8fr6SkJIWGhpra7OzsFBgYqF27duV7nvfff1/t2rXT4cOH1bVrV73yyis6fvy4pL9eMxEcHCwHBwdt375dO3bskIODg8LCwnTz5k3THD/88IOOHz+umJgYrV+/PtcaRqNRbdq0UXJysrZt26aYmBidPn1aHTt2NI1ZsWKFxo4dq0mTJmn//v1yd3fX3Llz7/l76dWrl6Kjo02fo6Ki1KVLFxUrVszUlpOTo2XLlqlLly5yc3Mzu9/e3l79+/fXxo0blZycbNbXs2dPLViwwGzuXr16/W1NmZmZSk1NNbsAAAAAAAAeV46OjmrSpIkmTJigixcvKjs7W1988YX27t2rxMRESdK0adNkY2Ojt956q8DrGI1G9ejRQ/369VODBg0Kq3wAAAAAAADAYhRaAE6SrK2tdfHixcKc8q6SkpIkSeXLlzdrL1++vKkvP9q3b6/XXntNVatW1YQJE9SgQQPNnj1bkrRs2TJZWVlp/vz5qlWrlqpXr64FCxbo7NmzZq+eKFmypObPn68aNWqoZs2audbYtGmTfvrpJy1dulT169dXo0aNtHjxYm3btk2xsbGSpFmzZqlXr1567bXX5Ofnp4kTJ8rf3/9evxa98MILSk1N1fbt23X9+nWtWLEiV0jtjz/+0NWrV1W9evU856hevbqMRqNOnTpl1t6tWzft2LFDCQkJOnPmjHbu3KmuXbv+bU1TpkyRs7Oz6fL09LznfQEAAAAAAFiSxYsXy2g0qkKFCrKzs9PHH3+szp07y9raWgcOHNC//vUvRUdHy2AwFHiN2bNnKzU1VSNGjCjEygEAAAAAAADLYVOQm9auXWv22Wg0KjExUXPmzNE//vGPQinsXvzvj4RGo/Gefjhs0qRJrs9xcXGSpAMHDujUqVNydHQ0G3Pjxg2dPn3a9LlWrVpmJ6z9r+PHj8vT09Ms+OXv7y8XFxcdP35cDRs21PHjx9WvX79ctWzZsiXfe5EkW1tbde3aVQsWLNBvv/2mqlWrqnbt2vc0h9FolJT7uy1TpoxatmyphQsXymg0qmXLlipTpszfzjdixAgNGTLE9Dk1NZUQHAAAAAAAeKxVrlxZ27Zt0/Xr15Wamip3d3d17NhRFStW1I8//qhLly7Jy8vLND47O1tDhw7VrFmzlJCQkK81Nm/erD179sjOzs6svUGDBurSpYsWLlxYmFsCAAAAAAAAHjkFCsC1adPG7LPBYFDZsmX17LPP6qOPPiqMuvLl9qs7k5KS5O7ubmq/dOlSrlPh7tXt4FdOTo7q16+vJUuW5BpTtmxZ0z+XLFnyrvPdKZR3r2G9/OrVq5caNWqkn3/+Oc9XlJYtW1YuLi46duxYnvf/8ssvMhgMqly5cp5zDxw4UJL0ySef5KseOzu7XD/EAgAAAAAAPAlKliypkiVL6sqVK9q4caOmT5+udu3aKSQkxGxcixYt1K1bN/Xs2TPfc3/88ceaOHGi6fPFixfVokULLV++XI0aNSq0PQAAAAAAAACPqgIF4HJycgq7jgKpWLGi3NzcFBMTo4CAAEnSzZs3tW3bNk2bNi3f8+zZs0evvvqq2efb89WrV0/Lly9XuXLl5OTkVOBa/f39dfbsWZ07d8508tmxY8eUkpJieg1p9erV86ylIGrUqKEaNWrop59+UufOnXP1W1lZqUOHDlqyZInGjx9vChNKUkZGhubOnasWLVqodOnSue4NCwvTzZs3Jf31wywAAAAAAABy27hxo4xGo/z8/HTq1CkNGzZMfn5+6tmzp2xtbeXq6mo23tbWVm5ubvLz8zO1JSUlKSkpSadOnZIkHTlyRI6OjvLy8lLp0qXNTpCTJAcHB0l/nT731FNPPeAdAgAAAAAAAEXPqiA3jR8/Xunp6bnaMzIyNH78+Psu6r+lpaUpLi7O9ErS+Ph4xcXF6ezZszIYDBo0aJAmT56sr776Sj///LN69OihEiVK5Bn6upOVK1cqKipKJ0+e1NixY7Vv3z7TCWddunRRmTJl1Lp1a/3444+Kj4/Xtm3b9Pbbb+v8+fP5XiMkJES1a9dWly5ddPDgQe3bt0+vvvqqAgMD1aBBA0nS22+/raioKLNajh49mv8v639s3rxZiYmJcnFxybN/0qRJcnNzU/PmzfXdd9/p3Llz2r59u1q0aKGsrKw7nu5mbW2t48eP6/jx47K2ti5wfQAAAAAAAI+zlJQUDRgwQNWqVdOrr76qZ555Rt9//71sbW3zPce8efMUEBCgPn36SJKaNWumgIAArV279kGVDQAAAAAAAFiUAgXgxo0bp7S0tFzt6enpGjdu3H0X9d/279+vgIAA04lsQ4YMUUBAgMaMGSNJevfddzVo0CD1799fDRo00IULF/T999/L0dEx32uMGzdOy5YtU+3atbVw4UItWbJE/v7+kqQSJUpo+/bt8vLyUtu2bVW9enX16tVLGRkZ93QinMFg0Jo1a1SqVCk1a9ZMISEhqlSpkpYvX24a07FjR40ZM0bvvfee6tevrzNnzuiNN97I9xr/q2TJkncMv0lSmTJltGfPHgUHB6tv376qVKmSOnTooEqVKik2NlaVKlW6471OTk73dSIeAAAAAADA465Dhw46ffq0MjMzlZiYqDlz5sjZ2fmO4xMSEjRo0CCztoiICBmNxlxXjx498pzDx8dHRqNRdevWLbyNAAAAAAAAAI8wg9FoNN7rTVZWVvr9999VtmxZs/bNmzerY8eO+uOPPwqtwAfNYDDoq6++Ups2bYq6lCdKamqqnJ2d5TlohazsShR1OQAAAAAAAIUmYWrLoi4BAAAAAAAAsEi3M0UpKSn5PpzL5l4WKFWqlAwGgwwGg6pWrSqDwWDqy87OVlpamvr163dvVQMAAAAAAAAAAAAAAAAAUAD3FICbNWuWjEajevXqpXHjxpm9sqFYsWLy8fFRkyZNCr3IglqyZIn69u2bZ5+3t7eOHj36kCu6Pw4ODnfs++677/TPf/7zIVYDAAAAAAAAAAAAAAAAAEXrngJw3bt3lyRVrFhRTZs2la2t7QMpqrC8+OKLatSoUZ59t2svwBtgi0xcXNwd+ypUqPDwCgEAAAAAAAAAAAAAAACAR8A9BeBuCwwMNP1zRkaGsrKyzPrz+/7VB83R0VGOjo5FXUah8fX1LeoSAAAAAAAAAAAAAAAAAOCRYVWQm9LT0zVw4ECVK1dODg4OKlWqlNkFAAAAAAAAAAAAAAAAAMCDVqAA3LBhw7R582bNnTtXdnZ2mj9/vsaNGycPDw8tWrSosGsEAAAAAAAAAAAAAAAAACCXAr0Cdd26dVq0aJGCgoLUq1cv/fOf/5Svr6+8vb21ZMkSdenSpbDrBAAAAAAAAAAAAAAAAADATIFOgEtOTlbFihUlSU5OTkpO/j/27j0+5/r/4/jz2uliu7ZhDtfGMGabzZm+ImUrh8lhi5BThCJRKDkVKqeo+H4TfcsMNTnkGCXHOaTFZJKW80LfjXLYGDbs+v3htuvX1TYNm7l43G+3z+3W9X6/P+/3633dut2Yz3Pvz1lJUpMmTbR169aCqw4AAAAAAAAAAAAAAAAAgDzcVgCuSpUqSkpKkiQFBwdr8eLFkm6cDFeiRImCqg0AAAAAAAAAAAAAAAAAgDzdVgDuueee0969eyVJI0eO1MyZM2U0GjVkyBANGzasQAsEAAAAAAAAAAAAAAAAACA3BovFYrnTSY4fP674+HhVrVpVtWvXLoi6cJ9LS0uTp6enfAcvloPRtajLAQAAAAA8gJImty7qEgAAAAAAAAAAf5GdKUpNTZWHh0e+7nG600WvXLmiihUrqmLFinc6FQAAAAAAAAAAAAAAAAAA+XZbr0C9fv263nnnHZUvX14mk0lHjx6VJL355puKiooq0AIBAAAAAAAAAAAAAAAAAMjNbQXgJkyYoLlz52rKlClycXGxttesWVOzZ88usOIAAAAAAAAAAAAAAAAAAMjLbQXg5s+fr08++UTdunWTo6Ojtb1WrVr69ddfC6w4AAAAAAAAAAAAAAAAAADyclsBuN9//13+/v452rOysnT16tU7LgoAAAAAAAAAAAAAAAAAgH9yWwG4kJAQbdu2LUf7kiVLVLdu3TsuCgAAAAAAAAAAAAAAAACAf+J0OzeNHTtWPXr00O+//66srCwtW7ZMBw4c0Pz587V69eqCrhEAAAAAAAAAAAAAAAAAgBxu6QS4o0ePymKxqG3btlq0aJG+/vprGQwGjRkzRomJifrqq6/UvHnzwqoVAAAAAAAAAAAAAAAAAACrWzoBrlq1akpOTlbZsmXVsmVLzZkzR4cPH5bZbC6s+gAAAAAAAAAAAAAAAAAAyNUtnQBnsVhsPn/zzTe6dOlSgRYEAAAAAAAAAAAAAAAAAEB+3FIA7u/+HogDAAAAAAAAAAAAAAAAAOBuuaUAnMFgkMFgyNEGAAAAAABgr65du6Y33nhDfn5+Kl68uKpUqaK3335bWVlZ1jHLli1Ty5YtVbp0aRkMBiUkJOSYJyMjQ4MGDVLp0qXl5uamdu3a6eTJk9b+2NhY67+t/P3atWvX3dgqAAAAAAAAANx3bvkVqL169VL79u3Vvn17XblyRf3797d+zr5QuHr16iWDwaD+/fvn6BswYIAMBoN69epl075jxw45OjoqPDw81zkzMzM1ZcoU1a5dW66uripdurQeeeQRRUdH6+rVqzbrGgwGOTs7q1y5cmrevLnmzJlj81AAAAAAAAB78u677+rjjz/WjBkzlJiYqClTpmjq1Kn68MMPrWPS09P1yCOPaPLkyXnOM3jwYC1fvlwLFy7U9u3bdfHiRbVp00bXr1+XJDVu3FjJyck2V9++fVW5cmU1aNCg0PcJAAAAAAAAAPcjp1sZ3LNnT5vP3bt3L9BikH++vr5auHChpk2bpuLFi0uSrly5oi+++EIVK1bMMX7OnDkaNGiQZs+erePHj9uMyczMVMuWLbV371698847euSRR+Th4aG4uDi99957qlu3rurUqSNJCg8PV3R0tK5fv65Tp05p7dq1euWVV/Tll19q1apVcnK6pf+lAAAAAAAoct9//70iIiLUunVrSVLlypX1xRdfKD4+3jqmR48ekqSkpKRc50hNTVVUVJQ+++wzNWvWTJL0+eefy9fXVxs2bFDLli3l4uIis9lsvefq1atatWqVBg4cyAn7AAAAAAAAAHCbbimtFB0dXVh14BbVq1dPR48e1bJly9StWzdJN17H4uvrqypVqtiMTU9P1+LFi7Vr1y6lpKRo7ty5GjNmjLV/+vTp2rp1q+Lj41W3bl1re5UqVdSxY0dlZmZa24xGo/Uf68uXL6969erp4Ycf1hNPPKG5c+eqb9++hbltAAAAAAAKXJMmTfTxxx/r4MGDCggI0N69e7V9+3ZNnz4933Ps3r1bV69eVYsWLaxtPj4+qlGjhnbs2KGWLVvmuGfVqlX6888/c5ziDgAAAAAAAADIv1t6BSruLc8995xNKHHOnDnq3bt3jnGLFi1SYGCgAgMD1b17d0VHR8tisVj7Y2Ji1KxZM5vwWzZnZ2e5ubndtI7HH39ctWvX1rJly/Ick5GRobS0NJsLAAAAAIB7wfDhw9WlSxcFBQXJ2dlZdevW1eDBg9WlS5d8z5GSkiIXFxeVLFnSpr1cuXJKSUnJ9Z6oqCi1bNlSvr6+d1Q/AAAAAAAAADzICMDZsR49emj79u1KSkrSb7/9pu+++y7X19JGRUVZ28PDw3Xx4kVt3LjR2n/o0CEFBQXdUS1BQUF5vgZGkiZNmiRPT0/rxT/uAwAAAADuFYsWLdLnn3+uBQsW6Mcff9S8efP03nvvad68eXc8t8ViyfX1pidPntS3336rPn363PEaAAAAAAAAAPAgIwBnx0qXLq3WrVtr3rx5io6OVuvWrVW6dGmbMQcOHNDOnTv1zDPPSJKcnJzUuXNnzZkzxzomr3+MvxX/NMfIkSOVmppqvU6cOHFH6wEAAAAAUFCGDRumESNG6JlnnlHNmjXVo0cPDRkyRJMmTcr3HGazWZmZmTp37pxN++nTp1WuXLkc46Ojo+Xl5aV27drdcf0AAAAAAAAA8CBzKuoCcGd69+6tgQMHSpI++uijHP1RUVG6du2aypcvb22zWCxydnbWuXPnVLJkSQUEBCgxMfGO6khMTJSfn1+e/UajUUaj8Y7WAAAAAACgMFy6dEkODra/I+jo6KisrKx8z1G/fn05Oztr/fr16tSpkyQpOTlZP//8s6ZMmWIz1mKxKDo6Ws8++6ycnZ3vfAMAAAAAAAAA8ADjBDg7Fx4erszMTGVmZqply5Y2fdeuXdP8+fP1/vvvKyEhwXrt3btXlSpVUkxMjCSpa9eu2rBhg/bs2ZNj/mvXrik9Pf2mNWzatEn79u1Thw4dCm5jAAAAAADcJW3bttWECRO0Zs0aJSUlafny5frggw/01FNPWcecPXtWCQkJ+uWXXyTdOHE9ISFBKSkpkiRPT0/16dNHr776qjZu3Kg9e/aoe/fuqlmzppo1a2az3qZNm3Ts2DFefwoAAAAAAAAABYAT4Oyco6Oj9fQ2R0dHm77Vq1fr3Llz6tOnjzw9PW36nn76aUVFRWngwIEaPHiw1qxZoyeeeELvvPOOmjRpInd3d8XHx+vdd99VVFSU6tSpI0nKyMhQSkqKrl+/rlOnTmnt2rWaNGmS2rRpo2efffau7BkAAAAAgIL04Ycf6s0339SAAQN0+vRp+fj4qF+/fhozZox1zKpVq/Tcc89ZPz/zzDOSpLFjx2rcuHGSpGnTpsnJyUmdOnXS5cuX9cQTT2ju3Lk5fl6PiopS48aNVb169cLfHAAAAAAAAADc5wwWi8VS1EXg1vTq1Uvnz5/XihUrcu2PjIxUiRIldObMGWVlZWnNmjU5xvz444+qX7++du/erXr16ikjI0PTpk3TggULdOjQIbm6uqp69ep6/vnn1a1bNzk5OalXr16aN2+eJMnJyUklS5ZU7dq11bVrV/Xs2TPH62JuJi0tTZ6envIdvFgORtfb+h4AAAAAALgTSZNbF3UJAAAAAAAAAIC/yM4UpaamysPDI1/3EIBDkSAABwAAAAAoagTgAAAAAAAAAODecjsBuPwf2QUAAAAAAAAAAAAAAAAAwD2EABwAAAAAAAAAAAAAAAAAwC4RgAMAAAAAAAAAAAAAAAAA2CUCcAAAAAAAAAAAAAAAAAAAu0QADgAAAAAAAAAAAAAAAABglwjAAQAAAAAAAAAAAAAAAADsEgE4AAAAAAAAAAAAAAAAAIBdIgAHAAAAAAAAAAAAAAAAALBLBOAAAAAAAAAAAAAAAAAAAHaJABwAAAAAAAAAAAAAAAAAwC45FXUBAAAAAADg1iVNbl3UJQAAAAAAAAAAUOQ4AQ4AAAAAAAAAAAAAAAAAYJcIwAEAAAAAAAAAAAAAAAAA7BIBOAAAAAAAAAAAAAAAAACAXSIABwAAAAAAAAAAAAAAAACwSwTgAAAAAAAAAAAAAAAAAAB2iQAcAAAAAAAAAAAAAAAAAMAuEYADAAAAAAAAAAAAAAAAANglAnAAAAAAAAAAAAAAAAAAALtEAA4AAAAAAAAAAAAAAAAAYJcIwAEAAAAAAAAAAAAAAAAA7BIBOAAAAAAAAAAAAAAAAACAXSIABwAAAACAnapcubIMBkOO66WXXpIkjRs3TkFBQXJzc1PJkiXVrFkz/fDDDzZzHDlyRE899ZTKlCkjDw8PderUSadOnbIZc/DgQUVERKh06dLy8PDQI488os2bN9+1fQIAAAAAAAAAkBcCcHeoV69eioyMtGn78ssvVaxYMU2ZMkUWi0WffPKJGjZsKJPJpBIlSqhBgwaaPn26Ll26dFvzS1JCQoIMBoOSkpIkSbGxsTYPO8qUKaNWrVpp79691ntCQ0Ot/UajUQEBAZo4caKuX7+e6xx/vVJSUiTdeHiS3ebg4CAfHx9169ZNJ06cuL0vEAAAAABw23bt2qXk5GTrtX79eklSx44dJUkBAQGaMWOG9u3bp+3bt6ty5cpq0aKF/vjjD0lSenq6WrRoIYPBoE2bNum7775TZmam2rZtq6ysLOs6rVu31rVr17Rp0ybt3r1bderUUZs2baw/KwIAAAAAAAAAUFQIwBWw2bNnq1u3bpoxY4Zef/119ejRQ4MHD1ZERIQ2b96shIQEvfnmm1q5cqXWrVtX4OsfOHBAycnJWrNmjc6dO6fw8HClpqZa+59//nklJyfrwIEDevnll/XGG2/ovffey3WOv15ly5a19oeEhCg5OVknT57UokWLtG/fPnXq1KnA9wIAAAAAuLkyZcrIbDZbr9WrV6tq1apq2rSpJKlr165q1qyZqlSpopCQEH3wwQdKS0vTTz/9JEn67rvvlJSUpLlz56pmzZqqWbOmoqOjtWvXLm3atEmS9Oeff+rw4cMaMWKEatWqpWrVqmny5Mm6dOmS9u/fX2R7BwAAAAAAAABAkpyKuoD7yZQpUzRmzBgtWLBAHTp00OLFixUTE6MVK1YoIiLCOq5y5cpq166d0tLSCryGsmXLqkSJEjKbzXr//ffVpEkTxcXFqWXLlpIkV1dXmc1mSdLAgQO1cuVKrVixQsOHD88xR16cnJysc/j4+Oj555/Xyy+/rLS0NHl4eBT4ngAAAAAA/ywzM1Off/65hg4dKoPBkGv/J598Ik9PT9WuXVuSlJGRYT0lPFuxYsXk4OCg7du3q1mzZvLy8lL16tU1f/581atXT0ajUf/9739Vrlw51a9f/67tDwAAAAAAAACA3BCAKyAjRozQRx99pNWrV6tZs2aSpJiYGAUGBtqE37IZDAZ5enoWak3FixeXJF29evWmY86dO3fba6SkpGjZsmVydHSUo6NjnuMyMjKUkZFh/VwY4T8AAAAAeJCtWLFC58+fV69evWzaV69erWeeeUaXLl2St7e31q9fr9KlS0uSHn74Ybm5uWn48OGaOHGiLBaLhg8frqysLCUnJ0u68fPr+vXrFRERIXd3dzk4OKhcuXJau3btTX95CgAAAAAAAACAu4FXoBaAb775Ru+++65WrlxpDb9J0qFDhxQYGFgkNZ05c0ZvvfWW3N3d9a9//StHf1ZWltauXatvv/1WTzzxhE1fhQoVZDKZrNff97Bv3z6ZTCa5urrK29tbsbGxeumll+Tm5pZnPZMmTZKnp6f18vX1LZiNAgAAAAAkSVFRUWrVqpV8fHxs2sPCwpSQkKAdO3YoPDxcnTp10unTpyXdeIXqkiVL9NVXX8lkMsnT01OpqamqV6+e9ZecLBaLBgwYoLJly2rbtm3auXOnIiIi1KZNG2tIDgAAAAAAAACAosIJcAWgVq1a+vPPPzVmzBg99NBDcnd3l3TjIUFur50pTBUqVJAkpaenq1q1alqyZInKli1r7Z85c6Zmz56tzMxMSVKPHj00duxYmzm2bdtm3YN045WnfxUYGKhVq1YpIyNDK1eu1JIlSzRhwoSb1jVy5EgNHTrU+jktLY0QHAAAAAAUkN9++00bNmzQsmXLcvS5ubnJ399f/v7+evjhh1WtWjVFRUVp5MiRkqQWLVroyJEj+vPPP+Xk5KQSJUrIbDbLz89PkrRp0yatXr1a586dk4eHh6QbP1uuX79e8+bN04gRI+7eRgEAAAAAAAAA+BsCcAWgfPnyWrp0qcLCwhQeHq61a9fK3d1dAQEBSkxMvKO5PTw89Ntvv+VoP3/+vCTleI3qtm3b5OHhoTJlylgfTPxVt27dNHr0aBmNRvn4+OT62lI/P7+bvsbGxcVF/v7+kqSQkBAdOnRIL774oj777LM87zEajTIajXn2AwAAAABuX3R0tMqWLavWrVv/41iLxaKMjIwc7dmvRd20aZNOnz6tdu3aSZIuXbokSXJwsD1E3sHBQVlZWXdaOgAAAAAAAAAAd4RXoBaQihUrasuWLTp9+rRatGihtLQ0de3aVQcPHtTKlStzjLdYLEpNTf3HeYOCgvTzzz/rypUrNu27du1SmTJlVLJkSZt2Pz8/Va1aNdfwm3QjMOfv7y9fX99cw2+3480339QXX3yhH3/8sUDmAwAAAADkX1ZWlqKjo9WzZ0+bE7zT09M1atQoxcXF6bffftOPP/6ovn376uTJk+rYsaN1XHR0tOLi4nTkyBF9/vnn6tixo4YMGaLAwEBJUqNGjVSyZEn17NlTe/fu1cGDBzVs2DAdO3YsX4E7AAAAAAAAAAAKEwG4AlShQgXFxsbqzJkzatGihcLDw9W5c2d16dJFkyZNUnx8vH777TetXr1azZo10+bNm/9xzm7dusnJyUk9evRQfHy89YHEpEmTNGzYsELZx+nTp5WSkmJzXb16Nc/xVapUUUREhMaMGVMo9QAAAAAA8rZhwwYdP35cvXv3tml3dHTUr7/+qg4dOiggIEBt2rTRH3/8oW3btikkJMQ67sCBA4qMjFT16tX19ttva/To0Xrvvfes/aVLl9batWt18eJFPf7442rQoIG2b9+ulStXqnbt2ndtnwAAAAAAAAAA5IZXoBaw8uXLa8uWLQoLC1Pz5s21du1ahYaGas6cORo/frycnJxUrVo1Pfvss2rZsuU/zufp6alt27ZpxIgRioyM1Pnz51WlShW98847evHFFwtlD9m/5f9X33//vR5++OE873n11Vf1yCOP6IcfflDDhg0LpS4AAAAAQE4tWrSQxWLJ0V6sWDEtW7bsH++fPHmyJk+efNMxDRo00LfffnvbNQIAAAAAAAAAUFgMltz+lRwoZGlpafL09JTv4MVyMLoWdTkAAAAAYHeSJvP6UQAAAAAAAADA/SU7U5SamioPD4983cMrUAEAAAAAAAAAAAAAAAAAdokAXBEzmUx5Xtu2bSvq8gAAAAAAAAAAAAAAAADgnuVU1AU86BISEvLsK1++/N0rBAAAAAAAAAAAAAAAAADsDAG4Iubv71/UJQAAAAAAAAAAAAAAAACAXeIVqAAAAAAAAAAAAAAAAAAAu0QADgAAAAAAAAAAAAAAAABglwjAAQAAAAAAAAAAAAAAAADsEgE4AAAAAAAAAAAAAAAAAIBdIgAHAAAAAAAAAAAAAAAAALBLBOAAAAAAAAAAAAAAAAAAAHbJqagLAAAAAACgICRNbl3UJQAAAAAAAAAAgLuME+AAAAAAAAAAAAAAAAAAAHaJABwAAAAAAAAAAAAAAAAAwC4RgAMAAAAAAAAAAAAAAAAA2CUCcAAAAAAAAAAAAAAAAAAAu0QADgAAAAAAAAAAAAAAAABglwjAAQAAAAAAAAAAAAAAAADsEgE4AAAAAAAAAAAAAAAAAIBdIgAHAAAAAAAAAAAAAAAAALBLBOAAAAAAAAAAAAAAAAAAAHaJABwAAAAAAAAAAAAAAAAAwC4RgAMAAAAAAAAAAAAAAAAA2CUCcAAAAACA+8rvv/+u7t27y8vLS66urqpTp452795t7b948aIGDhyoChUqqHjx4qpevbpmzZplM0dKSop69Oghs9ksNzc31atXT19++aW1PykpSX369JGfn5+KFy+uqlWrauzYscrMzLxr+wQAAAAAAAAAAATg8q1Xr14yGAzWy8vLS+Hh4frpp5+sY/7a7+TkpIoVK2ro0KHKyMjI1xpz585ViRIlbjpm3rx5+te//iU3Nze5u7vrscce0+rVq639Fy9elLOzsxYtWmRzX+fOnWUwGHTkyBGb9qpVq2rUqFGSpHHjxtnsIfsKCgqyjg8NDbW2u7i4qGrVqho5cmS+9wgAAAAAhencuXN65JFH5OzsrG+++Ua//PKL3n//fZuftYYMGaK1a9fq888/V2JiooYMGaJBgwZp5cqV1jE9evTQgQMHtGrVKu3bt0/t27dX586dtWfPHknSr7/+qqysLP33v//V/v37NW3aNH388cfWn68AAAAAAAAAAMDdQQDuFoSHhys5OVnJycnauHGjnJyc1KZNG5sx0dHRSk5O1rFjxzRz5kx99tlnGj9+fIGs/9prr6lfv37q1KmT9u7dq507d+rRRx9VRESEZsyYIUkymUxq0KCBNm/ebHPvli1b5Ovra9N+8uRJHT16VGFhYda2kJAQ6x6zr+3bt9vM9fzzzys5OVmHDx/WlClT9NFHH2ncuHEFskcAAAAAuBPvvvuufH19FR0drX/961+qXLmynnjiCVWtWtU65vvvv1fPnj0VGhqqypUr64UXXlDt2rUVHx9vM2bQoEH617/+pSpVquiNN95QiRIl9OOPP0q68fNhdHS0WrRooSpVqqhdu3Z67bXXtGzZsru+ZwAAAAAAAAAAHmQE4G6B0WiU2WyW2WxWnTp1NHz4cJ04cUJ//PGHdUyJEiVkNpvl6+urNm3aqF27dtYHJHciLi5O77//vqZOnarXXntN/v7+ql69uiZMmKDBgwdr6NChOnHihCQpLCxMsbGx1nsTExN1+fJlDRgwwKZ98+bNcnZ21iOPPGJtc3Jysu4x+ypdurRNLa6urjKbzapYsaI6dOig5s2ba926dXe8RwAAAAC4U6tWrVKDBg3UsWNHlS1bVnXr1tWnn35qM6ZJkyZatWqVfv/9d1ksFm3evFkHDx5Uy5YtbcYsWrRIZ8+eVVZWlhYuXKiMjAyFhobmuXZqaqpKlSpVWFsDAAAAAAAAAAC5IAB3my5evKiYmBj5+/vLy8sr1zEHDx7U5s2b1bBhwzte74svvpDJZFK/fv1y9L366qu6evWqli5dKulGAO7AgQNKTk6WdCPo9uijj+rxxx/PEYBr2LChXF1db7uuvXv36rvvvpOzs/NNx2VkZCgtLc3mAgAAAICCdvToUc2aNUvVqlXTt99+q/79++vll1/W/PnzrWP+85//KDg4WBUqVJCLi4vCw8M1c+ZMNWnSxDpm0aJFunbtmry8vGQ0GtWvXz8tX77c5iS5vzpy5Ig+/PBD9e/fv9D3CAAAAAAAAAAA/h8BuFuwevVqmUwmmUwmubu7a9WqVVq0aJEcHP7/a+zSpYtMJpOKFSumwMBAhYSEaOTIkXe89sGDB1W1alW5uLjk6PPx8ZGnp6cOHjwoSXrkkUfk7OxsDbvFxsaqadOmqlevnlJTU3Xo0CFr+19ffypJ+/bts+4x++rbt6/NmJkzZ8pkMsloNKpOnTr6448/NGzYsJvWP2nSJHl6elovX1/f2/0qAAAAACBPWVlZqlevniZOnKi6deuqX79+ev755zVr1izrmP/85z+Ki4vTqlWrtHv3br3//vsaMGCANmzYYB3zxhtv6Ny5c9qwYYPi4+M1dOhQdezYUfv27cux5v/+9z+Fh4erY8eOOX5+AgAAAAAAAAAAhcupqAuwJ2FhYdaHJmfPntXMmTPVqlUr7dy5U5UqVZIkTZs2Tc2aNdP169d1+PBhDR06VD169NDChQsLtTaLxSKDwSDpxitK//Wvfyk2NlZdunTRli1bNGzYMDk5OemRRx5RbGysjEajjh07pscff9xmnsDAQK1atcqmzd3d3eZzt27dNHr0aKWlpendd9+Vh4eHOnTocNP6Ro4cqaFDh1o/p6WlEYIDAAAAUOC8vb0VHBxs01a9enXridmXL1/WqFGjtHz5crVu3VqSVKtWLSUkJOi9995Ts2bNdOTIEc2YMUM///yzQkJCJEm1a9fWtm3b9NFHH+njjz+2zv2///1PYWFhatSokT755JO7tEsAAAAAAAAAAJCNANwtcHNzk7+/v/Vz/fr15enpqU8//VTjx4+XJJnNZuuYwMBAXbhwQV26dNH48eNt7r1VAQEB2r59uzIzM3OcAve///1PaWlpqlatmrUtLCxMixYt0v79+3X58mXVq1dPktS0aVNt3rxZLi4uKlasmB5++GGbuVxcXP6xTk9PT+uYzz//XCEhIYqKilKfPn3yvMdoNMpoNN7SngEAAADgVj3yyCM6cOCATdvBgwetv7R09epVXb161eYkb0lydHRUVlaWJOnSpUuSdNMxkvT7778rLCxM9evXV3R0dI7xAAAAAAAAAACg8PGv83fAYDDIwcFBly9fznOMo6OjJN10TH4888wzunjxov773//m6Hvvvffk7OxscwpbWFiYDh06pAULFqhJkybWOpo2barY2FjFxsaqUaNGKlas2B3V5ezsrFGjRumNN96wPiQCAAAAgKIyZMgQxcXFaeLEiTp8+LAWLFigTz75RC+99JIkycPDQ02bNtWwYcMUGxurY8eOae7cuZo/f76eeuopSVJQUJD8/f3Vr18/7dy5U0eOHNH777+v9evXKzIyUtKNX0QKDQ2Vr6+v3nvvPf3xxx9KSUlRSkpKUW0dAAAAAAAAAIAHEifA3YKMjAzrw4xz585pxowZunjxotq2bWsdc/78eaWkpCgrK0uHDh3S22+/rYCAAFWvXj1fa1y/fl0JCQk2bS4uLmrUqJFeeeUVDRs2TJmZmYqMjNTVq1f1+eef69///remT59u80rRxo0by2g06sMPP9To0aOt7Q899JBSU1O1dOlSDRs2LMf6165dy/HAxmAwqFy5cnnW3LVrV40aNUozZ87Ua6+9lq99AgAAAEBheOihh7R8+XKNHDlSb7/9tvz8/DR9+nR169bNOmbhwoUaOXKkunXrprNnz6pSpUqaMGGC+vfvL+nGL/p8/fXXGjFihNq2bauLFy/K399f8+bN05NPPilJWrdunQ4fPqzDhw+rQoUKNjVYLJa7t2EAAAAAAAAAAB5wBOBuwdq1a+Xt7S1J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qxo1asjX11e9evXSoUOHrP1Dhw5V7969NXPmTPn7+6tp06aSyr4CNT8/X7169ZLZbFb16tXVv39/HTlyxGathIQE1alTR56enho+fLjOnj1bwa+U9MEHH+ill17SI488ogYNGqht27YaPXq0hgwZYjMuJiZGx44d0+eff25tS01NVVRUlGrXrl1m3hsdf+jQIW3ZskUvvPCCmjdvruXLl1d4DwBwuxmGoXHjxik8PFwhISE2fR9++KHMZrOqVaumv//978rIyFDNmjWt/UuWLNHFixfl6+srV1dX/elPf9KqVat07733SpL+8Ic/qLCwUK+//rrOnz+vEydO6KWXXpIkFRQUVN4mAQAAAAAAAAAAAADAnZEAdy0HDx5UYWGhoqKirG2urq7q3LmztmzZUuF5Xn75ZfXt21e7du3SoEGDNGDAAOXm5kqSSkpKFBkZKbPZrE2bNmnz5s0ym82Kjo62VnqTpE8//VS5ubnKyMiweeXoFYZhqHfv3jp+/LiysrKUkZGhvLw8xcbGWscsXbpUkydP1vTp07Vjxw75+flp7ty5Fd6HxWLRxx9/fN3qdy4uLoqLi7Op6paamqphw4bdkvHJycnq3r27vLy8NGjQICUlJV0znnPnzunkyZM2FwDcLqNGjdLXX3+tf/7zn2X6IiMjlZOToy1btig6Olr9+/fX0aNHrf1/+ctfdOLECa1fv147duzQuHHj1K9fP+3evVuSFBwcrAULFuhvf/ub3N3dZbFY1KhRI9WpU0dVqlSptD0CAAAAAAAAAAAAAAAHSIArLCyUJNWpU8emvU6dOta+iujXr59GjBihpk2baurUqQoLC9Ps2bMlSenp6XJyctL8+fMVGhqqwMBApaSkKD8/X5mZmdY5PDw8NH/+fAUHB5epKCRJ69ev19dff63Fixerbdu2at++vRYuXKisrCxlZ2dLkhITEzVs2DCNGDFCzZo107Rp0xQUFFThfbz77rvasmWLfH191a5dO40dO9amatsvDR8+XEuXLlVxcbE2bdqkoqIide/e/apzV3R8aWmpUlNTNWjQIEnSY489pq1bt+rAgQNXnXvmzJny8vKyXgEBARXeMwDciNGjR2vNmjXauHGj6tWrV6bfw8NDjRs31v3336+kpCRVrVrVmsSbl5enOXPmKDk5WQ899JBatmypyZMnKywsTG+99ZZ1joED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0G3YAQAAAAAAAAAAAAAAuNNQAe4GnD59WmlpaWrcuLF8fX3LHfPtt99q48aNat++/Q3NPXz4cC1ZskQlJSWSLr/aNDo6WnXq1PlNsdauXVtxcXFas2aNLl26dM2xf/jDH9SyZUutXLnyN61VEefOndPJkydtLgB3l1GjRunrr7++blJveZ544gl16dJFISEheuyxx7R8+XKtX7/emmw8e/ZsnTx5Ui+++OKtDhsAAAAAAAAAAAAAANzBSIC7jg8//FBms1lms1menp5as2aNlixZIien/33pBgwYILPZrGrVqqlZs2YKDg6+4SSMVq1a6d5779Xy5ctlGIZSU1M1bNiwm4q9efPmOnXqlI4dO1ahsTdaMaljx47Wr82V62rJdjNnzpSXl5f1CggIuKG1ADi20aNHa82aNdq4caPq1at30/O1adNGzs7O2r9/vyRpw4YN2rZtm1xdXVW1alU1btxYkhQWFqYhQ4bc9HoAAAAAAAAAAAAAAODORALcdURGRionJ0c5OTn64osvFBUVpW7duum7776zjvn73/+unJwc7dq1Sx9++KG+/fZbDR48+IbXGjZsmFJSUpSVlaXTp0/rkUceuanYDcOQdPkVqRUZW5Fxv7RkyRLr1+bKVaVKlXLHvvjiiyoqKrJe33///Q2tBcAxGYahUaNGaeXKldqwYYMaNmx4S+bds2ePLly4ID8/P0nSm2++qV27dlnPoo8//ljS5XNq+vTpt2RNAAAAAAAAAAAAAABw56lq7wDudB4eHtZKQpLUtm1beXl56R//+IemTZsmSbJYLNYxzZo106lTpzRgwABNmzbN5t7riYuL04QJExQfH6/HH39cVave3H+e3NxcVa9e/aqva/312BtNTAkICKjw/lxdXeXq6npD8wNwfM8884wWL16s999/X56eniosLJQkeXl5yc3NTZJ0/Phx5efn68cff5Qk7du3T9Lls9VisSgvL09paWl65JFHVLNmTe3du1d//vOf1bp1az3wwAOSpPr169usazabJUn33nvvLak4BwAAAAAAAAAAAAAA7kxUgLtBJpNJTk5OOnPmzFXHXKmCdq0x5fHx8VHPnj2VlZV1068/PXr0qBYvXqzevXvbvK61PBs2bNDu3bvVt2/fm1oTAH5t3rx5KioqUkREhPz8/KzXkiVLrGPWrFmj1q1bq3v37pKkxx57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/0iV8/0W5w9w97ne+fPLc6egoEDJyckymUzq27evzTiefwDcqIr8vt3hfgZkAJXsvvvuM5566imbtubNmxsvvPCCnSIC4OiOHj1qSDKysrKsbUOGDDF69ep11Xt+/vlnw9nZ2UhPT7e2HT582HBycjLWrl1rGIZh7N2715BkbNu2zTpm69athiTj3//+963fCIA73uTJk42WLVuW21daWmpYLBYjISHB2nb27FnDy8vLePvttw3D4OwBcOs899xzxr333muUlpYahsGzD4DbQ5KxatUq6+fKfN75+OOPDScnJ+Pw4cPWMf/85z8NV1dXo6io6LbsF8Cd49fnT3m2b99uSDK+++47a1vnzp2N55577qr3cP4AuJ7yzp/K+n6L8we4u1Xk+adXr17GH/7wB5s2nn8A3Aq//n27I/4MiApwqFTnz5/Xzp07FRUVZdMeFRWlLVu22CkqAI6uqKhIkuTj42PTnpmZqdq1a6tp06Z64okndPToUWvfzp07deHCBZvzyN/fXyEhIdbzaOvWrfLy8lL79u2tY+6//355eXlxZgF3sf3798vf318NGzbUY489pv/85z+SpIMHD6qwsNDmXHF1dVXnzp2tZwZnD4Bb4fz581q0aJGGDRsmk8lkbefZB8DtVpnPO1u3blVISIj8/f2tY7p27apz585p586dt3WfABxDUVGRTCaTvL29bdrT0tJUs2ZNBQcH6/nnn7epTsD5A+C3qozvtzh/AFzLkSNH9NFHH2n48OFl+nj+AXCzfv37dkf8GVDVG900cDP++9//6tKlS6pTp45Ne506dVRYWGinqAA4MsMwNG7cOIWHhyskJMTa3q1bN/Xr10/33HOPDh48qJdffll/+MMftHPnTrm6uqqwsFAuLi6qUaOGzXy/PI8KCwtVu3btMmvWrl2bMwu4S7Vv317vvfeemjZtqiNHjmjatGnq2LGj9uzZYz0XynvO+e677ySJswfALbF69Wr9/PPPGjp0qLWNZx8AlaEyn3cKCwvLrFOjRg25uLhwJgHQ2bNn9cILL2jgwIGqXr26tT0uLk4NGzaUxWLRN998oxdffFG7du2yvj6e8wfAb1FZ329x/gC4lgULFsjT01N9+vSxaef5B8DNKu/37Y74MyAS4GAXv6xSIF3+C/XrNgCoiFGjRunrr7/W5s2bbdpjY2Otfw4JCVFYWJju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IkLVqlXTokWLJEkpKSkKDAxUtWrV1Lx5c82dO/ea+/v1K1AbNGigadOm6fHHH5fZbNY999yj999/Xz/99JN69eols9ms0NBQ7dixw3rPlUp2q1evVtOmTVWtWjU9/PDD+v77723Wmjdvnu699165uLioWbNmWrhwoU2/yWTS22+/rV69esnDw0MjRoxQZGSkJKlGjRoymUwaOnSoJGnt2rUKDw+Xt7e3fH19FRMTo7y8POtcV75GK1euVGRkpNzd3dWyZUtt3brVZs3PP/9cnTt3lru7u2rUqKGuXbvqxIkTkiTDMPTaa6+pUaNGcnNzU8uWLbV8+fJrfj0BAAAAAABgiwQ4AAAAAAAA4A70ySefaNCgQXr22We1d+9evfPOO0pNTdX06dOtY5ycnPTmm2/qm2++0YIFC7RhwwZNmDBBktSxY0clJiaqevXqKigoUEFBgZ5//vkbimHixIl69tlnlZubq65du+of//iHJk2apOnTpys3N1czZszQyy+/rAULFtzQvH//+9/1wAMP6KuvvlL37t01ePBgPf744xo0aJC+/PJLNW7cWI8//rgMw7DeU1JSounTp2vBggX6/PPPdfLkST322GPW/lWrVum5557Tn//8Z33zzTf605/+pD/+8Y/auHGjzdqTJ09Wr169tHv3bk2ZMkUrVqyQJO3bt08FBQX6//6//0+SVFxcrHHjxik7O1uffvqpnJyc9Oijj6q0tNRmvkmTJun5559XTk6OmjZtqgEDBliTFHNycvTQQw8pODhYW7du1ebNm9WjRw9dunRJkvSXv/xFKSkpmjdvnvbs2aOxY8dq0KBBysrKuqGvJwAAAAAAwN3MZPzyp0gAAAAAAAAAKs3QoUO1aNEiVatWzdrWrVs3LVu2TJ06dVK3bt304osvWvsWLVqkCRMm6Mcffyx3vmXLlunpp5/Wf//7X0mXK6eNGTNGP//8s804k8mkVatWqXfv3tY2b29vJSYmaujQoTp06JAaNmyoxMREPffcc9Yx9evX11//+lcNGDDA2jZt2jR9/PHH2rJlS7kxRUREqFWrVkpMTJR0uQLcgw8+aK3OVlhYKD8/P7388suaMmWKJGnbtm3q0KGDCgoKZLFYlJqaqj/+8Y/atm2b2rdvL0n697//rcDAQH3xxRe677779MADDyg4OFjvvvuude3+/furuLhYH330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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(30,15))\n", "lgb.plot_importance(model, height=1, ax=ax)\n", "ax.grid(False)\n", "plt.title(\"Feature Importance\", fontsize=20)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 17, "id": "a9bf211f", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T06:37:38.723819Z", "iopub.status.busy": "2023-05-31T06:37:38.722798Z", "iopub.status.idle": "2023-05-31T06:38:02.572153Z", "shell.execute_reply": "2023-05-31T06:38:02.570931Z" }, "papermill": { "duration": 23.860983, "end_time": "2023-05-31T06:38:02.574432", "exception": false, "start_time": "2023-05-31T06:37:38.713449", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "test_df = pd.read_csv(\"/kaggle/input/jpx-tokyo-stock-exchange-prediction/supplemental_files/stock_prices.csv\")\n", "X_test, y_test = preprocess_data(test_df)" ] }, { "cell_type": "code", "execution_count": 18, "id": "51ebbfc6", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T06:38:02.592009Z", "iopub.status.busy": "2023-05-31T06:38:02.591616Z", "iopub.status.idle": "2023-05-31T06:39:30.692720Z", "shell.execute_reply": "2023-05-31T06:39:30.691752Z" }, "papermill": { "duration": 88.119223, "end_time": "2023-05-31T06:39:30.701477", "exception": false, "start_time": "2023-05-31T06:38:02.582254", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.03067300280157204\n" ] } ], "source": [ "y_pred = model.predict(X_test)\n", "print(np.sqrt(mean_squared_error(y_pred, y_test)))" ] }, { "cell_type": "code", "execution_count": 19, "id": "3b094177", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T06:39:30.721984Z", "iopub.status.busy": "2023-05-31T06:39:30.721545Z", "iopub.status.idle": "2023-05-31T06:39:30.753542Z", "shell.execute_reply": "2023-05-31T06:39:30.752521Z" }, "papermill": { "duration": 0.0443, "end_time": "2023-05-31T06:39:30.755473", "exception": false, "start_time": "2023-05-31T06:39:30.711173", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TargetPredict
SecuritiesCodeDate
13012022-04-190.0077520.000171
2022-04-20-0.001538-0.001250
2022-04-21-0.0077040.004247
2022-04-220.0139750.006338
2022-04-25-0.0199080.003264
............
99972022-06-200.0014160.034720
2022-06-210.0000000.030778
2022-06-220.0169730.018029
2022-06-230.0139080.016989
2022-06-240.0150890.022749
\n", "

269791 rows × 2 columns

\n", "
" ], "text/plain": [ " Target Predict\n", "SecuritiesCode Date \n", "1301 2022-04-19 0.007752 0.000171\n", " 2022-04-20 -0.001538 -0.001250\n", " 2022-04-21 -0.007704 0.004247\n", " 2022-04-22 0.013975 0.006338\n", " 2022-04-25 -0.019908 0.003264\n", "... ... ...\n", "9997 2022-06-20 0.001416 0.034720\n", " 2022-06-21 0.000000 0.030778\n", " 2022-06-22 0.016973 0.018029\n", " 2022-06-23 0.013908 0.016989\n", " 2022-06-24 0.015089 0.022749\n", "\n", "[269791 rows x 2 columns]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_pred_and_target = y_test.copy()\n", "df_pred_and_target = df_pred_and_target.join(pd.Series(y_pred, index=df_pred_and_target.index, name=\"Predict\"))\n", "df_pred_and_target" ] }, { "cell_type": "markdown", "id": "07d2d2de", "metadata": { "papermill": { "duration": 0.008063, "end_time": "2023-05-31T06:39:30.772244", "exception": false, "start_time": "2023-05-31T06:39:30.764181", "status": "completed" }, "tags": [] }, "source": [ "## Calculate Sharpe Ratio" ] }, { "cell_type": "code", "execution_count": 20, "id": "92d7ec2d", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T06:39:30.792416Z", "iopub.status.busy": "2023-05-31T06:39:30.791996Z", "iopub.status.idle": "2023-05-31T06:39:30.800915Z", "shell.execute_reply": "2023-05-31T06:39:30.799912Z" }, "papermill": { "duration": 0.021582, "end_time": "2023-05-31T06:39:30.803298", "exception": false, "start_time": "2023-05-31T06:39:30.781716", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "def calc_spread_return_sharpe(df: pd.DataFrame, portfolio_size: int = 200, toprank_weight_ratio: float = 2) -> float:\n", " \"\"\"\n", " Args:\n", " df (pd.DataFrame): predicted results\n", " portfolio_size (int): # of equities to buy/sell\n", " toprank_weight_ratio (float): the relative weight of the most highly ranked stock compared to the least.\n", " Returns:\n", " (float): sharpe ratio\n", " \"\"\"\n", " def _calc_spread_return_per_day(df, portfolio_size, toprank_weight_ratio):\n", " \"\"\"\n", " Args:\n", " df (pd.DataFrame): predicted results\n", " portfolio_size (int): # of equities to buy/sell\n", " toprank_weight_ratio (float): the relative weight of the most highly ranked stock compared to the least.\n", " Returns:\n", " (float): spread return\n", " \"\"\"\n", " assert df['Rank'].min() == 0\n", " assert df['Rank'].max() == len(df['Rank']) - 1\n", " weights = np.linspace(start=toprank_weight_ratio, stop=1, num=portfolio_size)\n", " purchase = (df.sort_values(by='Rank')['Target'][:portfolio_size] * weights).sum() / weights.mean()\n", " short = (df.sort_values(by='Rank', ascending=False)['Target'][:portfolio_size] * weights).sum() / weights.mean()\n", " return purchase - short\n", "\n", " buf = df.groupby('Date').apply(_calc_spread_return_per_day, portfolio_size, toprank_weight_ratio)\n", " sharpe_ratio = buf.mean() / buf.std()\n", " return sharpe_ratio\n", "\n", "def add_rank(df):\n", " df[\"Rank\"] = df.groupby(\"Date\")[\"Target\"].rank(ascending=False, method=\"first\") - 1 \n", " df[\"Rank\"] = df[\"Rank\"].astype(\"int\")\n", " return df" ] }, { "cell_type": "code", "execution_count": 21, "id": "6a65a38c", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T06:39:30.822469Z", "iopub.status.busy": "2023-05-31T06:39:30.822042Z", "iopub.status.idle": "2023-05-31T06:39:30.928409Z", "shell.execute_reply": "2023-05-31T06:39:30.927350Z" }, "papermill": { "duration": 0.119077, "end_time": "2023-05-31T06:39:30.930935", "exception": false, "start_time": "2023-05-31T06:39:30.811858", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TargetPredictRank
SecuritiesCodeDate
13012022-04-190.0077520.000171810
2022-04-20-0.001538-0.001250440
2022-04-21-0.0077040.004247734
2022-04-220.0139750.006338449
2022-04-25-0.0199080.0032641478
...............
99972022-06-200.0014160.034720676
2022-06-210.0000000.0307781260
2022-06-220.0169730.018029671
2022-06-230.0139080.016989559
2022-06-240.0150890.022749587
\n", "

269791 rows × 3 columns

\n", "
" ], "text/plain": [ " Target Predict Rank\n", "SecuritiesCode Date \n", "1301 2022-04-19 0.007752 0.000171 810\n", " 2022-04-20 -0.001538 -0.001250 440\n", " 2022-04-21 -0.007704 0.004247 734\n", " 2022-04-22 0.013975 0.006338 449\n", " 2022-04-25 -0.019908 0.003264 1478\n", "... ... ... ...\n", "9997 2022-06-20 0.001416 0.034720 676\n", " 2022-06-21 0.000000 0.030778 1260\n", " 2022-06-22 0.016973 0.018029 671\n", " 2022-06-23 0.013908 0.016989 559\n", " 2022-06-24 0.015089 0.022749 587\n", "\n", "[269791 rows x 3 columns]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "result = df_pred_and_target.copy()\n", "result = add_rank(result)\n", "result" ] }, { "cell_type": "code", "execution_count": 22, "id": "c5720460", "metadata": { "execution": { "iopub.execute_input": "2023-05-31T06:39:30.949438Z", "iopub.status.busy": "2023-05-31T06:39:30.949092Z", "iopub.status.idle": "2023-05-31T06:39:31.195730Z", "shell.execute_reply": "2023-05-31T06:39:31.194571Z" }, "papermill": { "duration": 0.25832, "end_time": "2023-05-31T06:39:31.197700", "exception": false, "start_time": "2023-05-31T06:39:30.939380", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "4.854728646160476" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "calc_spread_return_sharpe(result)" ] }, { "cell_type": "markdown", "id": "5baad34c", "metadata": { "papermill": { "duration": 0.007996, "end_time": "2023-05-31T06:39:31.214074", "exception": false, "start_time": "2023-05-31T06:39:31.206078", "status": "completed" }, "tags": [] }, "source": [ "## API" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.10.10" }, "papermill": { "default_parameters": {}, "duration": 3844.560071, "end_time": "2023-05-31T06:39:32.652748", "environment_variables": {}, "exception": null, "input_path": "__notebook__.ipynb", "output_path": "__notebook__.ipynb", "parameters": {}, "start_time": "2023-05-31T05:35:28.092677", "version": "2.4.0" } }, "nbformat": 4, "nbformat_minor": 5 }