文系でもわかる!BitcoinのBOT自動売買トレードの始め方で勉強させてもらってます。
初歩の初歩からステップバイステップで丁寧な解説でわかりやすいです。
このブログではbitflyerでボットづくりを行っていますが、自分は最低取引量の関係からコードをbitbankに書き換えながら、勉強しています。
ccxtライブラリでbitbankが使える共通関数、bitbankのAPIをccxtの関数として使う方法をまとめました。
ccxtライブラリ
ccxtは仮想通貨取引所ライブラリです。
取引所のAPIを利用して注文の実行やトレードデータの取得などを行うには結構複雑なプログラムが必要になりますが、このライブラリを利用すればトレーディングに必要な部分だけをパラメータに設定すれば便利な関数が用意されています。
また、世界中の主要な取引所に対応しており、取引所ごとのAPIの違いをラップしてくれています。bitFlyerでもzaifでもbitbankでも同じ関数を使えば買い注文を出してくれます。
なぜBitbankなのか
最低取引量が0.0001BTCと安いためです。4月18日現在、1BTCの価格は約400万円です。400万円×0.0001ですからワンショット400円程度で売買注文が出せます。bitFlyerでは0.001BTCなので4000円程度かかります。試行錯誤を行う段階で売買を行うならなるべく安く済ませたいということですでに口座を持っていて最低取引量が安いbitbankにしました。
他にもBitPointも最低取引量が0.0001BTCなようです。
bitbankで使えるccxtの共通関数
各取引所が用意しているAPIの違いによってccxtの共通関数でも取引所によって使えるものと使えないものがあるようです。
bitbankではどのような共通関数が使えるのか確認してみます。
import ccxt from pprint import pprint bitbank = ccxt.bitbank() for i, func in enumerate(bitbank.has): if func: print(func, end=", " if i%3 != 2 else "\n")
出力例:
publicAPI, privateAPI, CORS spot, margin, swap future, option, addMargin cancelAllOrders, cancelOrder, cancelOrders createDepositAddress, createLimitOrder, createMarketOrder createOrder, createPostOnlyOrder, createReduceOnlyOrder createStopOrder, createStopLimitOrder, createStopMarketOrder editOrder, fetchAccounts, fetchBalance ・・・以下かなり続く
いろいろな関数が使えるようです。
冒頭で紹介したブログで使用した関数をまとめておきたいと思います。
チートシート
スプレッドシートを表にしたのがこちら。
関数 | public / private |
説明 | 入力例 |
bitbank() | – | ビットバンクのコンストラクタ | |
fetchMarkets() | public | 通貨情報を取得する | |
fetchTicker() | public | 価格を取得する | ’fetchTicker(symbol=’BTC/JPY’) |
fetchOrderBook() | public | 板情報、注文量の取得 | fetch_order_book( symbol=”BTC/JPY”, limit = 10 ) |
fetchBalance() | private | 口座の資金を取得する | |
fetchTrades() | private | 取引履歴を取得する | fetch_trades( symbol=”BTC/JPY”, limit= 10) |
fetchOrder() | private | idを指定して注文情報を取得する | fetchOrder( symbol = “BTC/JPY”, id = order[“id”]) |
fetchOrders() | private | 複数の注文情報を取得する | fetchOrders( symbol = “BTC/JPY”, params = { “count” : 10 }) |
createOrder() | private | 売買注文を出す | create_order( symbol = ‘BTC/JPY’, type=’limit’, side=’buy’, price=’800000′, amount=’0.01′) |
cancelOrder() | private | 注文をキャンセルする | cancel_order( symbol = “BTC/JPY”, id = order[“id”]) |
fetch_open_orders() | private | 未約定の注文情報を取得する | fetch_open_orders( symbol = “BTC/JPY”, params = { “count” : 10 }) |
createMarketOrder() | private | 成り行き注文を出す | createMarketOrder( symbol = ‘BTC/JPY’, side=’buy’, amount=’0.01′) |
createLimitOrder() | private | 指値注文を出す | createLimitOrder( symbol = ‘BTC/JPY’, side=’buy’, price=’800000′, amount=’0.01′) |
bitbankのAPIをccxt経由で使う方法
APIがプライベートAPIでパスが次のような場合、
bitbank.private_get_user_assets()
になります。
- APIがpublicかprivateか
- httpメソッドの種類(GET、POST)
- リクエストURL(ここではuser_assets)
1~3を_(アンダーバー)で結ぶ感じですね。
3は/で区切られた箇所を_にしてつなげます。
コメント