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

Шрифт
Интервал


> ВерхПрогноз

2018-03-30

60.808652

Таким образом на основе этого прогноза, построенного по данным на 30 марта 2018 г., можно с 99.9% уровнем надежности утверждать, что курс доллара к рублю по итогам торгов в следующий торговый день, то есть 2 апреля 2018 г., должен был находиться в диапазоне от 54.4590 руб. и до 60.8087 руб. Если же нужно построить прогноз с лагом в 2,3,4 … 250 торговых дней, то одна из команд в этом коде приобретет вид diff(Курс, 2,3,4 … 250). А в случае использования операторов циклов вместо этих конкретных цифр ставят букву n.

Далее построим аналогичные интервальные прогнозы на период от одного, двух … и до 250 торговых дней (в календарном году около 250 торговых дней). Для прогнозов будем использовать данные по курсам доллара к рублю за период с 30 июня 1992 г. по 30 марта 2018 г. С этой целью введем код, в котором используется оператор циклов for(n in 1:250), «пробегающий» значения от 1 до 250. При этом в R используются фигурные скобки {}, чтобы создать новую функцию, в которой «упаковано» сразу несколько операторов. В некоторых ситуациях фигурные скобки можно опускать, тем не менее начинающим программистам рекомендуется всегда их ставить.

Прогноз по курсу валюты с заданным количеством дней торгов и 0.1% уровнем риска:

Вывод.данных<-data.frame()

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

for(n in 1:250) {

# оператор циклов for

# вектор 1:250 означает последовательность 1, 2 … 250.

НижПрогноз<-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 имя третьей переменной