チャネルブレイクアウトbotコード(by スナフキン氏)読解メモ6

の続きです。
題材コードは https://sshuhei.com/entry/channelbreakout/ です。

ChannelBreakOutクラスの読解を行う前に、このクラスがどう使われているか確認します。

# 実働
# channelBreakOut.loop(channelBreakOut.entryTerm, channelBreakOut.closeTerm, channelBreakOut.rangeTh, channelBreakOut.rangeTerm, channelBreakOut.waitTerm, channelBreakOut.waitTh)
# バックテスト
channelBreakOut.describeResult(entryTerm=channelBreakOut.entryTerm,
                                   closeTerm=channelBreakOut.closeTerm,
                                   rangeTh=channelBreakOut.rangeTh,
                                   rangeTerm=channelBreakOut.rangeTerm,
                                   originalWaitTerm=channelBreakOut.waitTerm,
                                   waitTh=channelBreakOut.waitTh,
                                   candleTerm=channelBreakOut.candleTerm,
                                   showFigure=True, cost=channelBreakOut.cost)

ファイル最下部の

if __name__ == '__main__':

のブロックに書かれています。
コードに書かれたコメントのとおり、実働とバックテストで利用されます。実働は実際にお金が動くトレードで、バックテストは実際にお金は動かないシミュレーションです。
デフォルトでは実働しないようになっています。

バックテストより先に実働の方を読んでいきます。

# 実働
# channelBreakOut.loop(channelBreakOut.entryTerm, channelBreakOut.closeTerm, channelBreakOut.rangeTh, channelBreakOut.rangeTerm, channelBreakOut.waitTerm, channelBreakOut.waitTh)

ChannelBreakOutクラスのloopメソッドが呼ばれています。

def loop(self, entryTerm, closeTerm, rangeTh, rangeTerm, originalWaitTerm,
         waitTh, candleTerm=None):

パラメータが渡されていますが、それぞれどういう意味のものかは読み進めながら理解します。

"""
注文の実行ループを回す関数
"""

loopメソッドについての説明です。

self.executionsProcess()

executionsProcessメソッドを呼んでいます。
インスタンスメソッドを実行する際は「self.」をつける必要があります。

def executionsProcess(self):

executionsProcessメソッドはパラメータを受け取りません。
引数にselfが書かれていますが、インスタンスメソッドには必ずselfを書く必要があるので書かれているだけで、明示的に何かを渡す必要はありません。

"""
pubnubで価格を取得する場合の処理(基本的に不要.)
"""

executionsProcessメソッドの説明です。

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

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