Super Sale WeekClaude Skills — 20% OFF
Tips

複数取引所のCSVから暗号資産ポートフォリオを分析する方法

Powerdrill Team·
複数取引所のCSVから暗号資産ポートフォリオを分析する方法

複数の取引所に分散している暗号資産ポートフォリオを分析するには、各取引所から CSV をエクスポートし、それらを1つのスキーマに標準化します。次に、取引を相殺して現在のポジションを算出し、取得価額を紐付けて含み損益を計算します。難しいのは計算ではありません。同じカラム(列)でエクスポートする取引所が2つと存在しないことです。

複数の場所に資産を保有している人なら誰でも、この問題に直面したことがあるはずです。それぞれのダッシュボードには確からしい数字が表示されますが、全体像を示しているものは1つもありません。合計額は、誰かが日曜日に手作業で行う計算の中にしか存在しないのです。

このガイドでは、エクスポートの手順と、ファイルを比較可能にする標準化スキーマについて説明します。その後、ポジションと損益の計算手順、そして手動での作業が節約できる時間よりも多くの時間を消費し始める境界線について解説します。

この記事はデータ分析の手法に関するものです。投資、税務、または財務に関するアドバイスではありません。

始める前に必要なもの

ポジションを保有しているすべての取引所やウォレットから、取引履歴のエクスポートが必要です。ウォレットから取引履歴を取得できる場合は、それも含めます。取引履歴(売買履歴)だけでは不十分です。入金、出金、ステーキング報酬、エアドロップ、手数料はすべて保有資産を変動させるため、売買だけで構築されたポートフォリオでは整合性が取れなくなります。

また、結果が変わってくるため、事前に次の2つの事項を決めておく必要があります。

Your cost basis method. FIFO(先入先出法)、LIFO(後入先出法)、移動平均法(総平均法)では、同じ取引であっても算出される含み損益の額が大きく異なります。1つを選択し、すべての取引所で一貫して適用してください。

Your reporting currency. ETH/BTCのようなペアで取引した場合、一部の取引には法定通貨の価格が紐付いていません。これらを1つの通貨で表すには、取引時点の基準価格が必要になります。

うまくいけば、次のような結果が得られます。各資産の数量、平均コスト、現在価値、含み損益を示すポジション表が作成されます。その横には、各資産が暗号資産ポートフォリオに占める割合を示すアロケーション(配分)ビューが表示されます。

手動で行う方法

オプション1:すべてのエクスポートを1つのスキーマに標準化する

各 CSV を開き、そのカラムを共通のセット(タイムスタンプ、取引所、取引タイプ、資産、数量、価格、手数料通貨、手数料額)にマッピングします。

ここが作業の大半を占める部分です。ある取引所は Buy と書き、別の取引所は BUY と書き、3つ目の取引所は Trade と書いて数量の正負で売買の方向を表します。タイムスタンプは、あるエクスポートではローカル時間、別のエクスポートでは UTC で提供されるため、時系列でソートする際に問題になります。手数料は、一部のエクスポートでは独立したカラムとして表示されますが、別のエクスポートでは数量から差し引かれた状態で反映されています。これを見落とすと、すべてのポジションがわずかに多めに計算されてしまいます。

すべてのタイムスタンプを UTC に変換し、タイプラベルを標準化します。各行を元のソースまで追跡できるように、取引所カラムを含めてファイルを1つのシートに統合します。

オプション2:取引を相殺してポジションを算出する

統合したシートを資産ごとにグループ化し、符号付きの数量を合計します。買い、入金、報酬、エアドロップは加算し、売り、出金、その資産で支払われた手数料は減算します。

結果を信頼する前に、2つのチェックを行う価値があります。残高がマイナスになっている資産は、入金の漏れや、マッピングされていない取引タイプがあることを意味します。不自然にきりの良い数字を示している資産は、通常、自身の取引所間の移動を示しています。一方の取引所で買いとしてカウントされ、もう一方の取引所での対応する出金が反映されていないケースです。内部移動は、二重カウントが発生する最も一般的な原因です。

オプション3:取得価額を紐付けて損益を計算する

資産ごとの取引リストを時系列順に確認し、選択した方法を適用して、現在も保有しているユニットのコストを追跡します。移動平均法がスプレッドシートで作成する場合に最も簡単です。コストと数量の累計を維持し、買いが発生するたびに平均を再計算します。

残りの数量に現在の市場価格を掛けて、現在価値を算出します。そこから保有コストを差し引いて含み損益を求め、各売り取引で確定した実現損益を合計します。次に、アロケーション(配分)カラム(ポートフォリオに占める各資産の価値の割合)を追加します。通常、この数字を見て考えを改める人が多いものです。

手動ルートで行き詰まるポイント

スキーマのマッピングは、一度やれば終わりというものではありません。取引所はエクスポートのフォーマットを改訂するため、カラムの位置が移動しただけで、前四半期には問題なく動作していた参照関数が静かに破損します。

データの照合はさらに厄介です。4,000行の中から一致しない1つの内部移動を見つけるには、資産とタイムスタンプでソートし、2つのエントリが一致するまで読み進める必要があります。これは本当に退屈な作業であり、データを更新するたびに繰り返されます。

そして、ファイルは肥大化します。3つの取引所で数年間活動すると、数万行に達します。その規模になると、連鎖する参照関数や移動平均の数式でいっぱいのワークブックは、動作が重くなり、同時に壊れやすくなります。

Powerdrill Bloom で暗号資産ポートフォリオを分析する方法

ステップ1:データをアップロードする

すべての取引所からの CSV エクスポートを一度にアップロードします。Powerdrill Bloom は各ファイルを個別にプロファイリングするため、データが結合される前に、異なるカラム名や日付フォーマットを確認できます。どのエクスポートが UTC を使用していて、どれが使用していないかを確認できます。

