{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2021-11-04T11:21:54.830897Z","iopub.execute_input":"2021-11-04T11:21:54.832237Z","iopub.status.idle":"2021-11-04T11:21:54.875551Z","shell.execute_reply.started":"2021-11-04T11:21:54.832064Z","shell.execute_reply":"2021-11-04T11:21:54.874240Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import random\nimport gc\nfrom sklearn.preprocessing import RobustScaler,StandardScaler\nfrom sklearn.model_selection import StratifiedKFold\nfrom sklearn import metrics\nfrom lightgbm import LGBMClassifier\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import roc_curve,RocCurveDisplay,ConfusionMatrixDisplay,confusion_matrix,roc_auc_score,accuracy_score\n\nimport plotly.express as px\nimport plotly.graph_objects as go\nfrom plotly.subplots import make_subplots\nfrom sklearn import preprocessing\nimport seaborn as sns\n\nimport matplotlib.pyplot as plt\n%matplotlib inline","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:21:56.849850Z","iopub.execute_input":"2021-11-04T11:21:56.850583Z","iopub.status.idle":"2021-11-04T11:21:59.982809Z","shell.execute_reply.started":"2021-11-04T11:21:56.850545Z","shell.execute_reply":"2021-11-04T11:21:59.981552Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train = pd.read_csv('../input/g-research-crypto-forecasting/train.csv') \ntest = pd.read_csv('../input/g-research-crypto-forecasting/example_test.csv') \nsub = pd.read_csv('../input/g-research-crypto-forecasting/example_sample_submission.csv') \nasset_details = pd.read_csv('../input/g-research-crypto-forecasting/asset_details.csv')  ","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:53:24.616610Z","iopub.execute_input":"2021-11-04T11:53:24.616960Z","iopub.status.idle":"2021-11-04T11:54:15.045392Z","shell.execute_reply.started":"2021-11-04T11:53:24.616928Z","shell.execute_reply":"2021-11-04T11:54:15.044083Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Some Exploratory Data Analysis","metadata":{}},{"cell_type":"code","source":"train.head()","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:54:15.047578Z","iopub.execute_input":"2021-11-04T11:54:15.047822Z","iopub.status.idle":"2021-11-04T11:54:15.067317Z","shell.execute_reply.started":"2021-11-04T11:54:15.047792Z","shell.execute_reply":"2021-11-04T11:54:15.066039Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test.head()","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:54:15.068908Z","iopub.execute_input":"2021-11-04T11:54:15.069751Z","iopub.status.idle":"2021-11-04T11:54:15.094919Z","shell.execute_reply.started":"2021-11-04T11:54:15.069710Z","shell.execute_reply":"2021-11-04T11:54:15.093684Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(f\"We have {train.shape[0]} rows in the training set while we have {test.shape[0]} in the test set\")","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:54:15.097542Z","iopub.execute_input":"2021-11-04T11:54:15.097907Z","iopub.status.idle":"2021-11-04T11:54:15.103473Z","shell.execute_reply.started":"2021-11-04T11:54:15.097861Z","shell.execute_reply":"2021-11-04T11:54:15.102237Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.info()","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:54:15.105080Z","iopub.execute_input":"2021-11-04T11:54:15.105518Z","iopub.status.idle":"2021-11-04T11:54:15.127786Z","shell.execute_reply.started":"2021-11-04T11:54:15.105482Z","shell.execute_reply":"2021-11-04T11:54:15.126629Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test.info()","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:54:15.129578Z","iopub.execute_input":"2021-11-04T11:54:15.129875Z","iopub.status.idle":"2021-11-04T11:54:15.153104Z","shell.execute_reply.started":"2021-11-04T11:54:15.129831Z","shell.execute_reply":"2021-11-04T11:54:15.152085Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#Check if there'is null values\ntrain.isnull().sum()","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:54:15.154608Z","iopub.execute_input":"2021-11-04T11:54:15.155069Z","iopub.status.idle":"2021-11-04T11:54:15.633045Z","shell.execute_reply.started":"2021-11-04T11:54:15.155033Z","shell.execute_reply":"2021-11-04T11:54:15.632111Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"(750338/train.shape[0])*100","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:54:15.634852Z","iopub.execute_input":"2021-11-04T11:54:15.635305Z","iopub.status.idle":"2021-11-04T11:54:15.641511Z","shell.execute_reply.started":"2021-11-04T11:54:15.635257Z","shell.execute_reply":"2021-11-04T11:54:15.640451Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"* we have 750338 rows with null target value!!! which means that 3% of the training set with null target ","metadata":{}},{"cell_type":"code","source":"#Check if there'is null values\ntest.isnull().sum()","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:54:15.643076Z","iopub.execute_input":"2021-11-04T11:54:15.643354Z","iopub.status.idle":"2021-11-04T11:54:15.660653Z","shell.execute_reply.started":"2021-11-04T11:54:15.643323Z","shell.execute_reply":"2021-11-04T11:54:15.659223Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.describe()","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:54:15.662838Z","iopub.execute_input":"2021-11-04T11:54:15.663395Z","iopub.status.idle":"2021-11-04T11:54:24.403045Z","shell.execute_reply.started":"2021-11-04T11:54:15.663359Z","shell.execute_reply":"2021-11-04T11:54:24.401893Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test.describe()","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:54:24.404270Z","iopub.execute_input":"2021-11-04T11:54:24.404488Z","iopub.status.idle":"2021-11-04T11:54:24.453296Z","shell.execute_reply.started":"2021-11-04T11:54:24.404462Z","shell.execute_reply":"2021-11-04T11:54:24.452211Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"asset_details","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:54:24.454880Z","iopub.execute_input":"2021-11-04T11:54:24.455155Z","iopub.status.idle":"2021-11-04T11:54:24.467116Z","shell.execute_reply.started":"2021-11-04T11:54:24.455102Z","shell.execute_reply":"2021-11-04T11:54:24.466525Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sub.head()","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:54:24.468394Z","iopub.execute_input":"2021-11-04T11:54:24.469338Z","iopub.status.idle":"2021-11-04T11:54:24.483474Z","shell.execute_reply.started":"2021-11-04T11:54:24.469297Z","shell.execute_reply":"2021-11-04T11:54:24.482414Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train[train['timestamp']==1514764860]","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:54:24.485163Z","iopub.execute_input":"2021-11-04T11:54:24.485454Z","iopub.status.idle":"2021-11-04T11:54:24.588322Z","shell.execute_reply.started":"2021-11-04T11:54:24.485412Z","shell.execute_reply":"2021-11-04T11:54:24.587211Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# after 60 seconds\ntrain[train['timestamp']==1514764920]","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:54:24.591264Z","iopub.execute_input":"2021-11-04T11:54:24.591510Z","iopub.status.idle":"2021-11-04T11:54:24.635893Z","shell.execute_reply.started":"2021-11-04T11:54:24.591482Z","shell.execute_reply":"2021-11-04T11:54:24.634988Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Target distribution\nplt.figure(figsize = (12,6))\nsns.distplot(train.Target, kde = True, hist=True)","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:54:49.416150Z","iopub.execute_input":"2021-11-04T11:54:49.416700Z","iopub.status.idle":"2021-11-04T11:56:20.101231Z","shell.execute_reply.started":"2021-11-04T11:54:49.416651Z","shell.execute_reply":"2021-11-04T11:56:20.099844Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train['timestamp'] = pd.to_datetime(train['timestamp'], unit='s')\ntrain['timestamp'] = pd.to_datetime(train['timestamp']).dt.to_period('D')\n\ntrain['avg_Volume_per_Day'] = train.groupby('timestamp').Volume.transform('mean')\ntrain['avg_Close_per_Day'] = train.groupby('timestamp').Close.transform('mean')\ntrain['avg_Low_per_Day'] = train.groupby('timestamp').Low.transform('mean')\ntrain['avg_High_per_Day'] = train.groupby('timestamp').High.transform('mean')\ntrain['avg_Open_per_Day'] = train.groupby('timestamp').Open.transform('mean')\ntrain['avg_Count_per_Day'] = train.groupby('timestamp').Count.transform('mean')\ntrain['avg_VWAP_per_Day'] = train.groupby('timestamp').VWAP.transform('mean')\ntrain['avg_Target_per_Day'] = train.groupby('timestamp').Target.transform('mean')\ntrain.head(5)","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:23:39.207616Z","iopub.execute_input":"2021-11-04T11:23:39.208026Z","iopub.status.idle":"2021-11-04T11:23:50.686782Z","shell.execute_reply.started":"2021-11-04T11:23:39.207985Z","shell.execute_reply":"2021-11-04T11:23:50.685238Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data  = train.drop_duplicates(subset=['timestamp'])","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:23:50.688715Z","iopub.execute_input":"2021-11-04T11:23:50.688999Z","iopub.status.idle":"2021-11-04T11:46:26.650323Z","shell.execute_reply.started":"2021-11-04T11:23:50.688966Z","shell.execute_reply":"2021-11-04T11:46:26.648021Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data","metadata":{"execution":{"iopub.status.busy":"2021-11-04T10:55:25.436093Z","iopub.execute_input":"2021-11-04T10:55:25.436559Z","iopub.status.idle":"2021-11-04T10:55:25.486866Z","shell.execute_reply.started":"2021-11-04T10:55:25.436489Z","shell.execute_reply":"2021-11-04T10:55:25.486050Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"* <h3>The data is about historic trades from 2018-01-01 to 2021-09-21 (1360 Days).</h3>","metadata":{}},{"cell_type":"code","source":"data = data.set_index(\"timestamp\")","metadata":{"execution":{"iopub.status.busy":"2021-11-04T10:57:35.138068Z","iopub.execute_input":"2021-11-04T10:57:35.138427Z","iopub.status.idle":"2021-11-04T10:57:35.145973Z","shell.execute_reply.started":"2021-11-04T10:57:35.138393Z","shell.execute_reply":"2021-11-04T10:57:35.145310Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"moving_average = data['avg_Open_per_Day'].rolling(window=1,       # 1 day window\n    center=True,      # puts the average at the center of the window \n).mean()              # compute the mean (could also do median, std, min, max, ...)\n\nax = data['avg_Open_per_Day'].plot(style=\".\", color=\"0.5\",figsize=(24,5))\nmoving_average.plot(ax=ax, linewidth=3, title=\"avg_Open_per_Day\", legend=False);","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:07:56.599035Z","iopub.execute_input":"2021-11-04T11:07:56.600065Z","iopub.status.idle":"2021-11-04T11:07:57.377019Z","shell.execute_reply.started":"2021-11-04T11:07:56.600023Z","shell.execute_reply":"2021-11-04T11:07:57.375814Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"moving_average = data['avg_High_per_Day'].rolling(window=1, center=True).mean()             \n\nax = data['avg_High_per_Day'].plot(style=\".\", color=\"0.5\",figsize=(24,5))\nmoving_average.plot(ax=ax, linewidth=3, title=\"avg_High_per_Day\", legend=False);","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:08:53.401527Z","iopub.execute_input":"2021-11-04T11:08:53.402328Z","iopub.status.idle":"2021-11-04T11:08:54.183725Z","shell.execute_reply.started":"2021-11-04T11:08:53.402252Z","shell.execute_reply":"2021-11-04T11:08:54.182602Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"moving_average = data['avg_Low_per_Day'].rolling(window=1,center=True).mean()              \n\nax = data['avg_Low_per_Day'].plot(style=\".\", color=\"0.5\",figsize=(24,5))\nmoving_average.plot(ax=ax, linewidth=3, title=\"avg_Low_per_Day\", legend=False);","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:10:05.289326Z","iopub.execute_input":"2021-11-04T11:10:05.289685Z","iopub.status.idle":"2021-11-04T11:10:06.039584Z","shell.execute_reply.started":"2021-11-04T11:10:05.289648Z","shell.execute_reply":"2021-11-04T11:10:06.038367Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"moving_average = data['avg_Close_per_Day'].rolling(window=1,center=True).mean()              \n\nax = data['avg_Close_per_Day'].plot(style=\".\", color=\"0.5\",figsize=(24,5))\nmoving_average.plot(ax=ax, linewidth=3, title=\"avg_close_per_Day\", legend=False);","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:15:27.788369Z","iopub.execute_input":"2021-11-04T11:15:27.789066Z","iopub.status.idle":"2021-11-04T11:15:28.568987Z","shell.execute_reply.started":"2021-11-04T11:15:27.789024Z","shell.execute_reply":"2021-11-04T11:15:28.567839Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"moving_average = data['avg_VWAP_per_Day'].rolling(window=1,center=True).mean()\n\nax = data['avg_VWAP_per_Day'].plot(style=\".\", color=\"0.5\",figsize=(24,5))\nmoving_average.plot(ax=ax, linewidth=3, title=\"avg_VWAP_per_Day\", legend=False);","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:12:22.068855Z","iopub.execute_input":"2021-11-04T11:12:22.069247Z","iopub.status.idle":"2021-11-04T11:12:22.833860Z","shell.execute_reply.started":"2021-11-04T11:12:22.069208Z","shell.execute_reply":"2021-11-04T11:12:22.833156Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"moving_average = data['avg_Volume_per_Day'].rolling(window=1,center=True).mean()              \n\nax = data['avg_Volume_per_Day'].plot(style=\".\", color=\"0.5\",figsize=(24,5))\nmoving_average.plot(ax=ax, linewidth=3, title=\"avg_Volume_per_Day\", legend=False);","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:11:00.126509Z","iopub.execute_input":"2021-11-04T11:11:00.126991Z","iopub.status.idle":"2021-11-04T11:11:00.910443Z","shell.execute_reply.started":"2021-11-04T11:11:00.126954Z","shell.execute_reply":"2021-11-04T11:11:00.909617Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"moving_average = data['avg_Target_per_Day'].rolling(window=1,center=True).mean()              \n\nax = data['avg_Target_per_Day'].plot(style=\".\", color=\"0.5\",figsize=(24,5))\nmoving_average.plot(ax=ax, linewidth=3, title=\"avg_Target_per_Day\", legend=False);","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:16:07.857667Z","iopub.execute_input":"2021-11-04T11:16:07.857983Z","iopub.status.idle":"2021-11-04T11:16:08.680834Z","shell.execute_reply.started":"2021-11-04T11:16:07.857951Z","shell.execute_reply":"2021-11-04T11:16:08.679975Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"corr = train[['Count', 'Open', 'High', 'Low', 'Close','Volume', 'VWAP', 'Target']].corr()\ncorr.style.background_gradient(cmap='coolwarm').set_precision(5)","metadata":{"execution":{"iopub.status.busy":"2021-11-04T12:11:21.773110Z","iopub.execute_input":"2021-11-04T12:11:21.774694Z","iopub.status.idle":"2021-11-04T12:11:30.567058Z","shell.execute_reply.started":"2021-11-04T12:11:21.774622Z","shell.execute_reply":"2021-11-04T12:11:30.565698Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#scatter plot avg_Close_per_Day/avg_High_per_Day\ndata.plot.scatter(x=\"avg_Close_per_Day\", y='avg_High_per_Day');","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:48:45.555486Z","iopub.execute_input":"2021-11-04T11:48:45.555840Z","iopub.status.idle":"2021-11-04T11:48:45.809636Z","shell.execute_reply.started":"2021-11-04T11:48:45.555804Z","shell.execute_reply":"2021-11-04T11:48:45.808552Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#scatter plot avg_Close_per_Day/avg_Low_per_Day\ndata.plot.scatter(x=\"avg_Close_per_Day\", y='avg_Low_per_Day');","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:49:03.357626Z","iopub.execute_input":"2021-11-04T11:49:03.357964Z","iopub.status.idle":"2021-11-04T11:49:03.595458Z","shell.execute_reply.started":"2021-11-04T11:49:03.357929Z","shell.execute_reply":"2021-11-04T11:49:03.594208Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#scatter plot avg_Close_per_Day/avg_Open_per_Day\ndata.plot.scatter(x=\"avg_Close_per_Day\", y='avg_Open_per_Day');","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:49:12.453567Z","iopub.execute_input":"2021-11-04T11:49:12.453873Z","iopub.status.idle":"2021-11-04T11:49:12.689473Z","shell.execute_reply.started":"2021-11-04T11:49:12.453842Z","shell.execute_reply":"2021-11-04T11:49:12.688573Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#scatter plot avg_Close_per_Day/avg_VWAP_per_Day\ndata.plot.scatter(x=\"avg_Close_per_Day\", y='avg_VWAP_per_Day');","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:49:19.611893Z","iopub.execute_input":"2021-11-04T11:49:19.612251Z","iopub.status.idle":"2021-11-04T11:49:19.849709Z","shell.execute_reply.started":"2021-11-04T11:49:19.612212Z","shell.execute_reply":"2021-11-04T11:49:19.848473Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<b>* Close, High, Low, Volume, Open and VWAP are friends, with a linear relationship 😋","metadata":{}},{"cell_type":"code","source":"#scatter plot avg_Close_per_Day/avg_Count_per_Day\ndata.plot.scatter(x=\"avg_Close_per_Day\", y='avg_Count_per_Day');","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:49:23.052758Z","iopub.execute_input":"2021-11-04T11:49:23.053153Z","iopub.status.idle":"2021-11-04T11:49:23.325703Z","shell.execute_reply.started":"2021-11-04T11:49:23.053090Z","shell.execute_reply":"2021-11-04T11:49:23.324322Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#scatter plot avg_Volume_per_Day/avg_Target_per_Day\ndata.plot.scatter(x=\"avg_Volume_per_Day\", y='avg_Target_per_Day');","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:49:32.540784Z","iopub.execute_input":"2021-11-04T11:49:32.541131Z","iopub.status.idle":"2021-11-04T11:49:32.808334Z","shell.execute_reply.started":"2021-11-04T11:49:32.541080Z","shell.execute_reply":"2021-11-04T11:49:32.807330Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#drop null values\ntrain = train.dropna()\ntrain_median = train.Target.median()\ntrain_median","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:50:32.504513Z","iopub.execute_input":"2021-11-04T11:50:32.505615Z","iopub.status.idle":"2021-11-04T11:50:36.552586Z","shell.execute_reply.started":"2021-11-04T11:50:32.505563Z","shell.execute_reply":"2021-11-04T11:50:36.551694Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Submission","metadata":{}},{"cell_type":"code","source":"# make submission with the target median\nimport gresearch_crypto\nenv = gresearch_crypto.make_env()\niter_test = env.iter_test()\nfor (test, sample_prediction_df) in iter_test:\n    sample_prediction_df['Target'] = train_median\n    env.predict(sample_prediction_df)","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:51:58.924524Z","iopub.execute_input":"2021-11-04T11:51:58.924922Z","iopub.status.idle":"2021-11-04T11:51:58.993067Z","shell.execute_reply.started":"2021-11-04T11:51:58.924888Z","shell.execute_reply":"2021-11-04T11:51:58.992141Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# In Progress .... 🏂🏻","metadata":{}}]}