{"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":"markdown","source":"Taking advantage of usually negative autoccorelation of log returns.\nFor an explanation (And More !) see my EDA notebook here: https://www.kaggle.com/lucasmorin/crypto-forecasting-intro-eda/","metadata":{}},{"cell_type":"code","source":"import gresearch_crypto\nimport numpy as np\nimport pandas as pd\n\nenv = gresearch_crypto.make_env()\niter_test = env.iter_test()\n\nasset_details = pd.read_csv('../input/g-research-crypto-forecasting/asset_details.csv')\n#create dictionnary of weights\ndict_weights = {}\n\nfor i in range(asset_details.shape[0]):\n    dict_weights[asset_details.iloc[i,0]] = asset_details.iloc[i,1]\n    \nfor i, (df_test, df_pred) in enumerate(iter_test):\n    \n    df_test['weights'] = df_test.Asset_ID.map(dict_weights).fillna(0)\n    df_test['log_ret'] = np.log(df_test.Close/df_test.Open).fillna(0)\n    \n    df_pred.Target = -(df_test['log_ret'] - (df_test['weights'] * df_test['log_ret']).sum() / df_test['weights'].sum())\n\n    env.predict(df_pred)","metadata":{"execution":{"iopub.status.busy":"2021-11-04T11:35:11.286122Z","iopub.execute_input":"2021-11-04T11:35:11.286431Z","iopub.status.idle":"2021-11-04T11:35:11.309689Z","shell.execute_reply.started":"2021-11-04T11:35:11.286401Z","shell.execute_reply":"2021-11-04T11:35:11.309136Z"},"trusted":true},"execution_count":null,"outputs":[]}]}