Channel Breakout Bot for bitflyer-FX (by Connie-Wild氏)読解メモ42
の続きです。
題材は https://github.com/Connie-Wild/ChannelBreakoutBot です。
optimizationメソッドの続きから。
total = len(entryAndCloseTerm) * len(rangeThAndrangeTerm) * len(waitTermAndwaitTh) * len(rangePercentList) * len(candleTerm)
設定の組み合わせ数をtotalに入れておきます。
paramList = []
params = []
for i, j, k, l, m in itertools.product(entryAndCloseTerm, rangeThAndrangeTerm, waitTermAndwaitTh, rangePercentList, candleTerm):
params.append([i, j, k, l, m, cost, fileName, core, useBlackList])
再びitertool.productを使って、設定の組み合わせを列挙します。
params配列に設定組み合わせ配列を全てappendします。
black_list = read_blacklist()
read_blacklistメソッドでblacklistを読み込みます。
read_blacklistメソッドを見てみます。
def read_blacklist():
if os.path.exists('blacklist.csv'):
return pd.read_csv('blacklist.csv', header=0, sep=',')
else:
return pd.read_csv('blacklist_default.csv', header=0, sep=',')
blacklist.csvが存在する場合はそれを読み込みます。
存在しない場合はblaclist_default.csvを読み込みます。
defaultファイルはcsvヘッダだけのファイルのようです。
https://raw.githubusercontent.com/Connie-Wild/ChannelBreakoutBot/master/blacklist_default.csv
optimizationメソッドに戻ります。
if core == 1:
# 同期処理
for param in params:
result = describe(param)
paramList.append(result)
logging.info('[%s/%s]',len(paramList),total)
core数が1の場合は同期処理でテストを実行します。
describeメソッドにパラメータを渡します。
describeメソッドを見てみます。
def describe(params):
i, j, k, l, m, cost, fileName, core, useBlackList = params
受け取ったパラメータをi, j, 以下の変数に入れます。
channelBreakOut = channel.ChannelBreakOut()
channelBreakOut.entryTerm = i[0]
channelBreakOut.closeTerm = i[1]
channelBreakOut.rangeTh = j[0]
channelBreakOut.rangeTerm = j[1]
channelBreakOut.waitTerm = k[0]
channelBreakOut.waitTh = k[1]
channelBreakOut.rangePercent = l[0]
channelBreakOut.rangePercentTerm = l[1]
channelBreakOut.candleTerm = str(m) + "T"
channelBreakOut.cost = cost
channelBreakOut.fileName = fileName
ChannelBreakOutインスタンスを作り、受け取ったパラメータをそれぞれインスタンスに設定します。
if core == 1:
logging.info('================================')
logging.info('entryTerm:%s closeTerm:%s rangePercent:%s rangePercentTerm:%s rangeTerm:%s rangeTh:%s waitTerm:%s waitTh:%s candleTerm:%s',i[0],i[1],l[0],l[1],j[1],j[0],k[0],k[1],m)
else:
pass
core指定が1の場合はパラメータのログを出力します。
それ以外の場合は出力しません。
# ブラックリスト判定
is_blacklist = False
if useBlackList:
bl = read_blacklist()
useBlackListフラグが立っている場合はブラックリスト判定を行います。
blacklistをread_blacklistメソッドで読み込みます。
blはpandas dataframeです。
dataframe.columns.valuesで列ラベルを取得します。
15分経ったので今日はここまで。
↓次
この記事が気に入ったらサポートをしてみませんか?