Избранное трейдера Алексей 888
Копался в статьях по алготрейдингу, решил присмотреться в сторону машинного обучения. Но это в моем случае не про какой-то искусственный интеллект с нейросетями, в нейросети пока не хочу лезть, слишком сложно. Для начала хочу использовать простые алгоритмы для классификации и оценки хороших точек входа на основе обучения модели на истории.
Я исходил из того, как сам разрабатываю обычно торговую систему: ищу хорошие точки входа на истории и классифицирую их. Но так как человеческие возможности ограничены, использую только 3 таймфрейма и около 10 индикаторов в сумме. Кроме этого, история в точности никогда не повторяется и нужна какая-то более умная модель, которая не просто сравнивает индикаторы, как делают сейчас мои роботы, а дает оценку данной рыночной ситуации на основе всей совокупности индикаторов.
С помощью машинного обучения можно создать и обучить много моделей по разным алгоритмам, эта область уже хорошо развита (Logistic regression, Linear discriminate analysis, Stochastic gradient boosting, Decision trees, Support Vector Machine, KNN и другие). Можно быстро попробовать разные модели (Spot-checking algorithms). Модели могут работать вместе и делать предсказания. Можно улучшать точность моделей (Algorithm parameter tuning, Ensemble methods). Можно посчитать точность предсказаний по модели, обучив сначала модель на части выборки, а затем протестировав ее на другой части выборки (resampling).
Как я понял, R для машинного обучения идеально подходит. Сделал первые шаги сегодня: cоздал модель по туториалу, которая определяет по размеру чашелистиков и лепестков растения ирис точный вид (всего 4 вида) какого-то одного растения(особи) на основе обучения по выборке из 500 других растений(особей).
Код:
# Скачивание и инициализация библиотек mlbench(используется для machine learning), caret (используется для нормализации данных) install.packages("mlbench") library(mlbench) install.packages("caret") library(caret) # Краткая информация про базу данных iris data(iris) summary(iris) # Определение тренировочной выборки trainControl <- trainControl(method="cv", number=10) # Оценка точности алгоритма Naive Bayes на данном dataset fit <- train(Species~., data=iris, trControl=trainControl, method="nb") # Вывод оценки точности print(fit)
Сейчас я точно так же хочу сделать модель, которая на основе 30-300 хороших точек входа на истории определяет, насколько хороша данная пятиминутка для входа в лонг или шорт.
Что скажете? Есть ли там грааль? Есть ли у кого-то опыт использования машинного обучения для торговли? Что посоветуете?
Также представляю вашему вниманию грубую оценку того, на сколько в среднем ходят нефть Brent и Si за час и 1 день. Посчитал с использованием библиотеки rusquant на R. Также делюсь элементарным кодом.# Инициализация библиотеки rusquant (русская версия от quantmod, поддерживает все функции quantmod) library(rusquant) # Получение исторических данных с Финама getSymbols("SiM6", from=Sys.Date()-30, src="Finam", period="day") # Рисуем график, чтобы увидеть данные candleChart(SIM6) # Расчет доходностей встроенной функцией библиотеки rusquant (унаследована от quantmod) rr <- OpCl(SIM6) # Цены закрытия p <- Cl(SIM6) # Получение абсолютного значения среднеквадратичного отклонения доходности sd(rr)*mean(p) [1] 757.7013 # Аналогично для часовика getSymbols("SiM6", from=Sys.Date()-30, src="Finam", period="hour") candleChart(SIM6) rr <- OpCl(SIM6) p <- Cl(SIM6) sd(rr)*mean(p) [1] 234.9929 #Аналогично для BRK6.
Статья с аггрегатора Quandl Resource Hub.
Quandl взял интервью у старшего менеджера по алгоритмическим стратегиям одного из больших хеджевых фондов. Мы говорили о создании торговых стратегий — от абстрактного представления рынка до конкретного воплощения в стратегию с оригинальной предсказательной способностью.
Можете вы рассказать, как создаются новые торговые стратегии?
Все начинается с гипотезы.Я предполагаю, что может существовать взаимоотношение между двумя инструментами, или появился новый инструмент на рынке, набирающий популярность, или возник необычный макроэкономический фактор, который влияет на микроструктурное поведение цены. Затем я записываю уравнение — или создаю модель, если вам угодно — с целью описания этого взаимоотношения. Обычно это некое уравнение процесса, показывающее изменение переменных во времени, со случайным (статистическим) компонентом.
В основе этой стратегии лежат дуги Коуэна, волны Элиота, углы и циклы Ганна. Каждый из этих авторов смог постичь только часть рыночных закономерностей. Мне удалось совместить их наработки в единую систему рыночного анализа.
В основе стратегии лежит графическая фигура, построенная по дугам Коуэна. Это один из тайных масонских символов (Коуэн является членом масонского ордена). Также этот символ отражает суть многих рыночных процессов.
https://gyazo.com/877a284641a1c2615f4bb0e458e8fbb0
Фигура универсальная и дает сигналы как на шорт, так и в лонг. Изначально, эта фигура для лонга (если нет пробоя вниз).
В нашем случае произошел пробой вниз, что явилось сигналом для входа в шорт на ретесте фигуры. Стоп ставим на тик выше предыдущего фрактала (в нашем случае 7 тиков). Выход из шорта – как только длина импульса будет равна ширине фигуры (здесь использован синтез волн Элиота и углов Ганна). Профит составил 95 пунктов! Соотношение риск–ревард 1к13, что тоже не случайно, т к 13 – это число из ряда Фибоначи.
Начинаю разработку бесплатного майнера паттернов — второй версии. Пока собираюсь с мыслями и готовлю возможную архитектуру. К лету начну работы.
За последние пару лет его скачали больше 10 к. человек. Уважаемые пользователи, пишите, что бы Вы хотели ещё в нём увидеть. В пост, мне на почту, на домашний форум программы. Буду расширять список изменений.
Для всех остальных, небольшой обзор программы. С чего всё начиналось и что есть сегодня.
Stock Pattern Viewer — Уникальная программа для автоматического анализа котировок на предмет формализуемых паттернов и сбора статистики по ним. Data Mining с человеческим лицом.
Программа полезна в качестве станции поиска формаций для системного трейдинга.
Пока весь смартлаб орет о ставках/нефти/рубле/улюкаеве/горепрогнозистах/подливных гуру и тд — я подготовил, как мне кажется, норм постецкий. Вашему вниманию тщательно сцеженная, рассортированная по тематикам мякотка для работы, учебы и отдыха в нашей общей интернет-помойке:
Сайты и приложухи для трейдинга:
finviz.com — это божественно! Бэнчмарк всех фин сайтов по интерфейсу и удобству навигации, множество плюшек отбора акции для домашки, и визуальной подачи инфы. Бесит, что календарь только для амеров и на текущую неделю.
forexpf.ru — 1 год назад этот сайт лежал когда на него ринулась каждая домохозяйка отслеживать курс рубля. Нормальный ресурсоёмкий сайт, чтобы попырому прочекать нефтянку, голду или бакс.
freestockcharts.com — если вдруг упал tradingview.com.