В данной статье мы рассмотрим, как и по каким критериям отбирать инструменты для торговли на бирже. В качестве примера я буду рассматривать рынки фьючерсов бирж 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.
Посчитал на R спред между акциями Google и Apple с учётом соотношения (hedge ratio). И нанёс среднюю линию с двумя среднеквадратичными отклонениями сверху и снизу. Красота.
Делается на 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 — временной диапазон