Избранное трейдера Andrey
Ровно год исполняется с момента как мы начали это путешествие, сев в автомобиль и взяв курс на юг.Этому предшествовала подготовка: машина, не новая «Субару», с особым пристрастием осмотрена на сервисе, заменено кой-чего; составлен подробный маршрут с запасными вариантами; навигация с платными картами «Навител» — Россия, Грузия, Турция; карты «Виза» и «Мастер» разных банков. В самой южной точке маршрута, турецком прибрежном городке Авсалар забронирована квартира в кондо на два месяца.
Ну и конечно о нелегком (но местами приятном) бизнесе нашем… Я оставил работать своего нового робота (тут ничего не рекламирую), который за три месяца работы-отладки показал неплохие результаты. Без реинвестирования, чтобы не рушил мозг на отдыхе возможными просадками. Дал ему денег на ГО 25 Си, чтоб оправдать сервак, где он «вкалывает», ну и заработать/потерять без эмоций. Статистику покажу понедельно, в пунктах на контракт, как и вел.
Поехали втроем: я, жена, сын десяти лет. Первый город остановки и ночевки – Волгоград, выбрали этот маршрут в честь юбилея Победы, чтобы посетить Мамаев курган. По дороге один раз пытались развести гаишники, мол обгон через сплошную, у нас есть запись, сотрем за три тыщи.
Небольшая статья с ресурса http://www.talaikis.com/ о построении простой стратегии, использующую наивный байесовский классификатор при создании процесса возврата к среднему. Весь код в статье приведен на языке Python.
Это достаточно большая область исследований, но расскажем все очень кратко. Мы попытаемся найти взаимоотношение между временными сериями (в данном случае возьмем в качестве сигнала взаимный фонд XLF из финансового сектора, сдвинутый по времени на 1 день назад), а нашей целью будет фьючерс S&P500 в форме CFD. Будем входить в длинную позицию по этой бумаге при нулевой вероятности приращения. Логически нулевая вероятность ни о чем не говорит, другими словами, будем покупать возврат к среднему.
1. Получение данных
Y = read_mongo(dbase, "S&P5001440") X = read_mongo(dbase, syms[s]).shift() #готовим набор данных res = pd.concat([X.CLOSE, Y.CLOSE], axis=1, join_axes=[X.index]).pct_change().dropna() res.columns = ['X', 'Y']
Наткнулся тут на свой трейдерский дневник старый. Какой стиль, какой слог :) Осторожно, ненормативная лексика на картинках.
Посчитал на 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 — временной диапазон
Начинаю разработку бесплатного майнера паттернов — второй версии. Пока собираюсь с мыслями и готовлю возможную архитектуру. К лету начну работы.
За последние пару лет его скачали больше 10 к. человек. Уважаемые пользователи, пишите, что бы Вы хотели ещё в нём увидеть. В пост, мне на почту, на домашний форум программы. Буду расширять список изменений.
Для всех остальных, небольшой обзор программы. С чего всё начиналось и что есть сегодня.
Stock Pattern Viewer — Уникальная программа для автоматического анализа котировок на предмет формализуемых паттернов и сбора статистики по ним. Data Mining с человеческим лицом.
Программа полезна в качестве станции поиска формаций для системного трейдинга.