안녕하세요 새벽단호박입니다! 어제 코드를 발급받고, 이제 본격적으로 검색기를 만들어보려고합니다.
정말 많은... 많은 시행착오가 있었습니다. 여기까지오는데 하루를 썻네요...
우선 알려드릴것이... 저는 코딩의 '코'도 모릅니다.
다만 할 줄 아는거라곤 군대 때 독학한 매크로가 전부에요. 그래서 조금 돌아가더라도 우선 엑셀 매크로를 이용해 프로그램을 만들어보는게 편할거란 생각이 들었습니다.
덕분에 고생중이지만;; 여튼 '엑셀'을 이용한다는 점 알아주세요!
[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
위 사이트를 참조하였습니다.
(위 링크에 가면 수정하기 전 원문 샘플 파일이 있으니 도움이 되시면 좋겠습니다!)
우선 놀라운 사실.... 가격정보만을 가져오기 위해서는 따로 인증키가 필요가 없군요.... 특정 코드만 입력하는 것으로 가격정보를 가져올 수 있습니다.
구구절절 설명하기엔 양이 많고... 위 링크의 원작자님이 허락하시는대로 제가 수정한 파일을 업로드하겠습니다
저는 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를 이렇게 산출하는것 같습니다!!!!!!!
할렐루야!
글로 읽으시니 조금 안 다가오시지요?
비교한 파일 (요건 제가 만든거니 올리겠읍니다!) 을 첨부할테니 보고 확인해주세요!
그럼 이것을 매크로에 적용해야 할 겁니다.
우선 매크로 창을 켜봅시다
VBA 편집기 실행 : [Alt + F11]
이후 '현재 통합문서' > 삽입 > 모듈을 클릭하여 Module1 창을 오픈합니다!.
그리고 아래 TXT 파일을 다운. 적혀있는 코드를 복사/붙여넣기 합니다.
이후 실행하면...
요렇게 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 |
입니다.
복사/붙여넣기 하여서 덮어씌워 사용해주시면 됩니다.
여기까지 오는데 하루 꼬박 다쓴거 같습니다.
Split이 뭔치 Cells가 뭔지도 모르면서 눈치밥으로 겨우겨우 왔네요
일단 BTC-ETC한종목만이라도 RSI 검색을 할 수 있게되었으니 만족합니다...
다음은 저 작업을 '모든' 코인에 대해서 한번에 진행할 수 있도록 진행해보겠습니다.
그럼 감사합니다!!!