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

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

optimizationメソッドの続きから。

                paramList.append(result)
                logging.info('[%s/%s] result%s:%s',len(paramList),total,skiped,paramList[-1])

paramListにテスト結果をappendします。
全体のうちどれくらい完了しているか、今回検証分がblackList対象かどうか、今回検証結果をログに出力します。

                # ブラックリスト追加
                if (useBlackList == True) & (result[0] < 0) & (result[7] == False):
                    new_bl = pd.DataFrame(
                        [[result[6], result[2][0], result[2][1], result[4][0], result[4][1], result[5][1], result[5][0], result[3][0], result[3][1]]], columns=black_list.columns.values)
                    black_list = black_list.append(new_bl)

ブラックリストを使う設定でかつ利益が0未満でかつブラックリストに載っていないパラメータの場合は、このパラメータ群をブラックリストに追加します。

    # ブラックリスト書き込み
    if useBlackList: black_list.to_csv('blacklist.csv', index=False, sep=',')

更新されたブラックリストをブラックリストファイルに書き込みます。

    pF = [i[1] for i in paramList]
    pL = [i[0] for i in paramList]

プロフィットファクターが入った配列と損益額が入った配列を作ります。

    logging.info("======Optimization finished======")
    logging.info('Search pattern :%s', len(paramList))

検証した総パターン数を出力します。

    logging.info("Parameters:")
    logging.info("[entryTerm, closeTerm], [rangePercent, rangePercentTerm], [rangeTh, rangeTerm], [waitTerm, waitTh], [candleTerm]")

パラメータの種類を出力します。

    logging.info("ProfitFactor max:")
    logging.info(paramList[pF.index(max(pF))])

プロフィットファクターの最大値を出力します。

    logging.info("PL max:")
    logging.info(paramList[pL.index(max(pL))])

損益額の最大値を出力します。

    message = "Optimization finished.\n ProfitFactor max:{}\n PL max:{}".format(paramList[pF.index(max(pF))], paramList[pL.index(max(pL))])
    channel.ChannelBreakOut().lineNotify(message)

LINEもしくはdiscordにプロフィットファクター、最大損益額を通知します。

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

↓次


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