Размер шрифта
-
+

Как предсказать курс доллара. Поиск доходной стратегии с языком R - стр. 29

НижПрогноз<-round(Курс0+quantile(diff(Курс, n), 0.001),digits=4)

# нижний интервал прогноза, digits=4 – округлить на 4 цифры

# функция round означает округлить

ВерхПрогноз<-round(Курс0+quantile(diff(Курс, n), 0.999),digits=4)

# верхний интервал прогноза

Вывод.данных<-c(Вывод.данных, data.frame(n, НижПрогноз, ВерхПрогноз))

# заполняем таблицу данных

show(data.frame(n, НижПрогноз, ВерхПрогноз, row.names='Дней торгов'))

# команда показать вывод данных

>Табл.05 <– data.frame(matrix(unlist(Вывод.данных0), nrow=250, byrow=T), stringsAsFactors=FALSE)

# преобразуем лист с выводом данных в табл.05

>ДнейТоргов <-Табл.05[, 1]

# присваиваем колонке 1 из табл. 05 имя первой переменной

НижПрогноз <-Табл.05[, 2]

# присваиваем колонке 2 из табл. 05 имя второй переменной

ВерхПрогноз<-Табл.05[, 3]

# присваиваем колонке 3 из табл. 05 имя третьей переменной

Табл.5 <-data.frame(ДнейТоргов, НижПрогноз, ВерхПрогноз)

# создаем таблицу с тремя обозначенными переменными для последующей работы

Табл.5

# выводим таблицу с тремя обозначенными переменными – см. табл. 5


В результате получим следующие интервальные прогнозы (в целях экономии места, здесь они даются не полностью) – см. табл. 5.

>Табл. 5. Нижние и верхние интервальные прогнозы с лагом от 1 до 250 дней




Источник: расчеты автора

Судя по табл. 5, своего максимума верхний интервал прогноза =91.1698 руб. достигает при прогнозе на 250 дней. Такой же лаг и у минимума нижнего интервала прогноза= 36.4774 руб. Воспользуемся соответствующими встроенными функциями, чтобы не тратить время на поиск этих важных для трейдера параметров интервальных прогнозов.

> max(ВерхПрогноз)

# находим максимум по верхнему интервалу прогноза

[1] 91.1698

> which.max(ВерхПрогноз)

# находим в таблице порядковый номер строки максимума по верхнему интервалу прогноза

[1] 250

> min(НижПрогноз)

# находим минимум по нижнему интервалу прогноза

[1] 36.4774

> which.min(НижПрогноз)

# находим в таблице порядковый номер минимума по нижнему интервалу прогноза

[1] 250

> НижПрогноз[21]

# находим нижний интервал прогноза с лагом в 21 день

[1] 47.3384

> ВерхПрогноз[21]

# верхний интервал прогноза с лагом в 21 день

[1] 71.1137

>plot(НижПрогноз, main = 'Интервальный прогноз на 250 торг. дней',

type='l', lwd=4, ylim=c(min(НижПрогноз), max(ВерхПрогноз)))

>lines(ВерхПрогноз, lwd=4)

# делаем график интервального прогноза с лагом на 250 торговых дней

В результате получаем следующий график – см. рис. 7




Источник: расчеты автора

Рис. 7

На рис. 7 хорошо видно, что в целом, особенно, на первом этапе (для нижнего интервала – до лага в 75 дней торгов, а для верхнего – до 100 дней торгов) диапазон интервального прогноза по мере увеличения временного лага резко расширяется. Однако затем это расширение замедляется, а временами иногда даже немного уменьшается, хотя потом снова временами слегка подрастает. Это объясняется тем, что наши интервальные прогнозы рассчитаны на основе фактических изменений курса валюты с различным временным лагом. В то время как при расчете интервальных прогнозов, исходя из теоретического нормального распределения, таких колебаний не наблюдалось бы, но зато у них есть другой серьезный недостаток. Дело в том, что интервальные прогнозы, построенные на основе нормального распределения с 70%-90% уровнем надежности, как правило, существенно завышают вероятность волатильности валюты, на уровне 95% надежности близки к фактической волатильности, а на 99% и 99.9% уровнях надежности занижают этот риск.

Страница 29