CCXTでFTX取引所の情報を取得(Python)

Python
スポンサーリンク

こんにちは、Heywaです。

BitMEXで取引ができなくなってどうしようかと思っていたところ、

FTXが話題に上がっていたので、

CCXTでAPIから情報が取得できればと思って試してみました。

まだ入金していないので一部は出力が確認できてないのですが、

自身の覚書として記載します。お粗末なコードで申し訳ありませんが、

同じように考えているかたの参考になれば幸いです。

 

スポンサーリンク

はじめに

BitMexの処理とFTXの処理を比較して、

サポートされているメソッドなどを確認しながら実施しました。

・Bitmex

ccxt/python/ccxt/bitmex.py at master · ccxt/ccxt
A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading API with support for more than 100 bitcoin/altcoin exchanges - ccxt/ccxt

・FTX

File not found · ccxt/ccxt
A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading API with support for more than 100 bitcoin/altcoin exchanges - File not found · ccxt/ccxt

 

情報取得

順番に取得方法を記載します。

API格納

まずはFTXの認証から。

import ccxt #CCXT をインポートする
from pprint import pprint

def ftx(): #CCXT を呼び出す関数
   
   ftx = ccxt.ftx({

       #APIキーをご自分のものに差し替えてください
       'apiKey': 'APIkey',
       'secret': 'secret',
       
       })
   
   
   return ftx

取り扱い通貨一覧

取り扱われている通貨ペアの一覧を表示します。

print("#取り扱い通貨情報の取得")
markets_info = ftx().fetch_markets()
pprint(markets_info)

表示結果です。

Symbolの部分が後のコマンドでも指定する通貨ペアのようです。

<中略> 
{'active': True,
  'base': 'BTC',
  'baseId': 'BTC',
  'future': True,
  'id': 'BTC-PERP',
  'info': {'ask': 8740.0,
           'baseCurrency': None,
           'bid': 8738.0,
           'change1h': -0.04673610732398975,
           'change24h': -0.11908481580406188,
           'changeBod': -0.08004841850428925,
           'enabled': True,
           'last': 8740.0,
           'minProvideSize': 0.001,
           'name': 'BTC-PERP',
           'price': 8740.0,
           'priceIncrement': 0.5,
           'quoteCurrency': None,
           'quoteVolume24h': 674855578.6528,
           'restricted': False,
           'sizeIncrement': 0.0001,
           'type': 'future',
           'underlying': 'BTC',
           'volumeUsd24h': 674855578.6528},
  'limits': {'amount': {'max': None, 'min': 0.0001},
             'cost': {'max': None, 'min': None},
             'price': {'max': None, 'min': 0.5}},
  'precision': {'amount': 0.0001, 'price': 0.5},
  'quote': 'USD',
  'quoteId': 'USD',
  'spot': False,
  'symbol': 'BTC-PERP',
  'type': 'future'},
<中略> 

 

BTCの現在価格(ticker)取得

BTC-PERPの現在価格を取得してみます。

#Tickerの取得
print("#Tickerの取得")
ticker = ftx().fetch_ticker('BTC-PERP')


#要素へアクセス
price['Bid'] = ticker['bid']
price['Ask'] = ticker['ask']
print("Bid=「売る」。Ask=「買う」")
print("Bid")
print(price['Bid'])
print("Ask")
print(price['Ask'])

結果です。指定するSymbolを変更すれば他の価格も取得可能です。

一つ前の通貨ペアの情報のLastの項にも最新価格の記載がありますので、

一応そちらでも確認可能です。

#Tickerの取得
Bid=「売る」。Ask=「買う」
Bid
8735.0
Ask
8737.5

口座情報の取得

自分の口座残高を表示してみます。
取得できる情報のうち、
役に立ちそうな項目はこれくらいかなと思ったものを抽出しています。
print("#口座情報の取得")
balance = ftx().private_get_account()


# 総額
myaccount['total'] = balance['result']['totalAccountValue']
print("# 総額:" + str(myaccount['total']))
# 拘束中
myaccount['used'] = balance['result']['totalPositionSize']
print("# 拘束中(使用中):" + str(myaccount['used']))
# 使用可能
myaccount['free'] = myaccount['total'] - myaccount['used']
print("# 使用可能:" + str(myaccount['free']))
# レバレッジ設定
myaccount['leverage'] =  balance['result']['leverage']
print("#レバレッジ設定:" + str(myaccount['leverage'])

 

出力情報ですが、私がまだ入金していないのでゼロで表示されています。

# 総額:0.0
# 拘束中(使用中):0.0
# 使用可能:0.0
#レバレッジ設定:10.0

とりあえず今できたことは以上

以上、現在わかったことまでまとめました。

口座開設後すぐの確認なので注文等はまだ試せてません。

(確認できたらまた記載するかもしれません。)

高速Botを作るならWebSoketが必要なのかもしれませんが、

今の所そこまでは求めていないのでCCXTで確認しました。

BitMEXのように日本人が追い出されたらどうしようという不安があるので、そこそこに利用していきたいと思います。

スポンサーリンク
Python 技術的なこと 雑記帳
Heywaをフォローする
Awesomeのある日々を求めて

コメント

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