暗号資産(仮想通貨)取引ライブラリのccxtをインストールする【Python】

【Python】暗号資産(仮想通貨)取引ライブラリのccxtをインストールする プログラミング

暗号資産の取引を自動化するために、苦しんでいませんか?
各取引所ごとに異なるAPI仕様・・・

これらAPIに対応するために、プログラムがスパゲッティ状態ではありませんか?
もしそうなら、そんなスパゲッティコードは捨ててしまいましょう。

スパゲッティコードでなくても、捨てましょう。
もっと便利なモノが用意されています。

それが、ccxtです。

本記事の内容

  • ccxtとは?
  • ccxtのシステム要件
  • ccxtのインストール
  • ccxtの動作確認

それでは、上記に沿って解説していきましょう。

ccxtとは?

ccxtとは、暗号資産(仮想通貨)取引を行うためのライブラリです。
このライブラリは、取引所ごとに提供されているAPIを取りまとめたモノです。

現在(2021年3月末時点)、ccxtは全部で124個の取引所のAPIに対応しています。
もしccxtを利用しなければ、それぞれのAPI仕様に対応する必要があります。

それを実際にやろうとしたら、ぞっとします。
しかし、ccxtを使えば、その骨の折れるような苦労から解放されるのです。

ccxtの仕様に対応すれば、取引所ごとのAPI仕様に対応する必要がありません。
もうccxtを使わない理由がありませんよね。

ccxtは、以下の人々に利用されることが想定されています。

  • コーダー
  • 開発者
  • 技術者
  • トレーダー
  • データサイエンティスト
  • 金融アナリスト

暗号資産の取引に関わるすべての人々と言えます。
なお、ccxtはその対応言語も注目です。

  • JavaScript
  • Python
  • PHP

上記3つの言語に対応しています。
それぞれの言語用にライブラリが用意されているのです。

個人的には、選択した言語にセンスを感じます。
まあ、私が好きな言語というだけですけどね。

以上、ccxtに関するおおまかな説明でした。
次は、ccxtを動かすために必要なシステム要件を見ていきます。

ccxtのシステム要件

Python版のcctxに関するシステム要件を見ていきましょう。

現時点(2021年3月22日)におけるccxtの最新バージョンは、1.43.87となります。
この最新バージョンは、2021年3月22日にリリースされています。

とにかく、常時メンテナンスされている感じです。
この更新頻度の多さは、取扱い対象となる仮想通貨が日々増えているからでしょう。

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

Pythonが動けば、OSを問わないということでしょう。
また、Pythonのサポート対象となるPythonのバージョンは以下です。

  • Python 2.7
  • Python 3.6
  • Python 3.7
  • Python 3.8
  • Python 3.9

Python 2を完全に切り捨てていません。
なかなか、珍しい状況です。

それなら、Python 3.5以前も対象にするのが一般的ですけどね。
でも、新しいPythonを使うようにしましょう。

私は、以下のバージョンで検証しています。

>python -V
Python 3.9.1

以上、特に注意すべきポイントはありませんでした。
Pythonが動けば、基本的にはどんなOSでも問題ないという感じです。

では、次にccxtのインストールしていきます。

ccxtのインストール

最初に、現状のインストール済みパッケージを確認しておきます。

>pip list
Package    Version
---------- -------
pip        21.0.1
setuptools 54.1.2

次にするべきことは、pip自体の更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip

では、ccxtのインストールです。
ccxtのインストールは、以下のコマンドとなります。

pip install ccxt

インストールは、少しだけ待たされました。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list
Package           Version
----------------- -----------
aiodns            2.0.0
aiohttp           3.7.4.post0
async-timeout     3.0.1
attrs             20.3.0
ccxt              1.43.87
certifi           2020.12.5
cffi              1.14.5
chardet           4.0.0
cryptography      3.4.6
idna              2.10
multidict         5.1.0
pip               21.0.1
pycares           3.1.1
pycparser         2.20
requests          2.25.1
setuptools        54.1.2
typing-extensions 3.7.4.3
urllib3           1.26.4
yarl              1.1.0

結構多くのパッケージが、インストールされました。
ただし、上記のままでは動きません。

Python 2と3の互換性ライブラリーのSixがインストールされていないのです。
これがないと、以下のエラーが出ます。

ModuleNotFoundError: No module named 'six'

そのため、sixをインストールします。

pip install six

Python 2.7に対応しているから、sixが必要ということです。
もう、Python 3.6以降しかサポートしないと割り切ってもいいでしょうけどね。

以上、ccxtのインストールでした。
最後に、ccxtの動作確認を行います。

ccxtの動作確認

cctxの動作確認は、以下のコードで行います。

import ccxt.async_support as ccxt # link against the asynchronous version of ccxt
print(len(ccxt.exchanges))
print(ccxt.exchanges) # print a list of all available exchange classes

対応している取引所の総数とその一覧を表示するプログラムです。
上記コードを実行すると、以下のように表示されます。

124
['aax', 'acx', 'aofex', 'bequant', 'bibox', 'bigone', 'binance', 'binanceus', 'bit2c', 'bitbank', 'bitbay', 'bitcoincom', 'bitfinex', 'bitfinex2', 'bitflyer', 'bitforex', 'bitget', 'bithumb', 'bitkk', 'bitmart', 'bitmax', 'bitmex', 'bitpanda', 'bitso', 'bitstamp', 'bitstamp1', 'bittrex', 'bitvavo', 'bitz', 'bl3p', 'bleutrade', 'braziliex', 'btcalpha', 'btcbox', 'btcmarkets', 'btctradeua', 'btcturk', 'buda', 'bw', 'bybit', 'bytetrade', 'cdax', 'cex', 'chilebit', 'coinbase', 'coinbaseprime', 'coinbasepro', 'coincheck', 'coinegg', 'coinex', 'coinfalcon', 'coinfloor', 'coingi', 'coinmarketcap', 'coinmate', 'coinone', 'coinspot', 'crex24', 'currencycom', 'delta', 'deribit', 'digifinex', 'dsx', 'equos', 'eterbase', 'exmo', 'exx', 'fcoin', 'fcoinjp', 'flowbtc', 'foxbit', 'ftx', 'gateio', 'gemini', 'gopax', 'hbtc', 'hitbtc', 'hollaex', 'huobijp', 'huobipro', 'idex', 'independentreserve', 'indodax', 'itbit', 'kraken', 'kucoin', 'kuna', 'lakebtc', 'latoken', 'lbank', 'liquid', 'luno', 'lykke', 'mercado', 'mixcoins', 'ndax', 'novadax', 'oceanex', 'okcoin', 'okex', 'paymium', 'phemex', 'poloniex', 'probit', 'qtrade', 'rightbtc', 'ripio', 'southxchange', 'stex', 'surbitcoin', 'therock', 'tidebit', 'tidex', 'timex', 'upbit', 'vbtc', 'vcc', 'wavesexchange', 'whitebit', 'xbtce', 'xena', 'yobit', 'zaif', 'zb']

全部で124の取引所があるということです。
確かに、この値は公式で表示してある取引所の数と一致します。
(※ccxtのバージョンにより、この値は異なります)

以上、ccxtの動作確認でした。

タイトルとURLをコピーしました