Блог им. SciFi

Создание красивых графиков на R для RIM6

    • 11 июня 2016, 14:58
    • |
    • SciFi
  • Еще
На R можно не только делать полезные расчеты, но и представлять их в красивом виде. 

Посчитал изменения цен за 5 минут (закрытие минус открытие) для RIM6 и графически представил, насколько цена бегает в среднем и может бегать в течение этих 5 минут. Это я уже делал и показывал, но на этот раз я добавил диаграмму плотности распределения и диаграмму размаха. Ниже под графиком есть другой график — пояснение к диаграмме размаха. 

Диаграмма размаха дает представление о том, какой будет размер тела свечи с вероятностью 50% — 60 пунктов и какой размер с вероятностью более 95% — не более примерно 250 пунктов. Видно также, что цена может теоретически улететь на 800 пунктов за 5 минут. 

Данные взял за последние 10 дней. Если взять за последние 30, можно увидеть выброс на 1600 пунктов.

Также это можно использовать для расстановки заявок в стакане, если вы используете математическую модель для предсказания цены.

Графики

* нажмите на картинку, чтобы увеличить и более четко увидеть текст и цифры
* синие горизонтальные линии на втором графике — это ± 1 сигма и 2 сигмы.

Создание красивых графиков на R для RIM6

Пояснение


Создание красивых графиков на R для RIM6
Эта картинка из википедии из статьи Квантиль.

Текстовая часть выдачи кода

> source("D://Dropbox//R//earnings-RTS.r")
[1] "sdT =  110.317631956078"
[1] "meanT - 2 * sdT =  -218.883720702279"
[1] "meanT - 1 * sdT =  -108.566088746201"
[1] "meanT + 1 * sdT =  112.069175165954"
[1] "meanT + 2 * sdT =  222.386807122032"


Код на R

#install.packages("tseries")
#install.packages("rusquant", repos="http://R-Forge.R-project.org")
# Установка пакетов. Она не требуется, если уже все установлено.

library(tseries)
library(rusquant)
# Подключение библиотек

if (length (RIM6) == 0) {
  getSymbols("RIM6", src = "Finam", from = Sys.Date() - 10, period = "5min")
}
# Получение данных, если их нет

abs.returns <- Cl(RIM6) - Op(RIM6)
# Абсолютные доходности

dev.off()
# Очистка графика через выключение графического устройства R

par(mfrow=c(3,1))
# Создаем график с 3 строками и 1 столбцом

hist(abs.returns, breaks=100, col = "blue", border = "gray",
     xlab = "Absolute Returns", ylab = "Frequency",
     main = "Histogram of absolute returns for RIM6 (5 min)")
# Гистограмма размеров свечей

axis(1, at = seq(-800, 800, by = 100), las = 1)
# Корректируем значения x-координат

d <- density(abs.returns)
# Функция плотности распределения

plot(d, main = "Density of absolute returns")
# Диаграмма плотности распределения

polygon(d, col="red", border="blue", lwd = 2)
# Закрашиваем диаграмму

axis(1, at = seq(-800, 800, by = 100), las = 1)
# Корректируем значения x-координат

meanT <- as.numeric(mean(abs.returns, na.rm=TRUE))
sdT <- as.numeric(sd(abs.returns, na.rm=TRUE))
abline(v = meanT + 1 * sdT, col = "blue", lwd = 2)
abline(v = meanT + 2 * sdT, col = "blue", lwd = 2)
abline(v = meanT - 1 * sdT, col = "blue", lwd = 2)
abline(v = meanT - 2 * sdT, col = "blue", lwd = 2)

print (paste("sdT = ",sdT))
print (paste("meanT - 2 * sdT = ",meanT - 2 * sdT))
print (paste("meanT - 1 * sdT = ",meanT - 1 * sdT))
print (paste("meanT + 1 * sdT = ",meanT + 1 * sdT))
print (paste("meanT + 2 * sdT = ",meanT + 2 * sdT))

v.abs.returns <- as.vector(abs.returns)
# Получение вектора

boxplot(v.abs.returns , xlab="Absolute returns" , 
        col="green", horizontal = TRUE, outline = TRUE, staplewex = 1)
# Диаграмма размаха, содержит медиану, верхний и нижний квантили, наблюдаемые максимум и минимум и выбросы

axis(1, at = seq(-800, 800, by = 100), las = 1)
# Корректируем значения x-координат

text(x = fivenum(v.abs.returns), labels = fivenum(v.abs.returns), y = 1.3)
# Добавление текста

Список источников

Polygon Drawing

Set or Query Graphical Parameters

How to specify the actual x axis values to plot as x axis ticks in R

Квантиль

Box Plots

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
323 | ★14
2 комментария
Статья про Р? Плюсую не глядя
avatar
РТС это развод, развод это, разведут вас и всех… все индексы это развод, как хотят так и торгуются, сегодня он копирует сбер завтра газ, через 3 дня нефть, через 4 бакс… неугадайка.
РТС большой… нет не так… огромный любитель рисовать ДИВЕРЫ в огромных количествах

на всех таймфреймах
avatar

Читайте на SMART-LAB:
Фото
Ростелеком. МСФО за Q1 2026г. Гордятся результатами, но акции на исторических лоях
Компания Ростелеком опубликовала финансовые результаты за 1 квартал 2026г.: 👉Выручка — 208,9 млрд руб. (+9,9% г/г) 👉Операционные расходы...
Фото
‼️ Сохраняйте даты!
Годовое общее собрание акционеров ДОМ.PФ пройдёт 30 июня 2026 года. Именно на нём будет принято окончательное решение по дивидендам. Что...
Фото
Энергопереход под вопросом. Ускорит ли развитие зеленой энергетики конфликт с Ираном?
Война в Иране поставила мир на грань энергетического кризиса. По данным The Economist, только за первые 50 дней конфликта мир лишился 550 млн...
Фото
Нефтяной срез: выпуск №9. Ормуз перекрыт, но акции нефтегаза падают. Надо ли покупать или сидеть на заборе в LQDT? Ищем лучших в секторе, где растет прибыль!
Продолжаю выпускать рубрику — Нефтяной срез.  Цель: отслеживать важные бенчмарки в нефтяной отрасли, чтобы понимать куда дует ветер.  Прошлый пост:...

теги блога SciFi

....все тэги



UPDONW
Новый дизайн