{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "d2d7a060", "metadata": { "ExecuteTime": { "end_time": "2022-11-28T10:41:41.699622Z", "start_time": "2022-11-28T10:41:41.697583Z" } }, "outputs": [], "source": [ "import os\n", "os.sys.path.append('..')" ] }, { "cell_type": "code", "execution_count": 2, "id": "493a85a8", "metadata": { "ExecuteTime": { "end_time": "2022-11-28T10:41:41.730196Z", "start_time": "2022-11-28T10:41:41.700557Z" } }, "outputs": [], "source": [ "import warnings\n", "warnings.simplefilter(\"ignore\")\n", "\n", "# autoreload import your package\n", "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "code", "execution_count": 3, "id": "873c7ab3", "metadata": { "ExecuteTime": { "end_time": "2022-11-28T10:41:41.748569Z", "start_time": "2022-11-28T10:41:41.731432Z" } }, "outputs": [], "source": [ "from loguru import logger\n", "logger.remove()\n", "logger.add(os.sys.stdout, level=\"ERROR\", colorize=True, format=\"{time} | {message}\")\n", "# import_dir(ta_dir, verbose=False)\n", "warnings.simplefilter(\"ignore\")" ] }, { "cell_type": "code", "execution_count": 4, "id": "6c991fe3", "metadata": { "ExecuteTime": { "end_time": "2022-11-28T10:41:42.490541Z", "start_time": "2022-11-28T10:41:41.749534Z" } }, "outputs": [], "source": [ "import torch\n", "import pandas as pd\n", "from matplotlib import pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "id": "92ef6734", "metadata": {}, "source": [ "# Args" ] }, { "cell_type": "code", "execution_count": 5, "id": "8e2098cb", "metadata": { "ExecuteTime": { "end_time": "2022-11-28T10:41:42.749164Z", "start_time": "2022-11-28T10:41:42.491911Z" } }, "outputs": [], "source": [ "from run import set_seed, get_args, Exp_Main" ] }, { "cell_type": "code", "execution_count": 6, "id": "99d7b86d", "metadata": { "ExecuteTime": { "end_time": "2022-11-28T11:07:52.167744Z", "start_time": "2022-11-28T10:41:42.750546Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Args in experiment:\n", "Namespace(K=0, activation='sigmoid', batch_size=32, c_out=1, checkpoints='./checkpoints/', d_ff=2048, d_layers=3, d_model=512, damping_learning_rate=0, data='custom', data_path='OXY_2019.csv.gz', dec_in=7, des=\"'Exp'\", devices='0,1,2,3', dropout=0.2, e_layers=3, embed='timeF', enc_in=12, features='M2S', freq='h', gpu=0, itr=1, label_len=0, learning_rate=0.001, lradj='exponential_with_warmup', min_lr=1e-30, model='ETSformer', model_id='Exchange', n_heads=16, num_workers=0, optim='adam', output_attention=False, patience=5, pred_len=12, root_path='../dataset/stocks/', seq_len=256, smoothing_learning_rate=0, std=0.2, target='RSMKs_18_144_72_2ref_2ref', train_epochs=15, use_gpu=True, use_multi_gpu=False, warmup_epochs=3)\n", "Use GPU: cuda:0\n", ">>>>>>>start training : Exchange_ETSformer_custom_ftM2S_sl256_pl12_dm512_nh16_el3_dl3_df2048_K0_lr0.001_'Exp'_0>>>>>>>>>>>>>>>>>>>>>>>>>>\n", "train 37111\n", "val 5330\n", "test 10668\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "88350c6aaffd407c82ced77be879bc81", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/15 [00:00 0.023160). Saving model ...\n", "Updating learning rate to 0.00025\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": [ "train: 0%| | 0/1159 [00:00 0.006558). Saving model ...\n", "Updating learning rate to 0.0005\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": [ "train: 0%| | 0/1159 [00:00 0.005552). Saving model ...\n", "Updating learning rate to 0.00075\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": [ "train: 0%| | 0/1159 [00:00 0.005366). Saving model ...\n", "Updating learning rate to 0.00025\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": [ "train: 0%| | 0/1159 [00:00 0.004289). Saving model ...\n", "Updating learning rate to 0.000125\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": [ "train: 0%| | 0/1159 [00:00 0.003552). Saving model ...\n", "Updating learning rate to 3.125e-05\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": [ "train: 0%| | 0/1159 [00:00 0.003507). Saving model ...\n", "Updating learning rate to 1.5625e-05\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": [ "train: 0%| | 0/1159 [00:00 0.003373). Saving model ...\n", "Updating learning rate to 7.8125e-06\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": [ "train: 0%| | 0/1159 [00:00>>>>>>testing : Exchange_ETSformer_custom_ftM2S_sl256_pl12_dm512_nh16_el3_dl3_df2048_K0_lr0.001_'Exp'_0<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", "val 5330\n", "loading model\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/166 [00:00>>>>>>start training : {}>>>>>>>>>>>>>>>>>>>>>>>>>>'.format(setting))\n", "exp.train(setting)\n", "\n", "print('>>>>>>>testing : {}<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<'.format(setting))\n", "exp.test(setting, data='val')\n", "exp.test(setting, data='test')\n", "\n", "torch.cuda.empty_cache()\n" ] }, { "cell_type": "markdown", "id": "e1abba91", "metadata": { "ExecuteTime": { "end_time": "2022-11-28T05:28:20.356399Z", "start_time": "2022-11-28T05:28:20.339961Z" } }, "source": [ "# Plot" ] }, { "cell_type": "code", "execution_count": 7, "id": "0495f56e", "metadata": { "ExecuteTime": { "end_time": "2022-11-28T11:07:52.181496Z", "start_time": "2022-11-28T11:07:52.169188Z" } }, "outputs": [ { "data": { "text/plain": [ "\"Exchange_ETSformer_custom_ftM2S_sl256_pl12_dm512_nh16_el3_dl3_df2048_K0_lr0.001_'Exp'_0\"" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "setting" ] }, { "cell_type": "code", "execution_count": 8, "id": "3e3feeec", "metadata": { "ExecuteTime": { "end_time": "2022-11-28T11:07:52.326810Z", "start_time": "2022-11-28T11:07:52.183063Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "test 10668\n" ] } ], "source": [ "ds, dl = exp._get_data('test')" ] }, { "cell_type": "code", "execution_count": 9, "id": "4630d105", "metadata": { "ExecuteTime": { "end_time": "2022-11-28T11:08:01.458832Z", "start_time": "2022-11-28T11:07:52.328094Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "test 10668\n", "loading model\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/333 [00:00" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "i=190\n", "(batch_x, batch_y, batch_x_mark, batch_y_mark) = ds[i]\n", "l1 = batch_x.shape[0]\n", "l2 = batch_y.shape[0]\n", "plt.plot(range(l1), batch_x[:, -1], label='past')\n", "plt.plot(range(l1, l1+l2), batch_y[:, -1], color='blue', ls='--', label='true')\n", "plt.plot(range(l1, l1+l2), preds[i], label='pred');\n", "plt.legend(loc='lower left')" ] }, { "cell_type": "code", "execution_count": null, "id": "b86fd6b0", "metadata": { "ExecuteTime": { "end_time": "2022-11-28T07:33:57.703528Z", "start_time": "2022-11-28T07:33:57.689258Z" } }, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "bb766173", "metadata": {}, "source": [ "# TODO check index" ] }, { "cell_type": "markdown", "id": "49c590e8", "metadata": {}, "source": [ "- s_end = index + self.seq_len\n", "- r_begin = index + self.seq_len - self.label_len\n", "- r_end = index + self.seq_len + self.pred_len" ] }, { "cell_type": "code", "execution_count": 12, "id": "12d58ee7", "metadata": { "ExecuteTime": { "end_time": "2022-11-28T11:08:01.743317Z", "start_time": "2022-11-28T11:08:01.597271Z" }, "scrolled": true }, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
closeref_closesec_closeRVOLs_50_12_2ref_2refMACDVs_3_10_9_2ref_2refMACDVs_8_24_9_2ref_2refRRVOLs_50_12_2ref_2refRSMKs_3_24_12_2ref_2refRSMKs_128_8_4_2ref_2refRRSs_12_12_12_2ref_2refVRRSs_5_21_12_2ref_2refRSMKs_18_144_72_2ref_2ref
date
2019-01-02 07:00:0060.7500246.390056.700.6345610.2288220.749770-0.0815720.7549480.0419740.4528820.094300-0.141763
2019-01-02 09:30:0060.2000246.300056.300.619485-0.1382710.516611-0.1595450.6907520.0373100.201226-0.050731-0.127774
2019-01-02 09:35:0059.8500246.520056.360.689500-0.5355640.191501-0.1047520.5533760.027199-0.217425-0.069932-0.117113
2019-01-02 09:40:0060.0600246.900156.700.746596-0.803242-0.130051-0.0707610.4029110.015511-0.473000-0.089949-0.109966
2019-01-02 09:45:0060.2350247.140056.690.701637-0.936439-0.409001-0.1305810.2636640.003868-0.679096-0.096488-0.105561
.......................................
2020-12-31 17:35:0017.3300374.210037.900.706492-0.129955-0.5517040.197178-0.842459-0.216290-3.579407-0.088556-1.118991
2020-12-31 18:30:0017.3200374.400037.960.615936-0.147461-0.5389420.174563-0.803874-0.213881-3.258388-0.075389-1.179880
2020-12-31 19:15:0017.3600374.390037.950.605291-0.105155-0.5081920.226633-0.756699-0.210656-2.735903-0.063731-1.239256
2020-12-31 19:20:0017.3501374.390037.950.592393-0.065321-0.4753750.268617-0.720279-0.207647-2.416748-0.053941-1.297199
2020-12-31 19:55:0017.4000374.390037.950.5048770.054870-0.4086120.198019-0.664792-0.201618-2.009522-0.045287-1.352772
\n", "

53398 rows × 12 columns

\n", "
" ], "text/plain": [ " close ref_close sec_close RVOLs_50_12_2ref_2ref \\\n", "date \n", "2019-01-02 07:00:00 60.7500 246.3900 56.70 0.634561 \n", "2019-01-02 09:30:00 60.2000 246.3000 56.30 0.619485 \n", "2019-01-02 09:35:00 59.8500 246.5200 56.36 0.689500 \n", "2019-01-02 09:40:00 60.0600 246.9001 56.70 0.746596 \n", "2019-01-02 09:45:00 60.2350 247.1400 56.69 0.701637 \n", "... ... ... ... ... \n", "2020-12-31 17:35:00 17.3300 374.2100 37.90 0.706492 \n", "2020-12-31 18:30:00 17.3200 374.4000 37.96 0.615936 \n", "2020-12-31 19:15:00 17.3600 374.3900 37.95 0.605291 \n", "2020-12-31 19:20:00 17.3501 374.3900 37.95 0.592393 \n", "2020-12-31 19:55:00 17.4000 374.3900 37.95 0.504877 \n", "\n", " MACDVs_3_10_9_2ref_2ref MACDVs_8_24_9_2ref_2ref \\\n", "date \n", "2019-01-02 07:00:00 0.228822 0.749770 \n", "2019-01-02 09:30:00 -0.138271 0.516611 \n", "2019-01-02 09:35:00 -0.535564 0.191501 \n", "2019-01-02 09:40:00 -0.803242 -0.130051 \n", "2019-01-02 09:45:00 -0.936439 -0.409001 \n", "... ... ... \n", "2020-12-31 17:35:00 -0.129955 -0.551704 \n", "2020-12-31 18:30:00 -0.147461 -0.538942 \n", "2020-12-31 19:15:00 -0.105155 -0.508192 \n", "2020-12-31 19:20:00 -0.065321 -0.475375 \n", "2020-12-31 19:55:00 0.054870 -0.408612 \n", "\n", " RRVOLs_50_12_2ref_2ref RSMKs_3_24_12_2ref_2ref \\\n", "date \n", "2019-01-02 07:00:00 -0.081572 0.754948 \n", "2019-01-02 09:30:00 -0.159545 0.690752 \n", "2019-01-02 09:35:00 -0.104752 0.553376 \n", "2019-01-02 09:40:00 -0.070761 0.402911 \n", "2019-01-02 09:45:00 -0.130581 0.263664 \n", "... ... ... \n", "2020-12-31 17:35:00 0.197178 -0.842459 \n", "2020-12-31 18:30:00 0.174563 -0.803874 \n", "2020-12-31 19:15:00 0.226633 -0.756699 \n", "2020-12-31 19:20:00 0.268617 -0.720279 \n", "2020-12-31 19:55:00 0.198019 -0.664792 \n", "\n", " RSMKs_128_8_4_2ref_2ref RRSs_12_12_12_2ref_2ref \\\n", "date \n", "2019-01-02 07:00:00 0.041974 0.452882 \n", "2019-01-02 09:30:00 0.037310 0.201226 \n", "2019-01-02 09:35:00 0.027199 -0.217425 \n", "2019-01-02 09:40:00 0.015511 -0.473000 \n", "2019-01-02 09:45:00 0.003868 -0.679096 \n", "... ... ... \n", "2020-12-31 17:35:00 -0.216290 -3.579407 \n", "2020-12-31 18:30:00 -0.213881 -3.258388 \n", "2020-12-31 19:15:00 -0.210656 -2.735903 \n", "2020-12-31 19:20:00 -0.207647 -2.416748 \n", "2020-12-31 19:55:00 -0.201618 -2.009522 \n", "\n", " VRRSs_5_21_12_2ref_2ref RSMKs_18_144_72_2ref_2ref \n", "date \n", "2019-01-02 07:00:00 0.094300 -0.141763 \n", "2019-01-02 09:30:00 -0.050731 -0.127774 \n", "2019-01-02 09:35:00 -0.069932 -0.117113 \n", "2019-01-02 09:40:00 -0.089949 -0.109966 \n", "2019-01-02 09:45:00 -0.096488 -0.105561 \n", "... ... ... \n", "2020-12-31 17:35:00 -0.088556 -1.118991 \n", "2020-12-31 18:30:00 -0.075389 -1.179880 \n", "2020-12-31 19:15:00 -0.063731 -1.239256 \n", "2020-12-31 19:20:00 -0.053941 -1.297199 \n", "2020-12-31 19:55:00 -0.045287 -1.352772 \n", "\n", "[53398 rows x 12 columns]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f = ds.root_path + '/' + ds.data_path\n", "df = pd.read_csv(f).set_index('date', drop=False)\n", "df = df[ds.cols[1:]]\n", "# df[:] = ds.scaler.transform(df.values)\n", "df\n", "# df" ] }, { "cell_type": "code", "execution_count": 13, "id": "1459473b", "metadata": { "ExecuteTime": { "end_time": "2022-11-28T11:08:01.889732Z", "start_time": "2022-11-28T11:08:01.744889Z" } }, "outputs": [ { "data": { "text/plain": [ "array([ 1.24250000e+01, 3.54330000e+02, 3.52700000e+01, 6.24194744e-01,\n", " -1.20630267e-01, 4.64484086e-01, -3.96678363e-01, 1.04169477e+00,\n", " -2.88024043e-02, -4.61072831e-01, -9.81798622e-03, -3.57276350e+00])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from data_provider.data_loader import Dataset_Custom\n", "ds2 = Dataset_Custom(\n", " ds.root_path,\n", " flag=\"test\",\n", "# size=ds.size,\n", " size=[ds.seq_len, ds.label_len, ds.pred_len],\n", " features=ds.features,\n", " data_path=ds.data_path,\n", " target=ds.target,\n", " scale=False,\n", " timeenc=ds.timeenc,\n", " freq=ds.freq\n", ")\n", "\n", "i=99\n", "(batch_x, batch_y, batch_x_mark, batch_y_mark) = ds2[i]\n", "batch_x[-1]" ] }, { "cell_type": "code", "execution_count": 14, "id": "c443acdd", "metadata": { "ExecuteTime": { "end_time": "2022-11-28T11:08:01.914709Z", "start_time": "2022-11-28T11:08:01.890955Z" } }, "outputs": [ { "data": { "text/plain": [ "close 12.425000\n", "ref_close 354.330000\n", "sec_close 35.270000\n", "RVOLs_50_12_2ref_2ref 0.624195\n", "MACDVs_3_10_9_2ref_2ref -0.120630\n", "MACDVs_8_24_9_2ref_2ref 0.464484\n", "RRVOLs_50_12_2ref_2ref -0.396678\n", "RSMKs_3_24_12_2ref_2ref 1.041695\n", "RSMKs_128_8_4_2ref_2ref -0.028802\n", "RRSs_12_12_12_2ref_2ref -0.461073\n", "VRRSs_5_21_12_2ref_2ref -0.009818\n", "RSMKs_18_144_72_2ref_2ref -3.572763\n", "Name: 2020-09-02 11:20:00, dtype: float64" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dt = ds2.index.iloc[i-1]\n", "df.loc[dt]" ] }, { "cell_type": "code", "execution_count": 15, "id": "c34d925b", "metadata": { "ExecuteTime": { "end_time": "2022-11-28T11:08:01.938923Z", "start_time": "2022-11-28T11:08:01.915802Z" } }, "outputs": [ { "data": { "text/plain": [ "'OK'" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "assert df.loc[dt].close == batch_x[-1, 0], 'index should be right'\n", "'OK'" ] }, { "cell_type": "code", "execution_count": null, "id": "a1bbd05b", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "d99af325", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "234c99f3", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "deeptime", "language": "python", "name": "deeptime" }, "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.13" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 5 }