Как предсказать курс доллара. Поиск доходной стратегии с языком R
2. Написал функцию прописными буквами, в то время как ее нужно было написать строчными. Например, команды ?lm, либо help (lm) будут поняты R, а вот при вводе команд ?Lm, Help (lm) появиться сообщение об ошибке. Аналогичная ошибка появится, если вместо команды по загрузке пакета library(MASS) будет ошибочно введена команда library(mass), в которой название пакета дано строчными буквами.
3. Забыл поставить скобки при обращении к функции: к примеру, нужно набирать help(), а не help даже если аргументы у функции в данном случае отсутствуют.
4. Использовал в команде по установки рабочей директории setwd('C: \Users …’) при указании пути к файлу в операционной системе Windows используется обратный слэш \ , в то время как в R в этом случае нужно поставить: либо два обратных слэша \\, либо один прямой /. Таким образом эту команду надо вводить либо как setwd('C: \\Users …’), либо как setwd('C: /Users …’).
5. Ввел функцию из пакета, который еще не загружен. Например, функция read.zoo() относится к пакету zoo. Если Вы этот пакет, еще не загрузили, а функцию read.zoo() уже ввели, то появится сообщение об ошибке. Правда не все пакеты нужно загружать, поскольку часть пакетов, считающихся базовыми, устанавливаются одновременно с установкой R.
Задание 1. Овладеваем азами работы с языком R
После того, как читатель познакомился с некоторыми азами работы с R, теперь давайте попробуем применить их на практике. С этой целью нужно выполнить следующие задания:
1. Построить вектор А с помощью функции, которую если бы R понимал по-русски, можно было бы ввести так (какой командой в R надо заменить русское слово «объединить»):
вектор.А= объединить(2,6,8)
Какую функцию в R используют, чтобы выполнить команду «объединить»? Определите класс или тип объекта вектор.А в R
2. Построить вектор Б с помощью функции, которую если бы R понимал по-русски, можно было бы ввести так:
вектор.Б<-последовательность (0,-8, -2)
Какую функцию в R используют, чтобы выполнить команду «последовательность»? Определите класс или тип объекта вектор.Б в R.
3. Построить вектор.В из последовательностей цифр от -2.5 до 3.5 с помощью функции, обозначаемой двоеточием.
Определите класс или тип объекта вектор.В в R.
Переведите данные из вектор.В в текстовые.
Проверьте являются ли данные из вектор.В текстовыми.
Переведите данные из вектор.В в количественные (действительные числа)
Проверьте, являются ли данные из вектор.В количественными.
4. Создайте текстовый вектор Г из следующих элементов: Первый класс, Второй класс, Третий класс, Четвертый класс, Пятый класс. С помощью какой функции можно создать текстовый вектор?
Определите класс или тип объекта вектор.Г в R
5. Создайте логический вектор Д с помощью функции, которую если бы R понимал по-русски, можно было бы ввести так:
вектор.Д<– объединить (ЛОЖЬ, ИСТИНА, ЛОЖЬ, ЛОЖЬ, ЛОЖЬ, ИСТИНА)
Определите класс или тип объекта вектор.Д в R
Проверьте являются ли данные из вектор.Д логическими
6. Извлеките первый по счету элемент из вектора А, второй – из вектора Б, третий – из вектора В, четвертый – из вектора Г и пятый – из вектора Д.
7. Замените первый по счету элемент из вектора А цифрой 1, второй – из вектора Б цифрой 2, третий – из вектора В цифрой 3, четвертый – из вектора Г текстом 'элемент4' и пятый – из вектора Д логическим значением ИСТИНА. Можно ли в векторы Г и Д вставить числовые значения?
8. Удалите первый по счету элемент из вектора А, второй – из вектора Б, третий – из вектора В, четвертый – из вектора Г и пятый – из вектора Д.
9. Преобразуйте вектор.В, в котором содержатся действительные числа в вектор целых чисел. Задайте R вопрос содержит ли вектор.В данные в формате целых чисел?
10. Создайте матрицу, состоящую из четырех строк и четырех столбцов, из следующей последовательности цифр seq(2, 32, 2). Обозначьте эту матрицу Матрица4.
11. Извлеките элемент Матрица4, находящийся в третьей строке ее второго столбца.
12. Замените элемент Матрица4, находящийся в третьей строке ее второго столбца, на NaN (англ. Not-a-Number-«не число»). NaN получается в результате деления 0 на 0, деления 0 на бесконечность, деления бесконечности на бесконечность, умножения 0 на бесконечность; сложение бесконечности с бесконечностью противоположного знака; вычисления квадратного корня отрицательного числа, логарифмирования отрицательного числа, а также в результате всех математических операций с NaN в качестве одного из операндов.
13. Замените второй столбец Матрицы4 последовательностью цифр 10, 12, 14, 16
14. Удалите четвертую строку Матрица4.
15. Создайте массив данных Мой.Массив1 из последовательности чисел 3,6 … 90, состоящий из двух матриц с тремя строками и пятью столбцами. Определите размер Мой.Массив1.
16. Создайте таблицу из данных Мой.Массив1. Задайте R вопрос является ли Таблица1 таблицей? Проверьте структуру данных Мой.Массив1. Проверьте структуру данных Мой.Список1. Назовите
тип данных.
17. Создайте список данных Мой.Список1 из векторов: вектор.А, вектор.Б, вектор.В, вектор.Г, вектор.Д. Проверьте структуру данных Мой.Список1.
Ответы на задание 1 – см. в конце книги.
Глава 2. Анализ фундаментальных факторов, влияющих на курс валюты
Прежде чем приступить к поиску эффективной торговой стратегии займемся анализом фундаментальных факторов, которые, в конечном счете, и определяют стоимость торгуемых валют. С этой целью построим по каждой интересующей нас валюте уравнение регрессии. В него включим те факторы, к которым, по нашей оценке, интересующая нас валюта наиболее чувствительна. Решив уравнение регрессии, найдем расчетное значение курса валюты. В том случае, если расчетное значение ее курса выше фактического, то в этом случае делается вывод, что данная валюта недооценена. Или наоборот, если расчетное значение ниже текущего курса валюты, то тогда делается вывод о том, что она переоценена.
Далее загрузим ежедневные данные по курсам 12 валютам, а также по узкому индексу доллара США (к корзине из шести валют), по ценам на нефть и золоту – за период с 30 июня 1992 года и до 1 апреля 2018 года. Информация по динамике узкого индекса доллара США взята на сайте американской ФРС, по ценам на нефть марки Брент – на сайте Управления по энергетической информации США (EIA), по ценам на золото – на сайте Лондонской биржи драгоценных металлов. Данные по курсам доллара США и евро к рублю взяты на сайте Банка России в разделе «Динамика официального курса заданной валюты».
В то время как остальные курсы по не рублевым валютным парам представляют собой кросс-курсов, рассчитанные на основе данных российского Центробанка. Поскольку евро появился в обороте лишь с 1 января 1999 года, то до этой даты нами использовались данные ЦБ РФ по котировкам ЭКЮ – практически полного аналога (с точки зрения курсовой стоимости) современной единой европейской валюты, которую при переходе к евро в еврозоне обменяли в соотношении 1 к 1.
Как известно, официальные курсы валют к рублю Банк России устанавливает на следующий день исходя из рыночных котировок по итогам утренних торгов на Московской межбанковской валютной биржи. Для определения официального валютного курса ЦБ РФ на конкретный день будем использовать средневзвешенное значение курса доллара, сложившееся по итогам Единой торговой сессии на 11 час. 30 мин. С учетом этого даты по курсам валют сдвинуты нами на один день назад – ко дню торгов, по итогам которых они установлены, так как в этом случае официальные валютные курсы будут лучше коррелировать с фактическими итогами биржевых торгов.
Кроме того, с целью обеспечения сопоставимости данных при расчете всех курсов валют была сделана корректировка на деноминацию рубля. Дело в том, что с 1992 года и по 31 декабря 1997 года Банк России дает курсы валют в неденоминированных рублях, в то время как после деноминации с 1 января 1998 года у российской валюты исчезли три нуля.