CCXTを使って各取引所の銘柄コード(Symbol)を取得する

銘柄コード未分類
暗号資産の銘柄コード

APIを使用して仮想通貨(暗号資産)取引所に注文を出したい場合、銘柄コードがわからないと話が進みません。今回は、CCXTを使用してその取引所が扱っている銘柄の一覧を取得してみます。
たとえば、下記はビットフライヤーの取り扱い銘柄一覧を取得する場合です。

# まずはccxtをインポートします。
import ccxt
# ↓richライブラリのインポートはマストではありませんが、入れておくと結果がキレイに見られます。
from rich import print 

# 例えばですが、ビットフライヤーのccxtを設定します。Xはもちろん変数です。
X = ccxt.bitflyer() 

# 取引所を指定したccxtから、fetch_markets関数を実行します。取得した情報を変数Infoに格納します。
Info = X.fetch_markets() 

# 変数Infoの情報を表示します。
print(Info)

上記を実施した結果が下記となります。
‘symbol’と書かれた部分がAPIで指示を出す際の銘柄コードとなります。

[
    {
        'id': 'BTC_JPY',
        'symbol': 'BTC/JPY',
        'base': 'BTC',
        'quote': 'JPY',
        'baseId': 'BTC',
        'quoteId': 'JPY',
        'maker': 0.0015,
        'taker': 0.0015,
        'type': 'spot',
        'spot': True,
        'future': False,
        'info': {'product_code': 'BTC_JPY', 'market_type': 'Spot'}
    },
    {
        'id': 'XRP_JPY',
        'symbol': 'XRP/JPY',
        'base': 'XRP',
        'quote': 'JPY',
        'baseId': 'XRP',
        'quoteId': 'JPY',
        'maker': 0.002,
        'taker': 0.002,
        'type': 'spot',
        'spot': True,
        'future': False,
        'info': {'product_code': 'XRP_JPY', 'market_type': 'Spot'}
    },
    {
        'id': 'ETH_JPY',
        'symbol': 'ETH/JPY',
        'base': 'ETH',
        'quote': 'JPY',
        'baseId': 'ETH',
        'quoteId': 'JPY',
        'maker': 0.002,
        'taker': 0.002,
        'type': 'spot',
        'spot': True,
        'future': False,
        'info': {'product_code': 'ETH_JPY', 'market_type': 'Spot'}
    },
    {
        'id': 'XLM_JPY',
        'symbol': 'XLM/JPY',
        'base': 'XLM',
        'quote': 'JPY',
        'baseId': 'XLM',
        'quoteId': 'JPY',
        'maker': 0.002,
        'taker': 0.002,
        'type': 'spot',
        'spot': True,
        'future': False,
        'info': {'product_code': 'XLM_JPY', 'market_type': 'Spot'}
    },(以下略)

補足1. Symbolだけ表示させたい場合は下記のコードを追記してください。
「取り出した情報のうち、’symbol’の情報だけ表示しろ」というコードです。

#取得した情報内の、シンボル数を取得する ※ Symbol_Countsはもちろん変数です

Symbol_Counts = len(Info)

#上記で取得した数だけ、Symbolに該当する表記を抽出して表示する
for i in range(Symbol_Counts):
	print(Info[i]['symbol'])

上記の実行結果は下記

BTC/JPY
XRP/JPY
ETH/JPY
XLM/JPY
MONA/JPY
ETH/BTC
BCH/BTC
FX_BTC_JPY
BTCJPY06AUG2021
BTCJPY13AUG2021
BTCJPY24SEP2021
BTC/USD(以下略)

補足2.今回はビットフライヤーの取り扱い銘柄の情報を取得しましたが、他の取引所の情報を取得したい場合は上段に記載したコード「X = ccxt.bitflyer()」のなかの「bitflyer」の部分だけ変更すればOKです。

ただし取引所名はccxtで扱っている取引所で、かつccxtに登録されている表記で行う必要があります。
より詳しくは、「CCXTが対応している取引所一覧を取得するコード」をご確認ください。

今回は以上です。

コメント