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

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

isRangeメソッドの続きから。

    def isRange(self, df_candleStick, term, th):
       """
       レンジ相場かどうかをTrue,Falseの配列で返す.termは期間高値・安値の計算期間.
       thはレンジ判定閾値.
       """
       # 値幅での判定.
       if th != None:
           priceRange = self.calculatePriceRange(df_candleStick, term)
           isRange = [th > i for i in priceRange]
       # 終値の標準偏差の差分が正か負かでの判定.
       elif th == None and term != None:
           df_candleStick["std"] = [
               df_candleStick["close"][i - term + 1:i].std() for i in
               range(len(df_candleStick.index))]
           df_candleStick["std_slope"] = [
               df_candleStick["std"][i] - df_candleStick["std"][i - 1] for i in
               range(len(df_candleStick.index))]
           isRange = [i > 0 for i in df_candleStick["std_slope"]]
       else:
           isRange = [False for i in df_candleStick.index]
       return isRange
       elif th == None and term != None:

レンジ判定閾値が指定されておらず、かつ、termが指定されている場合の処理に入ります。

           df_candleStick["std"] = [
               df_candleStick["close"][i - term + 1:i].std() for i in
               range(len(df_candleStick.index))]

for以下は以前と同じでローソク足の要素数分iを加算して繰り返します。
`std()` することで対象期間内の終値の標準偏差を取得しています。
df_candleStick["std"]には、対象期間内の終値の標準偏差が入ります。

           df_candleStick["std_slope"] = [
               df_candleStick["std"][i] - df_candleStick["std"][i - 1] for i in
               range(len(df_candleStick.index))]

for以下は上記と同じです。
slopeは傾きです。
上で作ったstd配列の各要素間の差分を計算して配列に入れています。

           isRange = [i > 0 for i in df_candleStick["std_slope"]]

標準偏差の要素間差分が0より大きければTrueが入ります。

       else:
           isRange = [False for i in df_candleStick.index]

その他のケース(thもtermも指定されていない場合)は、Falseが詰められます。

       return isRange

生成したisRange配列を返します。

loopメソッドに戻ります。

            # 現在レンジ相場かどうか.
           isRange = self.isRange(df_candleStick, rangeTerm, rangeTh)

isRangeメソッドで生成したisRange配列を変数isRangeに格納します。

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

↓次


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

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

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

コメント2件

当方、1週間ほど前からスナフキン氏のコードを元にBOTの勉強をはじめたものです。詳細にコードの解説を頂き、勉強効率が上がると共に、理解が一気に進みました。今後の解説連載、心より楽しみにしております。
読んでいただきありがとうございます!😁
自分も読み進めながら理解していっているので、もし間違ってそうなところあったら教えていただけるとありがたいです🙏
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。