Как предсказать курс доллара. Поиск доходной стратегии с языком 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 имя третьей переменной
Табл.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 хорошо видно, что в целом, особенно, на первом этапе (для нижнего интервала