Channel Breakout Bot for bitflyer-FX (by Connie-Wild氏)読解メモ37

の続きです。
題材は https://github.com/Connie-Wild/ChannelBreakoutBot です。

plotメソッドの続きから。

    ax.autoscale_view()
    ax.grid()
    ax.set_ylabel("Price(JPY)")
    # シグナル線
    ymin = min(df["low"]) - 200
    ymax = max(df["high"]) + 200
    ax.vlines([df.index.get_loc(s) for s in buy_entry_signals],
              ymin, ymax, "blue", linestyles='dashed', linewidth=1)

autoscale_view でグラフのサイズを最適にします。
参考: https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.autoscale_view.html

grid でグリッドを表示します。
set_ylabelでy軸のラベルを設定します。

ローソク足の安値の最小値から200を引いた値をyminに入れます。
ローソク足の高値の最大値に200を加算した値をymaxに入れます。
vlinesで縦の補助線を引きます。
定義は

Axes.vlines(x, ymin, ymax, colors='k', linetyles='solid', label='', *, data=None, **kwargs)

です。
参考: https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.vlines.html
by_entry_signals配列にはindexが入っています。
df.index.get_loc(s) でそのindexの値を取得します。
x軸はそのindexの値たちとなります。
yminには先程出したyminを、
ymaxには先程出したymaxを入れます。
colorsはblueで青い線が引かれます。
linestyleはdashedです。
参考: https://matplotlib.org/gallery/lines_bars_and_markers/linestyles.html
linewidthに1を指定します。
1pxの線を引けます。
参考: http://programming.blogo.jp/python/matplotlib/line_width

15分経ったので今日はここまで。

↓次


この記事が気に入ったらサポートをしてみませんか?