Рост алготрейдера (на каком вы этапе?)
Этот пост будет абсолютьно не понятен трейдерам, но возможно поможет алготрейдерам понять кривую знаний и чуть чуть ускориться в своем развитии.
Я коротко разбил бы всех алготрейдеров на четыре этапа развития.
1) Базовый. Алготрейдер сам описывает стратегии — на данном этапе для него значимыми кажуться те индикаторы которые он использует, скорость оптимизаций параметров и т.д. Из-за оптимизаций и очень простых алгоритмов трейдер часто видет в тестере супер результаты того как экити позволяет уме удвоиься за пару месяцев.
Этот этап заканчивается как только алготредер понимает, что рынок постоянно меняется (и реальное эквити болтается около нуля) и особенности которые он нашел ранее, могут как работать так и нет. Но так как алгоритм туп — он не выключается когда особенности рынка отключаются. По инстурментам — очень многие заччем то начинают учить s# на данном этапе, так как сразу хотят запустить робота в дело. Мой совет — остановитесь — хорощий экзькюшион вам понадобиться на этапе 4 не ранее.
2) Продвинутый. Алготрейдер понимает, что под каждый этап рынка нужна своя стратегия, и теоретически надо предугадывать будущее состояние рынка. Тут все у всех по разному — кто то пытается паттернами определять состояние рынка, кто-то рисует свои индикаторы, кто то отслеживает доходность стратегий и на основании этой доходности их меняет. Варинтов тьма. Главное — что практически все приходят к пониманию, что рынок еще более сложная структура и описать его самостоятельно очень тяжело.
Часто тут тоже запускают оптимизатор и часто получают результаты еще хуже чем на первом этапе.
3) Пусть машина пишет. Алготрейдер понимает, что все особенности рынка он сам не опишет, и что это не нужно — машина сама может учиться всем особенностям рынка и сама может все предсказывать. На данном этапе сначала ударяются в нейросети, потом в data mining (есть ли это понятие на русском?), часть народа делает свою нейросеть через попытку постоить корреляционную модель между индикаторами и результатами (при этом зачастую полностью игнорируя тот факт, что это таже нейросеть вид сбоку). Часть народа начинает думать что паттерны и их распознавание. Главное на этом этапе следующее — в машинку подаются данные и результаты, машинка сама чему то учится и потом добро отдает прогнозы.
На самом деле не важно как на данном этапе вы програмируете машинку — главное мысль которая должна до вас дойти, что данные в прошлом на котором учиться ваша машина, не являются наилучшим матерьялом для ее обучения — они полны хаоса.
4) Борьба с хаосом данных. Алготрейдер понимает, что часть данных из прошлого только уменьшает эффективность обучения, и данные надо подготавливать как то, либо не обучать машину на определенных участках. Тут многие либо забивают — например начинают обучать машинку на небольших (последних) участках рынка, либо пытаются получить отфильтрованные данные — например если подавать на обучение фючерс РТС против корзинки из г. фишек, то хаоса меньше (вариантов воевать в хаосом тьма — можно даже индикаторы свои наделать).
В итоге, если у вас все хорошо — машинка учится, мешаюшие данные вырезаются, вы получаете прогноз который исполняется почти с 90% вероятностью ( RMSLE<0,45).
Как только вы на данном этапе — пора брать s# в руки и пилить уже исполнение.
Есть много историй как люди зарабатывали и на 1 и на 2 и на 3 этапе, но это не повод останавливаться в развитии.
графиком чаго? Как только вы на этапе 3 — вас уже мало интресует еквити — вас уже интересует вероятность исполнения прогноза — она становится ключевым элементом. По эквивти уже судить нельзя.
в моем понимании хорошая стратегия — это то что использовали все возможности рынка, которые могла предсказать. И к сожалению не всегда она может быть прибыльной.
Прогресс от интеллектуального датамайнинга к самообучению систем под большим вопросом. Вариант прогресса от подгонки индикаторов и нейросетей (кто во что горазд) к интеллектуальному поиску неэффективностей выглядит минимум не хуже. По сути дела нейросети и самообучение выбирают люди с дефицитом идей относительно маркета (математик или программер которые бросаются в борьбу с ценовым рядом без изучения маркета). Основная проблема в том что мы должны предполагать где искать чтобы натравить туда компьютер а если мы знаем то можно зачастую обойтись и примитивной оптимизацией.
«Этот этап заканчивается как только алготредер понимает, что рынок постоянно меняется (и реальное эквити болтается около нуля) и особенности которые он нашел ранее, могут как работать так и нет.»
Торгую один паттерн который существовал с 98ого года и все еще работает. Если рынок постоянно меняется значит мы используем неробастный инструментарий. Конечно есть фазы где эффективность плавает но нам надо понимать что мы торгуем чтобы управлять портфелем стратегий, иначе мы скатываемся в анализ еквити и активное управление портфелем неробастных стратегий.
«4) Борьба с хаосом данных. Алготрейдер понимает, что часть данных из прошлого только уменьшает эффективность обучения, и данные надо подготавливать как то, либо не обучать машину на определенных участках.»
Ну да, найденные подгонкой закономерности быстро разваливаются.
Как это Вы себе представляете?
Это ключевой вопрос.
2) я не утверждаю что путь описанный выше истина. Если нравится самому описывать рынок и искать ручками закономерности — то почему бы и нет. Просто мне кажется что это немного тупиковый путь.
3) а как еще бороться с данными которые уменьшают качество прогноза? Только подгоном к сожалению. AI еще не изобрели.
1.Разница между закономерностями и подгонкой в том что мы эксплуатируем особенность маркета. Вот перевели время у нас к примеру и пошел рассинхрон с западом и внутридневной паттерн волатильности стал другим. С какой скорость and if компутер это заметит? Не говоря о том чтобы посмотреть на торгуемые стратегии и сделать вывод где нужно подкорректировать паттерны. Или вот праздники в Штатах.
2. Почему ручками? Вопрос не в том что нравится или нет, вопрос в робастности закономерностей. Обычно если мы понимаем что мы торгуем мы поймем и когда это перестает работать быстрее чем анализ еквити.
3. Нам нужно качество прогноза справа а не слева. Ну и перфекционизм излишен особенно если он ухудшает робастность. Хотя в принципе я выкидываю из тестов например осень 2008 потому что хорошо знаю что было на рынке и могу формализованно определить критерии такого участка.
1) Незнаю как вы а я загоняю данные по разным тикетам в общую базу данных, где время общее, в не разное. Но в целом да, если правзников не было 10 раз — он тупить будет.
2) Робастность — вообще ключевая проблема. Я просто не зотел писать на таком языке — а то половина алготредеров вообще не поймет о чем речь. У меня в моих алгоритмах есть несколько фильтров которые секут отклоняющие данные как на этапе подготовки данных, так и внутри алгоритма. Означает ли это что у меня хорошая система — нет. Можно ли добиться ручками такого результата как у меня — нет.
3. А я не выкидываю — я ввожу мнимые переменные — такие как состояние рынка, и алгоритм сам с помощью мнимых переменных эти даннае обраюатывает.
Я кстати не согласен с утверждением что прогноз слева неважен — еще как важен — на этом прогнозе и его качестве строится все. Практически если вы слева добились 95-98%, у вас есть высокие шансы иметь справа 90%. А вот если у вас слева на известном дата сете 60%, шансов что справа будет 90 ну совсем мало.
1. Всем тикетам всех бирж? Так праздники и по датам гуляют. Вопрос в том что кроме тикеров (тикет это когда я трудился на деске назывался репорт о сделке выписанный корявым почерком традера или распечатка из рейтер дилинга) т е ohlcv много разной инфы которая не вписывается в ценовой ряд.
2. А посмотреть результирующую еквити без отклонения данных как критерий? Причем если мы знаем например что было осенью 2008 на фонде или весной 2009 на рубле или весной 2008 Societe generale то для компутера это аномалия.
3.А критерий формализации переменных? Если ручками то это подгонка периода, сможем ли мы управлять ими в реальной торговле так как слева на графике вопрос.
Прогноз слева важен тогда когда он будет работать справа. Т е нам нужна робастная подгонка а не просто подгонка. Робастность в нашем практическом применении обычно стабильность характеристик при минимуме параметров на большом числе трейдов. Если мы получаем 95-98 без фильтрации (мнимыми переменными, большим числом параметров итд) то нет проблем, иначе мы получаем такие 95-98 что развалятся на правом краю. И потом что у Вас за критерий в %? Прогноз сам по себе еще не дает профита, важен avg trade и вероятность прибыльной.
2) по поводу тикетов — я их загружаю как опережающие индикаторы. Дают ли они что то модели сейчас сказать не могу — надо исследование проводить — возможно только ухудщают прогнозирование.
3) я понимаю о чем вы — но к сожалению методы ограничены. Я использую весь набор — от нормализования данных, до фильтраций. Робастность как алгоритма, так и данных это основаня не сильно разрешимая проблема. Но все равно я сичтаю что лучше подогнать — так что бы слева было как можно больше. Критерий — вероятность правильного прогноза в % по данной свечке.
1) Принятый критерий оценки инвестиций доха, просадка, еквити. Как то так.
3) Все еще непонятно. Вы прогнозируете hlc свечи? А правильность в чем выражается? Точно попасть тик в тик? Что то сомневаюсь насчет 98%. 90 куда нишло а 98 перебор :)
1) да но зачем они когда мы оцениваем правильность прогноза?
2) я пытаюсь прогнозировать будущее состояние рынка — всего их у меня 4. Я стараюсь не сомтреть на свечи — там ваще один хаос. Но прогноз рисую для каждой свечи.
1) Зачем нам правильность прогноза? Нам нужен баблос. Вы хотите уравнять правильность и баблос но это сложно.
2) Теперь понятнее. Прогнозируете следующей отнесение свечи к той или иной категории и качество процент попаданий. Подход интересный.
если я знаю что впереди тренд без откатов, не пофигу где я в этот тренд заскачу?
Не пофигу сколько и каких стопов мы огребем даже если правильно определим бар.
Во вторых если особенность живет долго ее начинает торговать уйма народу — в итоге она схлопывается раньше.
И точно месяц не показатель ни для одной из стратегий.
ассоциативные правила;
деревья решений;
кластеры;
математические функции.
Методы построения таких моделей принято относить к области т.н. «искусственного интеллекта».»
То есть это и есть AI и 3 этап заключается в его использовании?
«Есть много историй как люди зарабатывали и на 1 и на 2 и на 3 этапе, но это не повод останавливаться в развитии.»
— зачем так все усложнять?
3 этап — это когда вы строите самообучающийся алгоритм. Методов там несколько я о них писал.
1) индикаторные (в том числе и НС)
2) статистичиские
3) корреляционные
вопрос от еврея — чем статистические от корреляционных отличаются? =)
1) потенциал большого движняка
2) короткий стоп…
Третий и четвертый этап — это уже намного сложнее.