# 【実践】Pythonで仮想通貨データを取得して分析してみよう！

> 当サイト【スタビジ】の本記事では、データサイエンスの実践として仮想通貨のデータを使った分析を解説していきます！実データをもとに仮想通貨の売買手法をマスターしていきましょう！

- URL: https://toukei-lab.com/virtual_currency
- 公開: 2022.11.29 / 更新: 2026.10.28
- サイト: スタビジ（https://toukei-lab.com）

:::talk{who="umatan"}
当サイト【スタビジ】の本記事では、データサイエンスの実践として仮想通貨のデータを使った分析を解説していきます！実データをもとに仮想通貨の売買手法をマスターしていきましょう！
:::

こんにちは！スタビジ編集部です！

この記事ではデータサイエンスの実践として”[**仮想通貨**](/virtual_currency_study)“を使った分析を解説していきます！

:::talk{who="robotan"}
最近データサイエンス界隈でも、仮想通貨を使った分析って流行っているよね！なんだか難しそうだけど、、、
:::

:::talk{who="umatan"}
そうだね！仮想通貨を自動で売買するBotを開発して稼ぐ”**botter**“という人が増えているね！

せっかくだし勉強してみよう！
:::

今回は実際に手を動かしつつ「**仮想通貨データの取得**」～「**仮想通貨のデータの分析**」までの一連の流れをマスターしましょう！

## 仮想通貨データの取得

まずは<mark>仮想通貨のデータを取得</mark>していきましょう！

データの取得には**API**を利用します！

APIとは<mark>”アプリケーションプログラミングインターフェース”の略であり、ソフトウェアを通して機能などをつなげることのできる仕組み</mark>です！

APIについて詳しく知りたい方は以下の記事をチェックしてみてください！

<https://toukei-lab.com/api>

仮想通貨を扱う仮想通貨取引所の多くでは2種類のAPIを用意しています

- “**Public API**“：認証が不要、取引所の注文状況や公開されている取引の履歴、板情報を参照出来ます
- “**Private API**“：APIキーによる認証が必要、取引所での新規注文やそのキャンセル、自分の残高などを確認出来ます

