Постов с тегом "количественный анализ": 28

количественный анализ


Выбираем фьючерсы для торговли на CME

В данной статье мы рассмотрим, как и по каким критериям отбирать инструменты для торговли на бирже. В качестве примера я буду рассматривать рынки фьючерсов бирж CME Group.  

Я скачал дневные исторические данные для следующих инструментов:

— S&P 500 E-mini (ES) – мини контракт на индекс S&P 500
— Мазут (Fuel Oil)
— EUR/USD
— GBP/USD
— Золото (Gold)
— Brent – сырая нефть Brent Last Day Financial Futures Contract 
— Light – сырая нефть марки Light 
— Natural Gas — природный газ
— Бензин (Petrol)
— Платина (Platinum)
— Серебро (Silver)
— USD/JPY
— Пшеница (Wheat)

Каждый из этих инструментов имеет спецификацию. Её можно посмотреть на официальном сайте биржи CME. Например, для S&P 500 E-mini (ES) спецификация выглядит следующим образом: https://www.cmegroup.com/trading/equity-index/us-index/e-mini-sandp500_quotes_globex.html

About E-mini S&P 500

An electronically traded futures contract one fifth the size of standard S&P futures, E-mini S&P 500 futures and options are based on the underlying Standard & Poor’s 500 stock index. Made up of 500 individual stocks representing the market capitalizations of large companies, the S&P 500 Index is a leading indicator of large-cap U.S. equities.



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

Коинтегрированные пары: аналитика за 2017 год на Мосбирже

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

Стационарность

У нас вышел спор насчёт того, стационарные ли приращения у акций или нет. ch5oh говорил, что очевидно, что на рынке у всех акций приращения стационарны. SergeyJu — что очевидно, что на рынке нет ни одной акции со стационарными приращениями, и что RW-модель, используемая для описания цены акции, неадекватна. Первый вопрос, который здесь возникает: а как по графику понять, стационарный ряд или нет?



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

Акции со стационарными приращениями: аналитика за 2017 год на Мосбирже

В данном блог-посте представлены результаты исследования за 2017 год акций со стационарными приращениями, которые торгуются на Московской бирже. Методика тестирования основана на тесте Дики-Фуллера и целиком и полностью описана в этом посте на хабре.

В 2017 году на Московской бирже из 295 акций оказалось 15 акций со стационарными приращениями. Тикеры этих акций перечислены ниже.
  1. RLMN
  2. RLMNP
  3. BLNG
  4. FTRE
  5. VTBR
  6. DASB
  7. LNTA
  8. MGNT
  9. MOBB
  10. NKNC
  11. OFCB
  12. GRAZ
  13. ROSN
  14. TUZA
  15. SLEN
Из более-менее ликвидных (с оборотом не менее 100 млн рублей в день) можно выделить 3 акции: Магнит, Роснефть и ВТБ. Графики всех 15 акций приведены ниже.


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

Применение ARIMA для предсказания цены на RIM6 на R

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

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

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

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

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

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

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

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

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

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

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

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

Применение модели 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).

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

Применение наивного байесовского классификатора на R для поиска закономерностей и прогнозирования

    • 09 мая 2016, 13:48
    • |
    • SciFi
  • Еще
В последнее время изучаю R и машинное обучение. 

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

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

Использовал эту статью: Применение машинного обучения в трейдинге

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

Теорема Байеса в теории вероятностей, как теорема Пифагора в геометрии.

Байесовская вероятность — это интерпретация понятия вероятности, используемая в байесовской теории. Вероятность определяется как степень уверенности в истинности суждения. Для определения степени уверенности в истинности суждения при получении новой информации в байесовской теории используется теорема Байеса. 

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

Построение модели для парной торговли акциями Google и Apple на R

    • 28 марта 2016, 18:51
    • |
    • SciFi
  • Еще

