새벽, 단호박이, 먹고싶어

0.들어가며

안녕하세요 새벽단호박입니다! 어제 코드를 발급받고, 이제 본격적으로 검색기를 만들어보려고합니다.

 

정말 많은... 많은 시행착오가 있었습니다. 여기까지오는데 하루를 썻네요...

 

우선 알려드릴것이... 저는 코딩의 '코'도 모릅니다. 

 

다만 할 줄 아는거라곤 군대 때 독학한 매크로가 전부에요. 그래서 조금 돌아가더라도 우선 엑셀 매크로를 이용해 프로그램을 만들어보는게 편할거란 생각이 들었습니다.

 

덕분에 고생중이지만;; 여튼 '엑셀'을 이용한다는 점 알아주세요!

 

 

1. 엑셀에 '업비트' 가격정보 가져오기

 

 

[VBA] 업비트 Open API>시세 캔들 조회>일(Day) 캔들

API Reference HTTP Method API URL GET https://api.upbit.com/v1/candles/days QUERY PARAMS 필드명 필수 여부 설명 타입 market Y 마켓 코드 (ex. KRW-BTC, BTC-BCC) String to N 마지막 캔들 시각 (exclusive)..

xlmaster.tistory.com

위 사이트를 참조하였습니다.

(위 링크에 가면 수정하기 전 원문 샘플 파일이 있으니 도움이 되시면 좋겠습니다!)

 

 

우선 놀라운 사실.... 가격정보만을 가져오기 위해서는 따로 인증키가 필요가 없군요.... 특정 코드만 입력하는 것으로 가격정보를 가져올 수 있습니다.

 

구구절절 설명하기엔 양이 많고... 위 링크의 원작자님이 허락하시는대로 제가 수정한 파일을 업로드하겠습니다

 

 

 

2. '진짜' RSI를 구해야 한다!

 

저는 RSI를 자주 이용하는 편이고, 이를 활용하기 위해 이 검색기를 만드는 중입니다. 당연히 RSI에 대한 수식은 알고 있었고, 그대로 엑셀에 적용하였습니다.

 

지표명 지표풀이 지표수식(엑셀)
RSI 종가 상승평균값과 하락평균값의 합
대비 상승평균값의 비중
100*AU/(AU+AD)
AU (Average Up) 정해진 기간 (14일) 동안

금일 종가 > 전일 종가 인 경우

각 "금일 종가 - 전일종가"의 합의 평균
AU=sumif(범위,">0")/counfif(범위,">0")
AD (Average Down) 정해진 기간 (14일) 동안

금일 종가 < 전일 종가 인 경우

각 "전일 종가 - 금일종가"의 합의 평균
AD=sumif(범위,"<0")/counfif(범위,"<0")

 

그런데 왠걸? 값이 맞질 않습니다.....

 

 

날짜 실제값 엑셀값 오차(약)
2021-04-21 76.711 60.68873645 16.0
2021-04-22 80.400 64.52131688 15.8
2021-04-23 76.059 67.02542125 9.03
2021-04-24 69.430 67.51721919 1.91

 

엄청난 차이가 나는겁니다;;; 도저히 대략적인 값이라고 퉁칠수 없는 부분입니다;

그렇다면 애초에 수식자체가 잘못됬다는 뜻인데. 길을 완전히 잃어버렸습니다.

 

 

[지표] RSI(Relative Strength Index) 분석 (1) - 올바른 공식

대부분의 RSI 공식은 잘못되었다. 정말 이만큰 제대로된 제목이 있을까 싶을정도로 RSI 공식에 대해서 정확하게 기술되어있는 웹페이지를 찾아보기 힘들었다. 위키( 링크 ) 나 대부분의 웹페이지

bitcoin-labs.blogspot.com

 

그때 구세주처럼 위 포스팅을 발견했습니다. 감사감사!

 

내용을 요약하자면

 

1. 첫 RSI 는 기존의 식대로 구하는것이 맞다

2. 두번쨰 RSI 부터는 아니다!

  - AU(0) = (AU(1)X13 + (금일종가 - 전일종가) / 14

  - AD(0) = (AD(1)X13 + (전일종가 - 금일종가) / 14

3. 하지만 '첫 RSI'를 산정하는 방식에서 오차가 있기때문에, 완벽히 일치하진 않다

  - 다만, 횟수를 거듭하여 RSI를 구할수록 정확도가 상승한다.

 

입니다. 호오.... 흥미롭습니다.

 

실제로 그런가? 증명을 위해서 또 수식을 만들어 봤습니다. 그리고 검증.....

날짜 실제값 (구)엑셀값 오차(약) (신)엑셀값 오차(약)
2021-04-21 76.711 60.68873645 16.0 76.71151161  -0.0005
2021-04-22 80.400 64.52131688 15.8 80.40075582  -0.0007
2021-04-23 76.059 67.02542125 9.03 76.05966418  -0.0006
2021-04-24 69.430 67.51721919 1.91 69.43038280 -0.0003

오오오오오오!!! 사실상 동일값이 나옵니다!!!!!!!!!!!

 

적어도 '업비트'는 RSI를 이렇게 산출하는것 같습니다!!!!!!!

 

할렐루야!

 

 

 

글로 읽으시니 조금 안 다가오시지요?

비교한 파일 (요건 제가 만든거니 올리겠읍니다!) 을 첨부할테니 보고 확인해주세요!

 

 

진짜 RSI.xlsx
0.04MB

 

 

 

 

3. VBA에 업데이트하기

그럼 이것을 매크로에 적용해야 할 겁니다.

 

우선 매크로 창을 켜봅시다

 

VBA 편집기 실행 : [Alt + F11]

 

 

이후 '현재 통합문서' > 삽입 > 모듈을 클릭하여 Module1 창을 오픈합니다!.

 

 

그리고 아래 TXT 파일을 다운. 적혀있는 코드를 복사/붙여넣기 합니다.

 

RSI 코드.txt
0.00MB

 

 

이후 실행하면...

요렇게 I열에 진짜 RSI가 삽입된 표가 나타납니다!!!!!

 

1~4행에는 정보가 없는데. 자신의 스타일에 맞게 작성하셔서 사용하시면 됩니다.

 

참고로 각각의 열에 해당되는 정보는

 

A B C D E F G H I
코인명 날짜 당일종가
C
전일종가
C(1)
C-C(1)
(단 >0)
C-C(1)
(단 <0)
AU -AD RSI

입니다.

 

복사/붙여넣기 하여서 덮어씌워 사용해주시면 됩니다.

 

 

 

4. 마치며

여기까지 오는데 하루 꼬박 다쓴거 같습니다.

 

Split이 뭔치 Cells가 뭔지도 모르면서 눈치밥으로 겨우겨우 왔네요

 

일단 BTC-ETC한종목만이라도 RSI 검색을 할 수 있게되었으니 만족합니다...

 

다음은 저 작업을 '모든' 코인에 대해서 한번에 진행할 수 있도록 진행해보겠습니다.

 

 

그럼 감사합니다!!!

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading