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

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

type='l', lwd=4, ylim=c(min(НижПрогноз), max(ВерхПрогноз)))

>lines(ВерхПрогноз, lwd=4)

# делаем график интервального прогноза с лагом на 250 торговых дней

В результате получаем следующий график – см. рис. 7

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

Рис. 7

На рис. 7 хорошо видно, что в целом, особенно, на первом этапе (для нижнего интервала – до лага в 75 дней торгов, а для верхнего – до 100 дней торгов) диапазон интервального прогноза по мере увеличения временного лага резко расширяется. Однако затем это расширение замедляется, а временами иногда даже немного уменьшается, хотя потом снова временами слегка подрастает. Это объясняется тем, что наши интервальные прогнозы рассчитаны на основе фактических изменений курса валюты с различным временным лагом. В то время как при расчете интервальных прогнозов, исходя из теоретического нормального распределения, таких колебаний не наблюдалось бы, но зато у них есть другой серьезный недостаток. Дело в том, что интервальные прогнозы, построенные на основе нормального распределения с 70%-90% уровнем надежности, как правило, существенно завышают вероятность волатильности валюты, на уровне 95% надежности близки к фактической волатильности, а на 99% и 99.9% уровнях надежности занижают этот риск.

Далее на основе данных за период с 30 июня 1992 г. по 30 марта 2018 г. мы сначала попытаемся разработать торговую систему, а затем ее протестировать на основе данных за весь апрель 2018 г. Поскольку в этом месяце насчитывается 21 день, в течение которых мы будем торговать, то, вполне логичным будет посмотреть, каким будет интервальный прогноз на конец этого периода. С этой целью мы введем следующий код:

> НижПрогноз[21]

[1] 47.3384

> ВерхПрогноз[21]

[1] 71.1137

Благодаря командам НижПрогноз[21] и ВерхПрогноз[21] нам удалось выяснить, что при лаге в 21 торговый день верхний и нижний интервалы прогнозов равняются, соответственно, 47.3384 руб. и 71.1137 руб. Таким образом наши расчеты, выполненные на основе имеющихся на 30 марта 2018 г. данных, с 99.9% уровнем надежности предсказывают, что на конец апреля 2018 г. курс доллара к рублю должен находиться в указанном диапазоне. В тот момент, когда пишутся эти строки, уже известно, что в течение апреля 2018 года, курс доллара к рублю находился в диапазоне от 57.285 руб. и до 64.0626 руб., то есть не выходил за рамки интервального прогноза.

Если бы мы захотели построить интервальные прогнозы на конец апреля 2018 г. с более низким 1% уровнем надежности, то нам следовало бы ввести следующий код:

> НижПрогноз <– Курс0+quantile(diff(Курс, 21), 0.01)

> НижПрогноз

2018-03-30

52.301041

> ВерхПрогноз<-Курс0+quantile(diff(Курс, 21), 0.99)

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

2018-03-30

65.302888

В этом случае верхние и нижние интервалы прогнозы равнялись бы, соответственно, 52.3010 руб. и 65.3029 руб., но риск выхода курса доллара к рублю оказался бы выше.

После того как мы нашли диапазон возможного роста и падения курса доллара к рублю, как по итогам месячных торгов в апреле 2018 г., так и в целом с лагом от одного до 250 торговых дней, то теперь перед нами стоит новая задача, а именно: рассчитать кредитное плечо с 0.1% уровнем надежности. То есть нужно вычислить, какой должен быть у трейдера залог (объем собственных средств), используемых при покупке валюты, чтобы его позиция не была принудительно закрыта из-за нехватки у него средств в случае неблагоприятного движения рынка.

Для дальнейших расчетов будем использовать только что составленные нами верхние и нижние интервалы прогнозов (их мы обозначили как НижПрогноз и ВерхПрогноз), составленные на срок от 1,2.,3 … и до 250 дней. С этой целью введем следующий код, с помощью которого найдем долю привлеченного кредита, необходимого для покупки (или продажи) лота при открытии длинной (или короткой) позиции сроком от 1,2.,3 … и до 250 дней:





# Доля кредита при покупке или продаже лота

# расчет с заданным кол-вом дней торгов и 0.1% уровнем риска

> МинЦена<-НижПрогноз*Лот

# создаем вектор c минимальными ценами лота с 0.1% уровнем риска

# вероятность резкого падения курса оценивается с 99.9% уровнем надежности

> МаксЦена<-ВерхПрогноз*Лот

# создаем вектор c максимальными ценами лота с 0.1% уровнем риска

# вероятность резкого роста курса оценивается с 99.9% уровнем надежности

>Цена_Лота250<-rep(Цена_Лота, 250)

# создаем вектор из 250 одинаковых цен лота по состоянию на 30.03. 2018 г.

>ДоляКредита<-ifelse(МинЦена/Цена_Лота250>=Цена_Лота250/МаксЦена, >Цена_Лота250/МаксЦена,МинЦена/Цена_Лота250)

# находим долю кредита для торговли на срок от 1,2.,3 … и до 250 дней

# ifelse -логическое выражение условия

# символ >= означает больше, либо равно

# если (МинЦена/Цена_Лота250>=Цена_Лота250/МаксЦена)

# то тогда ДоляКредита= Цена_Лота250/МаксЦена

# в противном случае ДоляКредита= Цена_Лота250/МаксЦена

# подробнее о выражении ifelse в R можно узнать по запросу ?ifelse

>ДоляКредита<-round((ДоляКредита-0.005), 2)

Конец ознакомительного фрагмента.

Текст предоставлен ООО «ЛитРес».

Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.