チャネルブレイクアウトbotコード(by スナフキン氏)読解メモ3
の続きです。
題材コードは https://sshuhei.com/entry/channelbreakout/ です。
response = {"status": "internalError in order.py"}
try:
response = self.api.sendchildorder(product_code=self.product_code,
child_order_type="MARKET",
side=side,
size=size,
minute_to_expire=minute_to_expire)
except:
pass
responseに前もって辞書オブジェクトを入れておきます。
その上で、self.api.sendchildorderでpybitflyer経由でbitflyer APIを参照します。
引数は下記です。
product_code(bitflyerの通貨種別。FXとか現物とか)
child_order_type(注文種別。成行とか指値とか。ここは成行注文なので "MARKET")
side(売りか買いか)
size(注文量)
minute_to_expire(注文が何分で自動キャンセルされるか)
try~exceptは例外処理です。
self.api.sendchildorderが例外を飛ばした時の処理です。
俗にいうエラー処理です。
ここではexceptの時にpassしているので、例外時に特に処理はしません。
なので例外時にはresponseの中身は冒頭で設定したままの辞書オブジェクトになります。
while "status" in response:
try:
response = self.api.sendchildorder(
product_code=self.product_code, child_order_type="MARKET",
side=side,
size=size, minute_to_expire=minute_to_expire)
except:
pass
time.sleep(3)
return response
冒頭のwhile文はresponseにstatusキーが入っている限りloopすることを表現しています。
pythonでは「キー in 辞書オブジェクト」の記述で、キーが辞書オブジェクトに含まれているか判定できます。
15分経ったので今日はここまで。
この記事が気に入ったらサポートをしてみませんか?