구글 스프레드시트에 코인원 API 등 활용한 크립토 포트폴리오 "CryptoFolio" 공개
CryptoFolio
구글 스프레드시트에 코인원 API 등 활용한 크립토 포트폴리오
사용예시
- 배포용 문서 링크: https://docs.google.com/spreadsheets/d/1J9bChV38mGQt22HmxLc3q8U963D9D6MPAIL7lllr5c4/edit?usp=sharing
사용방법
1. 배포용 스프레드시트를 본인의 구글 드라이브로 복제합니다. (파일 - 사본만들기...)
링크주소: https://docs.google.com/spreadsheets/d/1J9bChV38mGQt22HmxLc3q8U963D9D6MPAIL7lllr5c4/edit?usp=sharing
주의! 반드시 [사본만들기]를 해주세요. 공유요청하시면 안됩니다.
2. 시트는 [WebApp], [Table], [Ticker]으로 구성됩니다.
시트별 설명
WebApp
WebApp은 최종 디스플레이되는 시트입니다.
여기 표시되는 값은 모두 [Table]의 값을 계산하여 표시하게 되어있기 때문에, 임의로 편집하면 안됩니다. 사용자가 할 수 있는 부분은 'unique' 함수로 인해 값을 자동으로 표시할 행이 부족할 경우 늘려주거나, 불필요한 행을 지워주는 정도의 액션만 취할 수 있습니다.
이 화면에서 확인 가능한 내용은 다음과 같습니다.
- 투자주체별 지분율 및 평가금액
- 포트폴리오별(봇, 트레이딩, 펀딩, 지갑 등) 평가금액 및 지분율
- 봇 트레이더를 위한 봇의 지분율 중 봇별 지분율 및 평가금액
- 커런시별 지분율 및 평가금액
- 피아트 / 크립토의 비중도 확인 가능
이 시트가 바로 표시되게 스마트폰에 공유링크로 단축 아이콘을 빼두면 매우 편하게 포트폴리오를 확인할 수 있습니다.
Table
종목별/포트폴리오별 잔고(수량) 값을 기록해두는 데이터베이스 테이블입니다.
(시세 값은 [Ticker] 시트에서 받아오게 되기 때문에 시세는 별도로 건들지 말기 바랍니다.)
각 행은 하나의 포트폴리오의 종목을 의미하며, 여러 설정 값을 지니게 됩니다.
- 포트폴리오타입(봇, 거래, 펀딩, 지갑 등)
- 봇 이름(봇일 경우)
- 커런시타입(피아트인지 크립토인지)
- 커런시(BTC, KRW, ETH 등 고유 심볼이며, 해당 심볼은 [Ticker] 시트와 일치하는 것을 사용해야함)
- 거래소 등 서비스명
- 계정(여러 계정을 이용하는 경우 구분할 수 있게)
- 링크 / 어드레스 / TXID(메모를 위해)
- 수량(각 수량을 직접 또는 API로 입력)*
- 가격([Ticker] 시트에서 커런시 값을 통해 자동 받아옴, KRW, BTC값이 존재)
- 평가금액(수량*시세)
(색상음영이 있는 1, 2, 3 부분은 투자주체가 여럿일 때 지분율을 각 포트폴리오별로 다르게 설정할 수 있습니다.)
- 지분별 투자주체 명(1, 2, 3에 해당하는 부분)
- 지분율(Share%, 각 포트폴리오 행 별로 다르게 지정할 수 있음)
- 지분율에 따른 수량, 투자원금, 수익금, 수익률 등이 수식으로 계산되어 표시됨
(최종적으로 모든 포트폴리오 행 별 합산된 지분율/평가금액으로 최종 투자주체별 지분율이 계산되며 해당 값은 [WebApp] 시트의 최상단에 표시됩니다.)
*잔고 등의 값은 직접 입력하거나 API로 받아와서 표시할 수 있습니다. 본 배포용 문서에서는 직접 제작한 CoinoneBalance.gs 스크립트를 통해 코인원 API로 잔고를 불러올 수 있습니다.
[도구 - 스크립트 편집기] 에서 스크립트 편집기로 이동한 다음, '이곳에 엑세스토큰, 시크릿키를 붙여넣으세요' 부분에 코인원 API(V2)값을 붙여넣으면, 자동으로 각 코인별 잔고를 받아올 수 있습니다.
CoinoneBalance.gs 스크립트 관련 안내사항
- 코인원에서 API를 만드실 때 반드시 개인용 API V2로 만드시고, 잔고 확인 기능만 체크하시기 바랍니다.
- 코인이 추가 상장되면 수정해줘야 새로운 종목을 표시할 수 있으며, 해당 부분은 아래쪽 코드를 보시면 쉽게 아실 수 있을겁니다.(대소문자 주의)
- 본 스크립트는 개발자 지인의 도움을 받아 제작한 코드이며 자유롭게 활용할 수 있습니다. 단 꼭 이 문서에 Upvote를 해주시고 활용하시기 바랍니다.
그 외 본 문서에서는 ImportJson.gs 라는 스크립트를 활용하고 있는데, json 으로 불러올 수 있는 API 결과값을 쉽게 얻어올 수 있습니다. 해당 수식 내용은 [Ticker] 시트의 코인별 시세 수식을 참고하시면 이해하시기 쉽습니다.
(ImportJson.gs 스크립트는 구글 시트(Google Sheet)로 가상화폐(비트코인/이더리움/리플) 관리 https://medium.com/@sgwanlee/구글-시트-google-sheet-로-가상화폐-비트코인-이더리움-리플-관리-95b0038de4d8 에서 가져왔습니다.)
Ticker
Ticker는 [Table] 시트에서 활용하는 암호화폐별 시세를 관리하는 시트입니다.
또한, 이 시트에서 [WebApp]에 표시될 암호화폐를 디스플레이 값을 통해 지정할 수 있습니다.
(본 시트의 목적은 API 콜 수를 줄이기 위한 용도입니다.)
포트폴리오로 관리하고자하는 암호화폐가 추가되거나, 기준시세를 다른 거래소로 쓸려면 이 시트에서 수정하면 됩니다.
앞서 설명한대로, ImportJson를 활용하면 API로 시세를 쉽게 받아올 수 있을것입니다.
암호화폐별로 Display열에 1을 입력하면 [WebApp] 시트의 커런시 항목에 표시됩니다. 디스플레이되지 않는 암호화폐는 [WebApp] 시트 최하단의 Other로 모아서 표시되게 됩니다.
3. 스마트폰에서 확인하기
시트를 본인의 계정에 복사해서 포트폴리오 구성을 마쳤다면, 해당 문서의 우측 상단 [공유] 버튼을 클릭합니다.
링크가 있는 사용자만 볼 수 있게 링크를 만듭니다. 그리고 복사한 링크를 스마트폰 모바일 브라우저에서 엽니다.
[WebApp] 시트가 제대로 표시되면, 그 페이지를 홈화면에 아이콘으로 추가해둡니다. (공유버튼 - 홈화면에 추가)
이제 수시로 홈화면에 빼놓은 아이콘을 통해 포트폴리오를 확인할 수 있습니다.
장점 및 단점
장점
- 다양한 서비스나 블록체인상의 포트폴리오를 한 곳에 모아서 확인할 수 있다는 점에서 매우 혁신적인 잔고 관리 방법이 될 수 있습니다.
- 관심있는 암호화폐의 시세를 수시로 한번에 확인할 수 있어 편리합니다.(코인원, 빗피넥스, OKEX 티커 API 예제 지원, 다른 거래소도 조금만 시간 투자하면 쉽게 추가할 수 있습니다.)
- 여러 투자주체의 자본(ex: 부모님 돈 등)을 끌어다 같이 운용중이라면 투자주체별 지분 관리가 가능해서 좋습니다.
- 로그인하지 않고도 잔고를 확인할 수 있습니다.(현재 코인원 거래소만 지원)
- 개인 지갑의 잔고도 API로 받아올 수 있습니다.(현재 비트코인, 이더리움만 지원)
단점
- 제대로 활용하려면 API에 대한 기본 지식이 필요하고, 세팅하는게 시간이 꽤 소모됩니다.
- 포트폴리오가 복잡해질수록 로딩이 길어질 수 있습니다.
- 공유 링크가 털리면 잔고를 외부사람이 볼 가능성이 있습니다.(따라서 절대 개인정보를 문서상에 입력하지 마세요)
이 문서는 암호화폐를 다년간 관리하면서 필요에 의해 제작한 문서이며, 노력의 산물입니다.
부디 잘 활용해주시고 많은 Upvote 부탁드립니다.
(이 문서에서 발생한 스팀 및 스팀$는 전액 API 개발을 도와준 개발자 지인에게 전달될 예정입니다.)
감사합니다.
처음엔 어렵겠지만 .. 보배같은 것을 공유해주셔서 진심으로 감사합니다 .
API는 익숙치 않아 엑셀로 일일이 copy, paste하여 이력관리 하던 저로선 한줄기 빛과 같은 정보입니다. 진심 감사드립니다. app 개념 이해를 도와 주십시요.
한 개인이 몇개의 거래소를 이용하든 Table탭의 1 란에 관련 정보를 입력하면 webapp crypto polio에 개인1의 총합이 나타나고, portfolio 에서 개인1이 봇을 운영하는 몫, 직접 투자하는 몫, ICO에 참여한 몫, 월렛에 보관되어 있는 몫을 세부적으로 표현해 준다, 그리고 bot 항목에서 봇 종류별 운영 몫을 나타내 준다, 이지요? 그럼 currency의 용도는 무엇인지요? Ticker탭을 보면 현 시세를 알 수 있게 만들어 주신 듯 한데 다른 용도가 있을까요?
그리고 Table탭에서 개인의 필요에 따라 API를 수정, 추가하는 것이고, 한명일 경우에는 2,3 란은 공란으로 비워놓으면 된다, 그리고 Ticker탭은 거래소 API를 매번 불러오는 일을 줄이기 위해 만들었다 로 이해하면
되는 거죠?
죄송합니다. 개발 경험이 거의 없어서... 개념이해가 필요하여 질문 드렸습니다. ^^; 다시 한번 감사 말씀 드립니다. 덕분에 꽤나 체계적인 투자자로 행세할 수 있을 듯 합니다.
“한 개인이 몇개의 거래소를 이용하든 Table탭의 1 란에 관련 정보를 입력하면 webapp crypto polio에 개인1의 총합이 나타나고, portfolio 에서 개인1이 봇을 운영하는 몫, 직접 투자하는 몫, ICO에 참여한 몫, 월렛에 보관되어 있는 몫을 세부적으로 표현해 준다, 그리고 bot 항목에서 봇 종류별 운영 몫을 나타내 준다, 이지요?”
—-
“그럼 currency의 용도는 무엇인지요? Ticker탭을 보면 현 시세를 알 수 있게 만들어 주신 듯 한데 다른 용도가 있을까요?”
—-
“그리고 Table탭에서 개인의 필요에 따라 API를 수정, 추가하는 것이고, 한명일 경우에는 2,3 란은 공란으로 비워놓으면 된다, 그리고 Ticker탭은 거래소 API를 매번 불러오는 일을 줄이기 위해 만들었다 로 이해하면 되는 거죠?”
—-
“죄송합니다. 개발 경험이 거의 없어서... 개념이해가 필요하여 질문 드렸습니다. ^^; 다시 한번 감사 말씀 드립니다. 덕분에 꽤나 체계적인 투자자로 행세할 수 있을 듯 합니다.”