Python応用

速報!PythonとReactで仮想通貨のリアルタイム取引ダッシュボードを作る方法【WebSocket活用】

「仮想通貨の価格変動、リアルタイムで追いたいけど難しそう…」そう思っているあなたに朗報です!🎉

Python・WebSocket・Reactを組み合わせると、ポーリングなしでビビッと動くトレーディングダッシュボードが作れちゃうんですよね。今回はその最小構成をわかりやすく解説します。

🔧 全体の構成をざっくり理解しよう

cryptocurrency dashboard
cryptocurrency dashboard / Photo by Rafael Minguet Delgado via Pexels

まず全体像を把握しておきましょう。イメージとしてはこんな流れです。

  • Python側:Binance の WebSocket API からリアルタイム価格を取得
  • シグナル生成:モメンタム(勢い)をもとに売買サインを簡易計算
  • React側:WebSocket でデータを受け取り、画面をリアルタイム更新

ポーリング(定期的にサーバーへ問い合わせる方式)と違い、WebSocket はサーバー側から「変化があったよ!」と通知してくれる仕組みです。だから無駄なリクエストがなくなり、レスポンスも爆速になります。

🐍 Python:WebSocketで価格データを取得する

まずはPython側のコードです。websockets ライブラリを使ってBinanceのストリームに接続します。

# ライブラリのインストール
# pip install websockets asyncio

import asyncio
import websockets
import json

# Binance の WebSocket エンドポイント(BTCUSDTの1秒ティック)
URI = "wss://stream.binance.com:9443/ws/btcusdt@trade"

async def stream_price():
    async with websockets.connect(URI) as ws:
        while True:
            msg = await ws.recv()          # メッセージを受信
            data = json.loads(msg)
            price = float(data["p"])       # 現在価格を取得
            print(f"BTC/USDT: {price}")

asyncio.run(stream_price())

ポイントをまとめるとこんな感じです👇

  • asyncio + websockets の組み合わせで非同期処理が超シンプルに書ける
  • data["p"] が約定価格(price)を示すフィールド
  • 接続が切れても再接続ロジックを追加すれば本番運用にも耐えられる

⚛️ React:WebSocketでデータをリアルタイム表示


次はフロントエンドです。ReactのカスタムHookを使うと、WebSocket接続がスッキリ書けます。

// useCryptoStream.js(カスタムHook)
import { useEffect, useState } from "react";

export function useCryptoStream(url) {
  const [price, setPrice] = useState(null);

  useEffect(() => {
    const ws = new WebSocket(url); // WebSocket接続を開く

    ws.onmessage = (event) => {
      const data = JSON.parse(event.data);
      setPrice(parseFloat(data.p));  // 価格をStateに保存
    };

    return () => ws.close(); // クリーンアップで接続を閉じる
  }, [url]);

  return price;
}

ここが重要です!useEffect の返り値でちゃんとWebSocketを閉じているのがポイント。メモリリーク防止に必須です。

📊 モメンタムシグナルの考え方

直近の価格リストを保持して、直前より上がっていたら「買いシグナル」、下がっていたら「売りシグナル」という超シンプルな判定も追加できます。つまり、データさえストリーミングできれば、あとはPythonのロジックを育てていくだけです。

まとめ

今回は Python + WebSocket + React を使ったリアルタイム仮想通貨ダッシュボードの最小構成を解説しました。難しそうに見えて、コアな部分は意外とシンプルですよね😊

まずはPython側だけ動かして価格が流れてくるのを確認するところから始めてみてください。「むずかしそう」が「できそう」に変わる瞬間、きっと楽しいですよ。ぜひ試してみてください!🚀

📚 関連商品・おすすめ書籍

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

もしも

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

初心者に定番のPython入門書

Amazonで見る

徹底攻略! 電子工作&プログラミング Arduinoで学ぶ電子工作完全ガイド

もしも

徹底攻略! 電子工作&プログラミング Arduinoで学ぶ電子工作完全ガイド

電子工作とプログラミングを同時に学べる

Amazonで見る

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

もしも

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

AIコーディングの現場活用法を学ぶ一冊

Amazonで見る

※本記事にはアフィリエイトリンクが含まれます。

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 Pythonを用いたアプリ開発、ウェブアプリケーションの開発で業務の効率化をサポートしています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です