Добавить в цитаты Настройки чтения

Страница 10 из 12



коэф.возврата<– 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. Wi

plot(Уравн1$residuals[1:5831], main='Полупериоды колебания остатков', xlab='Годы', type='l')

# строим график остатков

# plot означает график

abline(h=0, lwd=4)

# приставка ab означает от, а line – линия

# строим линию =0 с толщиной lwd=4

# lwd сокращение от line width, что означает ширину линии

В результате получаем рис. 6 с графиком колебаний остатков вокруг нуля за период с 30 июня 1992 г. по 30 марта 2018 г. Толстая прямая линия на этом графике представляет собой линию перехода остатков от отрицательных к положительным значениям. Судя по этому графику, различные циклы колебаний остатков вокруг нуля довольно существенно отличаются друг от друга, а также и от их среднего значения.

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

Рис. 6

После того как мы создали вышеуказанный код его нужно будет сохранить. Щелкнув в верху RStudio опции File и Save as (Ctrl+S), мы по умолчанию сохраняем созданный скрипт в текущей рабочей директории. Если скрипт сохраняется в первый раз, то появится окно, в котором будет предложено ввести имя сохраняемого файла. При этом файл для дальнейшей работы в R сохраняется с расширением *.R, хотя в некоторых случаях Вам могут потребоваться и другие форматы.

Задание 2. Проанализировать влияние фундаментальных факторов на курс евро к рублю

После того, как читатель познакомился с анализом фундаментальных факторов, влияющих на курс американского доллара к рублю, пора применить эти знания на практике. В данном случае читателю нужно будет внести небольшие изменения в код, анализирующий фундаментальные факторы, влияющие на курс доллара США к рублю. В результате он получит код, анализирующий влияние фундаментальных факторов на курс евро к рублю.

С этой целью ниже дается код, с помощью которого проводился анализ фундаментальных факторов, влияющих на курс доллара США к рублю. Здесь и ниже во всех заданиях автор использует в коде символ решетки с тремя восклицательными знаками #!!!, который ставится ниже строки кода. Символ #!!! является для читателя указанием на то, что данная строка с кодом должны быть им во время решения задания изменены. При необходимости после символа #!!! даются иногда и пояснения о необходимости изменить расположенную выше строку кода.

rm(list=ls(all.names=T))

getwd()

setwd('C:/Users/Vladimir/Documents/Cloud Mail.Ru/1 ANALITIKA/000 R/000 Книга прогноз доллара с R')

ls()

library(zoo)

library(fBasics)

library(urca)

Мои.данные<-read.zoo('Данные.csv', sep = ";", header=TRUE, FUN=as.Date)

head(Мои.данные)

tail(Мои.данные)

dim(Мои.данные)

День_торгов.мес<-(Мои.данные[1:5831, 1])

Долл.США_Руб <-Мои.данные[1:5831, 2]

Евро_Руб <-Мои.данные[1:5831, 3]

Евро_Долл.США<-Мои.данные[1:5831, 4]

Нефть<-Мои.данные[1:5831, 14]

Золото<-Мои.данные[1:5831, 15]

options("scipen"=100, "digits"=4)

Уравн1<-lm(Долл.США_Руб~Евро_Долл.США+Евро_Руб+Нефть+Золото)

summary(Уравн1)

#!!! какую зависимую переменную нужно поменять в Уравн1

#!!! какую независимую переменную нужно поменять в Уравн1

#!!! обратите внимание на значимость Pr(>|t|) коэффициентов в Уравн1

Долл.США_Руб.адф <– ur.df(Долл.США_Руб, type = "drift")



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

Евро_Долл.США.адф <– ur.df(Евро_Долл.США, type = "drift")

summary(Евро_Долл.США.адф)

Евро_Руб.адф <– ur.df(Евро_Руб, type = "drift")

summary(Евро_Руб.адф)

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

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

Нефть.адф <– ur.df(Нефть, type = "drift")

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

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

#!!! тестируем остатки, полученные по итогам уравнения регрессия

#!!! с какой зависимой переменной решено это уравнение

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

#!!!

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

#!!!

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

#!!! коэф.возврата для какой зависимой переменную нужно протестировать

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

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

# 92.33 торговых дней полупериод.средней

plot(Уравн1$residuals[1:5831], type='l')

#!!!

abline(h=0, lwd=4)

plot(Уравн1$residuals[1:5831], main='Полупериоды колебания остатков', xlab='Годы', type='l')

#!!!

abline(h=0, lwd=4)

Ответы на задание 2 – см. в конце книги.

Глава 3. Каким должно быть кредитное плечо, чтобы не проторговаться

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

> rm(list=ls(all.names=T))

# удаляем все объекты, оставшиеся после прошлой сессии.

> setwd('C:/Users/Vladimir/Documents/Cloud Mail.Ru/1 ANALITIKA/000 R/000 Книга прогноз доллара с R')

# устанавливаем рабочую директорию.

> library(zoo)

# загружаем в память компьютера библиотеку zoo

> Мои.данные<-read.zoo('Данные.csv', sep = ";", header=TRUE, FUN=as.Date)

# снова загружаем наши данные из файла Данные.csv

> head(Мои.данные)

# смотрим первые 6 строк с загруженными данными

> tail(Мои.данные)

# Смотрим последние 6 строк с загруженными данными

> dim(Мои.данные)

# Смотрим, сколько наблюдений (строк) и переменных (колонок) в файле Данные.csv