Оценить:
 Рейтинг: 2.67

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

Год написания книги
2018
<< 1 ... 8 9 10 11 12 13 14 15 16 17 >>
На страницу:
12 из 17
Настройки чтения
Размер шрифта
Высота строк
Поля

> summary(Нефть.адф)

> Золото.адф <– ur.df(Золото, type = "drift")

> summary(Золото.адф)

По итогам всех этих четырех тестов с помощью функции summary() нам удалось выяснить по каждому временному ряду, включенному в уравнение регрессии 1, что все они нестационарные. Делается это аналогичным образом, как и при анализе результатов, полученных нами с помощью функции summary(Долл.США_Руб.адф). Итоги этого анализа в целях экономии места в данном случае не приводятся.

Теперь проверим на стационарность остатки, полученные после решения уравнения регрессии 1. Заметим, что под остатками в данном случае имеется в виду разница между фактическими значениями Долл.США_Руб и их расчетными значениями, найденными по уравнению регрессии 1. Остатки в нашем коде обозначим как Уравн1$residuals, а в функцию ur.df() введем type = "none", то есть расширенный тест Дикки-Фуллера будет проводиться, исходя из того, что в остатках нет ни константы, ни тренда. (В последнем случае в функции ur.df() нужно было бы поставить опцию type = "trend").

>Долл.США_Руб.ост_адф <– ur.df(Уравн1$residuals, type = "none")

>summary(Долл.США_Руб.ост_адф)

По итогам тестирования команда summary(Долл.США_Руб.ост_адф) выдаст нам следующие итоги – см. табл. 3.

Табл. 3. Вывод данных по итогам выполнения расширенного теста Дикки-Фуллера по остаткам, полученным после решения уравнения 1

###############################################

# Augmented Dickey-Fuller Test Unit Root Test #

###############################################

Test regression none

Call:

lm(formula = z.diff ~ z.lag.1 – 1 + z.diff.lag)

Residuals:

Min 1Q Median 3Q Max

–1.2278 -0.0297 -0.0006 0.0274 1.2447

Coefficients:

Estimate Std. Error t value Pr(>|t|)

z.lag.1 -0.00751 0.00149 -5.03 0.0000005 ***

z.diff.lag 0.02879 0.01308 2.20 0.028 *



Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.114 on 5827 degrees of freedom

Multiple R-squared: 0.00497,      Adjusted R-squared: 0.00463

F-statistic: 14.6 on 2 and 5827 DF, p-value: 0.000000492

Value of test-statistic is: -5.031

Critical values for test statistics:

1pct 5pct 10pct

tau1 -2.58 -1.95 -1.62

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

Как видим, значение тестовой статистики (Value of test-statistic) = -5.031, то есть ниже tau2=-2.58 – критического значения (Critical values for test statistics) для 1% уровня значимости (или, что тоже самое, для 99% уровня надежности). Следовательно, нулевая гипотеза о наличии единичного корня отклоняется с 99% уровнем надежности, а, потому остатки, полученные по итогам решения уравнения регрессии 1, носят стационарный характер. Как мы уже выяснили, эти остатки представляют собой линейную комбинацию нестационарных временных рядов, состоящих из четырех факторов (Евро_Долл.США+Евро_Руб+Нефть+Золото) с зависимой переменной Долл.США_Руб. При этом наличие стационарных остатков – при нестационарности временных рядов факторов, включенных в это уравнение регрессии – свидетельствует о наличии коинтеграции между всеми этими переменными, включенными в уравнение 1. Коинтеграция временных рядов значительно упрощает процесс их анализа, а также свидетельствует о совпадении их динамики в течение весьма длительного времени.

Таким образом для того, чтобы выявить коинтеграцию между временными рядами необходимо сделать следующее: во-первых, построить и решить статистически значимое уравнение регрессии; во-вторых, проверить временные ряды переменных, включенные в уравнение регрессии на стационарность с помощью расширенного теста Дикки-Фуллера; в-третьих, в случае, если эти временные ряды не стационарны, провести тестирование остатков уравнения регрессии на стационарность; в-четвертых, если расширенный тест Дикки-Фуллера покажет, что эти остатки стационарны, то можно сделать вывод о наличии коинтеграции между временными рядами, включенными в уравнение регрессии.

Посмотрим, какими были остатки, полученные в результате решения уравнения регрессии 1, в течение 20 торговых дней марта 2018 года:

>tail(Уравн1$residuals, 20)

# по умолчанию команда tail дает только 6 последних наблюдений

# поэтому цифра 20 специально указана в команде tail

Табл. 4. Вывод остатков, полученных после решения уравнения 1.

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

Как известно, в статистической науке остатками называют разницу между фактическим и расчетным значением переменной, найденным после решения уравнения регрессии. Судя по табл. 4, все остатки за 20 дней торгов марта 2018 года были со знаком минус, то есть отрицательные. Таким образом можно сделать вывод, что курс доллара к рублю с точки зрения воздействия на него фундаментальных факторов оказался недооцененным. Причем, в период с 1 марта по 30 марта 2018 года эта недооценка американского доллара выросла с -1.969 руб. до -2.263 руб.

По итогам тестирования мы также выяснили, что остатки, полученные по итогам решения уравнения 1, являются стационарными, то есть имеют тенденцию колебаться вокруг их среднего значения, равного нулю. В связи с этим, имеет смысл найти среднюю полуамплитуду их колебаний вокруг 0, то есть найти среднестатистическое время, в течение которого остатки, опустившись до своего локального минимума, поднимаются до своего очередного локального максимума. Найдем эту полуамплитуду таким образом:

коэф.возврата<– summary(Долл.США_Руб.ост_адф)@testreg$coefficients[1,1]

# коэффициент @testreg$coefficients[1,1] берем из summary(Долл.США_Руб.ост_адф)

полупериод.средней <-(-log(2)/коэф.возврата)

# log(2) – натуральный логарифм от 2

полупериод.средней

# [1] 92.33331

Таким образом, средняя полуамплитуда колебаний остатков по курсу доллара к рублю составляет 92.33 торговых дня. По мнению Ernest P. Chan, автора книги «Algorithmic Trading. Winning Strategies and Their Rationale», pp 46-47 (Эрнест П. Чан. «Алгоритмическая торговля. Стратегии выигрыша и их обоснование», стр. 46-47), знание полуамплитуды колебания позволяет инвестору оценить период возврата его вложений в валюту. На наш взгляд, на практике сделать это очень непросто, поскольку фактические полуамплитуды колебаний значительно отличаются от их среднего значения. Чтобы это наглядно показать читателю, построим график колебаний остатков за период с 30 июня 1992 г. по 30 марта 2018 г. С этой целью введем следующий код:

plot(Уравн1$residuals[1:5831], main='Полупериоды колебания остатков', xlab='Годы', type='l')
<< 1 ... 8 9 10 11 12 13 14 15 16 17 >>
На страницу:
12 из 17