![見出し画像](https://assets.st-note.com/production/uploads/images/128328579/rectangle_large_type_2_df0fbd4c3224d2cbaae90e7f3f2e9f68.png?width=1200)
【C級botter道】6話:bitFlyerAPI接続テスト(python+Docker+jupyterlab)
前回はリピート系自動売買アルゴリズムの概要を説明いたしました。
今回からはリピート系自動売買アルゴリズムを実装するにあたり、必要な外部とのAPI連携方法に関して説明したいと思います。
必要機能
リピート系自動売買アルゴリズムを実装するにあたり、下記の二つの機能が必要です。
仮想通貨取引所とのAPI連携機能
LINEとのAPI連携機能
「仮想通貨取引所とのAPI連携機能」は”取引の自動化”・”ポジションの確認”・”資産残高の確認”などで必要です。
「LINEとのAPI連携機能」は”取引結果の通知”・”現状の資産残高の通知”などで必要となります。
今回の記事では1.仮想通貨取引所とのAPI連携機能に関して説明したいと思います。
bitFlyerAPI連携
今回用いる仮想通貨取引所としてはbitFlyerを用います。
厳密にはbitFlyer Lightningという取引所のAPIを用います。
bitFlyer Lightning は、暗号資産の現物・FXに対応した取引所です。
bitFlyerアカウントの作成~bitFlyer Lightning利用開始まで
下記サイトがよくまとまっておるので、こちらを参照にアカウント作成からbitFlyer Lightningの利用準備までよろしくお願いいたします。
BitFlyer APIキー発行
まずはAPIキーの発行を行いましょう。
biFlyerにログイン後、左側のメニューにある bitFlyer Lightning をクリック。
![](https://assets.st-note.com/img/1705821391145-k5Ny7zHBUx.png)
bitFlyer Lightningにログイン後、画面左上のメニューボタンをクリック。
![](https://assets.st-note.com/img/1705821463689-zeZeWx1K38.png?width=1200)
次に、”API”をクリック。
![](https://assets.st-note.com/img/1705821564506-qk3jyLmmSj.png)
画面下部の”新しいAPIキーを追加”をクリック。
![](https://assets.st-note.com/img/1705821647829-iejOwCkgW8.png?width=1200)
ラベルを入力します。
![](https://assets.st-note.com/img/1705821748158-i31Ou5Cbe4.png?width=1200)
次に必要な機能にチェックを入れます。
今回は入出金以外にチェックを入れます。
![](https://assets.st-note.com/img/1705821800884-yHVuLFFO4o.png?width=1200)
APIキーの発行が完了し、”API Key”と"API Secret"が表示されていることが確認できます。
![](https://assets.st-note.com/img/1705821894946-a6tJFfRmPP.png?width=1200)
Pythonで動作テスト
先ほど作成したAPIキーとpythonを用いてbitFlierと連携できるか確認します。
インスタンス作成
まずはccxtライブラリを用いて、bitFlyerインスタンスを作成します。
import time
import pandas as pd
import ccxt
apiKey = 'あなたのAPIKey'
secret = 'あなたのSecretKey'
# bitFlyerのインスタンス作成
bitflyer = ccxt.bitflyer({'apiKey':apiKey,'secret':secret})
これで下準備はできましたので、さまざまな情報を確認していきたいと思います。
マーケット情報の確認
bitFlyerが取り扱う通貨情報は以下で確認できます。
# マーケット情報
res = bitflyer.load_markets()
# 出力
pprint(res)
![](https://assets.st-note.com/img/1705822875640-NQQjkgke7q.png?width=1200)
板情報の取得
板情報は下記より確認できます。引数には、通貨情報(symbol)を指定しましょう。
下記の例はsymbolをビットコイン(BTC/JPY)としていますが、他の通貨コードを指定し、お好みの暗号資産情報を確認することもできます。
# 通貨選択
symbol = "BTC/JPY"
# 板情報
res = bitflyer.fetch_ticker(symbol)
# 出力
pprint(res)
![](https://assets.st-note.com/img/1705822992258-bcndxYsXqN.png?width=1200)
残高情報の取得
bitFlyer口座内の口座残高情報(日本円、仮想通貨)は以下で確認できます。
# 残高
res = bitflyer.fetchBalance()
# 出力
pprint(res)
![](https://assets.st-note.com/img/1705823095489-if5HYInc0W.png?width=1200)
仮想通貨の注文する
仮想通貨を実際に注文するコードは次のようになります。
コード実行で実際に注文が走ります。取り扱いには十分注意です。暗号資産(仮想通貨)取引は、元本を保証するものでなく、価格変動により損失が生じるリスクがあります。お取引される際には、取引内容をよく理解し、ご自身の判断で行ってください。
現物|指値注文の場合
order = bitflyer.createLimitOrder(
symbol = 'BTC/JPY', # 取引通貨
price = 6200000, # 指値価格
side = 'buy', # 購入(buy) or 売却(sell)
amount = 0.001, # 購入数量[BTC]
)
# 出力
pprint(order)
現物|成行注文の場合
order = bitflyer.createMarketOrder(
symbol = 'BTC/JPY', # 取引通貨
side = 'buy', # 購入(buy) or 売却(sell)
amount = 0.001, # 購入数量[BTC]
)
# 出力
pprint(order)
注文のキャンセル
注文のキャンセルには、注文した取引IDを引数に指定し、次のように実行します。
# 引数情報
order_id = '111111111' # 注文ID
symbol = 'BTC/JPY' # 取引通過
# 取引キャンセル
res = bitflyer.cancel_order(symbol = symbol, # 取引通貨
id = order_id, # 注文ID
)
# 出力
pprint(res)
注文情報照会
注文中の取引情報は以下を実行することで照会できます。
# 取引通貨
symbol='BTC/JPY'
# 注文照会
res = bitflyer.fetchOpenOrders(symbol)
# 出力
pprint(res)
取引履歴
約定した取引履歴は以下で確認できます。
# 取引通貨
symbol='BTC/JPY'
# 取引履歴
res = bitflyer.fetchMyTrades(symbol)
#出力
pprint(res)
まとめ
bitFlyerAPIキーの発行を行なった。
pythonを用いてbitFlyerAPIの動作確認テストを行なった。
次回はLINEとのAPI連携を行いたいと思います。