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

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

describeResultメソッドの続きから。

        judgement = self.judge(df_candleStick, entryHighLine, entryLowLine,
                              closeHighLine, closeLowLine, entryTerm)

judgeメソッドを見ていきます。
実取引部分ではjudgeForLoopメソッドでした。
おそらくバックテストのコードを書いてから実取引のコードを書いていることがうかがえます。
素晴らしい。

    def judge(self, df_candleStick, entryHighLine, entryLowLine, closeHighLine,
             closeLowLine, entryTerm):
       """
       売り買い判断.ローソク足の高値が期間高値を上抜けたら買いエントリー.
       (2)ローソク足の安値が期間安値を下抜けたら売りエントリー.
       judgementリストは[買いエントリー,売りエントリー,買いクローズ(売り),売りクローズ(買い)]
       のリストになっている.
       (二次元リスト)リスト内リストはの要素は,0(シグナルなし),価格(シグナル点灯)を取る.
       """
       judgement = [[0, 0, 0, 0] for i in range(len(df_candleStick.index))]
       for i in range(len(df_candleStick.index)):
           # 上抜けでエントリー
           if df_candleStick["high"][i] > entryHighLine[i] and i >= entryTerm:
               judgement[i][0] = entryHighLine[i]
           # 下抜けでエントリー
           if df_candleStick["low"][i] < entryLowLine[i] and i >= entryTerm:
               judgement[i][1] = entryLowLine[i]
           # 下抜けでクローズ
           if df_candleStick["low"][i] < closeLowLine[i] and i >= entryTerm:
               judgement[i][2] = closeLowLine[i]
           # 上抜けでクローズ
           if df_candleStick["high"][i] > closeHighLine[i] and i >= entryTerm:
               judgement[i][3] = closeHighLine[i]
           #
           else:
               pass
       return judgement

引数は、
df_candleStick=ローソク足配列、
entryHighLine=entryTerm毎の高値配列、
entryLowLine=entryTerm毎の安値配列、
closeHighLine=closeTerm毎の高値配列、
closeLowLine=closeTerm毎の安値配列、
entryTerm=entry判断に使う期間、
です。

       judgement = [[0, 0, 0, 0] for i in range(len(df_candleStick.index))]

最初にjudgement配列に[0,0,0,0]をローソク足配列の行数分入れておきます。

       for i in range(len(df_candleStick.index)):

ローソク足の数ぶんforブロックの処理を実行します。

           # 上抜けでエントリー
           if df_candleStick["high"][i] > entryHighLine[i] and i >= entryTerm:
               judgement[i][0] = entryHighLine[i]
df_candleStick["high"][i] > entryHighLine[i]

ローソク足の高値がentryTerm毎の高値よりも大きく、

and i >= entryTerm:

かつforのループ回数がentryTerm以上であれば、

                judgement[i][0] = entryHighLine[i]

judgement配列のi行0列にentryTerm毎の高値を入れます。

            # 下抜けでエントリー
            if df_candleStick["low"][i] < entryLowLine[i] and i >= entryTerm:
                judgement[i][1] = entryLowLine[i]

同様に、ローソク足の安値がentryTerm毎の安値よりも下かつループの回数がentryTerm以上であれば、
judgement配列のi行1列にentryTerm毎の安値を入れます。

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

↓次


この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

3
仮想通貨 / botトレード / bot実装 / お小遣いトレーダー / レバレッジしません / @__WannaBeFree

この記事が入っているマガジン

コメント2件

このbotで利益出せるのでしょうか?
利益を出せるかどうかは随所で出てくるパラメータと相場次第かと思います。
勝てるかどうかをある程度確かめるためにバックテストも付いてますしそれで検証できます。
今動かすならこの題材コードを基に作られた https://github.com/Connie-Wild/ChannelBreakoutBot を利用してみるのもよいかもしれません。
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。