Графы рынков
Современное состояние международного фондового рынка, его тенденции и перспективы. Сетевой подход при моделировании сложных систем, его использование при анализе фондовых рынков. Описание модели рыночного графа и доходностей, их свойства, плюсы и минусы.
Рубрика | Экономико-математическое моделирование |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 08.11.2015 |
Размер файла | 1,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
0,95
0,91
0,87
0,82
0,78
0,74
0,70
0,64
0,53
6
1,00
1,00
0,99
0,99
0,98
0,96
0,93
0,90
0,87
0,83
0,80
7
0,98
0,97
0,97
0,96
0,95
0,93
0,92
0,90
0,87
0,85
0,82
8
0,99
0,98
0,96
0,93
0,90
0,87
0,83
0,79
0,75
0,70
0,62
9
1,00
1,00
1,00
1,00
0,99
0,99
0,99
0,97
0,96
0,93
0,89
10
1,00
0,99
0,99
0,98
0,96
0,94
0,91
0,89
0,86
0,83
0,79
11
0,95
0,92
0,87
0,83
0,79
0,76
0,73
0,68
0,59
0,44
0,29
Если сравнивать числа из таблиц 8-11 со значениями реберной плотности (таблицы 4-7), то можно видеть, что они значительно выше. Это справедливо для всех стран и всех периодов, следовательно, акции на фондовых рынках имеют тенденцию образовывать «кластеры», доходности которых меняются согласованно. Чем выше отношение коэффициента к плотности, тем сильнее эта тенденция.
Размер максимальной клики
Еще одним связанным с плотностью показателем является размер максимальной клики, позволяющий судить о связности построенных графов. Результаты расчетов для выбранных значений порога приведены в таблицах 12-15.
Как видно из таблиц, динамика максимальных клик в целом повторяет динамику всех предыдущих характеристик. Так, в период, связанный с кризисом 2008 г., происходит существенное падение размера клики. Это говорит о том, что меньшее число акций приносили доход инвесторам. В период, следующий за кризисом, вновь наблюдается сильный рост.
Сравнивать абсолютные значения размера максимальной клики для разных стран представляется некорректным, поскольку число акций, торгующихся на рынках, сильно различается.
Таблица 12. Размер максимальной клики графа доходностей рынка Бразилии
# |
Порог |
|||||||||||
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
||
1 |
79 |
66 |
56 |
47 |
41 |
32 |
26 |
22 |
18 |
12 |
6 |
|
2 |
72 |
66 |
58 |
51 |
43 |
35 |
27 |
25 |
19 |
18 |
13 |
|
3 |
110 |
100 |
90 |
84 |
74 |
67 |
52 |
43 |
40 |
30 |
26 |
|
4 |
127 |
115 |
100 |
87 |
73 |
62 |
52 |
46 |
35 |
27 |
23 |
|
5 |
121 |
108 |
93 |
86 |
79 |
66 |
59 |
46 |
38 |
30 |
26 |
|
6 |
182 |
155 |
133 |
118 |
103 |
86 |
74 |
62 |
47 |
42 |
29 |
|
7 |
228 |
201 |
180 |
150 |
136 |
118 |
105 |
86 |
74 |
61 |
44 |
|
8 |
139 |
106 |
80 |
56 |
41 |
29 |
20 |
16 |
10 |
10 |
10 |
|
9 |
355 |
335 |
312 |
288 |
269 |
245 |
218 |
199 |
173 |
142 |
114 |
|
10 |
338 |
284 |
243 |
205 |
165 |
130 |
106 |
82 |
68 |
50 |
38 |
|
11 |
228 |
186 |
155 |
123 |
95 |
74 |
61 |
43 |
37 |
31 |
24 |
Таблица 13. Размер максимальной клики графа доходностей рынка России
# |
Порог |
|||||||||||
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
||
1 |
23 |
22 |
21 |
21 |
18 |
17 |
17 |
15 |
14 |
12 |
10 |
|
2 |
21 |
20 |
19 |
17 |
15 |
12 |
11 |
7 |
7 |
5 |
4 |
|
3 |
17 |
16 |
15 |
13 |
13 |
11 |
8 |
7 |
6 |
5 |
3 |
|
4 |
42 |
39 |
36 |
33 |
29 |
27 |
24 |
20 |
16 |
12 |
9 |
|
5 |
55 |
52 |
48 |
44 |
42 |
40 |
37 |
30 |
27 |
23 |
19 |
|
6 |
65 |
62 |
54 |
48 |
44 |
36 |
30 |
23 |
19 |
17 |
11 |
|
7 |
64 |
50 |
41 |
32 |
26 |
23 |
18 |
16 |
12 |
10 |
8 |
|
8 |
17 |
15 |
12 |
9 |
7 |
5 |
3 |
2 |
2 |
2 |
1 |
|
9 |
131 |
125 |
113 |
110 |
105 |
92 |
82 |
71 |
65 |
57 |
44 |
|
10 |
134 |
123 |
108 |
94 |
79 |
68 |
55 |
45 |
35 |
29 |
21 |
|
11 |
55 |
43 |
33 |
26 |
21 |
15 |
12 |
10 |
8 |
6 |
4 |
Таблица 14. Размер максимальной клики графа доходностей рынка Индии
# |
Порог |
|||||||||||
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
||
1 |
16 |
15 |
13 |
13 |
13 |
12 |
12 |
12 |
12 |
8 |
8 |
|
2 |
159 |
126 |
101 |
79 |
58 |
43 |
29 |
22 |
15 |
10 |
8 |
|
3 |
728 |
647 |
563 |
485 |
408 |
343 |
284 |
227 |
180 |
137 |
111 |
|
4 |
790 |
673 |
542 |
433 |
331 |
254 |
191 |
138 |
102 |
68 |
53 |
|
5 |
1096 |
931 |
759 |
624 |
489 |
383 |
297 |
225 |
176 |
125 |
90 |
|
6 |
856 |
692 |
553 |
436 |
332 |
260 |
189 |
142 |
106 |
80 |
60 |
|
7 |
1271 |
1008 |
774 |
594 |
476 |
385 |
310 |
297 |
285 |
269 |
248 |
|
8 |
750 |
540 |
363 |
246 |
161 |
98 |
63 |
43 |
26 |
15 |
10 |
|
9 |
1770 |
1621 |
1455 |
1278 |
1081 |
891 |
721 |
567 |
417 |
299 |
200 |
|
10 |
1358 |
1129 |
917 |
729 |
578 |
438 |
327 |
240 |
176 |
128 |
91 |
|
11 |
811 |
596 |
426 |
300 |
198 |
125 |
75 |
47 |
29 |
18 |
12 |
Таблица 15. Размер максимальной клики графа доходностей рынка Китая
# |
Порог |
|||||||||||
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
||
1 |
824 |
709 |
599 |
498 |
381 |
273 |
190 |
140 |
104 |
97 |
91 |
|
2 |
878 |
725 |
563 |
404 |
270 |
170 |
101 |
63 |
37 |
23 |
14 |
|
3 |
974 |
877 |
759 |
630 |
499 |
382 |
268 |
172 |
120 |
87 |
61 |
|
4 |
1028 |
901 |
771 |
638 |
501 |
379 |
262 |
175 |
106 |
66 |
37 |
|
5 |
1100 |
950 |
812 |
655 |
493 |
352 |
248 |
155 |
99 |
60 |
37 |
|
6 |
1327 |
1282 |
1218 |
1137 |
1033 |
915 |
793 |
654 |
528 |
407 |
308 |
|
7 |
1344 |
1307 |
1263 |
1195 |
1128 |
1038 |
930 |
814 |
710 |
595 |
485 |
|
8 |
1375 |
1271 |
1129 |
975 |
811 |
639 |
479 |
337 |
233 |
159 |
97 |
|
9 |
1624 |
1614 |
1595 |
1565 |
1525 |
1453 |
1363 |
1233 |
1081 |
908 |
734 |
|
10 |
1616 |
1548 |
1467 |
1361 |
1251 |
1105 |
948 |
813 |
666 |
513 |
382 |
|
11 |
1217 |
985 |
747 |
554 |
401 |
277 |
196 |
126 |
77 |
50 |
32 |
3.2 Результаты анализа рыночного графа с использованием корреляций Пирсона
Интересно сравнить результаты, полученные с использованием новой меры и стандартных корреляций Пирсона. Поэтому на следующем шаге было произведено построение моделей рыночных графов для тех же данных и периодов и расчет характеристик, аналогичных предыдущим.
Поскольку диапазоны значений для коэффициентов корреляции и меры близости графа доходностей разные, при переходе к невзвешенному рыночному графу были взяты свои пороги. Наиболее значимые результаты с нашей точки зрения получаются для порогов 0.4, 0.5, 0.6 и 0.7.
Распределение коэффициентов корреляции
По аналогии с графом доходностей, первой изучаемой характеристикой было распределение значений меры близости. Гистограммы корреляций для рынков Бразилии, России, Индии и Китая представлены на рисунках 17-28. В таблице 16 приведены соответствующие средние значения и стандартные отклонения.
Рисунок 17. Распределение корреляций для рыночного графа Бразилии, периоды 1-4
Рисунок 18. Распределение корреляций для рыночного графа Бразилии, периоды 5-8
Рисунок 19. Распределение корреляций для рыночного графа Бразилии, периоды 9-11
Гистограмма Бразилии на протяжении большинства периодов по форе напоминает нормальное распределение. Лишь в периоде 8, соответствующем кризису, увеличивается доля положительных корреляций.
Рисунок 20. Распределение корреляций для рыночного графа России, периоды 1-4
Рисунок 21. Распределение корреляций для рыночного графа России, периоды 5-8
Рисунок 22. Распределение корреляций для рыночного графа России, периоды 9-11
Для рынка России гистограмма расположена правее, что говорит о большем количестве положительных корреляций, но немного скошена влево. Как и в случае с Бразилией, в периоде 8 происходит изменение формы кривой. Нестабильность кривой в первые 4 периода можно объяснить малым числом акций, попавших в рассмотрение для рынка России.
Рисунок 23. Распределение корреляций для рыночного графа Индии, периоды 1-4
Рисунок 24. Распределение корреляций для рыночного графа Индии, периоды 5-8
Рисунок 25. Распределение корреляций для рыночного графа Индии, периоды 9-11
Гистограмма Индии в большинстве периодов скошена влево. Наибольшие изменения ее форма претерпевает снова в период 8. Это выражается в сдвиге центра гистограммы в сторону больших корреляций и более приплюснутой форме.
Рисунок 26. Распределение корреляций для рыночного графа Китая, периоды 1-4
Рисунок 27. Распределение корреляций для рыночного графа Китая, периоды 5-8
Рисунок 28. Распределение корреляций для рыночного графа Китая, периоды 9-11
Распределение рынка Китая с течением времени меняется сильнее, чем распределения других стран. В период номер 1 она имеет два пика, в периоды с 4 она скошена в сторону больших корреляций. В период, соответствующий кризису 2008 г., вновь наблюдается сдвиг в сторону больших значений.
Анализ таблицы 16 показывает, что наибольшее среднее значение корреляций характерно для рынка Китая (0,38). Значительно меньше эта величина для рынков России (0,21) и Индии (0,13). Наименьшей связностью обладает рынок Бразилии (среднее значение - 0,06). Среднеквадратичные отклонения отличаются не так сильно: наибольшее значение у России (0,16), затем идут Индия и Китай (0,15). Наименьшее стандартное отклонение имеет рынок Бразилии (0,12).
Таблица 16. Средние значения (м) и стандартные отклонения (у) коэффициентов корреляции рыночных графов
Период |
Бразилия |
Россия |
Индия |
Китай |
|||||
м |
у |
м |
у |
м |
у |
м |
у |
||
1 |
0,03 |
0,12 |
0,34 |
0,21 |
0,21 |
0,36 |
0,42 |
0,18 |
|
2 |
0,03 |
0,11 |
0,28 |
0,19 |
0,11 |
0,15 |
0,55 |
0,18 |
|
3 |
0,02 |
0,11 |
0,18 |
0,14 |
0,09 |
0,10 |
0,32 |
0,15 |
|
4 |
0,02 |
0,10 |
0,31 |
0,16 |
0,10 |
0,14 |
0,35 |
0,14 |
|
5 |
0,02 |
0,10 |
0,17 |
0,16 |
0,10 |
0,12 |
0,34 |
0,14 |
|
6 |
0,04 |
0,11 |
0,16 |
0,15 |
0,13 |
0,16 |
0,22 |
0,11 |
|
7 |
0,05 |
0,12 |
0,12 |
0,13 |
0,08 |
0,13 |
0,35 |
0,16 |
|
8 |
0,12 |
0,16 |
0,25 |
0,20 |
0,20 |
0,14 |
0,50 |
0,17 |
|
9 |
0,07 |
0,13 |
0,15 |
0,13 |
0,14 |
0,12 |
0,40 |
0,13 |
|
10 |
0,07 |
0,12 |
0,15 |
0,14 |
0,09 |
0,10 |
0,35 |
0,12 |
|
11 |
0,17 |
0,14 |
0,19 |
0,15 |
0,13 |
0,11 |
0,33 |
0,13 |
|
Ср.знач. |
0,06 |
0,12 |
0,21 |
0,16 |
0,13 |
0,15 |
0,38 |
0,15 |
Приведенные в таблице 16 характеристики имеют схожую динамику для всех стран. Наибольший рост корреляций наблюдается в период кризиса 2008 г., что подтверждает гипотезу о том, что отрицательные доходности коррелируют сильнее, нежели положительные. Для Бразилии, России и Индии рост корреляций характерен и для периода 11. Стандартное отклонение растет и уменьшается согласованно со средним значением. Таким образом, в годы кризиса связность рынка возрастает: увеличивается как доля положительных корреляций, так и степень связей.
Плотность ребер
Результаты вычисления реберной плотности в рыночных графах для выбранных значений порога приведены в таблицах 17-18.
Таблица 17. Плотность ребер для графов рынка Бразилии и России
# |
Бразилия |
Россия |
|||||||
0,4 |
0,5 |
0,6 |
0,7 |
0,4 |
0,5 |
0,6 |
0,7 |
||
1 |
0,017 |
0,008 |
0,005 |
0,004 |
0,393 |
0,27 |
0,117 |
0,05 |
|
2 |
0,013 |
0,006 |
0,004 |
0,004 |
0,259 |
0,166 |
0,064 |
0,018 |
|
3 |
0,014 |
0,007 |
0,006 |
0,005 |
0,056 |
0,022 |
0,013 |
0,009 |
|
4 |
0,01 |
0,006 |
0,004 |
0,003 |
0,264 |
0,139 |
0,044 |
0,016 |
|
5 |
0,008 |
0,004 |
0,004 |
0,004 |
0,09 |
0,041 |
0,02 |
0,008 |
|
6 |
0,011 |
0,006 |
0,004 |
0,003 |
0,08 |
0,032 |
0,017 |
0,008 |
|
7 |
0,016 |
0,007 |
0,004 |
0,003 |
0,032 |
0,015 |
0,005 |
0,001 |
|
8 |
0,067 |
0,022 |
0,006 |
0,003 |
0,241 |
0,141 |
0,060 |
0,017 |
|
9 |
0,021 |
0,01 |
0,005 |
0,003 |
0,047 |
0,02 |
0,008 |
0,002 |
|
10 |
0,01 |
0,005 |
0,003 |
0,002 |
0,055 |
0,017 |
0,003 |
0,001 |
|
11 |
0,064 |
0,022 |
0,007 |
0,004 |
0,102 |
0,039 |
0,009 |
0,001 |
Таблица 18. Плотность ребер для графов рынка Индии и Китая
# |
Индия |
Китай |
|||||||
0,4 |
0,5 |
0,6 |
0,7 |
0,4 |
0,5 |
0,6 |
0,7 |
||
1 |
0,162 |
0,162 |
0,162 |
0,162 |
0,545 |
0,384 |
0,188 |
0,034 |
|
2 |
0,033 |
0,012 |
0,007 |
0,005 |
0,792 |
0,668 |
0,469 |
0,187 |
|
3 |
0,005 |
0,002 |
0,002 |
0,001 |
0,331 |
0,129 |
0,025 |
0,002 |
|
4 |
0,041 |
0,010 |
0,003 |
0,002 |
0,388 |
0,139 |
0,017 |
0,001 |
|
5 |
0,009 |
0,006 |
0,005 |
0,005 |
0,344 |
0,125 |
0,019 |
0,001 |
|
6 |
0,045 |
0,018 |
0,012 |
0,011 |
0,055 |
0,008 |
0,001 |
0,000 |
|
7 |
0,015 |
0,013 |
0,012 |
0,012 |
0,406 |
0,175 |
0,041 |
0,003 |
|
8 |
0,090 |
0,021 |
0,003 |
0,000 |
0,769 |
0,571 |
0,308 |
0,08 |
|
9 |
0,027 |
0,005 |
0,001 |
0,000 |
0,562 |
0,234 |
0,037 |
0,002 |
|
10 |
0,005 |
0,001 |
0,000 |
0,000 |
0,349 |
0,094 |
0,011 |
0,001 |
|
11 |
0,017 |
0,003 |
0,001 |
0,000 |
0,302 |
0,084 |
0,011 |
0,001 |
Анализ таблиц 17-18 подтверждает выводы, сделанные при анализе средних значений. При одинаковых значениях порога значительно выше плотность на рынке Китая, у Бразилии, России и Индии графы получаются сравнительно разреженными. Для всех стран наблюдается рост реберной плотности в период экономического кризиса 2008 г. и последующее ее снижение. В 2011 г. для всех стран, кроме Китая, эта характеристика вновь увеличивается.
Коэффициент кластеризации
Динамику плотности повторяет и связанная с ней характеристика - коэффициент кластеризации (см. табл. 19-20).
Таблица 19. Коэффициент кластеризации для графов рынка Бразилии и России
# |
Бразилия |
Россия |
|||||||
0,4 |
0,5 |
0,6 |
0,7 |
0,4 |
0,5 |
0,6 |
0,7 |
||
1 |
0,29 |
0,26 |
0,21 |
0,15 |
0,66 |
0,55 |
0,42 |
0,14 |
|
2 |
0,3 |
0,24 |
0,19 |
0,18 |
0,52 |
0,42 |
0,22 |
0,06 |
|
3 |
0,33 |
0,28 |
0,24 |
0,21 |
0,24 |
0 |
0 |
0 |
|
4 |
0,26 |
0,23 |
0,2 |
0,16 |
0,61 |
0,47 |
0,2 |
0,08 |
|
5 |
0,27 |
0,24 |
0,21 |
0,21 |
0,38 |
0,23 |
0,13 |
0,05 |
|
6 |
0,35 |
0,28 |
0,23 |
0,19 |
0,33 |
0,2 |
0,17 |
0,09 |
|
7 |
0,43 |
0,33 |
0,27 |
0,24 |
0,22 |
0,15 |
0,1 |
0,02 |
|
8 |
0,5 |
0,38 |
0,28 |
0,21 |
0,57 |
0,44 |
0,3 |
0,18 |
|
9 |
0,38 |
0,26 |
0,22 |
0,19 |
0,29 |
0,19 |
0,12 |
0,04 |
|
10 |
0,41 |
0,28 |
0,22 |
0,2 |
0,33 |
0,22 |
0,07 |
0,02 |
|
11 |
0,55 |
0,4 |
0,3 |
0,25 |
0,44 |
0,25 |
0,11 |
0,05 |
Таблица 20. Коэффициент кластеризации для графов рынка Индии и Китая
# |
Индия |
Китай |
|||||||
0,4 |
0,5 |
0,6 |
0,7 |
0,4 |
0,5 |
0,6 |
0,7 |
||
1 |
0,57 |
0,57 |
0,57 |
0,57 |
0,85 |
0,81 |
0,67 |
0,45 |
|
2 |
0,41 |
0,26 |
0,21 |
0,17 |
0,93 |
0,88 |
0,77 |
0,64 |
|
3 |
0,26 |
0,18 |
0,12 |
0,09 |
0,74 |
0,61 |
0,42 |
0,13 |
|
4 |
0,38 |
0,25 |
0,14 |
0,09 |
0,79 |
0,62 |
0,37 |
0,1 |
|
5 |
0,25 |
0,14 |
0,11 |
0,1 |
0,76 |
0,62 |
0,36 |
0,07 |
|
6 |
0,47 |
0,3 |
0,19 |
0,15 |
0,59 |
0,43 |
0,21 |
0,05 |
|
7 |
0,27 |
0,2 |
0,16 |
0,14 |
0,78 |
0,65 |
0,45 |
0,17 |
|
8 |
0,52 |
0,34 |
0,17 |
0,08 |
0,91 |
0,86 |
0,75 |
0,59 |
|
9 |
0,36 |
0,18 |
0,08 |
0,04 |
0,84 |
0,72 |
0,5 |
0,19 |
|
10 |
0,25 |
0,12 |
0,07 |
0,05 |
0,76 |
0,62 |
0,38 |
0,16 |
|
11 |
0,35 |
0,16 |
0,09 |
0,05 |
0,79 |
0,69 |
0,5 |
0,24 |
Как и в случае графа доходностей, коэффициенты значительно превышают соответствующие значения плотности. Это говорит о тенденции акций образовывать кластеры, показывающие сходную динамику цен. Интересно, что для рынка Бразилии, имеющего меньшую плотность, кластеризация в среднем выше, чем на рынках России и Индии.
Максимальные клики
Последней изученной характеристикой был размер максимальной клики в графах (см. таблицы 21-22). Результаты, полученные при нахождении максимальных клик для разных порогов, подтверждают выводы, сделанные ранее. Наибольшие клики характерны для периодов, связанных с кризисом 2008 г. и 2011 г. для всех четырех стран БРИК. Это вновь подтверждает гипотезу о том, что в период кризиса связность рынка увеличивается.
Таблица 21. Размер максимальной клики для графов рынка Бразилии и России
# |
Бразилия |
Россия |
|||||||
0,4 |
0,5 |
0,6 |
0,7 |
0,4 |
0,5 |
0,6 |
0,7 |
||
1 |
24 |
8 |
4 |
4 |
14 |
9 |
6 |
4 |
|
2 |
20 |
10 |
8 |
4 |
15 |
11 |
6 |
3 |
|
3 |
24 |
18 |
17 |
15 |
4 |
2 |
2 |
2 |
|
4 |
21 |
13 |
4 |
4 |
18 |
11 |
7 |
4 |
|
5 |
13 |
8 |
8 |
8 |
13 |
10 |
7 |
4 |
|
6 |
20 |
14 |
8 |
8 |
18 |
12 |
9 |
6 |
|
7 |
30 |
19 |
12 |
8 |
19 |
12 |
7 |
4 |
|
8 |
71 |
39 |
24 |
8 |
47 |
31 |
18 |
9 |
|
9 |
50 |
36 |
28 |
18 |
21 |
15 |
8 |
4 |
|
10 |
24 |
15 |
10 |
6 |
25 |
13 |
6 |
3 |
|
11 |
68 |
42 |
20 |
18 |
39 |
21 |
9 |
5 |
Таблица 22. Размер максимальной клики графов рынка Индии и Китая
# |
Индия |
Китай |
|||||||
0,4 |
0,5 |
0,6 |
0,7 |
0,4 |
0,5 |
0,6 |
0,7 |
||
1 |
8 |
8 |
8 |
8 |
605 |
420 |
206 |
60 |
|
2 |
22 |
20 |
17 |
14 |
857 |
692 |
455 |
223 |
|
3 |
23 |
22 |
19 |
13 |
314 |
146 |
44 |
8 |
|
4 |
116 |
59 |
57 |
57 |
340 |
143 |
24 |
6 |
|
5 |
144 |
138 |
129 |
122 |
362 |
152 |
44 |
7 |
|
6 |
233 |
224 |
212 |
202 |
79 |
28 |
9 |
5 |
|
7 |
295 |
290 |
279 |
259 |
475 |
252 |
96 |
21 |
|
8 |
227 |
103 |
45 |
23 |
1031 |
773 |
455 |
156 |
|
9 |
97 |
51 |
20 |
8 |
608 |
258 |
62 |
18 |
|
10 |
39 |
16 |
14 |
12 |
310 |
106 |
39 |
18 |
|
11 |
118 |
56 |
18 |
8 |
389 |
147 |
42 |
16 |
Таким образом, результаты, полученные при анализе графов доходностей стран БРИК позволяют сделать следующие выводы. Модификация модели рыночного графа, использованная в данной работе, позволяет оценить потенциальную доходность, ситуацию на изучаемом рынке.
Выводы о падении и росте доходности вложений можно сделать и по изменению биржевого индекса, но использованная модель позволяет сказать не только о росте некоторых акций, но и учесть, насколько этот рост поддерживался остальными акциями. Например, в нашей модели большой рост индекса не всегда соответствует столь же большому росту среднего значения меры близости, а в ряде случаев наоборот, сопровождается падением реальных возможностей для получения дохода.
Анализ графов, построенных с применением новой меры близости, показывает присутствие у этих моделей степенного закона. Т.е. характерно присутствие узлов-концентраторов - акций, которые влияют на остальные сильнее других.
Сравнительный анализ рынков БРИК с применением модели графа доходностей позволяет сделать вывод о том, что рынок Китая имеет больше возможностей для получения потенциального дохода инвестора, даже в годы кризиса. На втором по привлекательности месте находятся рынки Индии и России, на последнем месте - рынок Бразилии.
Анализ рыночных графов, построенных для тех же данных с использованием стандартных корреляций Пирсона, позволяет сделать вывод о высокой степени глобализации рынка Китая. Подтверждается гипотеза о том, что отрицательные доходности коррелируют сильнее, нежели положительные. Это следует из роста средних значений, плотности, коэффициента кластеризации и размера максимальной клики в периоды, соответствующие кризису 2008 г.
Можно сделать вывод о том, что модель рыночного графа с использованием стандартных корреляций Пирсона позволяет оценить возможности по формированию диверсифицированного портфеля, по управлению рисками, но не включает информацию по итоговой доходности акций. Модификация исходной модели с использованием новой меры близости, позволяет преодолеть ее недостатки, и может быть применена для оценки потенциальных возможностей по получению дохода инвестором.
3.3 Сравнение результатов
В таблицах 23-26 приведены основные характеристики обеих моделей для Бразилии, России, Индии и Китая соответственно. В таблицу по каждой стране включены следующие величины: средние значения меры близости, плотность, коэффициент кластеризации и размер максимальной клики. Для моделей графа доходностей приведены значения для порога в 15 недель; для рыночных графов со стандартными коэффициентами корреляций выбрано значение порога 0,5.
Интересно также сравнить характеристики, рассмотренные выше, с изменениями биржевых индексов в соответствующие периоды. Как и предложенная мера близости, индекс характеризует состояние индекса, следовательно, их динамика должна быть взаимосвязана. В таблицах 23-26, вместе с характеристиками графов доходностей и рыночных графов, приведены данные о динамике основных индексов тех бирж, акции которых попали в рассмотрение.
Ожидаемо, что и для графа доходностей, и для рыночного графа, приведенные характеристики изменяются согласованно: с увеличением среднего значения меры близости, увеличиваются также плотность ребер, коэффициент корреляций, размер максимальной клики. Однако если характеристики одной модели с соответствующими значениями другой модели, можно видеть противоположную картину. В большинстве случаев увеличение корреляций Пирсона сопровождается снижением значений меры близости для графа доходностей.
Таблица 23. Сводная таблица по результатам для рынка Бразилии
# |
Граф доходностей |
Динамика индекса IBOVESPA |
||||
Ср. знач. |
Плотность (и = 15) |
Кластеризация(и = 15) |
Макс. клика(и = 15) |
|||
1 |
4,9 |
0,06 |
0,35 |
32 |
-11,02% |
|
2 |
3,6 |
0,04 |
0,31 |
35 |
-17,26% |
|
3 |
7 |
0,09 |
0,45 |
67 |
94,12% |
|
4 |
5,9 |
0,12 |
0,43 |
62 |
18,67% |
|
5 |
6,6 |
0,1 |
0,46 |
66 |
28,80% |
|
6 |
9,3 |
0,19 |
0,55 |
86 |
30,08% |
|
7 |
10,1 |
0,24 |
0,66 |
118 |
45,53% |
|
8 |
7,6 |
0,03 |
0,48 |
29 |
-37,98% |
|
9 |
10,8 |
0,37 |
0,67 |
245 |
70,69% |
|
10 |
10,3 |
0,27 |
0,65 |
130 |
1,78% |
|
11 |
11,1 |
0,17 |
0,7 |
74 |
-17,48% |
# |
Рыночный граф |
||||
Ср. знач. |
Плотность (и = 0.5) |
Кластеризация (и = 0.5) |
Макс. клика (и = 0.5) |
||
1 |
0,03 |
0,01 |
0,26 |
8 |
|
2 |
0,03 |
0,01 |
0,24 |
10 |
|
3 |
0,02 |
0,01 |
0,28 |
18 |
|
4 |
0,02 |
0,01 |
0,23 |
13 |
|
5 |
0,02 |
0,00 |
0,24 |
8 |
|
6 |
0,04 |
0,01 |
0,28 |
14 |
|
7 |
0,05 |
0,01 |
0,33 |
19 |
|
8 |
0,12 |
0,02 |
0,38 |
39 |
|
9 |
0,07 |
0,01 |
0,26 |
36 |
|
10 |
0,07 |
0,01 |
0,28 |
15 |
|
11 |
0,17 |
0,02 |
0,4 |
42 |
Таблица 24. Сводная таблица по результатам для рынка России
# |
Граф доходностей |
Динамика индекса MICEX |
||||
Ср. знач. |
Плотность (и = 15) |
Кластеризация(и = 15) |
Макс. клика(и = 15) |
|||
1 |
16,6 |
0,72 |
0,84 |
17 |
64,58% |
|
2 |
12 |
0,29 |
0,66 |
12 |
34,16% |
|
3 |
14,2 |
0,49 |
0,78 |
11 |
62,35% |
|
4 |
15,6 |
0,63 |
0,87 |
27 |
5,71% |
|
5 |
16,3 |
0,64 |
0,86 |
40 |
85,69% |
|
6 |
13,4 |
0,42 |
0,75 |
36 |
59,40% |
|
7 |
9,4 |
0,13 |
0,52 |
23 |
19,25% |
|
8 |
5,7 |
0 |
0,06 |
5 |
-68,31% |
|
9 |
15,2 |
0,57 |
0,8 |
92 |
123,58% |
|
10 |
12,5 |
0,38 |
0,76 |
68 |
21,81% |
|
11 |
8,9 |
0,05 |
0,42 |
15 |
-17,00% |
# |
Рыночный граф |
||||
Ср. знач. |
Плотность (и = 0.5) |
Кластеризация (и = 0.5) |
Макс. клика (и = 0.5) |
||
1 |
0,27 |
0,27 |
0,55 |
9 |
|
2 |
0,17 |
0,17 |
0,42 |
11 |
|
3 |
0,02 |
0,02 |
0 |
2 |
|
4 |
0,14 |
0,14 |
0,47 |
11 |
|
5 |
0,04 |
0,04 |
0,23 |
10 |
|
6 |
0,03 |
0,03 |
0,2 |
12 |
|
7 |
0,02 |
0,02 |
0,15 |
12 |
|
8 |
0,14 |
0,14 |
0,44 |
31 |
|
9 |
0,02 |
0,02 |
0,19 |
15 |
|
10 |
0,02 |
0,02 |
0,22 |
13 |
|
11 |
0,04 |
0,04 |
0,25 |
21 |
Таблица 25. Сводная таблица по результатам для рынка Индии
# |
Граф доходностей |
Динамика индекса |
|||||
Ср. знач. |
Плотность (и = 15) |
Кластеризация(и = 15) |
Макс. клика(и = 15) |
BSE SENSEX |
CNXNIFTY |
||
1 |
14,1 |
0,4 |
0,61 |
12 |
-19,83% |
н/д |
|
2 |
11,4 |
0,16 |
0,65 |
43 |
6,71% |
н/д |
|
3 |
15,7 |
0,64 |
0,85 |
343 |
67,72% |
н/д |
|
4 |
11,2 |
0,31 |
0,64 |
254 |
14,02% |
н/д |
|
5 |
12,6 |
0,34 |
0,77 |
383 |
42,46% |
н/д |
|
6 |
9,9 |
0,19 |
0,63 |
260 |
48,09% |
н/д |
|
7 |
12 |
0,29 |
0,73 |
385 |
39,79% |
н/д |
|
8 |
9,6 |
0,05 |
0,59 |
98 |
-47,29% |
-46,63% |
|
9 |
13,9 |
0,6 |
0,81 |
891 |
65,54% |
62,07% |
|
10 |
11,9 |
0,27 |
0,76 |
438 |
18,81% |
19,27% |
|
11 |
10,5 |
0,08 |
0,66 |
125 |
-22,02% |
-21,81% |
# |
Рыночный граф |
||||
Ср. знач. |
Плотность (и = 0.5) |
Кластеризация (и = 0.5) |
Макс. клика (и = 0.5) |
||
1 |
0,21 |
0,16 |
0,57 |
8 |
|
2 |
0,11 |
0,01 |
0,26 |
20 |
|
3 |
0,09 |
0,00 |
0,18 |
22 |
|
4 |
0,1 |
0,01 |
0,25 |
59 |
|
5 |
0,1 |
0,01 |
0,14 |
138 |
|
6 |
0,13 |
0,02 |
0,3 |
224 |
|
7 |
0,08 |
0,01 |
0,2 |
290 |
|
8 |
0,2 |
0,02 |
0,34 |
103 |
|
9 |
0,14 |
0,01 |
0,18 |
51 |
|
10 |
0,09 |
0,00 |
0,12 |
16 |
|
11 |
0,13 |
0,00 |
0,16 |
56 |
Таблица 26. Сводная таблица по результатам для рынка Китая
# |
Граф доходностей |
Динамика индекса |
|||||
Ср. знач. |
Плотность (и = 15) |
Кластеризация(и = 15) |
Макс. клика(и = 15) |
SSE Composite |
SZSE Component |
||
1 |
14,4 |
0,47 |
0,81 |
273 |
-20,93% |
-30,41% |
|
2 |
13,5 |
0,33 |
0,76 |
170 |
-15,65% |
-15,25% |
|
3 |
15 |
0,58 |
0,83 |
382 |
9,53% |
25,07% |
|
4 |
14,9 |
0,57 |
0,82 |
379 |
-15,17% |
-10,84% |
|
5 |
15,1 |
0,59 |
0,82 |
352 |
-10,91% |
-9,54% |
|
6 |
19 |
0,93 |
0,96 |
915 |
104,71% |
120,79% |
|
7 |
19,2 |
0,87 |
0,93 |
1038 |
117,68% |
169,28% |
|
8 |
15,7 |
0,68 |
0,87 |
639 |
-60,44% |
-55,74% |
|
9 |
21,4 |
0,98 |
0,99 |
1453 |
54,27% |
73,62% |
|
10 |
18,4 |
0,88 |
0,94 |
1105 |
-7,07% |
-1,20% |
|
11 |
13,2 |
0,3 |
0,76 |
277 |
-23,12% |
-28,82% |
# |
Рыночный граф |
||||
Ср. знач. |
Плотность (и = 0.5) |
Кластеризация (и = 0.5) |
Макс. клика (и = 0.5) |
||
1 |
0,42 |
0,38 |
0,81 |
420 |
|
2 |
0,55 |
0,67 |
0,88 |
692 |
|
3 |
0,32 |
0,13 |
0,61 |
146 |
|
4 |
0,35 |
0,14 |
0,62 |
143 |
|
5 |
0,34 |
0,13 |
0,62 |
152 |
|
6 |
0,22 |
0,01 |
0,43 |
28 |
|
7 |
0,35 |
0,18 |
0,65 |
252 |
|
8 |
0,5 |
0,57 |
0,86 |
773 |
|
9 |
0,4 |
0,23 |
0,72 |
258 |
|
10 |
0,35 |
0,09 |
0,62 |
106 |
|
11 |
0,33 |
0,08 |
0,69 |
147 |
Если мы посмотрим, для каких периодов характерны наибольшие корреляции, то увидим, что это периоды падения фондового рынка. С одной стороны, об этом свидетельствует отрицательная динамика индекса, с другой - меньшие значения меры близости в графе доходностей. Например, для всех стран наблюдается рост связности во время кризиса 2008 г. Это подтверждает гипотезу о том, что отрицательные доходности коррелируют сильнее, нежели положительные; в периоды же экономического подъема акции движутся более разнонаправленно. В отличие от корреляций Пирсона, динамика значений новой меры близости достоверно отражает изменение возможностей по получению дохода на рынке.
Сравнение характеристик графа доходностей со значениями индекса показывает, имеет место следующая закономерность. Увеличение темпов роста индекса сопровождается ростом средних значений меры близости, и, следовательно, плотности, коэффициентов кластеризации и размера максимальной клики. И наоборот, замедление темпов роста или падение индекса сопровождается снижением этих характеристик.
Однако, как мы можем видеть, динамика индекса не всегда отражает состояние рынка в целом. Так, на рынке Китая в период 5 и на рынке Бразилии в период 11, падение основных индексов сопровождалось ростом средних значений. Для Индии в период 6 наоборот, индекс растет, но падает значение меры.
Таким образом, индекс отражает динамику именно тех акций, которые участвуют в его расчете. Другие же акции рынка могут вести себя иначе. Преимущество модели графа доходностей заключается в том, что она позволяет оценить, насколько изменение индекса поддерживалось всеми акциями, торгующимися на рынке.
Связи между динамикой индекса и коэффициентами корреляции не наблюдается.
Таким образом, в ходе работы была изучена динамика характеристик модели графа доходностей с новой мерой близости и модели рыночного графа со стандартными корреляциями Пирсона; полученные результаты были сравнены между собой, а также с динамикой другой характеристики доходности рынка - значениями биржевых индексов.
Заключение
В представленной работе была изучена возможность применения альтернативной меры близости для построения модели графа фондового рынка.
В ходе работы были реализованы алгоритмы, позволяющие строить сетевые модели фондовых рынков, как с новой мерой близости, так и с корреляциями Пирсона, и вычислять их структурные характеристики. В качестве модельных данных были выбраны данные по рынкам стран БРИК с 2001 по 2011 гг. Для изучения моделей в динамике, данный временной отрезок был разбит на 11 последовательных периодов. Для каждого из периодов с помощью написанных алгоритмов были построены модели рынка и произведен расчет их характеристик.
Выводы
Основываясь на полученных результатах, можно сделать следующие выводы.
1. Модель рыночного графа, основанная на вычислении корреляций между акциями, характеризует степень связности фондового рынка, насколько согласованно меняются доходности акций. Эта модель может использоваться для оценки возможностей по формированию диверсифицированного портфеля и управления рисками, но не включает информацию об итоговой доходности акций. В частности, было показано, что сильнее всего ценные бумаги коррелируют в период падения, а инвестора в первую очередь интересуют те акции, которые приносили доход.
2. Использование новой меры близости позволяет избавиться от недостатков оригинальной модели. Основные преимущества модели графа доходностей: возможность интерпретации с экономической точки зрения, учет реальной доходности акций, учет инфляции, использование точных значений вместо выборочных корреляций, включение в рассмотрение акций с низкой ликвидностью. Кроме того, переход от шкалы дней к шкале недель позволяет снизить влияние волатильности рынка на качество получаемых результатов. Это позволяет использовать новую модель при оценке возможностей по получению дохода на рынках ценных бумаг.
3. Преимущества модели графа доходностей видны также при сравнении с другой характеристикой фондового рынка - биржевого индекса. В отличие от индекса, новая мера близости позволяет не только судить о росте или падении, но и о том, насколько этот рост поддерживался всеми акциями рынка. Для ряда периодов было сделано наблюдение, что рост индекса не всегда сопровождался ростом возможностей по получению дохода. То есть индекс отражает динамику лишь тех акций, которые его образуют, а модель графа доходностей - динамику рынка в целом.
4. Анализ распределения степеней вершин свидетельствует о том, что для определенных значений порога модель рыночного графа с новой мерой близости имеет свойство степенного закона.
5. Сравнительный анализ моделей для разных стран позволяет сделать вывод о том, что наибольшей связностью, равно как и наибольшей доходностью, обладает рынок Китая. Даже в периоды кризиса возможности для получения дохода на этом рынке существенно выше, чем на рынках других стран БРИК.
6. Результаты расчетов структурных характеристик графа доходностей говорят о том, что большие возможности инвесторам предоставляет также фондовый рынок Индии, хотя он растет медленнее китайского.
7. Для рынка ценных бумаг России среднее значение меры близости в графе доходностей сравнимы со значениями для рынка Индии. Однако большие колебания таких характеристик, как плотность ребер, коэффициент кластеризации и размер максимальной клики говорят о том, что российский рынок является достаточно рискованным и нестабильным.
8. Наконец, фондовый рынок Бразилии характеризуется как низкими корреляциями, так и низкими характеристиками графа доходностей. Таким образом, возможности для получения инвестором одновременного дохода на этом рынке сравнительно меньше, чем на рынках остальных стран БРИК.
Список литературы
1. Albert, R. Statistical mechanics of complex networks / R. Albert, A.L. Barabбsi // Reviews of modern physics. - 2002. - Vol. 74. - P. 47.
2. Barabбsi, A.L. Emergence of scaling in random networks / A.L. Barabбsi, R. Albert // Science. - 1999. - Vol. 286. - P. 509-512.
3. Batsyn, M.V. Improvements to MCS algorithm for the maximum clique problem / M.V. Batsyn, B.I. Goldengorin, E.V. Maslov, P.M. Pardalos // Journal of Combinatorial Optimization. - 2014. - Vol. 27. - P. 397-416.
4. Bautin, G.A. Simple measure of similarity for the market graph construction / G.A. Bautin, V.A. Kalyagin, A.P. Koldanov, P.A. Koldanov, P.M. Pardalos // Computational Management Science. - 2013. - Vol. 10. - P. 105-124.
5. Boginski, V. Mining market data: a network approach / V. Boginski, S. Butenko, P. M. Pardalos // Computers & Operations Research. - 2006. - Vol. 33. - P. 3171-3184.
6. Boginski, V. On structural properties of the market graph / V. Boginski, S. Butenko, P. M. Pardalos // Innovations in financial and economic networks. - Northampton: Edward Elgar Publishers, 2003. - P. 29-45.
7. Boginski, V. Statistical analysis of financial networks / V. Boginski, S. Butenko, P. M. Pardalos // Computational statistics & data analysis. - 2005. - Vol. 48. - №. 2. - С. 431-443.
8. Ebel, H. Scale-free topology of e-mail networks / H. Ebel, L.I. Mielsch, S. Bornholdt // Physical review E. - 2002. - Vol. 66. - P. 1-4.
9. Garey, M.R. Computers and intractability: a guide to the theory of NP-completeness / M.R. Garey, D.S. Johnson. - New York: Freeman, 1979. - 338 p.
10. Glotov, A.A. Market Graph Construction Using the Performance Measure of Similarity / A.A. Glotov, V.A. Kalyagin, A.N. Vizgunov, P.M. Pardalos // Models, Algorithms and Technologies for Network Analysis. - Springer International Publishing, 2014. - P. 21-35.
11. Huang, W.Q. A network analysis of the Chinese stock market / W.Q. Huang, X.T. Zhuang, S. Yao // Physica A: Statistical Mechanics and its Applications. - 2009. - Vol. 388. - P. 2956-2964.
12. Jallo, D. Network-based representation of stock market dynamics: an application to American and Swedish stock markets / D. Jallo, D. Budai, V. Boginski, B.I. Goldengorin, P.M. Pardalos // Models, Algorithms, and Technologies for Network Analysis. - Springer New York, 2013. - P. 93-106.
13. Kim, H.J. Scale-free network in stock markets / H.J. Kim, I.M. Kim, Y. Lee, B. Kahng // Journal-Korean Physical Society. - 2002. - Vol. 40. - P. 1105-1108.
14. Mantegna, R.N. Hierarchical structure in financial markets / R.N. Mantegna // The European Physical Journal B-Condensed Matter and Complex Systems. - 1999. - Vol. 11. - P. 193-197.
15. Mantegna, R.N. An Introduction to Econophysics: Correlations and Complexity in Finance / R.N. Mantegna, H.E. Stanley. - Cambridge: Cambridge University Press, 2000 - 154 p.
16. Markowitz, H.M. Portfolio selection / H.M. Markowitz // The journal of finance. - 1952. - Vol. 7. - P. 77-91.
17. Mensi, W. Do global factors impact BRICS stock markets? A quantile regression approach / W. Mensi, S. Hammoudeh, J.C. Reboredo, D.K. Nguyen // Emerging Markets Review. - 2014. - Vol. 19. - P. 1-17.
18. Milgram, S. The small world problem / S. Milgram // Psychology today. - 1967. - Vol. 2. - P. 60-67.
19. Newman, M.E.J. The structure and function of complex networks / M.E.J. Newman, // SIAM review. - 2003. - Vol. 45. - P. 167-256.
20. Onnela, J.P. Asset trees and asset graphs in financial markets / J.P. Onnela, A. Chakraborti, K. Kaski, J. Kertesz, A. Kanto // Physica Scripta. - 2003. - Vol. 106. - P. 48.
21. Onnela, J.P. Clustering and information in correlation based financial networks / J.P. Onnela, K. Kaski, J. Kertйsz // The European Physical Journal B-Condensed Matter and Complex Systems. - 2004. - Vol. 38. - P. 353-362.
22. Onnela, J. P. Dynamic asset trees and Black Monday / J.P. Onnela, A. Chakraborti, K. Kaski, J. Kertesz, A. Kanto // Physica A: Statistical Mechanics and its Applications. - 2003. - Vol. 324. - P. 247-252.
23. Samitas, A. Financial crises and stock market dependence / A. Samitas, D. Kenourgios, N. Paltalidis // European Financial Management Association 16th Annual Meeting (EFMA). - Vienna, 2007. - P. 27-30.
24. Sedgewick, R. Algorithms (4th Edition). / R. Sedgewick, K. Wayne. - Princeton, 2011. - 992 p.
25. Tumminello, M. A tool for filtering information in complex systems / M. Tumminello, T. Aste, T. Di Matteo, R.N. Mantegna // Proceedings of the National Academy of Sciences of the United States of America. - 2005. - Vol. 102. - P. 10421-10426.
26. Tumminello, M. Correlation based networks of equity returns sampled at different time horizons / / M. Tumminello, T. Aste, T. Di Matteo, R.N. Mantegna // The European Physical Journal B-Condensed Matter and Complex Systems. - 2007. - Vol. 55. - P. 209-217.
27. Tumminello, M. Correlation, hierarchies, and networks in financial markets / M. Tumminello, F. Lillo, R.N. Mantegna // Journal of Economic Behavior & Organization. - 2010. - Vol. 75. - P. 40-58.
28. Vizgunov A.N. Comparative analysis of the BRIC countries stock markets using network approach / A.N. Vizgunov, A.A. Glotov, P.M. Pardalos // Models, Algorithms, and Technologies for Network Analysis. - New York: Springer, 2013. - P. 191-201.
29. Vizgunov, A.N. Network approach for the Russian stock market / A.N. Vizgunov, B.I. Goldengorin, V.A. Kalyagin, A.P. Koldanov, P.A. Koldanov, P.M. Pardalos // Computational Management Science. - 2014. - Vol. 11. - P. 45-55.
30. Wagner, A. The small world inside large metabolic networks / A. Wagner, D.A. Fell // Proceedings of the Royal Society of London. Series B: Biological Sciences. - 2001. - Vol. 268. - P. 1803-1810.
31. Wang, X.F. Complex networks: small-world, scale-free and beyond / X.F. Wang, G. Chen // Circuits and Systems Magazine, IEEE. - 2003. - Vol. 3. - P. 6-20.
32. Watts, D.J. Collective dynamics of `small-world' networks / D.J.Watts, S.H. Strogatz // Nature. - 1998. - Vol. 393. - P. 440-442.
33. Берж, К. Теория графов и ее применения / К.Берж. - М.: Издательство иностранной литературы, 1962 - 320 с.
34. Берзон, Н.И. Фондовый рынок: Учебное пособие для вузов экономического профиля / Н.И. Берзон, Е.А. Буянова, М.А. Кожевников, А.В. Чаленко. - М.: Вита-Пресс, 1998 - 400 с.
35. Визгунов, А.Н. Применение рыночных графов к анализу фондового рынка / А. Н. Визгунов, Б. И. Гольденгорин, В.А. Замараев, В.А. Калягин, А. П. Колданов, П.А. Колданов, П.М. Пардалос, //Журнал новой экономической ассоциации. - 2012. - №. 3. - С. 66-81.
36. Визгунов, А.Н. Сравнительный анализ фондового рынка России и стран БРИК на основе модели графа рынка / А.Н. Визгунов, А.А. Глотов // XIV Апрельская международная научная конференция по проблемам развития экономики и общества: в 4-х книгах. Книга 4 / Отв. ред.: Е. Г. Ясин. - М.: Издательский дом НИУ ВШЭ, 2014. - С. 382-393.
37. Гудман, С. Введение в разработку и анализ алгоритмов / C. Гудман, С. Хидетниеми. - М.: Мир, 1981 - 368 с.
38. Евин, И.А. Введение в теорию сложных сетей / И.А. Евин // Компьютерные исследования и моделирование. - 2010. - №. 2. - P. 121-141.
39. Ноздрев, С.В. Современное состояние и тенденции развития международного рынка ценных бумаг / С.В. Ноздрев. - М.: ИМЭМО РАН, 2012. - 100 с.
Приложения
Приложение 1
Программа для загрузки данных о котировках
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
/**
* Program to download historical quotes of a stock or index from
* Yahoo! Finance.
*
* For more details, see
* https://code.google.com/p/yahoo-finance-managed/wiki/csvHistQuotesDownload
*/
public class QuotesDownloader {
public static final String INTERVAL_DAILY = "d";
public static final String INTERVAL_WEEKLY = "w";
public static final String INTERVAL_MONTHLY = "m";
/**
* Build URL for historical quotes download.
*
* @param id the ID of the stock or index
* @param fromDate the first date
* @param toDate the last date
* @param interval the interval of the trading periods
* @return the URL for historical quotes download
* @throws MalformedURLException if URL is invalid
*/
private static final URL buildURL(String id, Calendar fromDate,
Calendar toDate, String interval) throws MalformedURLException {
// Start
String url = "http://ichart.yahoo.com/table.csv?s=";
// ID
url += id;
// From Date
url += "&a=" + fromDate.get(Calendar.MONTH);
url += "&b=" + fromDate.get(Calendar.DAY_OF_MONTH);
url += "&c=" + fromDate.get(Calendar.YEAR);
// To Date
url += "&d=" + toDate.get(Calendar.MONTH);
url += "&e=" + toDate.get(Calendar.DAY_OF_MONTH);
url += "&f=" + toDate.get(Calendar.YEAR);
// Interval
url += "&g=" + interval;
// Static part
url += "&ignore=.csv";
return new URL(url);
}
/**
* Download historical quotes of a stock or index.
*
* @param id the ID of the stock or index
* @param fromDate the first date
* @param toDate the last date
* @param interval the interval of the trading periods
* @param dirName the directory to save the quotes
* @throws IOException if an I/O error occurs
*/
public static void download(String id, Calendar fromDate,
Calendar toDate, String interval, String dirName)
throws IOException {
URL url = buildURL(id, fromDate, toDate, interval);
System.out.println(url);
ReadableByteChannel rbc = Channels.newChannel(url.openStream());
String outFile = dirName + "/" + id + ".csv";
FileOutputStream fos = new FileOutputStream(outFile);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
/**
* The entry point to class & application.
*
* @param args the command-line arguments
* @throws IOException if an I/O error occurs
* @throws ParseException if an invalid date is specified
*/
public static void main(String[] args)
throws IOException, ParseException {
if (args.length!= 5) {
System.err.println("Usage: QuotesDownloader <id> <from_date> " +
"<to_date> <interval> <dir>");
System.exit(1);
}
String id = args[0];
SimpleDateFormat sdf = new SimpleDateFormat("dd.mm.yyyy");
Calendar fromDate = Calendar.getInstance();
fromDate.setTime(sdf.parse(args[1]));
Calendar toDate = Calendar.getInstance();
toDate.setTime(sdf.parse(args[2]));
String interval = args[3];
String dirPath = args[4];
download(id, fromDate, toDate, interval, dirPath);
}
}
Приложение 2
Модуль для работы с базой данных котировок
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.TreeMap;
import oracle.jdbc.pool.OracleDataSource;
/**
* Database session handle.
*/
public class DatabaseSession {
private static final String DRIVER = "jdbc:oracle:thin";
private static final String HOSTNAME = "127.0.0.1";
private static final String PORT = "1521";
private static final String SERVICE = "XE";
private static Connection conn;
private static String readString(String message) throws IOException {
System.out.print(message);
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
return br.readLine();
}
private void connect(String user, String password) throws SQLException {
// Cannot access NLS files on my machine
Locale.setDefault(Locale.ENGLISH);
OracleDataSource ods = new OracleDataSource();
String url = DRIVER + ":" + user + "/" + password + "@" + HOSTNAME
+ ":" + PORT + ":" + SERVICE;
ods.setURL(url);
conn = ods.getConnection();
}
/**
* Create a database session (silent version).
*
* @param user The username
* @param password The password
* @throws SQLException If a database access error occurs
*/
public DatabaseSession(String user, String password)
throws SQLException {
connect(user, password);
}
/**
* Create a database session. Prompt user for login & password.
*
* @throws IOException If an I/O error occurs
* @throws SQLException If a database access error occurs
*/
public DatabaseSession() throws IOException, SQLException {
String user = readString("User: ");
String password = readString("Password: ");
connect(user, password);
System.out.println("Connected!\n");
}
/**
* Select all trading days given a country and a range of dates.
*
* @param country The country
* @param fromDate The start of the period
* @param toDate The end of the period
* @return A list of dates
* @throws SQLException If a database access error occurs
*/
public ArrayList<Date> selectDates(String country, Date fromDate,
Date toDate) throws SQLException {
ArrayList<Date> dates = new ArrayList<Date>();
String query = "SELECT DISTINCT qdate FROM Quotes WHERE stock IN ("
+ " SELECT id FROM Stocks WHERE exchange IN ("
+ " SELECT id FROM Exchanges WHERE country = ("
+ " SELECT id FROM Countries "
+ " WHERE name =?"
+ " )"
+ " )"
+ ") "
+ "AND qdate BETWEEN? AND? "
+ "ORDER BY 1";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setString(1, country);
stmt.setDate(2, fromDate);
stmt.setDate(3, toDate);
ResultSet rset = stmt.executeQuery();
while (rset.next())
dates.add(rset.getDate(1));
stmt.close();
return dates;
}
/**
* Select all stocks for the given country that traded at least
* <tt>minDays</tt> during the given period.
*
* @param country The country
* @param fromDate The start of the period
* @param toDate The end of the period
* @param minDays The minimum number of trading days for each stock
* @return List of stocks
* @throws SQLException If a database access error occurs
*/
public ArrayList<Integer> selectStocks(String country, Date fromDate,
Date toDate, int minDays) throws SQLException {
ArrayList<Integer> stocks = new ArrayList<Integer>();
String query = "SELECT stock, COUNT(*) FROM Quotes WHERE stock IN ("
+ " SELECT id FROM Stocks WHERE exchange IN ("
+ " SELECT id FROM Exchanges WHERE country = ("
+ " SELECT id FROM Countries "
+ " WHERE name =?"
+ " )"
+ " )"
+ ") "
+ "AND qdate BETWEEN? AND? "
+ "GROUP BY stock "
+ "HAVING (COUNT(*) >=?)";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setString(1, country);
stmt.setDate(2, fromDate);
stmt.setDate(3, toDate);
stmt.setInt(4, minDays);
ResultSet rset = stmt.executeQuery();
while (rset.next())
stocks.add(rset.getInt(1));
stmt.close();
return stocks;
}
/**
* Select all stocks for the given country that traded in the given time
* period.
*
* @param country The country
* @param fromDate The start of the period
* @param toDate The end of the period
* @param minDays The minimum number of trading days for each stock
* @return List of stocks
* @throws SQLException If a database access error occurs
*/
public ArrayList<Integer> selectStocks(String country, Date fromDate,
Date toDate) throws SQLException {
ArrayList<Integer> stocks = new ArrayList<Integer>();
String query = "SELECT DISTINCT stock FROM Quotes WHERE stock IN ("
+ " SELECT id FROM Stocks WHERE exchange IN ("
+ " SELECT id FROM Exchanges WHERE country = ("
+ " SELECT id FROM Countries "
+ " WHERE name =?"
+ " )"
+ " )"
+ ") "
+ "AND qdate BETWEEN? AND? ";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setString(1, country);
stmt.setDate(2, fromDate);
stmt.setDate(3, toDate);
ResultSet rset = stmt.executeQuery();
while (rset.next())
stocks.add(rset.getInt(1));
stmt.close();
return stocks;
}
/**
* Close connection.
*
* @throws SQLException If a database access error occurs
*/
public void close() throws SQLException {
conn.close();
}
/**
* Get ID for the given exchange from the Exchanges table.
*
* @param name The name of the exchange
* @return The exchange ID; null if there is no matching entry in the
* database
* @throws SQLException If a database access error occurs
*/
public Integer getExchangeID(String name) throws SQLException {
String query = "SELECT id FROM Exchanges "
+ "WHERE short_name =?";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setString(1, name);
ResultSet rset = stmt.executeQuery();
Integer id = rset.next()? rset.getInt(1): null;
stmt.close();
return id;
}
/**
* Get ID for the given country from the Countries table.
*
* @param name The name of the country
* @return The country ID; null if there is no matching entry in the
* database
* @throws SQLException If a database access error occurs
*/
public Integer getCountryID(String name) throws SQLException {
String query = "SELECT id FROM Countries "
+ "WHERE name =?";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setString(1, name);
ResultSet rset = stmt.executeQuery();
Integer id = rset.next()? rset.getInt(1): null;
stmt.close();
return id;
}
/**
* Create entry for given stock symbol to the Stocks table.
*
* @param exchangeID The exchange ID for this stock
* @param symbol The stock symbol
* @return The auto-generated ID for this stock; null if something
* went wrong
* @throws SQLException If a database access error occurs
*/
public Integer insertStock(String symbol, int exchangeID)
throws SQLException {
String query = "INSERT INTO Stocks "
+ "VALUES(seq_stocks_id.nextval,?,?)";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setString(1, symbol);
stmt.setInt(2, exchangeID);
stmt.execute();
stmt.close();
query = "SELECT seq_stocks_id.currval FROM Dual";
stmt = conn.prepareStatement(query);
ResultSet rset = stmt.executeQuery();
Integer id = rset.next()? rset.getInt(1): null;
stmt.close();
return id;
}
/**
* Select all quotes for the given stock.
*
* @param id The stock id
* @param fromDate The start of the period
* @param toDate The end of the period
* @return A list containing quotes information
* @throws SQLException If a database access error occurs
* @see Quote
*/
public ArrayList<Quote> selectQuotes(int stock, Date fromDate,
Date toDate) throws SQLException {
ArrayList<Quote> quotes = new ArrayList<Quote>();
String query = "SELECT qdate, close "
+ "FROM Quotes WHERE stock =? "
+ "AND qdate BETWEEN? AND?"
+ "ORDER BY 1";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setInt(1, stock);
stmt.setDate(2, fromDate);
stmt.setDate(3, toDate);
ResultSet rset = stmt.executeQuery();
while (rset.next())
quotes.add(new Quote(rset.getDate(1), rset.getDouble(2)));
stmt.close();
return quotes;
}
/**
* Read quotes from file and insert into the database.
*
* @param file The file containing quotes data
* @param id The ID of the corresponding stock in the database
* @throws IOException If an I/O error occurs
* @throws SQLException If a database access error occurs
* @throws ParseException If the file contains invalid data
*/
public void insertQuotes(File file, int id)
throws IOException, SQLException, ParseException {
String query = "INSERT INTO Quotes VALUES (?,?,?,?)";
PreparedStatement stmt = conn.prepareStatement(query);
BufferedReader br = new BufferedReader(new
InputStreamReader(new
FileInputStream(file)));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String line = br.readLine(); // Skip the header
while ((line = br.readLine())!= null) {
String[] fields = line.split(",");
if (fields.length!= 7) {
br.close();
throw new RuntimeException("Invalid file format");
}
stmt.setInt(1, id);
stmt.setDate(2, new Date(sdf.parse(fields[0]).getTime()));
stmt.setDouble(3, Double.parseDouble(fields[4]));
stmt.setDouble(4, Double.parseDouble(fields[5]));
stmt.execute();
}
br.close();
stmt.close();
}
/**
* Read inflation values from file and insert into the database.
*
* @param file The file containing inflation data
* @throws IOException If an I/O error occurs
* @throws SQLException If a database access error occurs
*/
public void insertInflation(File file) throws SQLException, IOException {
BufferedReader br = new BufferedReader(new
InputStreamReader(new FileInputStream(file)));
String query = "INSERT INTO Inflation VALUES(?,?,?,?,?)";
PreparedStatement stmt = conn.prepareStatement(query);
String s;
while ((s = br.readLine())!= null) {
String[] fields = s.split(";");
int year = Integer.parseInt(fields[1]);
int month = Integer.parseInt(fields[2]);
double rate = Double.parseDouble(fields[3]);
int daysInMonth = new GregorianCalendar(year, month-1, 1)
.getActualMaximum(Calendar.DAY_OF_MONTH);
stmt.setInt(1, getCountryID(fields[0]));
stmt.setInt(2, year);
stmt.setInt(3, month);
stmt.setDouble(4, rate);
stmt.setDouble(5, rate / daysInMonth);
stmt.execute();
}
br.close();
stmt.close();
}
public TreeMap<Integer, double[]> dailyInflation(String country)
throws SQLException {
TreeMap<Integer, double[]> inflation =
new TreeMap<Integer, double[]>();
String query = "SELECT year, month, daily_rate "
+ "FROM Inflation "
+ "WHERE country =? "
+ "ORDER BY year, month";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setInt(1, getCountryID(country));
ResultSet res = stmt.executeQuery();
while (res.next()) {
int year = res.getInt(1);
int month = res.getInt(2);
double rate = res.getDouble(3);
if (!inflation.containsKey(year))
inflation.put(year, new double[12]);
inflation.get(year)[month - 1] = rate;
}
stmt.close();
return inflation;
}
}
/**
* The class to represent a single quote entry.
*/
class Quote {
private Date date;
private double close;
/**
* Construct a new quote object.
* @param date
* @param price
*/
public Quote(Date date, double close) {
super();
this.date = date;
this.close = close;
}
/**
* Get the date.
* @return the date
*/
public Date getDate() {
return date;
}
/**
* Set date.
* @param date the date
*/
public void setDate(Date date) {
this.date = date;
}
/**
* Get the close price.
* @return the close price
*/
public double getClose() {
return close;
}
/**
* Set the close price.
* @param price the close price
*/
public void setClose(double close) {
this.close = close;
}
}
Приложение 3
Программа для импорта данных в базу
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.sql.SQLException;
import java.text.ParseException;
/**
* Program to import quotes to the Oracle XE database.
* If no exchange name is specified, the program will import stock quotes
* from each of the existing subdirectories.
*/
public class ImportQuotes {
private static File dir;
private static DatabaseSession db;
private static void importAll()
throws SQLException, IOException, ParseException {
FileFilter directoryFilter = new FileFilter() {
public boolean accept(File file) {
return file.isDirectory();
}
};
for (File subdir: dir.listFiles(directoryFilter))
importExchange(subdir);
}
private static void importExchange(File exDirectory)
throws SQLException, IOException, ParseException {
String exchangeName = exDirectory.getName();
System.out.println("Importing quotes for " + exchangeName);
Integer exchangeID = db.getExchangeID(exchangeName);
if (exchangeID == null) {
System.err.println("Unknown exchange: " + exchangeName);
System.exit(1);
}
File[] stockFiles = exDirectory.listFiles();
for (int i = 0; i < stockFiles.length; i++) {
// Remove extension to get the symbol
String fileName = stockFiles[i].getName();
String symbol = fileName.substring(0, fileName.lastIndexOf('.'));
System.out.println("(" + (i + 1) + "/" + stockFiles.length
+ ") " + symbol);
Integer stockID = db.insertStock(symbol, exchangeID);
if (stockID == null) {
System.err.println("Cannot insert symbol: " + symbol);
System.exit(1);
}
db.insertQuotes(stockFiles[i], stockID);
}
}
public static void main(String[] args)
throws SQLException, IOException, ParseException {
if (args.length < 1) {
System.out.println("Usage: java ImportQuotes <dir> " +
[<exchange>]");
return;
}
// Open directory
dir = new File(args[0]);
if (!dir.exists()) {
System.err.println("No such directory: " + args[0]);
System.exit(1);
}
if (!dir.isDirectory()) {
System.err.println("Not a directory: " + args[0]);
System.exit(1);
}
db = new DatabaseSession();
if (args.length < 2)
importAll();
else {
File exDirectory = new File(dir.getAbsolutePath()
+ File.separator + args[1]);
if (!exDirectory.exists()) {
System.err.println("No such directory: "
+ exDirectory.toString());
System.exit(1);
}
if (!exDirectory.isDirectory()) {
System.err.println("Not a directory: "
+ exDirectory.toString());
System.exit(1);
}
importExchange(exDirectory);
}
db.close();
}
}
Приложение 4
Подобные документы
Подходы к оценке стоимости финансовых активов в рамках линейной и нелинейной парадигмы. Анализ фрактальных свойств американского фондового рынка. Разработка методики расчета параметров модели Веге-Изинга, построенной на основе гипотезы когерентных рынков.
дипломная работа [2,3 M], добавлен 13.12.2010Построение процедуры для проверки индивидуальных гипотез о равенстве вероятностей совпадения и несовпадения знаков случайных величин. Проверка адекватности условия оптимальности процедуры идентификации графа фондового рынка экспериментальным данным.
дипломная работа [823,9 K], добавлен 28.12.2015Основные понятия, структура и свойства сетей Петри. Рассмотрение принципов анализа двудольных ориентированных графов. Проведение проверки корректности абстрактного сценария. Преимущества использования сетей Петри в моделировании и анализе бизнес систем.
презентация [98,6 K], добавлен 14.09.2011Характеристика состояния акций второго эшелона рынка нефтяной отрасли. Рассмотрение подходов ученых к определению сущности поведения участников фондового рынка. Исследование и анализ особенностей эконометрического поведения участников фондового рынка.
курсовая работа [522,1 K], добавлен 13.10.2017Объемы валового внутреннего продукта и национального дохода. Тенденции развития отраслей экономики. Состояние финансовых и товарных рынков. Производственные показатели предприятия. Понятия корреляции и регрессии. Корреляционно-регрессионный анализ.
курсовая работа [214,8 K], добавлен 21.01.2011Методы и модели анализа динамики экономических процессов. Эластичность в экономическом анализе. Коэффициент корреляции, его свойства. Динамические ряды и временные ряды, тренд, их компоненты. Решение задачи потребительского выбора и его свойства.
курс лекций [399,8 K], добавлен 15.06.2015Имитационное моделирование. Описание моделируемого объекта. Обслуживающие устройства. Конвейер с постоянным интервалом. Дискретный подход в имитационном моделировании. Математическое ожидание. Среднеквадратичное отклонение. Равномерное распределение.
курсовая работа [43,9 K], добавлен 20.12.2008Построение сетевой модели. Упорядочивание сетевого графика. Определение критического пути. Временные характеристики сетевого графика. Современное сетевое планирование в условиях неопределенности. Оптимизация сетевого графика по схеме "Время-стоимость".
курсовая работа [537,0 K], добавлен 28.04.2014Построение одноиндексной математической модели задачи линейного программирования, ее решение графическим методом. Разработка путей оптимизации сетевой модели по критерию "минимум исполнителей". Решение задачи управления запасами на производстве.
контрольная работа [80,8 K], добавлен 13.12.2010Теоретические и методологические основы моделирования развития фирм с рентноориентированным управлением. Экономико-математические основы моделирования динамически сложных систем. Функция заимствования: понятие, сущность, свойства, аналитический вид.
дипломная работа [630,4 K], добавлен 04.02.2011