こんにちは、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のように日本人が追い出されたらどうしようという不安があるので、そこそこに利用していきたいと思います。
コメント