{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Libraries Installation" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m23.2.1\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", "\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m23.2.1\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", "\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m23.2.1\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", "\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m23.2.1\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n" ] } ], "source": [ "!pip install yfinance -q\n", "!pip install pandas -q\n", "!pip install numpy -q\n", "!pip install matplotlib -q" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "import yfinance as yf\n", "import pandas as pd\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Setup portfolio" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "buy_orders = {\n", " \"VALE3.SA\": 1400,\n", " \"WEGE3.SA\": 1300,\n", " \"BPAC11.SA\": 1100,\n", " \"KNRI11.SA\": 1000,\n", " \"SMAL11.SA\": 800,\n", " \"AAPL34.SA\": 700,\n", " \"IVVB11.SA\": 500,\n", " \"PETR4.SA\": 1000,\n", " \"COCA34.SA\": 1000,\n", "}" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "assets = list(buy_orders.keys())" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['VALE3.SA',\n", " 'WEGE3.SA',\n", " 'BPAC11.SA',\n", " 'KNRI11.SA',\n", " 'SMAL11.SA',\n", " 'AAPL34.SA',\n", " 'IVVB11.SA',\n", " 'PETR4.SA',\n", " 'COCA34.SA']" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "assets" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "total_invested = sum(buy_orders.values())" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "8800" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "total_invested" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Import financial assets data" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "start = \"2020-01-01\"\n", "\n", "assets_history_price = yf.download(assets, start=start, progress=False)[\"Adj Close\"]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Dummy portfolio simulation" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "AAPL34.SA 14.815145\n", "BPAC11.SA 17.714905\n", "COCA34.SA 34.120262\n", "IVVB11.SA 140.600006\n", "KNRI11.SA 178.510574\n", "PETR4.SA 12.180102\n", "SMAL11.SA 139.500000\n", "VALE3.SA 39.578941\n", "WEGE3.SA 16.768709\n", "Name: 2020-01-02 00:00:00, dtype: float64" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "first_line = assets_history_price.iloc[0]\n", "first_line" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [], "source": [ "buy_orders_df = pd.Series(data = buy_orders, index=assets)" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "number_of_shares = round(buy_orders_df / first_line, 0)" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [], "source": [ "net_worth = assets_history_price * number_of_shares" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [], "source": [ "net_worth[\"Total net worth\"] = net_worth.sum(axis=1)" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
| \n", " | AAPL34.SA | \n", "BPAC11.SA | \n", "COCA34.SA | \n", "IVVB11.SA | \n", "KNRI11.SA | \n", "PETR4.SA | \n", "SMAL11.SA | \n", "VALE3.SA | \n", "WEGE3.SA | \n", "Total net worth | \n", "
|---|---|---|---|---|---|---|---|---|---|---|
| Date | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
| 2020-01-02 | \n", "696.311793 | \n", "1098.324097 | \n", "989.487602 | \n", "562.400024 | \n", "1071.063446 | \n", "998.768393 | \n", "837.000000 | \n", "1385.262947 | \n", "1307.959316 | \n", "8946.577619 | \n", "
| 2020-01-03 | \n", "697.689195 | \n", "1101.511440 | \n", "975.998394 | \n", "562.799988 | \n", "1071.063446 | \n", "990.635223 | \n", "845.399963 | \n", "1375.064182 | \n", "1291.256996 | \n", "8911.418828 | \n", "
| 2020-01-06 | \n", "701.132250 | \n", "1099.917828 | \n", "978.863392 | \n", "564.799988 | \n", "1062.370239 | \n", "1002.347118 | \n", "834.600037 | \n", "1366.905117 | \n", "1294.597252 | \n", "8905.533220 | \n", "
| 2020-01-07 | \n", "702.853845 | \n", "1104.306175 | \n", "978.863392 | \n", "565.200012 | \n", "1066.501923 | \n", "998.443075 | \n", "836.399963 | \n", "1376.848869 | \n", "1304.618465 | \n", "8934.035720 | \n", "
| 2020-01-08 | \n", "708.764479 | \n", "1094.519222 | \n", "978.378849 | \n", "566.200012 | \n", "1006.133972 | \n", "992.261967 | \n", "829.199982 | \n", "1377.103748 | \n", "1255.254627 | \n", "8807.816858 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 2023-08-02 | \n", "2173.280079 | \n", "2059.019943 | \n", "1445.940018 | \n", "960.799988 | \n", "962.399963 | \n", "2503.460056 | \n", "678.000000 | \n", "2348.149872 | \n", "3122.339905 | \n", "16253.389824 | \n", "
| 2023-08-03 | \n", "2201.949928 | \n", "2070.179962 | \n", "1457.830013 | \n", "979.000000 | \n", "971.100037 | \n", "2535.440006 | \n", "677.880020 | \n", "2362.850075 | \n", "3153.540024 | \n", "16409.770065 | \n", "
| 2023-08-04 | \n", "2086.800072 | \n", "2042.900047 | \n", "1423.320053 | \n", "966.799988 | \n", "972.120026 | \n", "2460.000000 | \n", "683.099991 | \n", "2364.599915 | \n", "3186.299881 | \n", "16185.939972 | \n", "
| 2023-08-07 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "979.960022 | \n", "NaN | \n", "NaN | \n", "680.400009 | \n", "NaN | \n", "NaN | \n", "1660.360031 | \n", "
| 2023-08-08 | \n", "2061.420029 | \n", "2055.919991 | \n", "1438.690018 | \n", "972.119995 | \n", "985.019989 | \n", "2487.059994 | \n", "679.679993 | \n", "2357.600021 | \n", "3156.660095 | \n", "16194.170124 | \n", "
896 rows × 10 columns
\n", "| \n", " | IBOV | \n", "AAPL34.SA | \n", "BPAC11.SA | \n", "COCA34.SA | \n", "IVVB11.SA | \n", "KNRI11.SA | \n", "PETR4.SA | \n", "SMAL11.SA | \n", "VALE3.SA | \n", "WEGE3.SA | \n", "Total net worth | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|
| Date | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
| 2020-01-02 | \n", "118573.000000 | \n", "696.311793 | \n", "1098.324097 | \n", "989.487602 | \n", "562.400024 | \n", "1071.063446 | \n", "998.768393 | \n", "837.000000 | \n", "1385.262947 | \n", "1307.959316 | \n", "8946.577619 | \n", "
| 2020-01-03 | \n", "117707.000000 | \n", "697.689195 | \n", "1101.511440 | \n", "975.998394 | \n", "562.799988 | \n", "1071.063446 | \n", "990.635223 | \n", "845.399963 | \n", "1375.064182 | \n", "1291.256996 | \n", "8911.418828 | \n", "
| 2020-01-06 | \n", "116878.000000 | \n", "701.132250 | \n", "1099.917828 | \n", "978.863392 | \n", "564.799988 | \n", "1062.370239 | \n", "1002.347118 | \n", "834.600037 | \n", "1366.905117 | \n", "1294.597252 | \n", "8905.533220 | \n", "
| 2020-01-07 | \n", "116662.000000 | \n", "702.853845 | \n", "1104.306175 | \n", "978.863392 | \n", "565.200012 | \n", "1066.501923 | \n", "998.443075 | \n", "836.399963 | \n", "1376.848869 | \n", "1304.618465 | \n", "8934.035720 | \n", "
| 2020-01-08 | \n", "116247.000000 | \n", "708.764479 | \n", "1094.519222 | \n", "978.378849 | \n", "566.200012 | \n", "1006.133972 | \n", "992.261967 | \n", "829.199982 | \n", "1377.103748 | \n", "1255.254627 | \n", "8807.816858 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 2023-08-01 | \n", "121248.000000 | \n", "2201.949928 | \n", "2095.599953 | \n", "1429.699978 | \n", "970.599976 | \n", "968.339996 | \n", "2509.200031 | \n", "678.539978 | \n", "2386.999893 | \n", "3109.080048 | \n", "16350.009781 | \n", "
| 2023-08-02 | \n", "120859.000000 | \n", "2173.280079 | \n", "2059.019943 | \n", "1445.940018 | \n", "960.799988 | \n", "962.399963 | \n", "2503.460056 | \n", "678.000000 | \n", "2348.149872 | \n", "3122.339905 | \n", "16253.389824 | \n", "
| 2023-08-03 | \n", "120586.000000 | \n", "2201.949928 | \n", "2070.179962 | \n", "1457.830013 | \n", "979.000000 | \n", "971.100037 | \n", "2535.440006 | \n", "677.880020 | \n", "2362.850075 | \n", "3153.540024 | \n", "16409.770065 | \n", "
| 2023-08-04 | \n", "119508.000000 | \n", "2086.800072 | \n", "2042.900047 | \n", "1423.320053 | \n", "966.799988 | \n", "972.120026 | \n", "2460.000000 | \n", "683.099991 | \n", "2364.599915 | \n", "3186.299881 | \n", "16185.939972 | \n", "
| 2023-08-08 | \n", "119163.382812 | \n", "2061.420029 | \n", "2055.919991 | \n", "1438.690018 | \n", "972.119995 | \n", "985.019989 | \n", "2487.059994 | \n", "679.679993 | \n", "2357.600021 | \n", "3156.660095 | \n", "16194.170124 | \n", "
894 rows × 11 columns
\n", "| \n", " | IBOV | \n", "AAPL34.SA | \n", "BPAC11.SA | \n", "COCA34.SA | \n", "IVVB11.SA | \n", "KNRI11.SA | \n", "PETR4.SA | \n", "SMAL11.SA | \n", "VALE3.SA | \n", "WEGE3.SA | \n", "Total net worth | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|
| Date | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
| 2020-01-02 | \n", "1.000000 | \n", "1.000000 | \n", "1.000000 | \n", "1.000000 | \n", "1.000000 | \n", "1.000000 | \n", "1.000000 | \n", "1.000000 | \n", "1.000000 | \n", "1.000000 | \n", "1.000000 | \n", "
| 2020-01-03 | \n", "0.992696 | \n", "1.001978 | \n", "1.002902 | \n", "0.986367 | \n", "1.000711 | \n", "1.000000 | \n", "0.991857 | \n", "1.010036 | \n", "0.992638 | \n", "0.987230 | \n", "0.996070 | \n", "
| 2020-01-06 | \n", "0.985705 | \n", "1.006923 | \n", "1.001451 | \n", "0.989263 | \n", "1.004267 | \n", "0.991884 | \n", "1.003583 | \n", "0.997133 | \n", "0.986748 | \n", "0.989784 | \n", "0.995412 | \n", "
| 2020-01-07 | \n", "0.983883 | \n", "1.009395 | \n", "1.005447 | \n", "0.989263 | \n", "1.004979 | \n", "0.995741 | \n", "0.999674 | \n", "0.999283 | \n", "0.993926 | \n", "0.997446 | \n", "0.998598 | \n", "
| 2020-01-08 | \n", "0.980383 | \n", "1.017884 | \n", "0.996536 | \n", "0.988773 | \n", "1.006757 | \n", "0.939378 | \n", "0.993486 | \n", "0.990681 | \n", "0.994110 | \n", "0.959705 | \n", "0.984490 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 2023-08-01 | \n", "1.022560 | \n", "3.162305 | \n", "1.907998 | \n", "1.444889 | \n", "1.725818 | \n", "0.904092 | \n", "2.512294 | \n", "0.810681 | \n", "1.723138 | \n", "2.377046 | \n", "1.827516 | \n", "
| 2023-08-02 | \n", "1.019279 | \n", "3.121131 | \n", "1.874692 | \n", "1.461302 | \n", "1.708393 | \n", "0.898546 | \n", "2.506547 | \n", "0.810036 | \n", "1.695093 | \n", "2.387184 | \n", "1.816716 | \n", "
| 2023-08-03 | \n", "1.016977 | \n", "3.162305 | \n", "1.884853 | \n", "1.473318 | \n", "1.740754 | \n", "0.906669 | \n", "2.538567 | \n", "0.809892 | \n", "1.705705 | \n", "2.411038 | \n", "1.834195 | \n", "
| 2023-08-04 | \n", "1.007885 | \n", "2.996933 | \n", "1.860016 | \n", "1.438442 | \n", "1.719061 | \n", "0.907621 | \n", "2.463033 | \n", "0.816129 | \n", "1.706968 | \n", "2.436085 | \n", "1.809177 | \n", "
| 2023-08-08 | \n", "1.004979 | \n", "2.960484 | \n", "1.871870 | \n", "1.453975 | \n", "1.728521 | \n", "0.919665 | \n", "2.490127 | \n", "0.812043 | \n", "1.701915 | \n", "2.413424 | \n", "1.810097 | \n", "
894 rows × 11 columns
\n", "