今回は仮想通貨取引所「[Coincheck](https://coincheck.com/ja/documents/exchange/api#about)」で用意されているAPIを利用して、ビットコインの最新情報を取得します！

Public APIを利用するので、Coincheckへの会員登録などは不要です

```python
import requests
from pprint import pprint

endpoint = 'https://coincheck.com'
path = '/api/ticker'
url =endpoint + path

pair = {
    'pair': 'btc_jpy' 
}

r = requests.get(url, params = pair)
pprint(r.json())
```

CoincheckではベースのURL「https\://coincheck.com」に各APIのURL「/api/\~」を組み合わせたものにアクセスすることで各種APIを利用できます！

最新情報を取得する場合「ティッカー」というAPIを利用するので、リクエスト先は<mark>「https\://coincheck.com」＋「/api/ticker」となります</mark>

また、パラメーターで取得したいコインの種類を指定することも出来ます

```python
{'ask': 5458579.0,
 'bid': 5457080.0,
 'high': 5482155.0,
 'last': 5457510.0,
 'low': 5391070.0,
 'timestamp': 1648365754,
 'volume': 936.2452743}
```

実行結果を見てみると、データが収集出来ているのがわかりますね！

:::box
- ask：現在の売り注文の最安価格
- bid：現在の買い注文の最高価格
- high：24時間での最高取引価格
- last：最後の取引の価格
- low：24時間での最安取引価格
- volume：24時間での取引量
- timestamp：現在の時刻
:::

Private APIを使うと実際に注文したりビットコインを送信したりできるので是非[公式ページ](https://coincheck.com/ja/documents/exchange/api)を見てみてください！

また、取引所のAPIによって取得できる通貨の種類や情報が異なるので、ぜひ試してみてください！

:::talk{who="umatan"}
仮想通貨は

<mark>

利用できるAPIが豊富！

</mark>

ぜひいろんな情報を取得してみよう！
:::

## 仮想通貨データをPythonで分析！

次は実際に取得した仮想通貨データの値を用いて<mark>「買う」or「売る」を判別するアルゴリズムを実装</mark>していきたいと思います！

今回は自動仮想通貨Botでよく用いられる”**ボリンジャーバンド**“という指標を使っていきます！

“**ボリンジャーバンド**“とは、一定期間の価格データの平均(移動平均線)を中心として、値動きの振れ幅を標準偏差として表示するテクニカル指標の一つです

$$
±nσ=移動平均(ma_i)±標準偏差(s)×n
$$

ボリンジャーバンドを可視化するとこんな感じです

```python
plt.figure(figsize=(15,5))
plt.plot(df.index, df["Close"], label="Close", color='black', linestyle='solid', linewidth = 5.0)
plt.plot(df.index, df["sma"], label="sma")
plt.plot(df.index, df["-1σ"], label="-1σ", color='red')
plt.plot(df.index, df["+1σ"], label="+1σ", color='red')
plt.plot(df.index, df["-2σ"], label="-2σ", color='green')
plt.plot(df.index, df["+2σ"], label="+2σ", color='green')
plt.plot(df.index, df["-3σ"], label="-3σ", color='purple')
plt.plot(df.index, df["+3σ"], label="+3σ", color='purple')
plt.legend()
```

仮想通貨のデータだとデータ量が少ないので、<mark>説明のため「[株データ](/python_stock)」を用いています</mark>

![virtualcoin](/wp-content/uploads/2022/03/coin4-min.jpg)

統計学的に相場が正規分布に従う場合、価格は以下の確率でボリンジャーバンド内に収まることになります

:::box
- n=1の時、ボリンジャーバンド内に収まる確率⇒約68.3%
- n=2の時、ボリンジャーバンド内に収まる確率⇒約95.4%
- n=3の時、ボリンジャーバンド内に収まる確率⇒約99.7%
:::

上の図では赤線の範囲内が±1σ、緑線の範囲内が±2σ、紫線の範囲内が±3σとなります

こう見ると±2σはだいぶ幅が広く、超えることはなかなかなさそうなのが直感で分かりますね

ボリンジャーバンドの見方は様々ありますが、<mark>今回は単純に取得した値が±1σをはみ出したら売買のタイミングとします！</mark>

![virtualcoin](/wp-content/uploads/2022/03/coin2-min.jpg)

では「**仮想通貨の情報を取得して売買の判定**」をする実装を見ていきましょう

```python
import time
import requests
import pandas as pd

#1分間に一回情報を取得する
interval = 60
#移動平均期間
duration = 5

df = pd.DataFrame()

while True:
    time.sleep(interval)
    # 最新の情報を取り直す
    r = requests.get(url, params = pair)
    df = pd.concat(
        [df, pd.DataFrame([{'price': r.json()['last']}])], ignore_index=True
    )
    if len(df) < duration:
        continue

    df['SMA'] = df['price'].rolling(window=duration).mean()
    df['std'] = df['price'].rolling(window=duration).std()

    df['-1σ'] = df['SMA'] - df['std']*1
    df['+1σ'] = df['SMA'] + df['std']*1
    print(df)
    # 取引価格が-1σを下回ったら買いを入れる
    if df['price'].iloc[-1] < df['-1σ'].iloc[-1]:
        print('購入する！')

    # 取引価格が+1σを超えたら売りを入れる
    if df['+1σ'].iloc[-1] < df['price'].iloc[-1]:
        print('売却する!')
```

urlとpairは先ほど最新情報を取得したときのものです。ループの中で1分ごとに最新情報を取り直しています

1. 取得した最新の情報から取引情報(last)を取り出してデータフレームに”price”として格納します（pandas 2.0で`append`がなくなったので、`pd.concat`で1行ずつ足しています）
2. データが集まったら、移動平均と標準偏差を算出し、ボリンジャーバンドの計算を行います
3. 取引価格がボリンジャーバンド内に収まるか否かを判定します！

やっていることは「データを取得」⇒「計算」⇒「判定」とめちゃくちゃ複雑ではないな～と実感できたかと思います！

実際の自動売買Botでは売買の部分に<mark>Private APIを用いて仮想通貨の売り買いを実現しています！</mark>

:::talk{who="umatan"}
一通り仮想通貨のデータを取得して手を動かしてみると案外最初に感じてた難しい印象はとれたかな！

売買のロジックを考えるのは大変だけど、ぜひいろんな手法を試してみよう！
:::

ちなみに今回は取引所のAPIを利用しましたが、集計して色んな軸で分析するだけなら、Dune Analyticsなどの分析ツールを利用してSQLで取得するのも一つの手です。

以下の記事で詳しく解説しているので是非チェックしてみてください！

<https://toukei-lab.com/dune-analytics>

## Python×仮想通貨を勉強する方法

最後にPythonを使って仮想通貨を分析できるようになる勉強法について見ていきましょう。

勉強には[Udemy](/udemy-review)というプラットフォームがオススメです！

Udemyの講座についていくつか取り上げていきましょう。

### [【初心者向け】Pythonで分かるブロックチェーン・ビットコインの仕組み！手を動かして学ぼう！](https://www.udemy.com/course/blockchain-python/?referralCode=5B4434D9B22D46774312)

[![](/wp-content/uploads/2025/10/4493ee98021b6f25ae4423c6471cf2e4.jpg)](https://www.udemy.com/course/blockchain-python/?referralCode=5B4434D9B22D46774312)

<table class="table">
<tbody>
<tr>
<th>【時間】</th>
<td><span>2.5時間</span></td>
</tr>
<tr>
<th>【レベル】</th>
<td><span>初級</span></td>
</tr>
</tbody>
</table>

手前味噌になりますが、私自身が講師を務める講座です。

コンパクトにブロックチェーン・ビットコインの仕組みについてPythonで手を動かしながら学べる講座になっていますので是非チェックしてみてください！

今なら購入時に「NZWCLGF4BTZENY6E」という講師クーポンコードを入れると90%オフ以上の割引価格になりますのでぜひご受講ください！

::button[このコースを見てみる]{href="https://www.udemy.com/course/blockchain-python/?referralCode=5B4434D9B22D46774312" note="＼30日以内なら返金無料／"}

### [現役シリコンバレーエンジニアが教えるPythonで始めるスクラッチからのブロックチェーン開発入門](https://trk.udemy.com/kOqmZLcourse%2Fpython-blockchain%2F)

[![Udemy　コース　ブロックチェーン](/wp-content/uploads/2020/04/udemy-python20-min.jpg)](https://trk.udemy.com/kOqmZLcourse%2Fpython-blockchain%2F)

<table class="table">
<tbody>
<tr>
<th>【オススメ度】</th>
<td><span class="stars" role="img" aria-label="5点中4.5点" data-value="4.5"></span></td>
</tr>
<tr>
<th>【講師】</th>
<td><span>シリコンバレーのSplunkで働く現役エンジニア</span></td>
</tr>
<tr>
<th>【時間】</th>
<td><span>4.5時間</span></td>
</tr>
<tr>
<th>【レベル】</th>
<td><span>中級～上級</span></td>
</tr>
</tbody>
</table>

仮想通貨の基盤技術であるブロックチェーン×Pythonのコースです。

ブロックチェーンのシステムをPythonを使ってスクラッチで開発していきます。

最前線で働く現役エンジニア酒井さんだからこその内容です。

<mark>酒井さんの説明は非常に分かりやすく、本当にオススメです！</mark>

ブロックチェーンに少しでも興味のある方はぜひ受講してみましょうー！

::button[このコースを見てみる]{href="https://trk.udemy.com/kOqmZLcourse%2Fpython-blockchain%2F" note="＼30日以内なら返金無料／"}

## Pythonで仮想通貨データの分析まとめ

ここまでご覧いただきありがとうございました！

今回は仮想通貨取引所のAPIを利用して、Pythonで「**仮想通貨データの取得**」から「**仮想通貨データの分析**」まで学んでいきました！

今回はBotの作成まではいきませんでしたが、手を動かしながら仮想通貨を売買する仕組みに触れられたので、<mark>自動売買Botへの難しそうというハードルは下がったかなと思います！</mark>

ぜひ、いろんな統計手法を試しながら、自分だけの売買アルゴリズムを作っていきましょう！

:::talk{who="umatan"}
億万長者も夢じゃないかも！？
:::

以下の記事で仮想通貨以外にも株データ分析をしているのでぜひチェックしてみてください！

<https://toukei-lab.com/python_stock>

もっと踏み込んでデータ分析の方法について詳しく学びたい方は当メディアが運営するAIデータサイエンス特化スクールの「[スタアカ（スタビジアカデミー）](https://toukei-lab.com/achademy/)」をチェックしてみてください！

[**スタアカ（スタビジアカデミー）**](https://toukei-lab.com/achademy/)

[![スタアカ（スタビジアカデミー）のトップページ](/wp-content/uploads/2026/10/achademy-top.jpg)](https://toukei-lab.com/achademy/)

公式サイト：<https://toukei-lab.com/achademy/>

<table class="table">
<tbody>
<tr>
<th>【価格】</th>
<td>ライトプラン：1,280円/月（全コースが受講し放題）<br>
プレミアムプラン：129,800円（通常149,800円・買い切り）</td>
</tr>
<tr>
<th>【オススメ度】</th>
<td><span class="stars" role="img" aria-label="5点中5点" data-value="5"></span></td>
</tr>
<tr>
<th>【サポート体制】</th>
<td><span class="stars" role="img" aria-label="5点中4点" data-value="4"></span></td>
</tr>
<tr>
<th>【受講形式】</th>
<td>オンライン形式</td>
</tr>
<tr>
<th>【Pythonの学習範囲】</th>
<td>データサイエンスを網羅的に学ぶ<br>
実践的なビジネスフレームワークを学ぶ<br>
実際に実データを使った様々なワークを行う</td>
</tr>
</tbody>
</table>

データサイエンティストとしての自分の経験をふまえてエッセンスを詰め込んだのがこちらのスタビジアカデミー、略して「[スタアカ](https://toukei-lab.com/achademy/)」！！

当メディアが運営するスクールです。

月額1,280円のライトプランで、統計学から機械学習・生成AIまで全コースが受講し放題です！

<mark>プレミアムプランでは、24時間以内の質問対応と現役データサイエンティストとの1on1（30分×4回）を実施します！</mark>

カリキュラム自体は、他のスクールと比較して圧倒的に良い自信があるのでぜひ受講してみてください！

他のスクールのカリキュラムはPythonでの機械学習実装だけに焦点が当たっているものが多く、実務に即した内容になっていないものが多いです。

<mark>そんな課題感に対して、実務で使うことの多いSQLや機械学習のビジネス導入プロセスの理解などもあわせて学べるボリューム満点のコース</mark>になっています！

ウォルマートのデータを使って商品の予測分析をしたり、実務で使うことの多いGoogleプロダクトのBigQueryを使って投球分析をしたり、データサイエンティストに必要なビジネス・マーケティングの基礎を学んでマーケティングプランを作ってもらったりする盛りだくさんの内容になってます！

:::box
**・BigQuery上でSQL、Google Colab上でPythonを使い野球の投球分析**\
**・世界最大手小売企業のウォルマートの実データを用いた需要予測**\
**・ビジネス・マーケティングの基礎を学んで実際の企業を題材にしたマーケティングプランの策定**\
**・生成AIのAPIを使ってチャットボットやAIエージェントを作る**
:::

::button[スタアカの受講はこちら]{href="https://toukei-lab.com/achademy/" note="＼今すぐ試す／"}

Pythonを幅広く学びたい方は以下の記事を参考にしてみてください！

<https://toukei-lab.com/python-learn>