チャネルブレイクアウト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分経ったので今日はここまで。
この記事が気に入ったらサポートをしてみませんか?