-
Notifications
You must be signed in to change notification settings - Fork 35
/
run_example.py
110 lines (97 loc) · 2.79 KB
/
run_example.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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# flake8: noqa
from fast_trade.build_data_frame import prepare_df
from fast_trade import run_backtest
from fast_trade.validate_backtest import validate_backtest
from fast_trade.calculate_perc_missing import calculate_perc_missing
import datetime
import json
import pandas as pd
import matplotlib.pyplot as plt
ds1 = "2020-06-01"
s1 = 1590969600
ms1 = 1590969600000
ds2 = "2020-07-10"
s2 = 1594339200
ms2 = 1594339200000
# if(rsi > 70 | rsi < 30) :
# result = myprediction(data)
# switch(result):
# case 0: hold
# case 1: sell
# case 2: buy
# backtest = {
# "any_enter": [],
# "any_exit": [],
# "chart_period": "15Min",
# "comission": 0.01,
# "base_balance": 100000,
# "lot_size": 0.6,
# "datapoints": [{"args": [], "name": "rsi_dp", "transformer": "rsi"}],
# "enter": [
# [
# "rsi_dp",
# "<",
# 30,
# ]
# ],
# "exit": [
# [
# "rsi_dp",
# ">",
# 70,
# ]
# ],
# "exit_on_end": False,
# "max_lot_size": 0
# # "start": "2019-12-01 15:29:00",
# # "stop": "2021-03-08 15:29:00",
# # "trailing_stop_loss": 0.05, # 5% stoploss
# }
backtest = {
"any_enter": [],
"any_exit": [],
# "chart_period": "37Min",
"chart_period": "1H",
"comission": 0.01,
"datapoints": [
{"args": [11], "name": "zlema_1", "transformer": "zlema"},
{"args": [88], "name": "zlema_2", "transformer": "zlema"},
],
"enter": [["zlema_1", ">", "close", 4]],
"exit": [["zlema_2", "<", "close", 1]],
"exit_on_end": False,
# "start": "2021-01-01 22:30:00",
# "stop": "2021-03-11 23:30:59",
# "trailing_stop_loss": 0.05,
# "max_lot_size": 1000,
"lot_size": 1,
"base_balance": 500,
}
# backtest = {
# "any_enter": [],
# "any_exit": [],
# "chart_period": "30Min",
# "comission": 0.001,
# "datapoints": [{"args": [22], "name": "hma", "transformer": "hma"}],
# "enter": [["close", "<", "hma", 1]],
# "exit": [["close", ">", "hma", 1]],
# "exit_on_end": False,
# "start": "2021-05-01 23:03:00",
# # "stop": "2021-06-01 00:03:00",
# "trailing_stop_loss": None,
# }
if __name__ == "__main__":
# datafile = "./BTCUSDT.csv"
# datafile = "./archive/BTCUSDT_2021.csv"
datafile = "/Users/jedmeier/Desktop/BTCUSDT_ALL/BTCUSDT_2020.csv"
# datafile = "/Users/jedmeier/Desktop/BTCUSDT_2021_06_12.csv"
# datafile = "./archive/BCHUSDT_2021.csv"
# backtest["start"] = "2021-03-01"
# backtest["stop"] = "2021-05-01"
# backtest["chart_period"] = "1Min"
test = run_backtest(backtest, datafile, summary=True)
# print(test)
df = test["df"]
perc_missing = calculate_perc_missing(df)
print("perc_missing: ", perc_missing)
# print(json.dumps(test["summary"], indent=2))