{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "name": "BTC-Stock-prediction.ipynb", "provenance": [], "toc_visible": true }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "YLXH7XozYUus" }, "source": [ "![](https://blockchainstock.azureedge.net/features/C47CB7081D81D4B6A5F3C2D5F97D14376DF75D5E3DDC5733953EABB79263589D.jpg \"Creadit : https://blockchain.news/analysis/Why-bitcoin-price-correlation-stock-market-is-high-now\")" ] }, { "cell_type": "markdown", "metadata": { "id": "ilRsupJoX37Q" }, "source": [ "# Introduction\n", "\n", "This project will demonstrate Bitcoin (BTC-USD) stock closing price prediction using stacking bidirection LSTM (bi-LSTM)\n", "\n", "Data is collected using `yfinance` API " ] }, { "cell_type": "markdown", "metadata": { "id": "tv3dly3HXsHM" }, "source": [ "# Libraries & Configurations" ] }, { "cell_type": "code", "metadata": { "id": "2obStAbg2d-q" }, "source": [ "%%capture\n", "!pip install yfinance --upgrade --no-cache-dir" ], "execution_count": 1, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "afgQ1-TXuiaE" }, "source": [ "import pandas as pd \n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "import yfinance as yf\n", "\n", "from sklearn.preprocessing import MinMaxScaler\n", "\n", "import tensorflow as tf\n", "from keras.models import Sequential\n", "from keras.layers import Dense, LSTM, CuDNNLSTM, Bidirectional\n", "from keras.layers import Activation, Dropout\n", "\n", "%matplotlib inline\n", "sns.set(style='whitegrid', palette='muted', font_scale=1.2)\n", "\n", "plt.rcParams['figure.figsize'] = 12, 8" ], "execution_count": 2, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "yaKRblgMYpLR" }, "source": [ "# Load Dataset\n", "\n", "[yfinance API](https://github.com/ranaroussi/yfinance)" ] }, { "cell_type": "code", "metadata": { "id": "5qVyu9rl2WRz" }, "source": [ "btc_ticker = yf.Ticker('BTC-USD')\n", "\n", "df_btc_data = btc_ticker.history(period=\"max\")\n", "\n", "# to download for a specific period of time\n", "# yf.download(\"BTC-USD\", start=\"2014-01-01\", end=\"2019-04-30\")" ], "execution_count": 3, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "M-8mq9iAY9m_" }, "source": [ "# EDA" ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 450 }, "id": "I2JZ0it9CuaL", "outputId": "9a727b6a-caac-4016-fddc-596a5bfe55ab" }, "source": [ "df_btc_data" ], "execution_count": 4, "outputs": [ { "output_type": "execute_result", "data": { "text/html": [ "
\n", " | Open | \n", "High | \n", "Low | \n", "Close | \n", "Volume | \n", "Dividends | \n", "Stock Splits | \n", "
---|---|---|---|---|---|---|---|
Date | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
2014-09-17 | \n", "465.864014 | \n", "468.174011 | \n", "452.421997 | \n", "457.334015 | \n", "21056800 | \n", "0 | \n", "0 | \n", "
2014-09-18 | \n", "456.859985 | \n", "456.859985 | \n", "413.104004 | \n", "424.440002 | \n", "34483200 | \n", "0 | \n", "0 | \n", "
2014-09-19 | \n", "424.102997 | \n", "427.834991 | \n", "384.532013 | \n", "394.795990 | \n", "37919700 | \n", "0 | \n", "0 | \n", "
2014-09-20 | \n", "394.673004 | \n", "423.295990 | \n", "389.882996 | \n", "408.903992 | \n", "36863600 | \n", "0 | \n", "0 | \n", "
2014-09-21 | \n", "408.084991 | \n", "412.425995 | \n", "393.181000 | \n", "398.821014 | \n", "26580100 | \n", "0 | \n", "0 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
2021-11-09 | \n", "67549.734375 | \n", "68530.335938 | \n", "66382.062500 | \n", "66971.828125 | \n", "42357991721 | \n", "0 | \n", "0 | \n", "
2021-11-10 | \n", "66953.335938 | \n", "68789.625000 | \n", "63208.113281 | \n", "64995.230469 | \n", "48730828378 | \n", "0 | \n", "0 | \n", "
2021-11-11 | \n", "64978.890625 | \n", "65579.015625 | \n", "64180.488281 | \n", "64949.960938 | \n", "35880633236 | \n", "0 | \n", "0 | \n", "
2021-11-12 | \n", "64863.980469 | \n", "65460.816406 | \n", "62333.914062 | \n", "64155.941406 | \n", "36084893887 | \n", "0 | \n", "0 | \n", "
2021-11-13 | \n", "64378.949219 | \n", "64901.621094 | \n", "63358.320312 | \n", "64727.914062 | \n", "30252488704 | \n", "0 | \n", "0 | \n", "
2611 rows × 7 columns
\n", "\n", " | Close | \n", "
---|---|
Date | \n", "\n", " |
2014-09-17 | \n", "457.334015 | \n", "
2014-09-18 | \n", "424.440002 | \n", "
2014-09-19 | \n", "394.795990 | \n", "
2014-09-20 | \n", "408.903992 | \n", "
2014-09-21 | \n", "398.821014 | \n", "
... | \n", "... | \n", "
2021-11-09 | \n", "66971.828125 | \n", "
2021-11-10 | \n", "64995.230469 | \n", "
2021-11-11 | \n", "64949.960938 | \n", "
2021-11-12 | \n", "64155.941406 | \n", "
2021-11-13 | \n", "64727.914062 | \n", "
2611 rows × 1 columns
\n", "