{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"FinanceDataReader Tutorial - 수정주가.ipynb","provenance":[],"collapsed_sections":[]},"kernelspec":{"name":"python3","display_name":"Python 3"}},"cells":[{"cell_type":"markdown","metadata":{"id":"Ud8pXHxAz8Je","colab_type":"text"},"source":["# FinanceDataReader Tutorial \n","## 수정주가(Adjusted Price)란?\n","\n","\n","\n","#### 2019~2020 [FinanceData.KR](http://financedata.kr) | [facebook.com/financedata](http://facebook.com/financedata)"]},{"cell_type":"markdown","metadata":{"id":"suPmxpgR4KE-","colab_type":"text"},"source":["# 요약\n","1. 수정주가(Adjusted Price)란 총 발행 주식수의 변화를 반영한 가격입니다\n","1. 백테스트나 수익률 분석을 위해서는 수정주가를 사용합니다\n","1. FinanceDataReader 모든 가격을 수정가격(Adjusted Price)로 제공합니다"]},{"cell_type":"markdown","metadata":{"id":"ErFIskuG31wi","colab_type":"text"},"source":["# 수정주가(Adjusted Price) 개요\n","\n","수정주가(Adjusted Price)란 총 발행 주식수의 변화를 반영한 가격을 말합니다. 액면분할, 액면병합, 유상증자, 무상증자와 같이 총 발행주식수의 변화가 발생하면 가격의 변화가 생깁니다. 예를 들어, 어떤 회사가 액면분할을 통해 1주를 2개로 쪼갠다고 하면, 주식수를 2배로 늘어나고 주식의 가격은 1/2로 낮아지며 시가총액은 동일하게 유지 됩니다.\n","\n"]},{"cell_type":"markdown","metadata":{"id":"_BC_k2OR36fO","colab_type":"text"},"source":["# 삼성전자 액면분할\n","실제 예를 들어보죠.\n","\n","2018년 5월 4일, 삼성전자는 50:1로 액면분할을 합니다. 1주가 50주로 쪼개지는 것이죠. \n","\n","\n","\n","액면분할을 위해 2018-04-30 부터 2018-05-03 까지 3일간 거래정지되고 2018-05-04 부터 액면분할된 가격으로 거래가 시작된 것을 확인할 수 있습니다. \n","\n","이때 5000원인 삼성전자 주식 액면가는 액면분할 후 100원이 되었습니다. 액면분할 전에 주당 265만원(4월30일 기준)에서 5만3천원이 되었습니다.\n","\n","위 표에는 표시되어 있지 않지만 2018-05-03일 총 주식수 128,386,494주에서 다음날 총 주식수는 6,419,324,700주 로 50배가 늘어났습니다. 즉 50:1로 액면분할을 한 것이죠.\n","\n","만일 이 가격 데이터를 수정하지 않고 그대로 사용한다면 주가가 하루만에 1/50로 다시말해 -98% 하락한 것이 됩니다.\n","\n","백테스트를 하기 위해서는 주식 가격 데이터의 연속성이 보장되어야 합니다. 가격의 연속성을 보장하기 위해서는 반드시 발행 주식수를 변화를 함께 고려해야 합니다. 발행주식수의 변화를 반영한 가격을 수정주가(Adjusted Price)라고 합니다. "]},{"cell_type":"markdown","metadata":{"id":"1jwjdrvTzHNO","colab_type":"text"},"source":["\n","\n","\n","수정가격은 보통 오늘 가격과 총 주식수를 과거 데이터에 반영하여 구합니다. 혹은 특정 테스트 범위의 가장 마지막 날의 가격과 총 주식수를 기준으로 과거 가격들을 수정합니다.\n","\n","주가는 보통 종가(Close)를 기준으로 하기 때문에 수정주가로 가장 많이 쓰이는 것이 바로 수정 종가(Adjust Close Price) 입니다.\n","\n"]},{"cell_type":"markdown","metadata":{"id":"GuTR2Lqy6_Xp","colab_type":"text"},"source":["# FinanceDataReader 와 수정주가"]},{"cell_type":"code","metadata":{"id":"xvhbP73X5X-g","colab_type":"code","colab":{}},"source":["!pip -q install finance-datareader"],"execution_count":0,"outputs":[]},{"cell_type":"code","metadata":{"id":"7xSv53O_yf9Q","colab_type":"code","outputId":"e89b57ff-33be-47db-b623-8402419ef906","executionInfo":{"status":"ok","timestamp":1577594226150,"user_tz":-540,"elapsed":7737,"user":{"displayName":"Sean-June Lee","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mA0z_4qCQ4H5MJ8ixUx69EmwIvNuV7BfS9FRIdfmCM=s64","userId":"12576390002043678893"}},"colab":{"base_uri":"https://localhost:8080/","height":390}},"source":["import FinanceDataReader as fdr\n","\n","df = fdr.DataReader('005930', '2018-04-25', '2018-05-31')\n","df.head(10)"],"execution_count":0,"outputs":[{"output_type":"execute_result","data":{"text/html":["
\n"," | Open | \n","High | \n","Low | \n","Close | \n","Volume | \n","Change | \n","
---|---|---|---|---|---|---|
Date | \n","\n"," | \n"," | \n"," | \n"," | \n"," | \n"," |
2018-04-25 | \n","49220 | \n","50500 | \n","49220 | \n","50400 | \n","332292 | \n","-0.001189 | \n","
2018-04-26 | \n","50420 | \n","52160 | \n","50400 | \n","52140 | \n","360931 | \n","0.034524 | \n","
2018-04-27 | \n","53380 | \n","53639 | \n","52440 | \n","53000 | \n","606216 | \n","0.016494 | \n","
2018-04-30 | \n","0 | \n","0 | \n","0 | \n","53000 | \n","0 | \n","0.000000 | \n","
2018-05-02 | \n","0 | \n","0 | \n","0 | \n","53000 | \n","0 | \n","0.000000 | \n","
2018-05-03 | \n","0 | \n","0 | \n","0 | \n","53000 | \n","0 | \n","0.000000 | \n","
2018-05-04 | \n","53000 | \n","53900 | \n","51800 | \n","51900 | \n","39565391 | \n","-0.020755 | \n","
2018-05-08 | \n","52600 | \n","53200 | \n","51900 | \n","52600 | \n","23104720 | \n","0.013487 | \n","
2018-05-09 | \n","52600 | \n","52800 | \n","50900 | \n","50900 | \n","16128305 | \n","-0.032319 | \n","
2018-05-10 | \n","51700 | \n","51700 | \n","50600 | \n","51600 | \n","13905263 | \n","0.013752 | \n","