前回の記事「CCXTでBitflyerに出した注文を管理・キャンセルする方法」の最後の練習問題の解答です。
解答
import ccxt
bitflyer = ccxt.bitflyer()
bitflyer.apiKey = '**********'
bitflyer.secret = '**********'
orders = bitflyer.fetch_open_orders(
symbol = "BTC/JPY",
params = { "product_code" : "FX_BTC_JPY" })
for o in orders:
bitflyer.cancel_order(
symbol = "BTC/JPY",
id = o["id"],
params = { "product_code" : "FX_BTC_JPY" })
fetch_open_orders()で未約定のすべての注文を取得し、それをfor文を使って1つずつキャンセルしていきます。キャンセルする注文IDを id = o[“id”] と指定するのが、今回のポイントでした。なお、Bitflyerの場合は、product_codeを指定するのを忘れないようにしてください。
(for文の解説)
orders[0][“id”]
orders[1][“id”]
orders[2][“id”]
orders[3][“id”]
orders[4][“id”]
・
・
・
の順番で処理したい要素がある場合は、for o in orders : と書くことで、orders[?]までの部分を o という変数に入れて順番に処理することができます。このとき、orders[?][“id”]は、for文の中では、o[“id”]で指定できます。