-
Notifications
You must be signed in to change notification settings - Fork 37
/
generate_backtest.py
88 lines (67 loc) · 2.06 KB
/
generate_backtest.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import random
def generate_backtest():
charts = [
"1m",
"3m",
"5m",
"15m",
"30m",
"1h",
]
t1 = random.randint(1, 25)
t2 = random.randint(t1 + 1, t1 * 2)
t3 = random.randint(t2 + 1, t2 * 2)
chart = random.choice(charts)
emas = ["short", "mid", "long"]
ema_exit = random.choice(emas)
emas.pop(emas.index(ema_exit))
funcs = ["zlema", "ema", "smma", "sma"]
# funcs = [ "ta.hma" ]
ema_enter = random.choice(emas)
transformer = random.choice(funcs)
# backtest = backtest()
df_columns = ["close", "volume"]
# operator = [">", "<", "="]
df_column = random.choice(df_columns)
new_enter_logiz = []
new_enter_logiz.append(df_column)
new_enter_logiz.append(">")
new_enter_logiz.append(ema_enter)
new_exit_logiz = []
new_exit_logiz.append(df_column)
new_exit_logiz.append("<")
new_exit_logiz.append(ema_exit)
short_ind = {}
short_ind["name"] = "short"
short_ind["transformer"] = transformer
short_ind["args"] = [t1]
mid_ind = {}
mid_ind["name"] = "mid"
mid_ind["transformer"] = transformer
mid_ind["args"] = [t2]
long_ind = {}
long_ind["name"] = "short"
long_ind["transformer"] = transformer
long_ind["args"] = [t3]
datapoints = []
datapoints.append(short_ind)
datapoints.append(mid_ind)
datapoints.append(long_ind)
exit_logiz = []
enter_logiz = []
exit_logiz.append(new_exit_logiz)
enter_logiz.append(new_enter_logiz)
look_back_e = random.randint(1, 6)
look_back_x = random.randint(1, 6)
return {
"name": "generated",
"exit_on_end": False,
"chart_period": f"{chart}",
"enter": [["close", ">", ema_enter, look_back_e]],
"exit": [["close", "<", ema_exit, look_back_x]],
"datapoints": [
{"name": "short", "transformer": transformer, "args": [t1]},
{"name": "mid", "transformer": transformer, "args": [t2]},
{"name": "long", "transformer": transformer, "args": [t3]},
],
}