Comments 20
Спекуляции на фондовом рынке, построенные на стратегиях - древняя и популярная история.
Нельзя прогнозировать с высокой точностью стоимость конкретных ценных бумаг, основываясь только на исторических данных.
Можно предполагать, что в целом рынок будет расти, потому что исторически он растет, при этом рынком управляют крупные игроки и СМИ, которые играют на психологии большинства.
Инсайдерская торговля - вот что приносит гарантированную прибыль, но это незаконно.
Если бы существовала стратегия, которая реально работает для всех акций или для всего рынка на постоянной основе, и нуждалась бы в небольших корректировках, то она бы давно попала в открытый доступ и перестала работать, потому что рынок - это люди, их эмоции и «хитрость».
Сами по себе акции ничего не стоят, пока живые люди не «оценят» их.
А у живых людей много разных мыслей, влияющих на их решения.
В статье примеры кода и мысли автора, и это замечательно, что автору интересно разбираться в чем-то и думать головой, а не пить пиво перед ящиком и смотреть футбол.
Вот только весь этот код может написать нейросеть, я сам сегодня генерировал код на питоне в курсоре, хотя я iOS-разработчик, и итоговый код работает исправно.
Так что непонятно до конца, какая цель статьи: поделиться своими мыслями или внести свой вклад в индустрию обмана?
С основными вашими тезисами я согласен.
Статья и правда не про "быстрый заработок" и не пытается обмануть. Скорее, это как исследовательский проект, попытка разобраться в теме и навести порядок в своих мыслях.
И да, сейчас код может написать даже робот! Но важнее не сам код, а то, что за ним стоит: умение задать правильный вопрос, выбрать инструменты для ответа на него, а потом разобраться, что же эти инструменты показали. Даже если код сгенерировала нейросеть, нужно понимать, что он делает и как это можно применить.
Понятно, что в статье нет ничего революционного. Но я думаю, что она может быть полезна тем, кто хочет вдохновиться на свои собственные эксперименты и исследования.
Спасибо, что поделились своим мнением!
Для тестирования стратегий есть же Backtesting.py https://github.com/kernc/backtesting.py
То что вы делаете, похоже на Моментум стратегию
Есть ощущение, что у Вас тут переоптимизация. Мне кажется, вместо коэффициента вариации (CV) лучше использовать коэффициент Шарпа.
Спасибо за замечание.
В отношении использования коэффициента вариации (CV): моей целью было найти стратегии, которые показывают стабильный и ровный рост прибыли на протяжении всего времени, а не только на коротких промежутках. Я знаю, что коэффициент Шарпа — более популярный и проверенный способ оценки, но в данном случае мне важно было отобрать именно те стратегии, которые демонстрируют стабильность.
По-моему Вы изобретаете велосипед, причём очень древний с квадратными колесами
Согласен, возможно, мое решение не самое оптимальное. Но это мой собственный "велосипед", и процесс его разработки позволил мне получить новые знания и увидеть детали, которые упустил бы, используя готовые инструменты. Считаю, что главная ценность исследования - в процессе обучения, даже если результат не идеален.
Curve-fitting as is
Так а стратегия в чём заключается? Не понял.
Стратегия основана на Моментум-эффекте, и использует идею о том, что акции, показавшие сильный рост за определенный период времени, вероятно, продолжат расти и в краткосрочной перспективе. Стратегия работает следующим образом:
На выбранном временном интервале (например, 5 дней) отслеживается изменение цены акций.
Для оценки силы моментума используются коэффициенты, которые связаны с ростом цены (процентное изменение, скорость роста, объем торгов и т.д.). Если рассчитанное значение превышает заранее установленный порог, акция считается перспективной для покупки.
После покупки акции устанавливается уровень Stop-Loss для ограничения потенциальных убытков. Это уровень определяется с использованием коэффициентов, привязанных к текущей цене акции.
Предварительно проводится оптимизация коэффициентов, используемых для оценки силы роста и уровня Stop-Loss, на исторических данных. Цель оптимизации – найти значения коэффициентов, которые показывают минимальное значение коэффициента вариации (cv) при максимальной прибыли.
Ты же понимаешь, что рынок не следует этим "закономерностям"? Не попытка уколоть, но здесь больше заумных слов, чем выверенная стратегия.
Обосрётесь.
Что такое обосраться? Потратить кучу времени на код и оптимизации и слить бабло.
Почему обосрётесь? Потому что вы берёте форвардное бек-тестирование в лоб, без учёта будущих, несбывшихся событий.
Что это значит? Вы подогнали параменты на трейне (1 или 3 года), на валиде всё летает (один году например), пускаете страту в прод. А тут херак, и кризис. Или дикая пила на полгода. А в вашем трейне не было ни дикого кризиса, ни плоской пилы. У вас трейн был на вялорастущем рынке с присадками. И все, при высоком уровне энтропии пивот-пионты (разворотные моменты, после которых подогнанные гиперы перестают работать) наступают резко. Ну и в итоге ловите кучу лосей, с посадкой больше расчётной.
+ Вы на моментуме сидите, у него резкий возврат к среднему. При посадке рынка на N, моментум стратя легко делают 2N.
Что могу посоветовать, вам нужны глубокие форвард тесты. А именно, данные по всем РФ акциям года хотя бы с 2005, включая дивы, сплиты и корп. события. Имея такую базу вы можете построить погодовой форвард бек-тест по каждой акции. И если подавляющее большинство бумаг дадут стабильный плюс из года в год, то бинго. Но скажу сразу, не дадут.
Вы увидите на больших данных, что система работает случайно и в периоды пивот-поинта начинает дико лосить.
Проще говоря, вы увидите что на большом промежутке времени, у каждой бумаги будут свои гиперы, а это значит, что они двигаются случайно.
И та-дам, вы доказываете, что ценные бумаги это нестационарный ряд, он не проходит тест Дикки-Фуллера, а значит фондовый рынок это случайное блуждание. Чем таймфрейм меньше (день и мене), тем коэффициент случайного блуждания более жадно стремится к 1. Чем таймфрейм больше, год и более, тем более блуждание убывает.
И в итоге вы просто купите пассивный порт)
Благодарю за подробный и критичный отзыв. Я осведомлен о рисках переоптимизации и влиянии непредсказуемых событий, таких как кризисы и периоды высокой волатильности.
Для ограничения убытков предусмотрены стоп-лоссы и возможность торговли как в лонг, так и в шорт. Предполагается, что при волатильности, характеризующейся "пилой", алгоритм не должен генерировать торговые сигналы.
Я понимаю, что рынок может демонстрировать свойства случайного блуждания. Моя цель заключается не только в создании прибыльной стратегии, но и в проведении исследования.
Возможно, в конечном итоге я приду к выводу о большей эффективности пассивного инвестирования. Тем не менее, процесс исследования и анализа данных представляет для меня интерес. Благодарю за советы, я обязательно приму их во внимание.
Всего 5-15 сделок в год? Дак на этом заработать не получится. Где все это время будут находиться деньги? В рублях, которые дешевеют? Как будто проще тогда уж просто формировать диверсифицированный портфель. Сам алгоритмической торговлей занимаюсь, но на интрадее. Кстати, можно быстрее и бесплатно тестировать гипотезы в программе TSlab. Почему именно пайтон?
Насчет 5-15 сделок в год – это действительно только для одной акции. Покупка и продажа одной позиции может занимать несколько недель, а не один день. При этом, в торговле одновременно несколько акций, и идея в том, что пока одни акции в позиции, другие "ждут своего часа", и наоборот. Таким образом, капитал всегда в работе, просто перетекает между разными активами.
По поводу Python – да, вы правы, возможно, есть более специализированные инструменты. Я выбрал его, потому что уже был знаком с ним, и мне показалось, что с его помощью будет проще реализовать задуманное. Обязательно попробую TSlab, спасибо за наводку!
Какой-то серенький и слишком примитивный способ вы выбрали спустить все бабки. Если лудоманить то красиво. Скальпинг на фьючас с "открытым интересом". Вот это жара будет. И нейронкам там есть место.
Позиционный трейдинг + ML: от нуля до торговой стратегии за год