Посчитал на R спред между акциями Google и Apple с учётом соотношения (hedge ratio). И нанёс среднюю линию с двумя среднеквадратичными отклонениями сверху и снизу. Красота. 

Построение модели для парной торговли акциями Google и Apple на R

Делается на R это очень просто, код ниже. 

require(quantmod)
> startT <- «2015-01-01»
> endT <- «2016-01-01»
> rangeT <- paste(startT, "::", endT, sep="")
> symbols <- c(«AAPL», «GOOG»)
> getSymbols(symbols)
[1] «AAPL» «GOOG»
> tGOOG <- GOOG[,6][rangeT]
> pdtGOOG <- diff(tGOOG)[-1]
> tAAPL <- AAPL[,6][rangeT]
> pdtAAPL <- diff(tAAPL)[-1]
> model <- lm(pdtAAPL ~ pdtGOOG)
> hr <- as.numeric(model$coefficients[1])
> spreadT <- tAAPL — hr * tGOOG
> meanT <- as.numeric(mean(spreadT, na.rm=TRUE))
> sdT <- as.numeric(sd(spreadT, na.rm=TRUE))
> par(mfrow = c(2,1))
> hist(spreadT, col=«blue», breaks = 100, main = «Spread Histogram (AAPL vs GOOG)»)
> plot(spreadT, main=«AAPL vs GOOG spread (in-sample period)»)
> abline(h = meanT, col = «red», lwd = 2)
> abline(h = meanT + 1 * sdT, col = «blue», lwd = 2)
> abline(h = meanT — 1 * sdT, col = «blue», lwd = 2)

Здесь: 

meanT — среднее
sdT — среднекв. отклонение
spreadT — спред
par — график с двумя секциями
plot — график
hist — гистограмма
abline — линия поверх графика
model — линейная зависимость модель, МНК
quantmod — библиотека для получения исторических данных
rangeT — временной диапазон

Хотите попросить сделать количественный анализ чего-нибудь? Пишите в личку или в комментариях.

Гистограммы доходностей разных активов

    • 25 марта 2016, 19:15
    • |
    • SciFi
  • Еще
Ранее выложил гистограмму для нефти. Выкладываю остальные гистограммы по просьбам читавших тот пост. Таймфрейм 5 мин. ES не нашел на Финаме и не торгую их. Сделал для S&P и NASDAQ. Ну и для остального. Использую свойство логарифмов что log(1+x) ~ x при малых x, которое позволяет считать доходность простым вычитанием логарифмов цен. 

Гистограммы доходностей разных активов

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

Анализ Brent с использованием языка R

    • 11 марта 2016, 21:26
    • |
    • SciFi
  • Еще
В общем, всю пятницу изучал R. Кое-чему научился. Что я сделал для анализа Brent: 

1. Взял 15-минутку нефти за последние 10 дней, преобразовал в доходности, посчитал среднее значение, ср.-кв. отклонение (это все ниже в результатах), построил график:

Анализ Brent с использованием языка R

2. Проверил получившиеся доходности по двум тестам на независимость друг от друга (типа если в предыдущие 15 мин росла нефть, будет ли расти в след. 15 минут?)

Тест ADF (Augmented Dickey–Fuller test) проверяет независимость следующей величины от предыдущей или другими словами это тест на стационарность. Этот тест, вроде как, показывает, что процесс стационарный. 

Тест BDS также проверяет что-то похожее (я не шарю, честно говоря):

The BDS test (after the initials of W. A. Brock, W. Dechert and J. Scheinkman) detects nonlinear serial dependence in time series. The BDS test was not developed as a leading indicator, but it can help to avoid false detections of critical transitions due to model misspecification. After detrending (or first-differencing) to remove linear structure from the time series by fitting any linear model (e.g. ARMA(p,q), ARCH(q) or GARCH(p,q) models), the BDS tests the null hypothesis that the remaining residuals are independent and identically distributed (i.i.d.).

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

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