Блог им. 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

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

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

Читайте на SMART-LAB:
Фото
Инвестиции без лишних эмоций: может ли алгоритм защитить инвестора от него самого?
На рынке давно нет дефицита информации. Скорее наоборот: инвестору ежедневно предлагают десятки идей, прогнозов, обзоров и «почти...
Фото
Сбер МСФО 6 мес. 2026 г. - насколько ухудшились ожидания по прибыли?
Сбер опубликовал финансовые результаты за первое полугодие 2026 года.  Чистая прибыль выросла на 18,6%, до 1,02 трлн руб. Во втором квартале...
Фото
Дата публикации отчета за 1-е полугодие
Уважаемые инвесторы! ⚡️ Операционные и финансовые результаты ПАО «СТГ» за 6 месяцев 2026 года опубликуем 21 августа. 🔔 Добавили дату в...
Фото
ЛУКОЙЛ: отчет по РСБУ за 2-й квартал - все идет по Плану
ЛУКОЙЛ опубликовал отчет по РСБУ за 2-й квартал 2026 года Важно понимать, что отчетность по РСБУ не показывает реальные денежные...

теги блога SciFi

....все тэги



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