Powerdrill Bloom で暗号資産ポートフォリオを分析するために、複数の取引所の CSV エクスポートをアップロードする

ステップ2:自然言語で分析内容を指示する

普段使っている言葉で、やりたいことを指示します。これらのエクスポートを1つの取引履歴に結合し、資産ごとにポジションを相殺し、片方にしか表示されていない内部移動にフラグを立ててください。その後、資産ごとのアロケーション、移動平均法に基づく含み損益、または過去1年間でポジションの構成がどのように変化したかを尋ねることができます。

ステップ3:チャート、レポート、またはスライドをエクスポートする

アロケーションチャート、ポジション表、または集中度とパフォーマンスに関するテキストのサマリーを出力します。次の四半期の更新時には、新しいエクスポートファイルをアップロードして、同じ質問をするだけです。

Powerdrill Bloom からエクスポートされた暗号資産ポートフォリオのアロケーションチャート

これが四半期ごとのスプレッドシート再作成よりも優れている理由

手動のスプレッドシート Powerdrill Bloom
スキーマのマッピング エクスポートフォーマットの変更時に再作成 アップロード時にファイルごとに処理
内部移動のチェック 手動でのソートと読み取り 一致しないペアを直接質問する
4つ目の取引所の追加 新しいマッピング、新しい数式 ファイルを1つ追加するだけ
追加の質問 その都度新しい数式を作成 同じデータに対して質問するだけ

手動ルートの蓄積していくコストは、すべての質問が小さなプロジェクトになってしまう点にあります。「3月時点のアロケーションはどうだったか」と尋ねることは、その時点のポジション表を再構築することを意味します。質問するコストが低ければ、より多くの質問をするようになります。ポートフォリオの集中度は、まさに確認が容易になって初めて人々が気づくような事柄なのです。

よくある間違い

この方法で構築された暗号資産ポートフォリオにおける数値の誤りの大半は、5つのエラーに起因しています。

内部移動を取引としてカウントする: ある取引所からの出金と別の取引所への入金は、1つの移動です。これらを2つの独立したイベントとしてカウントすると、保有資産と見かけの取引量の両方が膨らんでしまいます。

取引された資産で支払われた手数料の無視: ETH で手数料を支払うと、ETH のポジションが減少します。これを数量に含めているエクスポートと、別枠にしているエクスポートでは、異なる処理が必要になります。

取引所間で取得価額の計算方法を混在させる: ある取引所では移動平均法、別の取引所では FIFO を使用すると、ポートフォリオ全体の数値は何の意味も持たなくなります。

ステーキング報酬やエアドロップの失念: これらは対応する買い取引なしに数量を増加させます。これらを除外すると、ユニットあたりの平均コストが高く計算されすぎてしまいます。

古い価格との比較: 現在価値を算出するには、すべての資産で一貫したタイムスタンプの価格が必要です。数時間ずれた価格を使用すると、アロケーションの割合が狂ってしまいます。

結論

複数の取引所にまたがる暗号資産ポートフォリオの分析は、すべてをエクスポートし、1つのスキーマに標準化し、ポジションを相殺し、取得価額を紐付けるという4つのステップに集約されます。スプレッドシートで行うことも十分に可能です。ただし、それは4つ目の取引所を追加したり、取引所がエクスポートのカラムを変更したりするまでの話です。

四半期ごとの再作成が原因で、本来の予定よりも確認の頻度が下がってしまっているなら、既存のエクスポートファイルを使って Powerdrill Bloom をお試しください。単一の取引所におけるこの問題については、暗号資産取引所の CSV エクスポートの分析をご覧ください。一般的なファイルの結合については、CSV 結合機能のページで仕組みを説明しており、CSV からチャートへの変換では視覚的な出力について解説しています。より幅広いツールについての調査は、無料の AI 暗号資産分析ツールのまとめをご覧ください。

よくある質問

異なる取引所からの暗号資産のエクスポートデータを結合するにはどうすればよいですか?

各エクスポートのカラムを、共通のスキーマ(タイムスタンプ、取引所、タイプ、資産、数量、価格、手数料)にマッピングします。次に、すべてのタイムスタンプを UTC に変換し、取引所カラムを含めてファイルを統合します。取引所カラムを維持することで、任意の数値を元のソースまで追跡できるようになります。

スプレッドシートで暗号資産の取得価額を計算する最適な方法は何ですか?

手作業で作成する場合、移動平均法が最も実用的です。資産ごとにコストと数量の累計を維持し、買いが発生するたびに平均を再計算します。FIFO や LIFO はロットレベルでの追跡が必要になるため、数百件を超える取引では管理が困難になります。

暗号資産ポートフォリオの合計額が、取引所のダッシュボードと一致しないのはなぜですか?

主な原因としては、内部移動の二重カウント、取引された資産で支払われた手数料の未控除、または取引リストからのステーキング報酬の漏れなどが挙げられます。まずは残高がマイナスになっていないか確認してください。マイナス残高は、常に取引の漏れやマッピングミスを示しています。

ウォレットの取引を取引所の CSV と一緒に分析することはできますか?

はい、タイムスタンプ、資産、数量、方向(入出金)を含む取引履歴をエクスポートできれば可能です。オンチェーンの履歴では、通常、ガス代を手数料を支払う資産の残高を減少させるため、独立した手数料行としてマッピングする必要があります。

すべての少額取引を追跡する必要がありますか?

アロケーション(配分)を確認するだけであれば、少額の取引は結果にほとんど影響しません。しかし、取得価額や実現損益を計算する場合は重要になります。なぜなら、それぞれの取引が現在も保有しているユニットの平均コストを変化させるからです。損益の数値に近づくほど、データの完全性が重要になります。