+-+-+ +-+ +-+-+-+-+
|G|O| |4| |H|I|V|E|
+-+-+ +-+ +-+-+-+-+

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

구글시트로 업비트 시세 조회하기

BY: @lovelsh | CREATED: Jan. 7, 2018, 2:58 p.m. | VOTES: 6 | PAYOUT: $0.55 | [ VOTE ]

첨 시작은 .. 투자한거에 수익률 계산을 원하는대로 좀 해보고자 한거였는데
만들고 나서보니 금액이 생각대로 맞지를 않아서 ㅠㅠ

그나마 볼 수 있을만한게 업비트 시세조회까지는 된거 같아서 내용공유합니다 ^^

사용한건 ImportJSON 함수와
구글링한 결과의 집합(새벽에 이거만 한거 같네요 ㅋㅋ)입니다

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

허접하기 짝이 없지만 .. 공식 API가 없는 거래소의 값을 구글시트에서 본다는거에 만족하고 있습니다
(~~이거를 파이썬으로 해보겠다고 삽질한 시간이 더 길지만 ㅠㅠ~~ 역시나 기본문법도 모르고 코딩하긴 힘들다는 ㅠㅠ)

>https://crix-api-endpoint.upbit.com/v1/crix/candles/minutes/3?code=CRIX.UPBIT.KRW-BTC&count=1

기본적인 조회함수 입니다. minutes 뒤에 숫자는 몇분단위인지에 대한 구분이고
> CRIX.UPBIT.KRW-BTC
이부분이 조회할 통화이며, 뒤에 count 는 가져올 갯수입니다

조회해주는 데이터의 기본은 통화 코드로만 있어서 해당 통화의 명칭은 아직 가져올데를 못찾은 관계로 그냥 타이핑합니다 ;;

시세 조회하는 셀에 들어갈 수식은

>=ImportJSON(concatenate("https://crix-api-endpoint.upbit.com/v1/crix/candles/minutes/3?code=CRIX.UPBIT.KRW-", 코인코드셀(ex:B8),"&count=1&",$B$3), "/tradePrice", "noInherit,noTruncate,noHeaders")

count=1뒤는 필요 없는건데 B3셀이 포함된건 뒤에서 설명하고,
/tradePrice는 위 주소에서 가져온 값중에 금액만 가져오기 위해 쓴 부분이고
뒤에 옵션은 ImportJSON 사이트에서 보시면 될듯한데, noHeaders를 주셔야 해당 셀에 값이 입력됩니다

저 옵션이 없으면 수식입력한 줄에는 tradePrice 가 찍히고 아래셀에 값이 나오네요
(사실 이거때메 초반에 표를 가로로 만들었던건데 .. 코인 종류가 많아져서 가로로 하길 잘했다고 위안을 삼았습니다 ㅋ)

가져온 데이터중에 timestamp 값이 있어서 .. 조회기준일시라고 할만한 데이터가 있습니다만

>1515255133844

이런식으로 나와서 현재시간을 알 수 없습니다

역시나 구글링과 .. 어차피 오늘날짜에 현재시간일테니 .. 대략 수식 짜맞추기 해서 구하긴 했는데요

> =((((M6/1000)/60)/60+9)/24)+DATE(1970,1,1)

숫자값을 현재 시간으로 변환하기 위해 나누기를 하고 (1/1000 초, 60초, 60분, 24시간 )
timestamp 기준시간인 1970/01/01 을 더합니다

중간에 60+9는 한국시간 맞추기 위해 +9시간 하려고 넣은 값입니다 ^^

여기까지가 기본적인 조회방법인데요, 만들고 나서보니 문제가 하나 있었습니다

사용자정의 함수 같은것들은 함수내에 인자값으로 랜덤, NOW 등을 쓸 수 없고,
해당 함수의 리프레시를 위해선 인자값이 변경되야만 합니다 ㅡㅡ;;

ImportJSON 에다가 트리거를 걸어봤으나 원하는데로 되지 않아 .. 단순무식한 스크립트하나 추가합니다

function edit_cell() {
  SpreadsheetApp.getActiveSheet().getRange('B3').setValue(SpreadsheetApp.getActiveSheet().getRange('B3').getValue()+1);
}

길지만 .. B3셀 값을 가져와서 +1해서 set 하는거밖에 없습니다
(아직 함수를 잘 쓸줄 몰라서 .. 역시나 구글링으로 get함수 있길래 set을 그냥 해본 ;;;;)

이 함수를 등록해놓고 트리거에 다음과 같이 분단위로 호출하면 매분마다 B3셀의 값이 +1 됩니다
(넘 커지면 그냥 1로 기재해주심 되겠네여 ^^;)

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

아, 트리거나 스크립트는 .. 아래 메뉴로 가시면 나옵니다

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

스크립트창 뜨면 아래 트리거 버튼

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

여기까지 시세 조회 끝 입니다 ^^

거래내역 가져다가 (아직 API 없어서 수기로 ;;;) 투자대비 현재금액 수익율 계산은 해봤는데 ..

사기만 하고 팔지 않아야 수익율이 정확하게 나와서 이부분은 좀더 수정해보고 추가해야 할것 같습니다 ^^

구글시트 파일은 아래 링크 걸었습니다

성투하시길 ^^

업비트 시세조회 구글시트 링크

> p.s. 혹시 게시글 작성에도 시간제한이 있는건가요?
> 어제 써놓았던글이 이제야 작성하기 버튼이 활성화 되네요 ;;

TAGS: [ #kr ] [ #coinkorea ] [ #googlesheets ] [ #upbit ] [ #trade ]

Replies

@syjk96 | Jan. 7, 2018, 3:04 p.m. | Votes: 0 | [ VOTE ]

글작성5분간격마다됩니다~
글 잘봤습니다!! 팔로우했습니다~ 맞팔부탁드려요 ^O^

@lovelsh | Jan. 7, 2018, 3:51 p.m. | Votes: 0 | [ VOTE ]

네 감사합니다~ ^^ 맞팔할께요 ~
글작성은 하다보니 태그 갯수하고도 연관이 있는거 같네요 ;;

@silverkhan | Jan. 25, 2018, 12:20 p.m. | Votes: 0 | [ VOTE ]

정말 감사합니다! 덕분에 큰 도움이 되었습니다-.

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