目次
パッケージのインストール
PIPを使用して以下のパッケージをインストールしておきます。
pip install ccxtAPI KeyとSecretの取得
Bitflyerライトニングにアクセスして、以下の画面からAPIを選択します。

出てくるAPI KeyとAPI Secretをそれぞれコピーして、Pythonの変数に格納します。
API_Key = "*******"
API_AcessKey = "***********"Pythonコード
ここからは、Pythonで情報を取ってきて取引を行うまでをやってみます。
モジュールのインポート
import ccxt
import time
from pprint import pprintAPIを使用した自分のアカウントへの接続
BitFlyerインスタンスを生成します。
API_Key = "*******"
API_Secret = "***********"
bitflyer = ccxt.bitflyer({'apiKey':API_Key ,'secret':API_Secret})マーケット情報の取得
market_info = bitflyer.load_markets()
print(market_info)通貨ペアシンボルの取得
この後で使う通貨ペアの全シンボルを取得します。
symbols = market_info.keys()
print(symbols)
>>>
dict_keys(['BTC/JPY',
'XRP/JPY',
'ETH/JPY',
'XLM/JPY',
'MONA/JPY',
'ETH/BTC',
'BCH/BTC',
'BTC/USD',
'ETH/USD',
'BTC/EUR',
'ETH/EUR',
'BTC/JPY:JPY',
'BTC/JPY:JPY-230804',
'BTC/JPY:JPY-230811',
'BTC/JPY:JPY-230929'])通貨情報の取得
通貨ペアを指定して、通貨の情報を取得します。ここではステラルーメン(XLM/JPY)についてみていきます。
symbol = "XLM/JPY"
XLM = bitflyer.fetch_ticker(symbol)
print(XLM)
>>>
{'symbol': 'XLM/JPY', 'timestamp': 1690727555533, 'datetime': '2023-07-30T14:32:35.533Z', 'high': None, 'low': None, 'bid': 22.362, 'bidVolume': None, 'ask': 22.435, 'askVolume': None, 'vwap': None, 'open': None, 'close': 22.392, 'last': 22.392, 'previousClose': None, 'change': None, 'percentage': None, 'average': None, 'baseVolume': 1315308.3023683, 'quoteVolume': None, 'info': {'product_code': 'XLM_JPY', 'state': 'RUNNING', 'timestamp': '2023-07-30T14:32:35.533', 'tick_id': '11745106', 'best_bid': '22.362', 'best_ask': '22.435', 'best_bid_size': '669.46', 'best_ask_size': '3847.4840962', 'total_bid_depth': '2014576.9771738', 'total_ask_depth': '1399888.2058747', 'market_bid_size': '0.0', 'market_ask_size': '0.0', 'ltp': '22.392', 'volume': '1315308.3023683', 'volume_by_product': '1315308.3023683'}}返り値として辞書型が返されるので、キーを使用して各値にアクセスします。
例えば,bid,askを拾ってくる場合は以下のようにします。
XLM_ask, XLM_bid = XLM["ask"], XLM["bid"]
print(XLM_ask,XLM_bid)
>>>
22.367 22.343日本円残高の取得
以下のようにして、日本円の残高を取得できます。
BALANCE_JPY = bitflyer.fetch_balance()["info"][0]["available"]成行注文(買い)
この関数が実行されると、注文確定となるので注意してください。
def buy(amount: float,symbol: str) -> None:
order_buy = bitflyer.create_market_order(
symbol = symbol,
side = 'buy',
amount = amount,
)
pprint(order_buy)例えば、10 XLMを買う場合、以下のようにします。
buy(10, "XLM/JPY")成行注文 (売り)
この関数が実行されると、注文確定となるので注意してください。
def sell(amount: float, symbol: str) -> None:
order_buy = bitflyer.create_market_order(
symbol = symbol,
side = 'sell',
amount = amount,
)
pprint(order_buy)例えば、10XLMを売る場合、以下のようにします。
sell(10, "XLM/JPY")

