테슬라 기업 개요와 매월 100만원씩 샀다면 수익률은?!

목차

    2020. 9. 4. 05:30

    테슬라 이름을 들으면 크게 두 부류의 사람으로 나눌 수 있다고 생각한다. 하나는 과거에 들고 있다가 미리 매도해서 재미를 못 본 사람, 다른 하나는 끝까지 들고 있어 엄청난 수익을 본 사람으로 말이다. 필자도 테슬라를 가지고 있어 봤다. 하지만, 테슬라는 이전에 계속 보유하기 어려운 주식이었다. 로켓 발사 실패할 때 폭락하고 일론 머스크가 트위터에서 실수하면 이슈가 돼서 하락하기도 했다. 아무튼 지금은 그 어떤 주식보다 놀라운 상승세를 보이며 이 세상 주식이 아니게 됐다. 오늘은 테슬라 기업 개요와 매월 100만원씩 샀다면 수익률이 어떻게 됐을지 계산해보도록 하겠다.


    테슬라_주식


    테슬라는 다 알다시피 미국의 전기자동차 기업이다. 전기차는 배터리가 가장 중요하고, 관련해서 최근에 LG화학과 상성SDI의 주가가 큰 폭으로 상승했었다. 


    9월 15일 배터리 데이

    테슬라는 1회 충전으로 100만 마일을 갈 수 있는 배터리를 내놓겠다고 발표했다. 또한 기가팩터리를 설립해서 단가를 낮추고, 생산량을 대폭 늘리겠다고 한다. 텍사스주에 짓기로 한 다섯번째 기가팩토리는 역대 최대 규모라고 한다. 테슬라의 생산효율이 올라가면 단가가 낮아지고, 그로 인해 전기차는 지금보다 더 대중화될 듯 하다.

    테슬라_기가팩토리


    유상증자?

    테슬라는 최근에 액면분할을 했다. 테슬라 1주가 5주로 나눠진 것이다. 액면분할하면 보통 주식이 하락하는데, 테슬라는 이후에도 상승하고 있다.
    ( 참조: 주식 액면분할 의미와 주가에 미치는 영향은?! )

    최근에는 유상 증자를 하겠다고 발표했다. 유상증자를 한 기업을 몇 번 봤지만, 사실 이후 주가 흐름은 별로 좋지 않았다. 하지만, 최근 테슬라의 상승세를 봤을 때는 뭐라 애기하기 어려운 것 같다.


    앞으로 전기차가 대세인 것 같기는 하지만, 현재 테슬라 주식의 가격이 미래 가치에 비해 적정하지는 모르겠다. 하지만, 최근에 주가가 많이 상승하다보니 관심이 있어도 선뜻 사기는 어려운 듯 하다.



    테슬라 주식을 2016년부터 매월 100만원씩 샀다면?

    테슬라는 코로나 이후에 상승한 미국의 대표 기업중에서도 상승률이 가장 높다.
    ( 참조: 코로나 이후 애플,구글,아마존,테슬라,페이스북 등 미국 주가 흐름 비교! )

    2016년부터 매월 100만원씩 샀다고 가정하고, 수익률을 계산해보았다. 작업은 파이썬과 zipline 패키지를 이용했다. zipline에서 많이 사용하는 quandl데이터가 18년 3월 27일 이후에 업데이트가 중단됐다. 그래서 tiingo에서 데이터를 별도로 수집하여 작업하였다. 환율 등의 조건은 고려하기 어려워, 1200원 활율로 매월 840달러씩 테슬라 주식을 샀다고 가정해보았다. 

    기간은 2016년1월1일부터 2020년9월1일까지이다.

    테슬라_주식_매수

    ( 테슬라 주식 투자 시뮬레이션 결과 )


    빨간색 원이 주식을 매수한 시점이다. 최근에 주가가 많이 올라서 수익률도 713.95%라는 어마어마한 숫자가 나왔다. 누군지 알 수 없으나 그저 부러울 따름이다.

    총 매수수량: 704
    총매수금액: 41,088 달러
    평가금액: 334,435 달러
    수익률: 713.95%


    작업한 코드를 참고로 올려둔다. 아래는 zipline 백테스트 코드이다. 환경은 주피터 노트북을 이용했다.

    from zipline.api import order, record, symbol

    def initialize(context):
        context.i = 0
        pass

    def handle_data(context, data):
        context.i += 1
        record(nth=context.i)

        if int(context.i) % 23 == 0:
            buy_cnt = int(840 / int(data.current(symbol('TSLA'), 'price')))
            order(symbol('TSLA'), buy_cnt)
            record(buy_cnt=buy_cnt)
            record(etf=data.current(symbol('TSLA'), 'price'))
        else:
            record(buy_cnt=0)
            record(etf=data.current(symbol('TSLA'), 'price'))
            pass


    아래는 수익률을 계산한 코드이다.

    perf=_

    cnt_sum=perf["buy_cnt"].sum()
    print("총 매수수량: {}".format(cnt_sum))

    perf["buy_amt"]=perf["buy_cnt"]*perf["etf"]
    buy_sum=perf["buy_amt"].sum()
    print("총매수금액: {}".format(buy_sum))

    last_price=perf.loc[perf["nth"]==perf["nth"].max(),"etf"][0]
    cur_sum=cnt_sum*last_price
    print("평가금액: {}".format(cur_sum))

    print("수익률: {:.2f}%".format(cur_sum/buy_sum*100-100))

    perf["etf"].plot()


    아래는 위의 그래프를 그린 코드이다.

    import pandas as pd
    import seaborn as sns

    sns.lineplot(x=perf.index,y=perf["etf"])

    # 매수시점 그리기
    buys=list()
    for t in perf.transactions:
        if len(t)>0:
            buys.append(t[0]['amount']>0)
        else:
            buys.append(False)

    buys=perf.ix[buys]
    sns.scatterplot(buys.index,perf.etf.ix[buys.index],s=100,markers="^",color='r')