-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprint_chart.py
More file actions
57 lines (42 loc) · 2.15 KB
/
print_chart.py
File metadata and controls
57 lines (42 loc) · 2.15 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
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
start_year = '2005-01-01'
mem_size = '5'
index = 'wig'
training_sample = 1000
testing_sample = 250
data = pd.read_csv('./data/{}.csv'.format(index)).set_index('Data')
data['log_returns'] = data['Zamkniecie'].rolling(2).apply(lambda x: np.log(x[1] / x[0]), raw=True)
data = data.loc[(data.index > start_year)]
data = data.iloc[:(training_sample + testing_sample)]
data = data.reset_index()
data = data[['Data', 'log_returns']]
files_to_read = {
# 'CAViaRNet Huber': 'results/{}data_caviar_{}_True_{}.csv'.format(start_year, index, mem_size),
# 'CAViaRNet NoHuber': 'results/{}data_caviar_{}_False_{}.csv'.format(start_year, index, mem_size),
# 'CAViaR': 'results/{}data_caviar_bench_{}_.csv'.format(start_year, index, mem_size),
# 'GARCH normal': 'results/done/{}data_garch_bench_{}_normal_{}.csv'.format(start_year, index, mem_size),
# 'GARCH skewstudent': 'results/{}data_garch_bench_{}_skewstudent_{}.csv'.format(start_year, index, mem_size),
# 'GARCHNet normal': 'results/{}data_garch_{}_normal_{}.csv'.format(start_year, index, mem_size),
# 'GARCHNet skewstudent': 'results/{}data_garch_{}_skewstudent_{}.csv'.format(start_year, index, mem_size),
# 'GARCHNet skewstudent': 'results/test_garch_run.csv',
"CAVIAR": 'garch_norm_{}_{}.csv'.format(start_year, mem_size)
}
labels = list(files_to_read.keys())
for n, file in enumerate(files_to_read.values()):
data_tmp = pd.read_csv(file)
# data_tmp = data_tmp.iloc[-testing_sample:].loc[:, ['var' in x for x in data_tmp.columns]]
data = data.join(data_tmp, rsuffix='_2')
data = data[['Data', 'log_returns', 'VaR']]
data = data.iloc[-(testing_sample):]
plt.plot(pd.to_datetime(data.Data), data.log_returns, label='returns')
# for i in range(len(files_to_read)):
# plt.plot(pd.to_datetime(data.Data), data.iloc[:, i+2], label=labels[i])
# print(str(i), ':', data.loc[data.iloc[:, i+2] > data.iloc[:, 1]].shape[0])
plt.plot(pd.to_datetime(data.Data), data['VaR'])
plt.ylim(-0.15, 0.15)
plt.legend()
plt.show()
print(sum(data.log_returns < data['VaR']))
# print(sum(data_combined.log_returns < data_combined['caviar']))