Python + Binance APIで自動売買取引を行う方法

仮想通貨

Pythonで仮想通貨の自動取引

Binanceは世界最大級の仮想通貨取引所です。

知名度・規模とも最大級ですので、信頼性は抜群です。

海外仮想通貨取引所としては日本で最も有名でしょう。

Binance口座の開き方

Binanceの公式サイトに行き口座アカウントを開設します。

開設方法は別のページに書いています。もしまだBinanceのアカウントを作成していない方はこちらを参照してください。

仮想通貨取引所Binanceに口座を作成する方法
Binanceアカウントの作成方法Binanceの公式サイトに行きますBinance公式サイト Register(登録)ボタンをクリックします。Email と Passwordを設定し、"I am o...

Binance APIを利用する設定

Binance APIを利用すると、仮想通貨の現在値を取得したり、売買注文を出すことができるようになります。

ダッシュボードを開きAPIのManageボタンをクリックします。

 

というページが開くので "Give the API key a label(APIキーに名前をつけてください)"というところに任意の文字列を入力しCreateをクリックします。

今回はPythonBinanceとしました。

2段階認証をGoogle Authenticationを使って行います。

Google Authenticationアプリの6個の数字を入力します。

確認メールを登録メールアドレスに送ったよと表示されるので、送られてきたメール内に書かれているリンクから確認を行います。

このAPI KeyとSecret KeyがBinanceのAPIにアクセスするときに必須になるものです。

書き留めておきましょう。

Secret Keyはこのときにしか見えません。次回以降APIのManageにアクセスすると伏せられて二度と見ることはできません。

もしSecret Keyを無くしてしまったら、古いものを削除して、新しいAPI設定を作成しましょう。

API restriction(API制限)のチェックはRead OnlyとEnable Tradingについています。

IPアドレス制限も行うことができますが、ここでは制限していません(Unrestricted(Less Secure)がデフォルト設定です)。

後でこれらの設定は変更できます。

Enable Withdrawals (APIに資金の引き出しを許可する)にチェックを入れる時は、IPアドレス制限を求められます。

引き出しに関してはかなり厳しいセキュリティ基準になっています。

Binance API をpythonから利用するためにpython-binanceをインストールする

pip install python-binance

pipでpython-binanceライブラリをインストールします。

これでpython経由でbinanceからデータを収集してかつ取引まで行うことができます。

実際にAPI経由で取引してみる

Binanceが運営している仮想通貨BNBを購入するスクリプトを紹介します。

from binance.client import Client

api_key = "自分のAPI Key"
api_secret = "自分のAPI Secret"

#取引所に接続
client = Client(api_key, api_secret)

# 板情報 depth
depth = client.get_order_book(symbol='BNBBTC')
bid_price = depth['bids'][0][0]

# 所持しているBTC balance
balance = client.get_asset_balance(asset='BTC')
free = balance['free']

# 所持しているBTCのうち半分を使ってBNBを購入する
quantity = 0.5 * (float(free)/float(bid_price))

order = client.order_limit_buy(
    symbol='BNBBTC',
    quantity='{:.2f}'.format(quantity),
    price='{}'.format(bid_price))

上で取得したAPI KeyとSecret Keyを使用します。

これでBinanceに接続してBNBの板情報を取得して、bid priceに指値して、売りを待って、BNBコインを購入することができます。

工夫次第でボットを作成して自動売買をさせることもできます。

色々と遊んでみてください。

コメント