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

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

describeメソッドの続きから。

    if useBlackList:
        bl = read_blacklist()
        co = bl.columns.values
        is_blacklist = ((bl[co[0]] == m) &
                        (eq(bl[co[1]], i[0])) &
                        (eq(bl[co[2]], i[1])) &
                        (eq(bl[co[3]], j[0])) &
                        (eq(bl[co[4]], j[1])) &
                        (eq(bl[co[5]], k[1])) &
                        (eq(bl[co[6]], k[0])) &
                        (eq(bl[co[7]], l[0])) &
                        (eq(bl[co[8]], l[1]))).any()

前回に引き続きi,j,k,lに入る要素について勉強しています。

import itertools

config = {
    "linePattern": "FIX",
    "termUpper": 10,
    "entryAndCloseTerm": [[2, 2], [3, 2], [2, 3], [3, 3], [4, 2], [2, 4],
                          [4, 3], [3, 4], [4, 4], [5, 2], [2, 5], [5, 3],
                          [3, 5], [5, 4], [4, 5], [5, 5], [10, 10]],
    "rangeThAndrangeTerm": [[None, 3], [5000, 3], [10000, 3], [None, 5],
                            [5000, 5], [10000, 5], [None, 10], [5000, 10],
                            [10000, 10], [None, 15], [5000, 15], [10000, 15],
                            [None, None]],
    "waitTermAndwaitTh": [[0, 0], [3, 10000], [3, 15000], [3, 20000],
                          [5, 10000], [5, 15000], [5, 20000], [10, 10000],
                          [10, 15000], [10, 20000], [15, 10000], [15, 15000],
                          [15, 20000]],
    "rangePercentList": [[None, None], [1.5, 5], [2, 5], [2.5, 5]],
    "candleTerm": [1, 3, 5, 10, 15, 30, 45, 60]
}

entryAndCloseTerm = config["entryAndCloseTerm"]
rangeThAndrangeTerm = config["rangeThAndrangeTerm"]
waitTermAndwaitTh = config["waitTermAndwaitTh"]
rangePercentList = config["rangePercentList"]
linePattern = config["linePattern"]
termUpper = config["termUpper"]
candleTerm = config["candleTerm"]

params = []

for i, j, k, l, m in itertools.product(entryAndCloseTerm, rangeThAndrangeTerm,
                                       waitTermAndwaitTh, rangePercentList,
                                       candleTerm):
    print(i)
    print(j)
    print(k)
    print(l)
    print(m)

試しに上記を書いて実行してみると、

[2, 2]
[None, 3]
[0, 0]
[None, None]
1
[2, 2]
[None, 3]
[0, 0]
[None, None]
3
[2, 2]
[None, 3]
[0, 0]
[None, None]
5
[2, 2]
[None, 3]
[0, 0]
[None, None]
10
...

といった形で出力されます。

configで設定した値の組み合わせが出力されていることになります。

[2, 2]
[None, 3]
[0, 0]
[None, None]
1

で一塊の設定群です。
なのでこの場合で下記コードだと

    if useBlackList:
        bl = read_blacklist()
        co = bl.columns.values
        is_blacklist = ((bl[co[0]] == m) &
                        (eq(bl[co[1]], i[0])) &
                        (eq(bl[co[2]], i[1])) &
                        (eq(bl[co[3]], j[0])) &
                        (eq(bl[co[4]], j[1])) &
                        (eq(bl[co[5]], k[1])) &
                        (eq(bl[co[6]], k[0])) &
                        (eq(bl[co[7]], l[0])) &
                        (eq(bl[co[8]], l[1]))).any()

i[0]は2、
i[1]は2、
j[0]はNone、
j[1]は3、
k[1]は0、
k[0]は0、
l[0]はNone、
l[1]はNone、
となります。

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

↓次


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