チャネルブレイクアウトbotコード(by スナフキン氏)読解メモ11
の続きです。
題材コードは https://sshuhei.com/entry/channelbreakout/ です。
for column in row[:length - (number + 1):-1]:
row配列の後ろから順番にnumber個分の要素を取得してforブロックの処理を実行します。
# dataへローソク足データを追加.
if column[4] != 0:
column = column[0:6]
data.append(column)
columnには下記のようなデータが入っています。
[1534087140,708124,709096,708000,708935,200.0809,141760750]
column[4]は上記配列の5つめの要素を意味するので上の例だと `708935` です。
これはclose priceを意味します。
コメントにもあったように「cryptowatchはときどきおかしなデータ(price=0)が含まれるのでそれを除く.」ようです。
おかしなデータというのは、0が入ってくるということのようです。
column[0:6]でcolumn配列の0番目から5番目までの値を取ってきます。
これは順番に、時刻・open price・high price・low price・close priceです。
これを、用意しておいたdata配列に追加します。
return data[::-1]
for文のloopでdata配列を仕上げたら、上記処理でdata配列を逆順にしてreturnします。
ということでgetCandlestickで返される情報は下記のような構造です。
[
[1534087140,708124,709096,708000,708935],
[1534087200,708934,709770,708649,709026],
[1534087260,709033,709797,708895,709318],
[1534087320,709336,709445,708246,708436],
...,
[1534117740,706950,707567,706911,707265]
]
getCandlestickの解明が終わったので、loopメソッドの下記処理まで戻ります。
try:
candleStick = self.getCandlestick(50, "60")
except:
print("Unknown error happend when you requested candleStick")
getCandlestickにnumber=50, period="60"を指定しています。
ここまで読解してきたことを振り返ると、直近50本の1分足のローソク足を取得するということになります。
例外が飛んだ場合は標準出力だけ出して処理は終わりません。
15分経ったので今日はここまで。
↓次
この記事が気に入ったらサポートをしてみませんか?