-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun_test.py
More file actions
70 lines (58 loc) · 1.89 KB
/
run_test.py
File metadata and controls
70 lines (58 loc) · 1.89 KB
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
from train import train
from test import test
from crypto_env_module import CryptoEnv
from plot import get_daily_return, backtest_stats
import numpy as np
from meta.data_processors.yahoofinance import Yahoofinance
import pickle
import pandas as pd
TICKER_LIST = ['BTCUSDT']
# env = CryptoEnv
TRAIN_START_DATE = '2017-07-01'
TRAIN_END_DATE = '2022-12-31'
# TEST_START_DATE = '2018-01-01'
# TEST_END_DATE = '2022-12-31'
TEST_START_DATE = '2023-01-01'# you can keep the testing dates as per wish
TEST_END_DATE = '2023-12-31'
# ultimate training period
# TEST_START_DATE = '2021-01-01'
# TEST_END_DATE = '2022-04-01'
# INDICATORS = ['macd', 'rsi', 'cci', 'dx'] #self-defined technical indicator list is NOT supported yet
INDICATORS = [
"adx",
"adxr",
"aroon",
"atr",
"cci",
"open",
"high",
"low",
"volume",
"macd",
]
TRAIN_FLAG=False
acc = test(start_date = TEST_START_DATE,
end_date = TEST_END_DATE,
ticker_list = TICKER_LIST,
test = True,
data_source = 'binance',
time_interval= '1d',
technical_indicator_list= INDICATORS,
drl_lib='stable_baselines3',
env=CryptoEnv,
model_name='sac',
current_working_dir='./models',
net_dimension = 1024,
if_vix=False
)
# # # plotting
df = pd.DataFrame(acc,columns=['account_value'])
df2 = pd.read_csv('data/dataset.csv')
df2['time'] = pd.to_datetime(df2['time'])
mask = (df2['time'] > TEST_START_DATE) & (df2['time'] <= TEST_END_DATE)
df3 = df2.loc[mask]
df3 = df3.reset_index()
df3['account_value'] = pd.DataFrame(acc)
df3.rename(columns={'time': 'date'}, inplace=True)
backtest_result = backtest_stats(df3)
print(backtest_result)