Блог им. SciFi |Применение ARIMA для предсказания цены на RIM6 на R

    • 08 июня 2016, 12:48
    • |
    • SciFi
  • Еще
Решил копнуть чуть глубже в ARIMA и другие подобные модели. Попробовал предсказывать цену, а точнее, диапазон цен на ближайшую минуту и 5 минут и на этом сделать какие-то деньги. И что интересно, получилось. Хотя, возможно, это случайность отчасти, не тестировал на большом горизонте времени.

В комментариях к коду все есть.

ARIMA (англ. autoregressive integrated moving average, иногда модель Бокса — Дженкинса, методология Бокса — Дженкинса) — интегрированная модель авторегрессии — скользящего среднего — модель и методология анализа временных рядов. 

Основная идея этой модели в том, что цена в будущем зависит от цен в прошлом (авторегрессионная часть AR) и возврата к среднему (MA часть). А интегрированность означает то, что предварительно определяется порядок интегрированности для временного ряда. К примеру, порядок 1 означает, что разности 1 порядка являются стационарными. Для самой цены порядок интегрированности должен получаться равным 1, а для доходностей — 0. 

( Читать дальше )

Блог им. SciFi |Анализ торгового журнала и стратегий с помощью R

    • 05 июня 2016, 17:34
    • |
    • SciFi
  • Еще
Сегодня я решил провести анализ своего торгового журнала средствами и возможностями языка R.

Я понимаю, что есть специальные сервисы, которые позволяют анализировать торговый журнал. Но во-первых, они платные. Во-вторых, я веду свой журнал сам в Excel и мне удобнее было написать собственную программу. Тем более, что средствами R можно делать то, чего не будет в этих платных сервисах.

Взял все сделки на ФОРТС с 1 января по 1 июня 2016 года (за полгода). Их у меня было 565 штук. Торгую я роботом и руками по разным стратегиям, но записываю в журнал, почему открыл и закрыл каждую сделку. Стратегий было много разных, но я решил выделить все сделки в две группы — где я торговал роботом и где руками. 

Предварительно подготовил данные в Excel — выбрал только те столбцы, которые я планировал анализировать: дата сделки, маржа, номер стратегии (0 и 1 для ручной и робот. торговли). Создал файл CSV. И приступил к анализу в среде R. 

Далее я построил гистограммы маржи за каждую сделку для трех случаев — для всех сделок, для сделок роботом и сделок руками. Наложил синие линии — аппроксимацию. А также вывел описательную статистику для этих трех случаев. 

( Читать дальше )

Блог им. SciFi |Применение модели ARIMA-GARCH для прогнозирования курса рубля на R

    • 12 мая 2016, 11:12
    • |
    • SciFi
  • Еще
Продолжаю копать в сторону машинного обучения и применения R для количественного анализа в трейдинге.

Мои статьи про R, машинное обучение, количественный анализ

В этом посте я расскажу о применении модели ARIMA-GARCH для прогнозирования курса рубля на R. 
Нашел полезную серию статей на тему анализа временных рядов на R. Использовал эту статью.

Немного общей информации из википедии:

ARIMA (англ. autoregressive integrated moving average, иногда модель Бокса — Дженкинса, методология Бокса — Дженкинса) — интегрированная модель авторегрессии — скользящего среднего — модель и методология анализа временных рядов. Является расширением моделей ARMA для нестационарных временных рядов, которые можно сделать стационарными взятием разностей некоторого порядка от исходного временного ряда (так называемые интегрированные или разностно-стационарные временные ряды). Модель ARIMA(p,d,q) означает, что разности временного ряда порядка d подчиняются модели ARMA(p, q).

( Читать дальше )

Блог им. SciFi |Расчет ожидаемого количества убыточных сделок подряд на R

    • 04 мая 2016, 21:35
    • |
    • SciFi
  • Еще
Применим R для того, чтобы быстро посчитать, каково должно быть ожидаемое количество убыточных сделок подряд при совершении 1000 сделок.

Я написал функцию runUnluck(n) которая выдает, сколько раз мы получим n убыточных сделок подряд, если совершим 10000 экспериментов по 1000 сделок в виде подбрасывания монетки, то есть с отношением риска к доходности 1 к 1.

# Created by SciFi, 2016

runUnluck <- function(n) {
        runArray <- numeric(10000)
        for(i in 1:10000) {
                runArray[i] <- sum(rle(sample(c(-1, 1), 1000, TRUE))$lengths == n)
        }
        hist(runArray, main="Гистограмма")
        mean(runArray)
}

Здесь подробнее про функцию rle. Она как раз считает количество одинаковых исходов подряд. 

Результаты:
> source("D:\\Dropbox\\R\\RunUnluck.r")
> runUnluck(6)
[1] 7.8161
> runUnluck(2)
[1] 125.2208
> runUnluck(3)
[1] 62.4047
> runUnluck(4)
[1] 31.179
> runUnluck(5)
[1] 15.6559
> runUnluck(6)
[1] 7.7635
> runUnluck(7)
[1] 3.8831
> runUnluck(8)
[1] 1.9382
> runUnluck(9)
[1] 0.9738
> runUnluck(10)
[1] 0.4922


( Читать дальше )

....все тэги
UPDONW
Новый дизайн