Избранное трейдера SMA
Первую часть интервью смотрите здесь.
Что нужно учесть при запуске стратегии в производство?
Новичкам нужно обратить внимание на соответствие «реальному миру» — на нюансы типа дней экспирации и праздников. Когда вы калибруете систему на исторических данных, можно допускать аппроксимацию без таких дней. Но когда вы переходите к реальной торговле, то не можете быть небрежным, все должно быть максимально точно.
Другой аспект заключается в том, что скорость критична. Я не могу рассчитывать модель в реальном времени (градиентный поиск очень медленный), поэтому нужно все сократить до линейных аппроксимаций изменений. Все это влечет за собой много матричных манипуляций.
Обычно создается исполнительный прототип, который делает все правильно, но не очень эффективно. Затем я поручаю моим сотрудникам-инженерам сделать производительную версию стратегии на языке Python или даже С, используя библиотеки для реального рынка, которые они создавали и совершенствовали годами. И эта версия подключается к моей торговой системе, для запуска данной стратегии «в бой».
Есть правда ограничение — максимальная сумма освобождаемых от налога доходов рассчитывается по формуле: количество лет * 3 млн. рублей. То есть после 3-х лет владения акциями вы сможете освободить от НДФЛ 9 млн. руб. дохода от их продажи, что вполне достаточно для подавляющего числа частных инвесторов. Важно, что размер освобождаемых от налога доходов увеличивается каждый год на 3 млн. рублей, то есть за инвестиционный период в 30 лет вы сможете не платить НДФЛ с 90 млн. рублей дохода от продажи акций.
Для получения освобождения никаких документов по общему правилу подавать не нужно, брокер сам все рассчитает и удерживать налог с вас не будет. Однако для того, чтобы не продать акции раньше 3-х летнего срока и не попасть на налог, даты и сроки покупки акций нужно учитывать
Копался в статьях по алготрейдингу, решил присмотреться в сторону машинного обучения. Но это в моем случае не про какой-то искусственный интеллект с нейросетями, в нейросети пока не хочу лезть, слишком сложно. Для начала хочу использовать простые алгоритмы для классификации и оценки хороших точек входа на основе обучения модели на истории.
Я исходил из того, как сам разрабатываю обычно торговую систему: ищу хорошие точки входа на истории и классифицирую их. Но так как человеческие возможности ограничены, использую только 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.
Соловьев Василий, Председатель Правления УК «Арсагера» на Конференции НАУФОР «Управление активами 2016», круглый стол «Портфельные инвесторы», 8 апреля 2016.
Рекомендую к просмотру.
Разумная реплика на рассуждение управляющих от Василия Соловьева – про активные, пассивные инвестиции, роботорговлю и откуда берется прибыль от акций?
Стоит посмотреть видео всего круглого стола…
Весь цвет коллективных инвестиций – Альфа, Уралсиб, Сбербанк, Промсвязь и другие.
Некоторые моменты (про роботов, алгофонды, спор между пассивными и активными управляющими) мне, честно сказать, странно было слышать от профессиональных портфельных управляющих. Плохо, когда форма важнее сути.
Жаль, что кроме Василия Соловьева никто не сказал о Проблеме №1 фондового рынка и коллективных инвестиций! Почему не развивается, ни то, ни другое? Почему акции отстают от банковского депозита?
Записал новое видео, которое посвятил торговле уровней. Немного полезной информации для тех, кто хочет узнать что-то полезное об уровнях, для тех кто никак не разберется с тем, как правильно строить уровни и где, вообще почему уровни так важны...
Данное видео постарался сделать таким, чтобы оно могло быть полезным, как начинающим трейдерам, так и уже опытным трейдерам.
P.S. поддерживаю и ценю конструктивную критику, адекватные замечания и вообще качественное общение! :)