前回の記事「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”]で指定できます。