Financial Freedom
많은 주식투자자들이 어려움을 겪는 것중에 하나가 바로 '수익률 계산'입니다. 뭐, 사실 그냥 HTS에서 나오는 대로 볼수도 있지만, 내가 사용하는 HTS에서 계산하는 방식이 마음에 들지 않을 수도 있고, 특정기간만 조회할 수 있는 등 한계가 있을 수도 있겠죠?
게다가, 대부분의 투자자들이 한번 목돈을 투자하고 영원히 놔두는 것이 아니라 수시로 입금과 출금을 반복하기 때문에 이런 상황에서의 수익률을 정확하게 계산하기 어려울때가 많습니다.
예를 들어 100만원의 원금을 투자해서 평가액이 120만원이 되었을때는 수익률이 20%인데, 여기서 50만원을 매도한 뒤 출금했다면? 원금은 갑자기 50만원이 되고 평가액은 70만원이 되었으니 40%의 수익률이 되어버리는 걸까요?
이때 사용할 수 있는 수익률이 바로 시간가중수익률입니다.
수익률을 구하는 공식은 다음과 같습니다.
수식으로 쓰니 복잡해보이지만, 처음의 F1/F0는 D1 시점에서의 수익률이고, F2/(F1+C1)은 D2 시점에서의 현금유출입을 반영한 수익률입니다. 이 2개의 수익률을 곱해서 얻어진 값이 시간가중수익률이라고 보면 되겠습니다.
위와 같은 상황에서 각각 현금 입금과 출금이 일어났을때의 시간가중수익률을 구해볼까요?
이렇게 계산하면 R1은 13.4%가 나옵니다. 그 다음에 R2를 계산할때는 위의 공식처럼 F1/F0를 그냥 넣고 대입하면 그 기간중에 있었던 현금유출입 부분이 또 반영이 안됩니다;; 사실 그 공식자체가 현금유출입이 일어나기 직전의 수익률을 나타내는 부분이므로, 공식 대신에 여기서 계산한 13.4%를 넣고 계산을 하면 되겠습니다. :)
이렇게 계산한 R2는 R1과 같은 13.4%가 나옵니다. 단순수익률을 계산하면 출금때문에 원금이 줄어들어 수익금은 그대로인데도, 수익률이 올라간 것처럼 보일 수 있는데, 이렇게 시간 가중 수익률을 계산하면 똑같은 수익률 값을 얻을 수 있습니다.
혹시 활용을 원하는 분들을 위해 시간가중수익률을 계산하는 구글 스프레드시트를 하나 만들어두었으니 필요하신 분은 사용해보세요. :)
이 Pandas-월별 수익률, 누적수익률, log 수익률, 누적 log 수익률) 구글 스프레드시트는 열람만 가능하게 만들어놨으므로, 사용을 원하시는 분은 아래와 같이 파일 메뉴 >> 사본만들기를 이용하셔서 본인의 구글 드라이브에 사본을 만들어서 사용하세요. ^-^
참고로 WhyBe 액티브 펀드 페이지에 나오는 수익률 그래프도 최근에 시간가중수익률로 변경했답니다. 올해들어서 투자금 증자가 몇번 있었더니 수익률 계산이 조금 곤란(?)해지면서, 이 방법을 찾아보게 되었네요. 고민하시는 여러분들께도 도움이 되길 바랍니다.
파이낸셜프리덤 블로그에 올라오는 새글 편하게 읽는 방법
그리고 페이스북에서도 만나요!
이 글이 도움되었다 생각하시는 분은 공감 하트 ♡ 클릭 부탁드려요 :D
'잘 굴리기 > 국내직접투자' 카테고리의 다른 글
2016년 4월 WhyBe 펀드 월간 운용보고서 (12) | 2016.05.03 |
---|---|
복리의 마법이 극대화되는 배당주 투자의 마법 - 향후 20년 예상추이 (12) | 2016.04.24 |
주식 투자 수익률 구하기 : 시간가중수익률과 금액가중수익률 (8) | 2016.04.07 |
구글독스로 자동 주식 관리 툴을 만들어보자 (8) - 야후 파이낸스가 제공하는 배당금 정보 (10) | 2016.04.02 |
2016년 3월 WhyBe 펀드 월간 운용보고서 (13) | 2016.03.31 |
입금과 출금이 잦은 주식 계좌 수익률 구하기 엑셀 : 시간가중수익률 (9) | 2016.03.20 |
주가가 하락할수록 투자 매력이 높아지는 배당주 필터링 (10) | 2016.02.15 |
2016년 1월 WhyBe 배당주 펀드 월간 Pandas-월별 수익률, 누적수익률, log 수익률, 누적 log 수익률) 운용 보고서 (12) | 2016.02.05 |
2016년 1월 WhyBe 액티브 펀드 월간 운용보고서 (2) | 2016.02.02 |
2015년 12월 WhyBe 배당주 펀드 월간 운용 보고서 (2) | 2016.01.04 |
2015년 12월 WhyBe 액티브 펀드 월간 운용보고서 (0) | 2016.01.01 |
제가 바로 원하던 것 입니다.
필요한 건데 잘들 모르는 거이기두 하구요. 저는 그냥 단순히 최종투자금액 기준으로 계산했더니 그럼 안되겠네요, 좋은 자료 감사합니다.
저도 투자금의 변화가 크지 않을때는 그냥 단순 누적 수익률을 계산했는데 그럼 너무 오류가 심하더라구요.
지난 글에 남긴 질문에 대한 해결이 여기에 있었네요. 블로그 정독하고 공부해 보겠습니다.
추가로 입금한 시점의 평가금액을 모를 경우 엑셀계산이 힘든가요? 작년 7월부터 시작했는데 중간중간 추가입금해서 주식을 매수했을 당시의 평가금액을 모르겠어요 ㅠ
시간 가중으로는 안될 것 같습니다. 시간 가중으로 계산을 하려면 입금 시점 전후의 수익률이 둘다 계산에 필요하니까요. ^^ 금액가중수익률을 사용해보세요. http://financialfreedom.kr/949
안녕하세요~ 이 글을 Pandas-월별 수익률, 누적수익률, log 수익률, 누적 log 수익률) 보니 문득 제가 시간가중수익률을 구하면서 들었던 의문이 떠오르네요.
D가 일정한 간격이 아니라 불규칙한 시점들인 경우에도 구해진 수익률이 논리적으로 타당하다고 볼 수 있을까요?
저는 주, 월 단위로 데이터를 정리하지 않고 매수/매도 또는 입출금이 있었을 때만 평가액을 기록해왔거든요.
예를 들어 1/6, 3/11, 3/14, 7/24, 9/23 이런식으로 말입니다.
이럴 경우에도 금액가중수익률이 더 합당할까요?
계산 상으로는 중간중간 평가액이 없다고 하더라도 최종 계산을 하는 시점(예를 들어 현재 시점)이 동일하다면 시간 가중 수익률이나 금액 가중 수익률이나 동일하게 계산됩니다.
물론 10년치를 기록했는데 각각 1년 되는 시점에서의 수익률을 계산하고 싶다면 그 시점에서의 평가액이 필요하겠지만, 그게 아니라 현 시점에서의 수익률을 계산한다면 중간 평가액은 없어도 계산에는 영향이 없습니다.
주식 수익률 계산하는 법
백테스트-수익률 구하는 방법(pandas-월별 수익률, 누적수익률, log 수익률, 누적 log 수익률)
안녕하세요, 이번 포스팅부터 본격적으로 주가 정보를 분석해보도록 하겠습니다. 처음으로 분석해 볼 데이터는 수익률 데이터입니다. 구체적으로는 월별 수익률과, 누적 수익률, 월별 log 수익률, 누적 log 수익률입니다.
우선 지난 시간에서 월별 말일의 주가로 정리한 데이터를 확인해보겠습니다.
1.월별 수익률
DataFrame에서 월별 수익률을 계산하는 것은 매우 쉽습니다! 저도 처음에는 이전 가격대비 변경액을 백분율로 계산을 했었는데, 알고보니 pct_change()라는 유용한 함수를 제공하더라구요.
pandas.DataFrame.pct_change란?
기본적으로 바로 이전 행의 백분율 변경을 계산합니다. 이것은 요소의 시계열 변화율을 비교할 때 유용합니다.
이미 월별 말일 데이터로 준비를 해두었길래, 이 함수만 사용하면 간편하게 수익률을 월별 수익률을 구할 수 있습니다.
결과 DataFrame)
이전 달의 주가가 없는 첫 행과, 상장 이전 데이터가 없는 GLD의 초기를 제외하고는 모두 이전 달 말일 대비 변경률이 계산되었습니다. 그리고 주가의 변경률이 곧 수익률이기 때문에 수익률 구하기는 매우 간단하게 끝났습니다😎 보기 편하게 100을 곱하는 작업은 모든 수익률을 구하고 마지막에 진행하도록 하겠습니다.
2.누적 수익률
누적 수익률은 방금 전에 구한 수익률을 이용해서 구하게 됩니다. 주의해아할 점은 누적 수익률은 단순 덧셈이 아닌 곱셉으로 계산되어 진다는 점입니다.
10000원이었던 주식이 첫째 달에 10% 상승하고 둘째 달에 20% 상승하게 된다면 누적 수익률은 30%가 아닌, 32%가 됩니다. 아래 예시를 한 번 살펴보겠습니다.
기존 | 10,000원 | 0% |
첫째달 | 11,000원 | 10% 상승 |
둘째달 | 13,200원 | 20% 상승 |
누적 수익률 | 32% 상승 |
따라서 수익률이 각각 r1, r2 일 때, 누적수익률은 r1 + r2 가 아니라, (1+r1)*(1+r2)-1 로 계산 하게 됩니다.
이번에는 DataFrame의 유용한 함수인 cumprod를 사용해보겠습니다. cumprod는 누적 곱을 계산해주는 함수로, 첫행부터 이전행까지의 곱한 값을 반환해줍니다.
결과 DataFrame)Pandas-월별 수익률, 누적수익률, log 수익률, 누적 log 수익률)
3.월별 log 수익률
주가 데이터를 분석할 때 log 수익률로 차트를 그려서 보는 이유는 아래 포스팅에서 잘 설명하여 공유합니다 : )
로그 차트를 봐야하는 이유 (장기 성장률, 수익률, % 기울기 참고할 때) — Steemit
리니어 vs. 로그 HTS에서 제공하는 차트는 물론이고, 포털에서 제공하는 차트, 그리고 각종 장기 경제 지표들을 표시하는 차트들도 의외로 리니어 형태로 데이터를 보여주는 경우가 많습니다. 우
결과 DataFrame)
4.누적 log 수익률
결과 DataFrame)
5.전체 소스 코드
위의 각각의 항목에서는 새로운 DataFrame을 만들어서 월별 수익률, 누적 수익률, 월별 log 수익률, 누적 log 수익률을 따로 담고 표기하였지만, 저는 실제로 백테스트를 진행할 때에는 아래와 같이 기존의 주가 DataFrame에 필드를 추가해서 여러 수익률들을 함께 표기 합니다. 이는 백테스트를 진행하는 당사자가 어떤 것이 더 편한지에 따라 다르니 편하신대로 사용하시면 됩니다 : )
결과 DataFrame)
위에서 구한 누적 log 수익률을 그래프로 나타내보겠습니다. (그래프 그리는 방법은 따로 또 포스팅 해볼게요😁)
그래프를 보니 수익률이 정상적으로 잘 구해진 것 같습니다. 포스팅 내용 중 이해가 되지 않거나, 문의가 있으시면 언제든지 댓글로 남겨주세요~!
네이버 퍼센트 계산기 사용법 - 주식, 코인 수익률, 목표가, 할인율 산출하는 방법
증가율, 증감률 구할 때, 몇 % 증가했는지 알고 싶을 때, 핸드폰 계산기보다 훨씬 더 간편한 네이버 퍼센트 계산기를 이용하는 방법에 대해서 알아보고자 합니다. 할인율, 수익률, 증감률 더 이상 엑셀, 휴대폰으로 하지 말고 아래의 방법으로 해보시길 권해드립니다.
네이버-퍼센트-계산기-사용법-주식-코인-수익률-목표가-할인율
퍼센트 계산기가 무엇일까?
근데 하다 보니까, 금액에 대해 몇%를 계산할 수 있는데, 할인율이나 비율을 계산할 때는 순간 헷갈립니다. 증감이니까 증가된 금액에서 전에 금액을 뺐었나?, 그리고 증가된 금액으로 나눠주는 거였나?, 하면서 고개를 갸우뚱하신 경험들이 있으실 겁니다.
컴퓨터를 쓸 때는 엑셀을 활용해서 계산했는데, 핸드폰만 있을 때는 엑셀로 계산하기가 정말 번거로우실 수 있습니다.
그럴 때 유용하게 사용할 수 있는 [퍼센트 계산기]에 대해 소개해드리겠습니다. 네이버에 '퍼센트 계산기'라고 검색하면 아래와 같은 화면이 등장합니다.
네이버-퍼센트-계산기
퍼센트 계산의 경우 총 4가지로 활용해보실 수 있습니다.
비율 값, 일부 값, 증감 값, 증감률 등을 모두 구할 수 있고 계산기에 바로 숫자를 입력하면 알아서 계산을 해줍니다. 아래 내용들에서 함께 다양한 예시를 들어 쉽게 계산하는 방법 알려드리도록 하겠습니다.
사용 방법
네이버-퍼센트-계산기
위의 계산기에 550,000원을 입력하고 % 앞 빈칸에 45를 입력 후 "계산" 버튼을 누르면, 위 화면과 같이 답이 바로 산출됩니다.
550,000원 × 45% = 즉, 247,500원이라는 값이 나옵니다. 그럼 정가 550,000원에서 247,500원 할인되면, 302,500원이라는 것입니다.
그렇다면 55만 원짜리 가전제품을 오늘만 275,000원 가격에 판매한다고 가정했을 경우에는?
퍼센트-확율-계산기
550,000원짜리가 275,000원이라면, 바로 50% 세일된 가격인 것입니다. 물론 많은 분들이 이 정도 암산은 충분히 하실 것이기 때문에 너무 쉬운 예시는 안 드리려고 했으나, 정말 클릭 한 번으로 계산이 되는 모습을 직선적으로 보여드리기 위해서 쉬운 예시를 드려보았습니다.
여러분들이 가지고 있는 주식의 가격이 기존 5,500이라고 하겠습니다. 그런데 일주일 만에 32%라는 수익률을 달성했을 경우의 주가는 얼마일까에 대한 계산 예시입니다. 5,500원에서 32%가 증가하면, 7,260원이 됩니다. 혼자 끙끙대지 말고, 위와 같은 방법으로 계산하면 원하는 답을 쉽게 구할 수 있습니다.
마무리
오늘은 퍼센트 계산 방법을 쉽게 알 수 있는 방법을 이야기해봤습니다. 제가 실제 사용해 보니 거의 대부분의 계산법을 사용할 수 있었습니다. 물론, 실전 상황의 경우에서는 위의 예시들보다 더 복잡한 실제 계산을 해야 하시겠지만, 다들 어려운 시기에 수익률 높이시길 바라면서, 도움되는 글이길 바랍니다. 긴 글 읽어주셔서 감사합니다.
함께 보시면 좋은 글
노쇼 백신 예약방법, 신청, 후기(코로나 백신 노쇼예약)
노쇼 백신 예약방법, 신청, 후기(코로나 백신 노쇼예약) 코로나 백신 노쇼로 인해서, 폐기되는 백신들을 방지하고자 신청하면 코로나백신접종노쇼자리에 들어가서 접종 가능하다는 소식을 들으
네이버페이 현금화, 네이버 포인트 현금으로 인출하는 방법
이번 시간에는 네이버페이 포인트를 어떻게 하면 현금화할 수 있는지에 대해서 알아보겠습니다. 네이버 페이를 쓰다 보면 어느새 포인트가 쌓여서 이걸 현금화하고 싶은 생각이 들 수 있습니다
한시 생계지원금, 긴급생계지원금 신청방법 및 지급기간
코로나 19로 인해서 당연하게만 느껴졌었던 일상에 정말 많은 변화가 생기고 있는데, 그중 코로나로 인해서 경제적인 피해를 입으신 분들도 정말 많습니다. 그래서 정부에서는 재난지원금을 지
주식 수익률 계산하는 법
파이썬을 이용하여 관심 있는 종목의 주가를 가져와서 각 종목의 연 수익률을 구하는 방법에 대해 정리하였다.
연 수익률을 계산하는 방법은 먼저 일일 수익률을 계산하고 이에 대한 평균을 구한다.
이 평균에 년 거래 일수 약 252일을 곱한다.
비교적 간단한 계산이고 파이썬 코드도 이전 글에서 모두 알아봤던 내용이다.
우선 필요한 모듈을 불러온다.
위의 코드에서 마지막에 있는 부분은 주식 데이터를 받아오기 위한 모듈이다.
다음의 코드는 원하는 주식 종목을 2019년도부터 현재까지 불러와서 각 변수에 저장한다.
다음은 각 변수 stock_data_x에 저장된 각 종목의 데이터를 하나의 데이터 프레임의 column에 넣는다.
그러기 위해서 먼저 빈 dataframe인 new_data를 만들고 여기에 각 종목별 column을 만들어 위의 변수에 있는 정보를 넣는다.
여기까지의 결과는 아래와 같다.
(하나의 데이터프레임으로 만든 주식 종목별 종가 데이터)
데이터는 2019년 1월부터 2022년 3월까지 약 3년간의 데이터이다.
파이썬에서 일일 수익률은 .pct_change() 함수로 쉽게 구할 수 있다.
위와 같이 일일 수익률은 daily_simple_returns 변수에 저장된다.
글 앞에서 언급했듯이 연 수익률은 일일 수익률 평균에 대략적인 년간 거래일수인 252를 곱하여 구한다.
이렇게 구한 연 수익률 결과는 다음과 같다.
(주식 종목별 연 수익률 결과)
여기서 연 수익률이 높은 순서데로 정리하려면 아래와 같이 한다.
sorted_annualized_returns = annualized_returns.sort_values(ascending= False )
마지막은 앞에서 구한 결과를 Bar 그래프로 표현하는 것이다.
참고로, google colab에서는 matplotlib 그래프에 한글을 표현하기 위해서는 다음과 같은 추가적인 설치가 필요하다.
그리고 설치 이후에는 다음의 코드와 함께 전체 런타임을 재실행해 준다.
한글 글씨체도 추가하여 그래프로 결과를 보면 다음과 같다.
(주식 종목별 연 수익률 결과 그래프)
개인적으로 관심있는 주식 종목 10가지에 대해서 3년간 데이터를 받아 연 수익률을 계산하고 이에 대한 결과를 그래프로 표현해 보았다.
0 개 댓글