diff --git a/Finacial Domain/Hedging Cryptocurrencies with Reinforcement Learning/Hedging Cryptocurrencies with Reinforcement Learning.ipynb b/Finacial Domain/Hedging Cryptocurrencies with Reinforcement Learning/Hedging Cryptocurrencies with Reinforcement Learning.ipynb new file mode 100644 index 00000000..adae14bd --- /dev/null +++ b/Finacial Domain/Hedging Cryptocurrencies with Reinforcement Learning/Hedging Cryptocurrencies with Reinforcement Learning.ipynb @@ -0,0 +1,305 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "n8szbAmCvYJe" + }, + "execution_count": 27, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "Step 1: Import Libraries" + ], + "metadata": { + "id": "F3MWrhP6vXVy" + } + }, + { + "cell_type": "code", + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from collections import defaultdict\n", + "import random\n" + ], + "metadata": { + "id": "XioFkLikuP7c" + }, + "execution_count": 28, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "Step 2: Define the Environment" + ], + "metadata": { + "id": "Q_LkWvKzvaTL" + } + }, + { + "cell_type": "code", + "source": [ + "class CryptoEnv:\n", + " def __init__(self, price_data):\n", + " self.price_data = price_data\n", + " self.n_steps = len(price_data)\n", + " self.current_step = 0\n", + " self.done = False\n", + " self.position = 0 # 0: no position, 1: long, -1: short\n", + " self.initial_balance = 10000\n", + " self.balance = self.initial_balance\n", + " self.portfolio_value = self.initial_balance\n", + "\n", + " def reset(self):\n", + " self.current_step = 0\n", + " self.done = False\n", + " self.position = 0\n", + " self.balance = self.initial_balance\n", + " self.portfolio_value = self.initial_balance\n", + " return self._get_observation()\n", + "\n", + " def _get_observation(self):\n", + " return self.price_data[self.current_step], self.position\n", + "\n", + " def step(self, action):\n", + " # Actions: 0: hold, 1: long, 2: short\n", + " reward = 0\n", + " if action == 1 and self.position != 1:\n", + " self.position = 1\n", + " self.portfolio_value += self.price_data[self.current_step] - self.price_data[self.current_step - 1]\n", + " elif action == 2 and self.position != -1:\n", + " self.position = -1\n", + " self.portfolio_value -= self.price_data[self.current_step] - self.price_data[self.current_step - 1]\n", + " elif action == 0:\n", + " self.portfolio_value += 0\n", + "\n", + " self.balance = self.portfolio_value\n", + "\n", + " self.current_step += 1\n", + " if self.current_step >= self.n_steps:\n", + " self.done = True\n", + "\n", + " return self._get_observation(), reward, self.done, {}\n", + "\n", + " def render(self):\n", + " print(f'Step: {self.current_step}, Position: {self.position}, Balance: {self.balance}')\n" + ], + "metadata": { + "id": "A-napWJVvcKe" + }, + "execution_count": 29, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "Step 3: Define the Q-learning Agent" + ], + "metadata": { + "id": "RJY7WeNwvmVj" + } + }, + { + "cell_type": "code", + "source": [ + "class QLearningAgent:\n", + " def __init__(self, action_space, state_space, alpha=0.1, gamma=0.99, epsilon=0.1):\n", + " self.action_space = action_space\n", + " self.state_space = state_space\n", + " self.alpha = alpha # Learning rate\n", + " self.gamma = gamma # Discount factor\n", + " self.epsilon = epsilon # Exploration rate\n", + " self.q_table = defaultdict(lambda: np.zeros(action_space))\n", + "\n", + " def choose_action(self, state):\n", + " if random.uniform(0, 1) < self.epsilon:\n", + " return random.choice(range(self.action_space))\n", + " else:\n", + " return np.argmax(self.q_table[state])\n", + "\n", + " def learn(self, state, action, reward, next_state):\n", + " predict = self.q_table[state][action]\n", + " target = reward + self.gamma * np.max(self.q_table[next_state])\n", + " self.q_table[state][action] += self.alpha * (target - predict)\n" + ], + "metadata": { + "id": "jE3Acp5vvuvQ" + }, + "execution_count": 30, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "Step 4: Train the Agent" + ], + "metadata": { + "id": "_HqLe0jBvw8R" + } + }, + { + "source": [ + "class CryptoEnv:\n", + " def __init__(self, price_data):\n", + " self.price_data = price_data\n", + " self.n_steps = len(price_data)\n", + " self.current_step = 0\n", + " self.done = False\n", + " self.position = 0 # 0: no position, 1: long, -1: short\n", + " self.initial_balance = 10000\n", + " self.balance = self.initial_balance\n", + " self.portfolio_value = self.initial_balance\n", + "\n", + " def reset(self):\n", + " self.current_step = 0\n", + " self.done = False\n", + " self.position = 0\n", + " self.balance = self.initial_balance\n", + " self.portfolio_value = self.initial_balance\n", + " return self._get_observation()\n", + "\n", + " def _get_observation(self):\n", + " # Ensure current_step is within bounds\n", + " if self.current_step < self.n_steps:\n", + " return self.price_data[self.current_step], self.position\n", + " else:\n", + " return None, self.position # Or handle the out-of-bounds situation differently\n", + "\n", + " def step(self, action):\n", + " # Actions: 0: hold, 1: long, 2: short\n", + " reward = 0\n", + " if action == 1 and self.position != 1:\n", + " self.position = 1\n", + " # Avoid accessing out-of-bounds index when current_step is 0\n", + " if self.current_step > 0:\n", + " self.portfolio_value += self.price_data[self.current_step] - self.price_data[self.current_step - 1]\n", + " elif action == 2 and self.position != -1:\n", + " self.position = -1\n", + " # Avoid accessing out-of-bounds index when current_step is 0\n", + " if self.current_step > 0:\n", + " self.portfolio_value -= self.price_data[self.current_step] - self.price_data[self.current_step - 1]\n", + " elif action == 0:\n", + " self.portfolio_value += 0\n", + "\n", + " self.balance = self.portfolio_value\n", + "\n", + " self.current_step += 1\n", + " if self.current_step >= self.n_steps:\n", + " self.done = True\n", + "\n", + " return self._get_observation(), reward, self.done, {}\n", + "\n", + " def render(self):\n", + " print(f'Step: {self.current_step}, Position: {self.position}, Balance: {self.balance}')" + ], + "cell_type": "code", + "metadata": { + "id": "jDturqmrxiBW" + }, + "execution_count": 31, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "Step 5: Evaluate the Agent" + ], + "metadata": { + "id": "4jwPruYQv_Io" + } + }, + { + "cell_type": "code", + "source": [ + "# Visualization 1: Plot portfolio value over time\n", + "plt.plot([i for i in range(env.n_steps)], [env.price_data[i] for i in range(env.n_steps)])\n", + "plt.xlabel('Time Step')\n", + "plt.ylabel('Portfolio Value')\n", + "plt.title('Portfolio Value over Time')\n", + "plt.show()\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 472 + }, + "id": "QmSmegbg0bl9", + "outputId": "305dd673-10e9-440c-be94-25052288af58" + }, + "execution_count": 32, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "plt.hist(actions_taken, bins=range(agent.action_space + 1), align='left', rwidth=0.8)\n", + "plt.xticks(range(agent.action_space), ['Hold', 'Long', 'Short'])\n", + "plt.xlabel('Action')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Distribution of Actions Taken')\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 472 + }, + "id": "bHOkcYMW3jhC", + "outputId": "e4969825-1df4-4f01-a4ba-fe995df05187" + }, + "execution_count": 33, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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+9ZzPz8/jR8/XgkJCYqKilKDBg00efLkIvsuX75c7dq1U0pKigICAiRJ06ZN07Bhw3TixAm5urre1DmzsrLk4+OjzMxM5uwAAHCXuNnf3yVmzk5+fr4+//xz5eTkKCIiwto+Z84cVaxYUfXq1VNiYqLOnTtn3ZacnKz69etbg44kxcTEKCsrS7t3777muXJzc5WVlWWzAAAAc3L601i7du1SRESELly4IE9PTy1atEhhYWGSpK5duyokJERBQUHauXOnhg0bpn379mnhwoWSpLS0NJugI8m6npaWds1zJiUlafTo0cV0RQAAoCRxetipXbu2tm/frszMTH3xxReKj4/Xhg0bFBYWpj59+lj71a9fX5UrV1aLFi108OBB1ahRw+5zJiYmavDgwdb1y8/pAwAA83H6x1iurq6qWbOmGjZsqKSkJN1///2aMmVKkX2bNGkiSTpw4IAkKTAwUOnp6TZ9Lq8HBgZe85xubm7WJ8B4tw4AAObm9LBztYKCAuXm5ha5bfv27ZKkypUrS5IiIiK0a9cuZWRkWPusWrVK3t7e1o/CAADA35tTP8ZKTExUmzZtVLVqVZ09e1Zz587V+vXrtXLlSh08eFBz585V27ZtVaFCBe3cuVODBg3SY489pvDwcElSq1atFBYWph49emjcuHFKS0vTiBEj1K9fP7m5uTnz0gAAQAnh1LCTkZGhnj17KjU1VT4+PgoPD9fKlSvVsmVLHTt2TKtXr9bkyZOVk5Oj4OBgxcXFacSIEdb9XVxctHTpUvXt21cRERHy8PBQfHy8zXt5AADA31uJe8+OM/CeHQAA7j533Xt2AAAAigNhBwAAmBphBwAAmJrTXypodqGvLnN2CXCyw2/HOrsEAPhbY2QHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYGmEHAACYmlPDztSpUxUeHi5vb295e3sr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qRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqRF2AACAqTk17GzcuFHt27dXUFCQLBaLFi9ebLPdMAy98cYbqly5ssqVK6fo6Gjt37/fps+pU6fUrVs3eXt7y9fXVwkJCcrOzr6DVwEAAEoyp4adnJwc3X///frwww+L3D5u3Di99957mjZtmrZs2SIPDw/FxMTowoUL1j7dunXT7t27tWrVKi1dulQbN25Unz597tQlAACAEq60M0/epk0btWnTpshthmFo8uTJGjFihDp06CBJmj17tgICArR48WJ16dJFe/bs0YoVK/Tjjz/qoYcekiS9//77atu2rd59910FBQXdsWsBAAAlU4mds3Po0CGlpaUpOjra2ubj46MmTZooOTlZkpScnCxfX19r0JGk6OholSpVSlu2bLnmsXNzc5WVlWWzAAAAcyqxYSctLU2SFBAQYNMeEBBg3ZaWliZ/f3+b7aVLl5afn5+1T1GSkpLk4+NjXYKDgx1cPQAAKClKbNgpTomJicrMzLQux44dc3ZJAACgmJTYsBMYGChJSk9Pt2lPT0+3bgsMDFRGRobN9ry8PJ06dcrapyhubm7y9va2WQAAgDmV2LBTrVo1BQYGas2aNda2rKwsbdmyRREREZKkiIgInTlzRtu2bbP2Wbt2rQoKCtSkSZM7XjMAACh5nPo0VnZ2tg4cOGBdP3TokLZv3y4/Pz9VrVpVAwcO1JtvvqlatWqpWrVqev311xUUFKQnn3xSklSnTh21bt1azz33nKZNm6ZLly6pf//+6tKlC09iAQAASU4OO1u3btXjjz9uXR88eLAkKT4+XjNnztQrr7yinJwc9enTR2fOnFHTpk21YsUKlS1b1rrPnDlz1L9/f7Vo0UKlSpVSXFyc3nvvvTt+LQAAoGSyGIZhOLsIZ8vKypKPj48yMzMdPn8n9NVlDj0e7j6H3451dgkAYEo3+/u7xM7ZAQAAcATCDgAAMDXC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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "05RWQB7a3doj" + }, + "execution_count": 33, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/Finacial Domain/Hedging Cryptocurrencies with Reinforcement Learning/crypto_price_data.csv b/Finacial Domain/Hedging Cryptocurrencies with Reinforcement Learning/crypto_price_data.csv new file mode 100644 index 00000000..41802be8 --- /dev/null +++ b/Finacial Domain/Hedging Cryptocurrencies with Reinforcement Learning/crypto_price_data.csv @@ -0,0 +1,366 @@ +date,price +2023-01-01,10000.0 +2023-01-02,10109.342830602245 +2023-01-03,10091.496948997385 +2023-01-04,10232.311384069257 +2023-01-05,10554.22601021335 +2023-01-06,10515.354083465878 +2023-01-07,10476.628777422427 +2023-01-08,10818.00193477223 +2023-01-09,10994.862144402754 +2023-01-10,10902.620883473497 +2023-01-11,11031.830033591743 +2023-01-12,10940.614959192008 +2023-01-13,10849.64817597417 +2023-01-14,10913.001934517164 +2023-01-15,10506.3223162272 +2023-01-16,10154.377784195629 +2023-01-17,10050.338562074729 +2023-01-18,9856.802987325475 +2023-01-19,9928.609271246482 +2023-01-20,9758.22955542303 +2023-01-21,9492.356110586385 +2023-01-22,9780.097667649889 +2023-01-23,9745.715479921559 +2023-01-24,9768.623408796648 +2023-01-25,9500.035462535738 +2023-01-26,9406.102394234653 +2023-01-27,9436.375481361782 +2023-01-28,9228.587705379288 +2023-01-29,9307.159535345472 +2023-01-30,9204.661892677314 +2023-01-31,9160.167707708904 +2023-02-01,9059.093205839441 +2023-02-02,9403.751513377472 +2023-02-03,9410.616773939735 +2023-02-04,9220.953146513439 +2023-02-05,9381.867061568082 +2023-02-06,9162.173072089898 +2023-02-07,9209.608133279837 +2023-02-08,8857.861863184542 +2023-02-09,8631.421954052703 +2023-02-10,8674.03722387041 +2023-02-11,8810.820993163568 +2023-02-12,8849.829719146152 +2023-02-13,8838.210196736345 +2023-02-14,8793.824051880436 +2023-02-15,8542.580631129773 +2023-02-16,8428.13666791963 +2023-02-17,8358.918274263719 +2023-02-18,8544.005158435415 +2023-02-19,8611.266692365965 +2023-02-20,8316.237779714755 +2023-02-21,8378.457204496086 +2023-02-22,8322.307753567025 +2023-02-23,8217.958997086465 +2023-02-24,8326.711569307236 +2023-02-25,8506.734993914888 +2023-02-26,8673.684792477263 +2023-02-27,8536.776311894608 +2023-02-28,8492.519550496276 +2023-03-01,8557.277293397958 +2023-03-02,8732.79477399154 +2023-03-03,8657.836963163796 +2023-03-04,8634.346697112896 +2023-03-05,8451.93144923582 +2023-03-06,8258.178252968024 +2023-03-07,8400.636092750407 +2023-03-08,8636.902307532055 +2023-03-09,8633.10032213473 +2023-03-10,8815.005426138154 +2023-03-11,8887.57690202593 +2023-03-12,8781.793450326573 +2023-03-13,8854.049275005511 +2023-03-14,9135.260355205515 +2023-03-15,9137.850011665418 +2023-03-16,9432.937442647728 +2023-03-17,8948.132546439152 +2023-03-18,9104.170529973586 +2023-03-19,9129.12452757105 +2023-03-20,9083.66014535738 +2023-03-21,9109.41427967719 +2023-03-22,8756.41192090671 +2023-03-23,8726.697582080647 +2023-03-24,8797.75254794957 +2023-03-25,9066.593222452004 +2023-03-26,8981.680910706484 +2023-03-27,8845.429960426509 +2023-03-28,8765.51025466338 +2023-03-29,8934.755097915206 +2023-03-30,9002.436066072663 +2023-03-31,8916.05585484349 +2023-04-01,9016.49833274055 +2023-04-02,9043.020822310153 +2023-04-03,9227.25337950877 +2023-04-04,9106.920197226791 +2023-04-05,9056.34725700966 +2023-04-06,8994.382252325278 +2023-04-07,8740.108377067758 +2023-04-08,8800.61095172866 +2023-04-09,8855.360480427447 +2023-04-10,8865.121470945276 +2023-04-11,8832.39372375839 +2023-04-12,8591.203884304603 +2023-04-13,8527.518093571782 +2023-04-14,8477.595526853118 +2023-04-15,8350.045478602988 +2023-04-16,8331.46066353239 +2023-04-17,8407.118800588261 +2023-04-18,8732.67369841828 +2023-04-19,8771.896993605578 +2023-04-20,8825.853000560843 +2023-04-21,8821.537879380518 +2023-04-22,8491.829158107388 +2023-04-23,8495.817961252815 +2023-04-24,8514.547877202609 +2023-04-25,8942.530283077764 +2023-04-26,8917.068938304097 +2023-04-27,8979.764376037425 +2023-04-28,8982.510070152894 +2023-04-29,8781.539335389367 +2023-04-30,8991.035744705636 +2023-05-01,9135.239915940576 +2023-05-02,9288.900488204754 +2023-05-03,9129.245197236756 +2023-05-04,9394.503506950481 +2023-05-05,9140.504115944945 +2023-05-06,9256.928013687946 +2023-05-07,9671.72274260765 +2023-05-08,9489.790611287348 +2023-05-09,9391.799464347081 +2023-05-10,9419.90937655646 +2023-05-11,9334.475385231475 +2023-05-12,9054.317268055398 +2023-05-13,9075.787403858161 +2023-05-14,8892.038337979877 +2023-05-15,8985.154417313559 +2023-05-16,8828.916197338653 +2023-05-17,9111.429933001427 +2023-05-18,8977.810213076142 +2023-05-19,8928.959879900616 +2023-05-20,9083.16609169056 +2023-05-21,8868.646357332154 +2023-05-22,8917.860238098805 +2023-05-23,9159.916426215588 +2023-05-24,8874.588100939332 +2023-05-25,8916.233677919497 +2023-05-26,8971.49342604521 +2023-05-27,9120.747294560893 +2023-05-28,8904.229744860526 +2023-05-29,8677.98099358493 +2023-05-30,8777.246954302222 +2023-05-31,8838.158357628732 +2023-06-01,8891.274425562575 +2023-06-02,8961.773022085787 +2023-06-03,8848.850251024001 +2023-06-04,8898.802665003514 +2023-06-05,8959.861349797106 +2023-06-06,8840.811417935958 +2023-06-07,9179.551441382342 +2023-06-08,9275.722466266328 +2023-06-09,9063.994176469709 +2023-06-10,9192.078132350123 +2023-06-11,9022.083209144492 +2023-06-12,9173.128148105656 +2023-06-13,9394.860190615032 +2023-06-14,9250.051137969165 +2023-06-15,9437.52675831931 +2023-06-16,9524.876905943373 +2023-06-17,9691.002219513868 +2023-06-18,10068.329721830536 +2023-06-19,10028.985082317653 +2023-06-20,9887.82989243308 +2023-06-21,9721.810374985476 +2023-06-22,9572.909127512525 +2023-06-23,9567.720283484095 +2023-06-24,9642.568937151656 +2023-06-25,9705.571708225114 +2023-06-26,9875.843006720575 +2023-06-27,9888.286942586828 +2023-06-28,10185.63447024461 +2023-06-29,10141.906149446568 +2023-06-30,10703.802063559418 +2023-07-01,10848.446254585155 +2023-07-02,10673.318147189868 +2023-07-03,10455.391938672155 +2023-07-04,10566.736094630134 +2023-07-05,10530.077385134578 +2023-07-06,10690.977071635993 +2023-07-07,10802.855500582655 +2023-07-08,10797.923151689301 +2023-07-09,10625.848804980273 +2023-07-10,10314.543902342133 +2023-07-11,10232.746484721525 +2023-07-12,10418.24546624891 +2023-07-13,10473.273335297894 +2023-07-14,10222.807353956576 +2023-07-15,10268.438066157662 +2023-07-16,10357.838657215014 +2023-07-17,10185.099441469207 +2023-07-18,10226.598650724789 +2023-07-19,10248.730793405919 +2023-07-20,10024.699626452824 +2023-07-21,10106.458542431938 +2023-07-22,10229.915912313927 +2023-07-23,10461.736291154444 +2023-07-24,10692.69001087493 +2023-07-25,10408.762871104942 +2023-07-26,10223.939664874826 +2023-07-27,10339.477394484182 +2023-07-28,10456.062436379872 +2023-07-29,10574.225914130833 +2023-07-30,11399.593203418346 +2023-07-31,11541.15118833364 +2023-08-01,11814.807034273997 +2023-08-02,12052.048776228858 +2023-08-03,12221.11280766801 +2023-08-04,12156.275100404919 +2023-08-05,12352.956148246445 +2023-08-06,12174.375584685857 +2023-08-07,12128.887586992645 +2023-08-08,12023.278076370774 +2023-08-09,12054.989265349252 +2023-08-10,12625.107938098557 +2023-08-11,12166.244553926152 +2023-08-12,12345.394984554483 +2023-08-13,11959.548090985114 +2023-08-14,11858.625802184559 +2023-08-15,12128.753580916775 +2023-08-16,12156.4750647334 +2023-08-17,11906.59998941725 +2023-08-18,11748.16988666457 +2023-08-19,11919.59865273282 +2023-08-20,11757.404708997221 +2023-08-21,11820.061938515299 +2023-08-22,11842.655239860118 +2023-08-23,11700.164329682604 +2023-08-24,12213.554457187447 +2023-08-25,12380.616101655196 +2023-08-26,11891.546459426434 +2023-08-27,11947.782608818685 +2023-08-28,11801.592775137276 +2023-08-29,12014.59578961676 +2023-08-30,11836.174058863227 +2023-08-31,11820.849423080155 +2023-09-01,11952.057844211215 +2023-09-02,12170.961025248378 +2023-09-03,11890.956770493196 +2023-09-04,11823.296932562464 +2023-09-05,11722.81184068334 +2023-09-06,11581.35753925443 +2023-09-07,12001.866032311449 +2023-09-08,12111.078623153553 +2023-09-09,11817.776407664216 +2023-09-10,12046.535929339812 +2023-09-11,12569.875082768827 +2023-09-12,12842.004144900122 +2023-09-13,12464.611041036658 +2023-09-14,12356.359864655798 +2023-09-15,12681.804426038347 +2023-09-16,12514.995715239256 +2023-09-17,12638.598675786294 +2023-09-18,12847.0430528999 +2023-09-19,12621.723782444631 +2023-09-20,12619.3192541818 +2023-09-21,11813.886826386297 +2023-09-22,11583.660719991241 +2023-09-23,11536.731105222958 +2023-09-24,11260.361055369222 +2023-09-25,11639.252229887315 +2023-09-26,11317.975957667555 +2023-09-27,11229.68567521041 +2023-09-28,11270.278872643987 +2023-09-29,11606.42018950599 +2023-09-30,11284.722220479565 +2023-10-01,11558.526539500033 +2023-10-02,11572.450648187038 +2023-10-03,11356.853890334804 +2023-10-04,11473.17157701362 +2023-10-05,11530.321669418285 +2023-10-06,11403.43811778661 +2023-10-07,11430.76123103792 +2023-10-08,11354.103437772976 +2023-10-09,11391.23529481003 +2023-10-10,11553.476256292452 +2023-10-11,11931.50988509706 +2023-10-12,11648.06123777858 +2023-10-13,12156.623366420792 +2023-10-14,11694.164066647609 +2023-10-15,11670.3582346299 +2023-10-16,11819.346043969965 +2023-10-17,11897.58819241997 +2023-10-18,11761.313331523526 +2023-10-19,11724.118824900776 +2023-10-20,11620.242912951131 +2023-10-21,11494.8919230636 +2023-10-22,11701.708500643961 +2023-10-23,11796.964032084179 +2023-10-24,11645.276404660744 +2023-10-25,11866.443465125776 +2023-10-26,11951.240956417752 +2023-10-27,12157.486418305944 +2023-10-28,12322.737986609449 +2023-10-29,12130.750958360075 +2023-10-30,12006.973375513944 +2023-10-31,12198.435037297595 +2023-11-01,12359.544712966657 +2023-11-02,12366.737573976181 +2023-11-03,12408.123450742576 +2023-11-04,12737.600049305778 +2023-11-05,12599.63365432302 +2023-11-06,12750.097819496985 +2023-11-07,12711.288395378167 +2023-11-08,12668.659512724063 +2023-11-09,12959.728768602557 +2023-11-10,13186.631937452263 +2023-11-11,13414.367612339938 +2023-11-12,13778.025432538023 +2023-11-13,13797.591287254503 +2023-11-14,13999.575046042894 +2023-11-15,13926.702566224487 +2023-11-16,14030.920636252402 +2023-11-17,14008.431019544803 +2023-11-18,14049.61467625984 +2023-11-19,14230.898828521253 +2023-11-20,14012.249412099793 +2023-11-21,14612.642708984067 +2023-11-22,14333.243900595395 +2023-11-23,13999.511913927747 +2023-11-24,14337.771165265944 +2023-11-25,14579.122507353582 +2023-11-26,14775.684015302346 +2023-11-27,14976.144393264112 +2023-11-28,14987.452348887236 +2023-11-29,14733.488658486629 +2023-11-30,14770.559459113294 +2023-12-01,14585.288872105915 +2023-12-02,14884.322220913798 +2023-12-03,14855.429554109878 +2023-12-04,14625.02267458266 +2023-12-05,14545.642192827945 +2023-12-06,14680.314898701921 +2023-12-07,14529.482134574779 +2023-12-08,14305.082885748045 +2023-12-09,14389.107283805564 +2023-12-10,14473.993396541959 +2023-12-11,14341.717546483627 +2023-12-12,14220.949297375068 +2023-12-13,14301.169654544881 +2023-12-14,13901.284827362564 +2023-12-15,13523.875015953861 +2023-12-16,13343.075893886771 +2023-12-17,13299.458138888154 +2023-12-18,13395.455640101727 +2023-12-19,13804.112470891749 +2023-12-20,14054.701181371107 +2023-12-21,14023.798117632003 +2023-12-22,14032.488326537832 +2023-12-23,13765.16118273854 +2023-12-24,13773.829617902615 +2023-12-25,13708.084749316085 +2023-12-26,13810.269901571239 +2023-12-27,13595.59451944503 +2023-12-28,13750.406606418679 +2023-12-29,14185.67267853041 +2023-12-30,14169.001633879394 +2023-12-31,14297.007716448643 diff --git a/Finacial Domain/Hedging Cryptocurrencies with Reinforcement Learning/requirement.txt b/Finacial Domain/Hedging Cryptocurrencies with Reinforcement Learning/requirement.txt new file mode 100644 index 00000000..42972e52 --- /dev/null +++ b/Finacial Domain/Hedging Cryptocurrencies with Reinforcement Learning/requirement.txt @@ -0,0 +1,6 @@ +here are the library we imported -> +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from collections import defaultdict +import random