CSV 파일로 여러 거래소의 암호화폐 포트폴리오 분석하는 방법

여러 거래소에 분산된 암호화폐 포트폴리오를 분석하려면, 각 거래소에서 CSV를 내보낸 다음 이를 하나의 스키마로 표준화해야 합니다. 그런 다음 거래 내역을 현재 포지션으로 정산하고 취득 원가를 대입하여 미실현 손익을 계산합니다. 어려운 부분은 수학이 아닙니다. 서로 같은 열로 데이터를 내보내는 거래소가 없다는 점입니다.
두 곳 이상의 장소에 자산을 보유하고 있는 사람이라면 누구나 이 문제를 겪어보았을 것입니다. 각 대시보드는 확실해 보이는 숫자를 보여주지만, 그 중 어느 것도 전체 그림을 보여주지는 못합니다. 전체 합계는 일요일에 누군가가 수작업으로 계산한 산수 결과로만 존재할 뿐입니다.
이 가이드에서는 내보내기 단계와 파일들을 비교 가능하게 만드는 표준화 스키마를 다룹니다. 그런 다음 포지션 및 손익 계산 과정을 살펴보고, 수작업 방식이 절약하는 시간보다 더 많은 시간을 낭비하게 되는 지점을 짚어봅니다.
이 글은 데이터 분석 기법에 관한 것입니다. 투자, 세무 또는 금융 자문이 아닙니다.
시작하기 전에 필요한 것
포지션을 보유하고 있는 모든 거래소 및 지갑의 거래 내역 내보내기 파일이 필요합니다. 지갑에서 거래 내역을 추출할 수 있다면 지갑도 포함됩니다. 매매 내역만으로는 충분하지 않습니다. 입금, 출금, 스테이킹 보상, 에어드랍, 수수료 모두 보유 자산을 변동시키므로, 매수와 매도 기록만으로 구성된 포트폴리오는 실제 잔고와 일치하지 않습니다.
또한 결과가 달라질 수 있으므로 다음 두 가지를 미리 결정해야 합니다.
Your cost basis method. FIFO, LIFO 및 가중 평균법은 동일한 거래에 대해 완전히 다른 미실현 손익 수치를 산출합니다. 하나를 선택하여 모든 거래소에 일관되게 적용하십시오.
보고 통화. ETH/BTC와 같은 페어를 거래한 경우 일부 거래에는 법정화폐 가격이 표시되지 않습니다. 이를 하나의 통화로 표시하려면 거래 시점의 기준 가격이 필요합니다.
올바른 결과물은 다음과 같은 모습입니다. 각 자산의 수량, 평균 단가, 현재 가치, 미실현 손익을 보여주는 포지션 표가 생성됩니다. 그 옆에는 각 자산이 암호화폐 포트폴리오에서 차지하는 비중을 보여주는 자산 배분 현황이 표시됩니다.
수작업으로 진행하는 방법
옵션 1: 모든 내보내기 파일을 하나의 스키마로 표준화하기
각 CSV 파일을 열고 해당 열을 타임스탬프, 거래소, 거래 유형, 자산, 수량, 가격, 수수료 통화, 수수료 금액과 같은 공통 세트에 매핑합니다.
이 단계에서 대부분의 작업이 이루어집니다. 어떤 거래소는 Buy라고 쓰고, 다른 곳은 BUY라고 쓰며, 또 다른 곳은 수량의 양수/음수 부호로 방향을 나타내는 Trade로 기록합니다. 타임스탬프의 경우 어떤 파일은 현지 시간으로, 어떤 파일은 UTC로 제공되는데, 이는 시간 순서대로 정렬할 때 매우 중요해집니다. 수수료는 일부 파일에서는 별도의 열로 표시되고, 다른 파일에서는 수량에서 차감되어 반영되기도 합니다. 이를 놓치면 모든 포지션이 실제보다 약간 높게 계산됩니다.
모든 타임스탬프를 UTC로 변환하고 유형 레이블을 표준화합니다. 어떤 행이든 원래 출처를 추적할 수 있도록 거래소 열을 추가하여 파일들을 하나의 시트에 합칩니다.
옵션 2: 거래 내역을 포지션으로 정산하기
합쳐진 시트를 자산별로 그룹화하고 부호가 있는 수량을 합산합니다. 매수, 입금, 보상, 에어드랍은 더하고, 매도, 출금, 해당 자산으로 지불한 수수료는 뺍니다.
결과를 신뢰하기 전에 두 가지를 확인해 보는 것이 좋습니다. 자산 잔고가 마이너스로 표시된다면 입금 내역이 누락되었거나 거래 유형이 매핑되지 않았음을 의미합니다. 지나치게 딱 떨어지는 숫자를 보이는 자산은 대개 본인 소유의 거래소 간 이체를 나타냅니다. 한쪽에서는 매수로 계산되었지만 다른 쪽의 일치하는 출금 내역이 반영되지 않은 것입니다. 내부 이체는 이중 계산이 발생하는 가장 흔한 원인입니다.
옵션 3: 취득 원가 대입 및 손익 계산하기
자산별 거래 목록을 시간 순서대로 살펴보며, 선택한 방법을 적용하여 현재 보유 중인 수량의 원가를 추적합니다. 가중 평균법은 스프레드시트에서 구현하기 가장 쉽습니다. 원가와 수량의 누적 합계를 유지하고, 매수가 발생할 때마다 평균을 재계산합니다.
남은 수량에 현재 시장 가격을 곱하여 현재 가치를 구합니다. 보유 원가를 빼서 미실현 손익을 계산하고, 각 매도 시 기록된 실현 손익을 합산합니다. 그런 다음 각 자산의 가치가 포트폴리오에서 차지하는 비율인 배분 열을 추가합니다. 대개 이 비율을 보고 생각이 바뀌게 됩니다.
수작업 방식의 한계
스키마 매핑은 일회성 작업으로 끝나지 않습니다. 거래소는 내보내기 형식을 변경하곤 하며, 열의 위치가 바뀌면 지난 분기까지 잘 작동하던 조회 수식이 소리 없이 깨지게 됩니다.
대조 작업은 더 까다롭습니다. 4,000개의 행 중에서 일치하지 않는 단 하나의 내부 이체 내역을 찾으려면 자산과 타임스탬프별로 정렬한 뒤 두 항목이 일치할 때까지 일일이 읽어야 합니다. 이는 정말 지루한 작업이며, 데이터를 새로고침할 때마다 반복됩니다.
게다가 파일 크기도 커집니다. 세 곳의 거래소에서 몇 년 동안 활동한 내역은 수만 행에 달할 수 있습니다. 이 정도 규모가 되면 연결된 조회 수식과 누적 평균 공식으로 가득 찬 워크북은 느려지고 쉽게 깨지기 마련입니다.
Powerdrill Bloom으로 암호화폐 포트폴리오를 분석하는 방법
1단계: 데이터 업로드하기
모든 거래소의 CSV 내보내기 파일을 한 번에 업로드합니다. Powerdrill Bloom은 각 파일을 개별적으로 분석하므로, 데이터를 병합하기 전에 서로 다른 열 이름과 날짜 형식을 확인할 수 있습니다. 어떤 파일이 UTC를 사용하고 어떤 파일이 사용하지 않는지 바로 파악할 수 있습니다.
2단계: 자연어로 분석 요청하기
원하는 내용을 평이한 언어로 요청해 보세요. "이 내보내기 파일들을 하나의 거래 내역으로 병합하고, 자산별 포지션으로 정산한 뒤, 한쪽에만 나타나는 내부 이체 내역을 표시해 줘"라고 요청할 수 있습니다. 그런 다음 자산별 배분 비율, 가중 평균 기준의 미실현 손익, 또는 지난 1년 동안 포지션 구성이 어떻게 변했는지 물어보세요.
3단계: 차트, 보고서 또는 프레젠테이션 내보내기
배분 차트, 포지션 표, 또는 집중도 및 성과에 대한 서면 요약본을 추출합니다. 다음 분기에 데이터를 갱신할 때는 새 내보내기 파일을 업로드하고 동일한 질문을 던지기만 하면 됩니다.
매 분기 스프레드시트를 새로 만드는 것보다 이 방식이 더 나은 이유
| 수작업 스프레드시트 | Powerdrill Bloom | |
|---|---|---|
| 스키마 매핑 | 내보내기 형식이 변경될 때마다 재구축 필요 | 업로드 시 파일별로 자동 처리 |
| 내부 이체 확인 | 수작업 정렬 및 확인 | 일치하지 않는 쌍을 직접 질문하여 확인 |
| 네 번째 거래소 추가 | 새로운 매핑 및 수식 필요 | 파일 하나만 더 추가 |
| 추가 질문 | 매번 새로운 수식 작성 필요 | 동일한 데이터를 대상으로 질문 |
수작업 방식의 누적되는 비용은 모든 질문이 하나의 소규모 프로젝트가 된다는 점입니다. "3월의 자산 배분은 어땠지?"라고 묻는 것은 특정 시점의 포지션 표를 다시 만들어야 함을 의미합니다. 질문하는 비용이 저렴해지면 더 많이 질문하게 되며, 포트폴리오 집중도와 같은 정보는 확인하기 쉬울 때 비로소 사람들이 발견하게 되는 대표적인 요소입니다.
흔히 하는 실수
이 방식으로 구축된 암호화폐 포트폴리오에서 발생하는 대부분의 오류는 다음 다섯 가지 실수에서 비롯됩니다.
내부 이체를 거래로 계산하는 것. 한 거래소에서의 출금과 다른 거래소로의 입금은 하나의 이동입니다. 이를 두 개의 독립된 이벤트로 계산하면 보유 자산과 겉으로 보이는 거래량이 모두 부풀려집니다.
거래된 자산으로 지불한 수수료를 무시하는 것. ETH로 수수료를 지불하면 ETH 포지션이 감소합니다. 이를 수량에 포함하여 내보내는 파일과 별도로 분리하여 내보내는 파일은 다르게 처리해야 합니다.
거래소마다 다른 취득 원가 계산 방식을 혼용하는 것. 한 거래소에서는 가중 평균법을 사용하고 다른 거래소에서는 FIFO를 사용하면 아무런 의미가 없는 포트폴리오 수치가 도출됩니다.
스테이킹 보상과 에어드랍을 누락하는 것. 이들은 상응하는 매수 없이 수량을 증가시킵니다. 이를 제외하면 단위당 평균 단가가 너무 높게 계산됩니다.
오래된 가격과 비교하는 것. 현재 가치를 구하려면 모든 자산에 대해 일관된 타임스탬프의 가격이 필요합니다. 몇 시간의 시차가 있는 가격을 가져오면 배분 비율이 왜곡됩니다.
결론
다중 거래소 암호화폐 포트폴리오 분석은 결국 네 가지 단계로 요약됩니다. 모든 데이터를 내보내고, 하나의 스키마로 표준화하고, 포지션으로 정산하고, 취득 원가를 대입하는 것입니다. 스프레드시트에서도 충분히 가능합니다. 네 번째 거래소를 추가하거나 거래소가 내보내기 열을 변경하기 전까지는 말이죠.
매 분기 스프레드시트를 새로 만드는 번거로움 때문에 포트폴리오를 자주 확인하지 않게 되었다면, 기존 내보내기 파일을 사용하여 Powerdrill Bloom을 사용해 보세요. 단일 거래소에서의 이 문제를 해결하려면 암호화폐 거래소 CSV 내보내기 분석하기를 참조하십시오. 일반적인 파일 병합에 대해서는 CSV 병합 기능 페이지에서 작동 방식을 다루고 있으며, CSV를 차트로 변환하기에서 시각적 출력 방법을 설명합니다. 더 넓은 범위의 도구에 대한 조사는 무료 AI 암호화폐 분석 도구 모음 글을 확인해 보시기 바랍니다.
자주 묻는 질문
서로 다른 거래소의 암호화폐 내보내기 파일을 어떻게 병합하나요?
각 내보내기 파일의 열을 타임스탬프, 거래소, 유형, 자산, 수량, 가격, 수수료와 같은 공유 스키마에 매핑합니다. 그런 다음 모든 타임스탬프를 UTC로 변환하고 거래소 열을 포함하여 파일들을 합칩니다. 거래소 열을 유지해야만 모든 수치의 원래 출처를 추적할 수 있습니다.
스프레드시트에서 암호화폐 취득 원가를 계산하는 가장 좋은 방법은 무엇인가요?
수작업으로 구현하기에는 가중 평균법이 가장 실용적입니다. 자산별로 원가와 수량의 누적 합계를 유지하고, 매수가 발생할 때마다 평균을 재계산합니다. FIFO 및 LIFO는 개별 배치 단위의 추적이 필요하므로 거래 내역이 수백 건을 넘어가면 관리하기가 매우 까다로워집니다.
암호화폐 포트폴리오 합계가 거래소 대시보드와 일치하지 않는 이유는 무엇인가요?
일반적인 원인으로는 내부 이체의 이중 계산, 거래된 자산으로 지불한 수수료의 미차감, 또는 거래 목록에서의 스테이킹 보상 누락 등이 있습니다. 먼저 마이너스 잔고가 있는지 확인해 보십시오. 마이너스 잔고는 항상 누락되었거나 매핑되지 않은 거래가 있음을 나타냅니다.
거래소 CSV 파일과 함께 지갑 거래 내역도 분석할 수 있나요?
네, 타임스탬프, 자산, 수량, 방향이 포함된 거래 내역을 내보낼 수 있다면 가능합니다. 온체인 내역은 대개 가스비를 별도의 수수료 행으로 매핑해야 합니다. 가스비는 수수료를 지불하는 자산의 잔고를 감소시키기 때문입니다.
모든 소액 거래까지 전부 추적해야 하나요?
자산 배분 현황을 보는 목적이라면 소액 거래는 결과에 거의 영향을 미치지 않습니다. 하지만 취득 원가와 실현 손익을 계산할 때는 중요합니다. 소액 거래 하나하나가 현재 보유 중인 자산의 평균 단가를 변화시키기 때문입니다. 정확한 손익 수치에 가까워질수록 데이터의 완전성이 더욱 중요해집니다.