MarketMakerBOTのソースコード(by magito氏)読解メモ5
の続きです。
題材は https://note.mu/magimagi1223/n/n5fba7501dcfd です。
# メインループ
while True:
ループ処理に入ります。
# 未約定量の繰越がなければリセット
if remaining_ask_flag == 0:
remaining_ask = 0
if remaining_bid_flag == 0:
remaining_bid = 0
おそらくループ中に変更されるフラグなので一旦スルーして読み進めます。
# フラグリセット
remaining_ask_flag = 0
remaining_bid_flag = 0
フラグリセットしています。
変数名通りだとすると売り残しがあるか、買い残しがあるか、といったところでしょうか。
読み進めないとわからないのでこれも一旦スルーします。
# 自分の指値が存在しないとき実行する
if pos == 'none':
pos変数にnoneが入っていた時の処理です。
pythonで定義されているNoneではなく、文字列の'none'がどこかで入れられうるようです。
# 板情報を取得、実効ask/bid(指値を入れる基準値)を決定する
tick = get_effective_tick(size_thru=AMOUNT_THRU, rate_ask=0, size_ask=0,
rate_bid=0, size_bid=0)
ask = float(tick['ask'])
bid = float(tick['bid'])
get_effective_tickメソッドを実行します。
size_thruには最小注文数のAMOUNT_MIN=0.001を、他の引数には0が指定されています。
get_effective_tickメソッドをもう一回見てみると、
i = 0
s = 0
while s <= size_thru:
if value['bids'][i][0] == rate_bid:
s += value['bids'][i][1] - size_bid
else:
s += value['bids'][i][1]
i += 1
s が 0.001以下の場合にループ処理を実行します。
もし買い板の0番目の価格が0であればif分岐に入りますが、価格が0であることはないので、elseに入ります。
elseでは買い板の0番目のサイズがsに加算されます。
試しに現在の先物板情報を取得すると下記のような状態です。
bids":[
{"price":708227.0,"size":0.33495286},
{"price":708226.0,"size":0.48},
...
この板の場合、sに0.33495286が加算されます。
15分経ったので今日はここまで。
↓次
この記事が気に入ったらサポートをしてみませんか?