CCXTを使って仮想通貨のトレードをしてみる(第1回):インストールから価格取得まで
CCXTを使って仮想通貨のトレードをしてみる(第1回):インストールから価格取得まで
はじめに:なぜ仮想通貨の自動トレードなのか
ねえねえ、キミ!!「仮想通貨の自動売買」って聞いたことあるよネ?😆 僕さ、先月からずっと、気になってたんだヨ。で、先週の夜中にサ、妻が寝てる隙にコッソリ調べてたんだケド……いや、聞いてヨ? コレ、スゴいんだヨ!!✨
そもそものキッカケはサ、「楽に小銭を稼げないもんかな〜😋」っていう、なんとも俗っぽい動機だったりするんだよネ(笑)。手動で相場を眺め続けるって、ムリじゃないデスカ。仮想通貨の市場ってサ、24時間365日ずーっと動いてるワケですヨ。人間がトイレ行ってる間にも、飯食ってる間にも、妻にカツカレー食べたいとおねだりしてる間にも、相場はグングン動き続けてるんだヨネ😭
……というわけでサ、「面倒なことはぜんぶPCに任せて、僕は不労所得をゲットする!!🎉」という崇高な計画を立てたワケですヨ。夢があるよネ!!
この連載ではサ、Pythonで仮想通貨の自動売買Botを一緒に作っていこうと思ってます♪ 第1回の今回は、CCXTというライブラリの概要・環境構築・価格取得の基本をやっていきますネ。順番に進めれば、キミも絶対デキちゃいますヨ!!😆
CCXTとは?仮想通貨自動売買の「万能リモコン」
CCXTが選ばれる理由
まずサ、**CCXT(CryptoCurrency eXchange Trading Library)**ってなんぞや?ってトコから始めましょうネ🎵
一言で言うとサ、「100以上の仮想通貨取引所を、たった1つのインターフェースで操作できる」という魔法みたいなPythonライブラリですヨ!!✨ ファミコンで言えばサ、あのコントローラー1本でどのゲームも動かせる感じ? いや、例えが古いか(笑)📟
GitHubのスター数は4万超えで、ライセンスもMITだから商用利用も無料。コレ、マジでオススメ!!🦝
対応言語と対応取引所
| 項目 | 内容 |
|---|---|
| 対応言語 | Python / JavaScript / TypeScript / PHP / C# / Go |
| 対応取引所数 | 107以上(2026年現在) |
| ライセンス | MIT(商用利用OK!!) |
| インストール | pip3 install ccxt のみ |
キミ、この対応取引所数見てヨ!!107以上って、スゴくナイ!?😆
CCXTの2種類のAPI
CCXTのAPIはサ、大きく2種類に分かれるんだヨネ。ここ、けっこう大事なポイントだから、しっかり覚えといてネ!!💡
- Public API(認証不要):価格情報・板情報・約定履歴など「見るだけ」系
- Private API(APIキー必要):注文・残高確認・ポジション管理など「動かす」系
第1回の今回はサ、まずPublic APIから攻めていきますヨ♪ APIキーなしで試せるから、気軽に始められるんだヨネ!!
【重要】取引所の選び方と日本居住者が知っておくべき注意点
ちょっとサ、ここは真面目な話をさせてヨ💦 コードの前に、取引所選びの話を絶対にやっておかないとダメなんですヨ。
日本居住者におすすめの取引所
日本に住んでるキミが使える取引所としてサ、安定してるのは——
- bitFlyer
- Coincheck
- bitbank
このあたりだネ!!ちなみにサ、Bybitっていう取引所があるんだケド、2025年末に日本居住者向けサービスをグッと制限しちゃったんだヨネ😭 海外取引所を使うときはサ、規制の動向をちゃんとチェックしておくことが大事デスヨ。
販売所 vs 取引所(板取引)の違いを理解しよう
これサ、知らないとホントに損するんだヨ!!聞いてヨ……😤
取引所のサービスには「販売所」と「取引所(板取引)」の2種類があってサ——
- 販売所:運営会社と直接売買。スプレッド(手数料的なもの)が**3〜5%**とクソ高い😭
- 取引所(板取引):ユーザー同士で売買。手数料が断然安い!!
仮想通貨自動売買でコツコツ稼ぎたいなら、取引所(板取引)を使うのが絶対鉄則だヨ!!スプレッドが3〜5%もあったら、利益なんか吹っ飛んじゃいますからネ(笑)😅
APIキーの安全な管理方法
コレ、マジで大事だから大文字で叫ばせてヨ——
コードにAPIキーを直書きするのは絶対NG!!🔥
GitHubに上げた瞬間、全世界に公開されちゃうからネ😭 僕の知り合いもサ、やらかしちゃったんだヨ……(笑)。環境変数で管理するのが鉄則デス♪
環境構築:CCXTのインストールとAPIキー設定
必要なものを確認する
まずサ、手元の環境を確認しましょうネ!!
- Python 3.x がインストールされてること
- 取引所のアカウントを作ってAPIキーを発行していること
APIキーはサ、取引所の管理画面から発行できますヨ。bitFlyerなら「API」メニューから作れるんだケド……ここは各取引所の公式ドキュメントを見てネ!!(取引所によって手順が違うからサ😅)
ちょっとサ、余談なんだケド——先週ジムに行ったら休館日でサ、仕方なく帰って黙々とコードを書いてたんですヨ……😂 結果的にこの記事のサンプルコードが完成したから、まあ良かったんだケド(笑)。キミも何か強い動機があると続けやすいゾ!!
CCXTのインストール
ちょっと見てヨ、キミ!!インストールが、たったこれだけなんですヨ!!✨
pip3 install ccxt終わり!!😆 インストールできたか確認したい場合はサ、こうやって確認できるヨ:
python3 -c "import ccxt; print(ccxt.__version__)"バージョン番号が出てきたら成功デスヨ!!🎉
APIキーを環境変数に設定する
さっきも言ったケドサ、APIキーの管理は環境変数が鉄則ね!!こう書くだけで、コードにキーを直書きせずに済むんですヨ。シンプルでしょ!?✨
import os
import ccxt
exchange = ccxt.bitflyer({
'apiKey': os.environ['BITFLYER_API_KEY'],
'secret': os.environ['BITFLYER_SECRET'],
})環境変数の設定はサ、Macなら .zshrc や .bashrc にこんな感じで書けますヨ:
export BITFLYER_API_KEY="ここにAPIキー"
export BITFLYER_SECRET="ここにシークレット"Windowsならサ、「システムの環境変数」から設定できますネ♪ ちなみに今回の価格取得(Public API)だけならAPIキーは不要だからサ、まずはそっちから試してもOKデスヨ!!
CCXTの基本操作:価格取得から始めよう
いよいよ、ここからが本番デスヨ!!🔥 ワクワクしてきたでしょ!?キミ、センスあるネ!!😆
取引所インスタンスの作り方
マジで見てヨ!!これだけで取引所に繋がっちゃうんだヨ!!🔥
import ccxt
# 取引所を選ぶだけ。他の取引所に変えるときはここを修正する
exchange = ccxt.bitflyer()コレだけ!!たったの1行で取引所に接続できちゃうんですヨ😆 しかもサ、将来的にbitFlyerからbitbankに乗り換えたくなったら、ccxt.bitflyer() を ccxt.bitbank() に変えるだけ。他のコードはほぼそのまま使えちゃうんだヨネ!!コレ、マジでスゴイ💾
現在価格(Ticker)を取得する
じゃあ、実際にBTCの価格を取得してみましょうネ!!こんなにシンプルでいいのかって、思わず笑えてくるヨ!?✨
import ccxt
exchange = ccxt.bitflyer()
ticker = exchange.fetch_ticker('BTC/JPY')
print('最終取引価格:', ticker['last'])
print('買い値 (bid):', ticker['bid'])
print('売り値 (ask):', ticker['ask'])ticker の中には、こういう情報が入ってますヨ:
last:最終取引価格bid:現在の最高買い値ask:現在の最低売り値high:24時間高値low:24時間安値
動いた時サ、思わず声出ちゃいましたヨ😆 「え、コレだけで価格取れるの!?」ってなってサ、妻に怒られたケド!!(笑)
ローソク足データ(OHLCV)を取得する
コレも超重要!!仮想通貨自動売買のデータ分析やバックテストをやりたいなら、ローソク足データが必要になりますヨ。聞いてヨキミ、このコードの短さったら!!💡
import ccxt
exchange = ccxt.bitflyer()
# 1時間足のローソク足データを取得する
ohlcv = exchange.fetch_ohlcv('BTC/JPY', timeframe='1h')
for candle in ohlcv[-5:]: # 直近5本分を表示
timestamp, open_, high, low, close, volume = candle
print(f'始値: {open_}, 高値: {high}, 安値: {low}, 終値: {close}')OHLCVとはサ、Open(始値)・High(高値)・Low(安値)・Close(終値)・Volume(出来高)の頭文字ですヨ!!💡 timeframe には '1m'(1分)・'5m'・'1h'・'1d' などが使えますネ♪
板情報(Order Book)を取得する
板情報もサクッと取れちゃいますヨ。なんかもう笑えてくるくらいシンプルだヨネ!!😆
import ccxt
exchange = ccxt.bitflyer()
order_book = exchange.fetch_order_book('BTC/JPY')
print('売り板(上位3件):', order_book['asks'][:3])
print('買い板(上位3件):', order_book['bids'][:3])板情報はサ、「今どのくらいの量の注文が並んでるか」がわかるデータデスヨ!!仮想通貨自動売買でより高度な売買ロジックを組む時に活躍しますネ☆😆
初心者がハマりやすいポイントと対策
ちょっと聞いてヨ……僕さ、最初にいろいろやらかしちゃったんだヨネ😭 キミには同じ轍を踏んでほしくないからサ、ここしっかり読んでね!!
レートリミット(API呼び出し制限)への対応
取引所にはサ、「1秒間に何回までAPIを叩いていいか」という制限があるんだヨネ。コレを守らないとBANされちゃうんですヨ😭
CCXTには便利な自動制御機能があってサ、こう書くだけでOKなんだヨ!!シビれるネ!!💡
import ccxt
exchange = ccxt.bitflyer({
'enableRateLimit': True, # レートリミットを自動制御する
})enableRateLimit: True を忘れずに、ね!!コレ、マジで大事なオプションだヨ!!
ネットワークエラー・取引所メンテのハンドリング
コレ、地味にハマりがちなんだヨネ😅 取引所ってサ、たまにメンテでダウンしてたりするから、エラー処理を必ず書くクセをつけましょうネ!!エラー対策もサ、こんな感じで書けばバッチリ!!💪
import ccxt
exchange = ccxt.bitflyer({'enableRateLimit': True})
try:
ticker = exchange.fetch_ticker('BTC/JPY')
print('現在価格:', ticker['last'])
except ccxt.NetworkError as e:
print('ネットワークエラー:', e)
except ccxt.ExchangeError as e:
print('取引所エラー:', e)
except Exception as e:
print('予期せぬエラー:', e)僕さ、最初にtry-exceptを書かなかったらサ、夜中にBotがクラッシュしてて翌朝発覚……みたいなことがあったんだヨネ😭 3時間溶かしちゃいましたヨ……。やらかしちゃいましたヨ……😭 ナンデかって言うとサ、エラーをちゃんとキャッチしてなかったから、どこで何が起きたかサッパリわからなくて——(笑)。
本番運用前に少額テストを必ず実施する
コレも超重要な心得デスヨ!!🔥
- まずは読み取り系(Public API)だけで動作確認する
- 注文機能を試すときは絶対に少額から始める
- いきなり大きな金額でBotを動かすのは論外デス!!
ファミコンのカセット吹いてた頃からのクセでサ、ぶっつけ本番でやりたくなるんだけど(笑)、お金が絡んでる話だからサ、慎重にいきましょうネ📟
今回のまとめと次回予告
……というワケで、今日のポイントまとめちゃいますネ♪🦝
第1回でやったこと
| やったこと | ポイント |
|---|---|
| CCXTとは何か | 107以上の取引所を統一インターフェースで操作できる神ライブラリ |
| 取引所の選び方 | 日本居住者はbitFlyer・Coincheck・bitbankが安定。販売所より取引所(板取引)を使うべし |
| 環境構築 | pip3 install ccxt 一発!APIキーは環境変数で管理が鉄則 |
| Ticker取得 | fetch_ticker() でbid/ask/lastが取れる |
| OHLCV取得 | fetch_ohlcv() でローソク足データが取れる |
| エラー対策 | enableRateLimit: True と try-except は必須!! |
どうだったデスカ!!?思ったよりシンプルじゃなかったデスカ!?😆 キミならぜったいデキますヨ!!
次回(第2回)予告
次回は、いよいよPrivate APIに突入しますヨ!!✨
- 残高確認の仕方
- 注文の出し方(成行・指値)
- 簡単な売買ロジックを実装してみる
コレができたらサ、もう立派な「仮想通貨自動売買Bot作れる人」ですヨ!!😆🎉 次回もぜひ一緒に進めていきましょうネ♪ ブックマークとかRSSとか登録しといてネ!!(切実)
参考リンク
僕の冒険はまだまだ続くゾ!!🦝 次回もお楽しみにネ!!😆✨
関連記事
CCXTで作る仮想通貨自動取引ボット:環境構築から本番運用まで完全解説
CCXTを使ったPython仮想通貨自動取引ボットの作り方を徹底解説。環境構築からPublic/Private API、WebSocket対応のCCXT Pro、バックテスト、本番運用まで初心者にもわかりやすく網羅した完全ガイドです。
CCXTを使って仮想通貨のトレードをしてみる(第4回):バックテストから本番運用へ
CCXTを使った仮想通貨ライブトレードの完全実装ガイド。Binance Testnetでのサンドボックス検証、CCXT ProのWebSocketによるリアルタイム取引、asyncioでの並列管理、Telegram通知・AWS EC2本番運用まで徹底解説。
CCXTを使って仮想通貨のトレードをしてみる(第3回):リスク管理とバックテストの完全ガイド
CCXTを使った仮想通貨トレードボット第3回。バックテストの実装方法からシャープレシオ・最大ドローダウンなどの評価指標、リスク管理の実践まで初心者にもわかりやすく解説します。
CCXTを使って仮想通貨のトレードをしてみる(第2回):注文実行と基本戦略の実装
CCXTを使った仮想通貨の自動売買・注文実行を解説。成行注文・指値注文の実装方法、サンドボックスでの安全な練習方法、レートリミット対策まで初心者向けにPythonコードで丁寧に説明します。