___  ___    _ _    _  _ _____   _____
 / __|/ _ \  | | |  | || |_ _\ \ / / __|
| (_ | (_) | |_  _| | __ || | \ V /| _|
 \___|\___/    |_|  |_||_|___| \_/ |___|

 --- A GOPHER-LIKE INTERFACE FOR HIVE BLOCKCHAIN ---

[금융투자]EXCEL로 간단하게 가상화폐 백테스팅을 해보자!

BY: @sungkibae | CREATED: Feb. 16, 2018, 12:56 p.m. | VOTES: 21 | PAYOUT: $5.28 | [ VOTE ]

안녕하십니까. 금융과 데이터분석을 좋아(만)하는 배성기입니다!
앞으로 금융과 데이터분석에 관한 글들을 쓸 예정입니다.
팔로우해주시면 감사합니다

이번에 이야기 할 것은
"EXCEL을 사용해 간단하게 하는 가상화폐 백테스팅"
에 대한 것 입니다.

백테스팅이란,
자신의 가설을 과거의 정보에 적용해서
성과를 확인하는 것을 이야기합니다.

물론 가장 좋은 방법은 코딩을 배우는 것 이지만,
쉽게 접하기 어려운 방법이므로
오늘은 예제를 통해 엑셀로 백테스팅을 하는 법에 대해 설명하겠습니다.
[IMAGE: https://steemitimages.com/400x0/https://steemitimages.com/DQmXx1MSPR79yk6HZBXhivscc5pWu3yXoJXUtkS7Jtxt42J/image.png]

일반적인 백테스팅의 구조는 다음과 같습니다.
[IMAGE: https://steemitimages.com/400x0/https://steemitimages.com/DQmUYYgQyKQRvyk7XnFVgepe1TqcZk347G39LDQ4rucrCq6/image.png]

  1. 아이디어 구상
    가장 먼저 해야할 것은 무엇을 테스트할지 정해야 합니다.
    간단하게 스팀에 추세투자법을 테스트해보겠습니다.

룰은 다음과 같이 정했습니다.
* 지난 3일의 평균가격보다 오늘의 가격이 높다면 보유함
* 지난 3일의 평균가격보다 오늘의 가격이 낮고 자산을 보유중이라면 매도함

  1. 데이터 수집 및 전처리
    다음으로는 백테스트에 필요한 데이터를 수집해야합니다.
    지금 필요한 데이터는 SBD의 일별 가격정보입니다.
    가상화폐의 일별(혹은 주, 월별) 가격정보는
    여기가셔서,
    [IMAGE: https://steemitimages.com/DQmV3RQAvBVJ6ykyFuxuAsTQGWaJcZGjFpXzHRVyfJ3BCLi/image.png]

기간을 설정하시고, 데이터다운로드를 클릭하시면 받을 수 있습니다.
다른 가상화폐의 데이터역시 취급하고 있습니다.
[IMAGE: https://steemitimages.com/600x0/https://steemitimages.com/DQmUUMi5ZeeVn7u5gbMZs4ZWH8N7Ss5FMdPB7yKv9wLvhqh/image.png]

혹시 분이나 시간단위의 데이터가 필요하시면
이 글을 참고하시거나,
댓글로 요청해주시면 업로드하겠습니다.

다음으로는 받은 엑셀파일에서,
필요하는 데이터만을 뽑고, 변형시키는 작업이 필요합니다.
이를 전처리(Pre-Processing)이라고 합니다.

먼저 받은 데이터는 아래와 같은 모습을 가지고 있습니다.

[IMAGE: https://steemitimages.com/DQmSFVroE7dqg8jJx1ZiBtwMsi8XVw1ewdbPoeqHF8qo6is/image.png]

먼저 날짜를 오름차순으로 바꿔줍니다.
A2열을 마우스 좌측클릭하시고 A열의 마지막행을 Shift+좌측클릭(그냥 드래그하셔도 됩니다.)
한 뒤, 아래의 그림을 따라해 주시면 됩니다.
[IMAGE: https://steemitimages.com/600x0/hhttps://steemitimages.com/DQmXdwbPihJ2ksWP8TGsRYTRZ84acCaWWh5hMpDzp5TA5gH/image.png]
[IMAGE: https://steemitimages.com/DQmd1z5fiheDRDoYpf117HJTLiRwoaoaSgRVWZm9VwCLbR1/image.png]

다음으로는,
현재가(=종가)를 이용해 지난3일의 평균가격을 구해줍니다.
[IMAGE: https://steemitimages.com/DQmWD9rHN31iSuqBq9KJ8Ej2mB4bqf8kyvYhU1BnzfiLhTQ/image.png]

같은 방법으로 매일의 수익률도 구해줍니다.
[IMAGE: https://steemitimages.com/DQmSMRfyARrC5UykVcaQr8KmVg134tij5Z4ai4uNtKZRv2A/image.png]

  1. For~,If~
    행렬선언은 EXCEL특성상 생략했습니다.
    다음으로는 If문을 사용해 조건을 충족할때를 찾아,
    매수포지션을 가지고가야합니다.
    [IMAGE: https://steemitimages.com/DQmdqyEjyRWGGQBcqAFkbxXgqCyXTJx9YDEA5ZnhVtHR5Ux/image.png]

  2. 전략의 유효성 검증
    다음으로는누적수익률, MDD, 표준편차등을 구해보겠습니다.

누적수익률
누적수익률은 다음과 같은 식으로 구할 수 있습니다.
[IMAGE: https://steemitimages.com/DQmWD9XRCYFnYyTtFsJgf3niH7oNXmH1UVtxEXwmXoNc7tf/image.png]

날짜와 누적수익률의 열을 통해 쉽게 그려프도 그릴 수 있습니다.
[IMAGE: https://steemitimages.com/DQmVbEN2LMTfTWmQzueye5D6nrtpys5Hsp8T8rZYFHXhoR1/image.png]

Draw Down
손실폭은 아래와 같이 구할 수 있습니다.
[IMAGE: https://steemitimages.com/DQmNz4GfWXcrC6Drrqcs49zTgPQVa55XJ6tGUbx5wnLDhfp/image.png]
역시 같은 방법으로 그래프를 그릴 수 있으며,
MAX함수를 쓴다면 MDD를 바로 찾을 수 있습니다.

표준편차
표준편차를 구하는 함수는 STDEV입니다.
연간으로 환산하고 싶다면,
STDEV에 수익률의 열을 넣어주시고, 월 데이터라면 SQRT(12)를, 일간 데이터라면 SQRT(252)를 해주시면 됩니다.

수익률 연율화
아래의 수식을 이용하시면됩니다.
[IMAGE: https://steemitimages.com/DQmaxPkecCi93yUjQe2791rahSm1ET8xzcudMUxih2yvLfT/image.png]

간단하게 백테스팅을 하는법에 대해서 포스팅했습니다.

백테스팅이라는 것은 단지 자신의 생각이,
과거의 데이터에 맞게 떨어지는지를 확인하는 과정일 뿐입니다.

블랙스완의 저자인 니콜라스 탈레브는 이런 말을 했습니다

"과거가 그 역사적 기록으로 정확히 설명되지 않으며,
 과거수익률로 미래의 수익 예상 분포를 얻는 것은 부정확하다”

특히 가상화폐는 짧은 시계열과 지금까지 우상향을 계속했던 편향된 자료이므로,
백테스트는 단지 과거의 자료로만 받아들이셨으면 합니다.

부족한 글 읽어주셔서 감사합니다!
글이 마음에 드셨다면 저를 [IMAGE: https://steemitimages.com/0x0/https://steemitimages.com/DQmTiCwPX5Eh6J9TrHZ9Aki1E8u7jM6gc2LqvycQ91JFrjQ/Steemit%20Follow.gif] 해주세요^^

TAGS: [ #kr ] [ #kr-newbie ] [ #tooza ] [ #jjangjjangman ] [ #finance ]

Replies

@tip2yo | Feb. 16, 2018, 1 p.m. | Votes: 1 | [ VOTE ]

엑셀도 이렇게 활용이 될 수 있군요.
잘보고 갑니다.ㅎ

@sungkibae | Feb. 16, 2018, 1:02 p.m. | Votes: 0 | [ VOTE ]

엑셀 참 유용한 도구라고 생각합니다.
하지만 적응만 되면 코딩하는게 훨씬 편합니다 ㅋㅋ..

@dreamroy | Feb. 16, 2018, 1:10 p.m. | Votes: 1 | [ VOTE ]

복잡네요 ㅜㅠ

@sungkibae | Feb. 16, 2018, 1:12 p.m. | Votes: 0 | [ VOTE ]

스팀잇여러분들이 복 많이 받으라고
"복" 잡히도록 글을 썻...
죄송합니다.ㅠ

새해복많이받으세요!

@bobos85 | Feb. 16, 2018, 2 p.m. | Votes: 1 | [ VOTE ]

도움되는 글 감사합니다..^^

@sungkibae | Feb. 16, 2018, 3:01 p.m. | Votes: 0 | [ VOTE ]

감사합니다!^^

@joeuhw | Feb. 16, 2018, 2:12 p.m. | Votes: 1 | [ VOTE ]

엄청 고생하셨네요! 잘 봤습니다 @홍보해

@sungkibae | Feb. 16, 2018, 3:01 p.m. | Votes: 0 | [ VOTE ]

핳 감사합니다!

@krguidedog | Feb. 16, 2018, 2:13 p.m. | Votes: 0 | [ VOTE ]

http://i.imgur.com/7KVQf6i.jpg@sungkibae님 안녕하세요. 개대리 입니다. @joeuhw님이 이 글을 너무 좋아하셔서, 저에게 홍보를 부탁 하셨습니다. 이 글은 @krguidedog에 의하여 리스팀 되었으며, 가이드독 서포터들로부터 보팅을 받으셨습니다. 축하드립니다!

@carylee | Feb. 16, 2018, 6:28 p.m. | Votes: 0 | [ VOTE ]

잘 봤습니다 :) 백테스팅을 하고 싶은데 분단위 백테스트 자료를 얻을 수 있을까요?

@sungkibae | Feb. 16, 2018, 9:42 p.m. | Votes: 0 | [ VOTE ]

원하시는 자산과 기간을 이야기해주시면 빠른시일내로 포스팅하겠습니다.
감사합니다~

@carylee | Feb. 16, 2018, 10:30 p.m. | Votes: 0 | [ VOTE ]

아아 다시 읽어보니 저기서 구할 수 있군요. 제가 하겠습니다 ㅎㅎ

@jingyuhan | Feb. 16, 2018, 7:39 p.m. | Votes: 0 | [ VOTE ]

좋은 글 감사합니다.

@sungkibae | Feb. 16, 2018, 9:42 p.m. | Votes: 0 | [ VOTE ]

좋게 봐주셔서 감사합니다~!

[ BACK TO TRENDING ] [ BACK TO MENU ]
CMD>