Про ИИ и трейдинг

Недавно я говорил с одним однокурсником о трейдинге, торговых стратегиях, применении методов классификации и машинного обучения в этой сфере. Переписка получилась довольно интересной, поэтому я её переработал в диалог-интервью и предлагаю всем любопытствующим почитать. Сразу скажу, мы оба выпускники ВМК, один из нас программист, другой вроде как математический физик, никакого экономического образования, кроме курса А.А. Васина по мат. моделям в экономике (помню, там были сплошные модели "честного налогового инспектора" my ass). Я - это А., мой собеседник пусть будет Б. Разговор начинает white Б.


Б. - Ты трейдингом, никак, увлекся?

А. – Я пока не увлёкся, просто прочитал ряд статей по методам классификации и по использованию генетических алгоритмов для формирования торговых стратегий. И решил посмотреть, как дело на самом деле обстоит "в индустрии", не в науке. Почитал разные обсуждения в Интернете. Вывод – в основном, все пользуются чисто статистикой (без ИИ) и старыми-добрыми правилами теханализа про всякие пересечения скользящих средних. Более продвинутые люди используют нейронные сети, что, надо сказать, в наше время уже моветон.

Б. – Я тоже интересовался автоматическим трейдингом, но до торгующих роботов не дошел. Матстатистику большинство как раз не использует. Я нашел хорошую книгу по матстатистике в трейдинге, Тhе Еnсусlоpеdiа оf Тrаding Strаtеgiеs. Там написаны очень правильные вещи, но не детально. Софт с документацией автор продает за деньги. Идея в том, что любую стратегию, включая нейронные сети и генетические алгоритмы (про которые тоже в книге написано) нужно проверять на предмет случайности результата достигнутого на исторических данных.

А. – Конечно, хорошим тоном является проверка стратегии на out-of-sample, то есть на новых (тестовых) данных. И сравнить с подходом 1) buy-and-hold и 2) random walk. Бывает (особенно на хорошем трендовом рынке), что, действуя чисто по-случайному, можно заработать столько же или больше, чем если пользоваться супер-стратегией 🙂

Б. – В автоматическом трейдинге нужно с высокой частотой совершать сделки, тогда у кого канал к бирже лучше тот и заработал.

А. – Я читал, что на Форексе (вот уж где никогда не буду торговать, так как, по-моему, это вообще чистое казино) народ занимается неким High frequency trading'ом. "По-русски" это, видимо, скальпингом называется.

Б. – Скальпинг популярен не только на Forex, но на всех высоколиквидных рынках. В основном популярен скальпинг на фьючерсах на индекс РТС.

А. – Ну я пока далёк от автоматического трейдинга, т.к. это требует написания робота (вроде бы есть специальный язык mql5), а у меня с программированием реальных вещей (т.е. не наука, = не Матлаб) туговато, отвык за многие годы.

Б. – Роботов пишут не на С, в пакетах трейдинга свои упрощенные языки типа Basic (некоторые даже в Excel пишут роботов). Некоторые языки извращенные, например в Amibroker язык заточен на работу с массивами, т.к. a = b + c это сложение двух массивов и получение третьего. Это для скорости обработки, но мозг клинит поначалу. Посмотри пакеты типа Amibroker - там уже есть куча индикаторов и можно дописать свои.

А. – Я прочитал ряд статей о:

1. Прогнозировании цены (анализ временных рядов). Тема эта очень интересная, именно не в части прогнозирования только цены, а вообще прогнозирование временных рядов с разной степенью случайности. Например, прогнозирование автомобильного трафика - более благодарная задача, т.к. там всё же больше цикличностей, закономерностей. Меньше волатильность, в общем. Тут как раз народ на статистику напирает. Но да, с переменным окном.

2. Прогнозировании направления цены (1 = цена вырастет завтра, 0 = упадёт). Это уже другая технология, основанная на классификаторах. На вход классификатору подаются значения разнообразных индикаторов (коих уйма, ещё пойди пойми, какие из них наиболее релевантные, а какие фуфло и дань традиции или моде). На выходе - метка 1 или 0. Ну и в ряде случаев третий параметр - степень уверенности классификатора, тоже нелишне.

3. Понятии concept drift - когда скрытым для наблюдателя образом меняются причины явления, его механизмы. С помощью специальных классификаторов этот момент можно пробовать отследить. Я видел очень интересные статьи (не про рынок), в которых пытаются 1) уменьшить кол-во ложных сообщений о "смене парадигмы" и 2) уменьшить запаздывание таких вот диагностических сигналов. Чтобы change detection работал не через месяц, а, скажем, через недельку. При успешном детектировании такого события (или тенденции) можно переобучить свою торговую систему. А можно и просто её всё время переучивать, по мере поступления потоковых данных. При условии, что переучивание не занимает много времени.

4. Построении торговых стратегий. Это уже не совсем прогнозирование. Это скорее ближе к оптимальному управлению - выбрать наилучшие моменты для входа и выхода. Даже точно зная направления цены (ну, скажем, 65-75% успехов в прогнозировании направления цены в ряде случаев удаётся достичь) надо правильно строить стратегию. Читал про использование нейронных сетей и генетических алгоритмов в этом деле, но пока что, как я понимаю, модели слишком "жёсткие", т.е. параметры подбираются, но надо самому решить, какие из сотни индикаторов-осцилляторов использовать.

Пока что я больше всего знаю по пунктам 2 и 3. И пока что хочу что-нибудь слепить (концепт на Матлабе) для проверки. На дневных данных. На более мелкий масштаб (часы, 5-минутки) даже не замахиваюсь. В целом, когда рынок трендовый, все эти стратегии работают хорошо. Плохо работают, когда а) случается катастрофа и кризис, банкротство (что случается редко) и б) когда нет ярко выраженного тренда (что, увы, случается довольно часто). Ещё я как-то писал прогу для формирования оптимального (с т. зрения "риск-доходность") портфеля из нескольких инструментов (из трёх). Там всё просто 🙂 (если, опять же, правильно оценить примерную будущую доходность каждого инструмента...)

Б. – Я переключился на фундаментальный анализ, хотя автоматический трейдинг все равно интересует, но скорее для общего развития. Особенно интересны алгоритмы, которые подстраиваются под рынок (например, в зависимости от ситуации на рынке меняется длина скользящих средних). Если же заниматься автоматическим трейдингом, то надо использовать мощный автоматический аппарат. Большинство не имеет быстрого доступа к торгам, и не владеет матаппаратом, так что просто играет, как в рулетку.

А. – Либо люди "чувствуют" рынок, либо они знают матаппарат, который зачастую работает хорошо лишь в «ситуациях из учебника» (трендовый рынок). Хотя, думаю, в крупных компаниях давно уже занимаются серьёзными исследованиями и разработками. Там и более сложными задачами занимаются, т.к. у них и деньги большие в обороте и обязательств больше перед клиентами. Там уже нет предела сложности мат. моделей!

Б. – На самом деле все "опытные" люди пишут, что хорошая стратегия – простая стратегия. Т.е. стратегия, требующая минимум входных параметров – иначе она слишком сильно "подгоняется" под исторические данные. Большие компании используют набор простых стратегий эффективных в определенных условиях и включают то одни, то другие.

А. – Согласен. Люди, которые занимаются ИИ в трейдинге, тоже говорят, что если получишь классификатор или стратегию, в которой, скажем, 50 параметров, и при этом НЕ будет такого, что 5-10 параметров наиболее важные и составляют 90% от всей производительности/предсказательной способности твоей системы, то у тебя явная проблема. Если слишком много параметров считаются одинаково важными, то очень велика вероятность того, что ты просто "выучил шум". Т.е. на тестовых данных будет всё плохо, даже если на обучающей выборке было классно. Тенденция к overfitting'у есть у всех алгоритмов.

Б. – Все верно – совпадает с трейдингом.

А. – А фундаментальный анализ мне не под силу. Для меня это тёмный лес, все эти отчеты, ebitda и пр. Может быть, когда-нибудь, когда будет время, поизучаю.

Б. – Ну да, для этого нужно разбираться в отчетности. Но зато есть ощущение, что ты не в рулетку играешь : ) Баффет как раз сторонник фундаментального анализа.

А. – Мне кажется, что фунд. анализ пригоден для более большого масштаба и дальней перспективы. Грубо говоря, фунд. анализ скажет тебе, стоит ли вкладываться на ближайшие полгода, а для внутри- месячной или -недельной торговли он вряд ли скажет что-то конкретное. Ну то есть если только это не новость о том, что "в среду состоится оглашение отчёта, по предварительным данным у этой компании всё мега-круто". Но это уже не фунд. анализ, а анализ новостей. Который тоже довольно субъективен – какую из новостей считать наиболее важной?..

Б. – Абсолютно верно. Фундаментальный анализ – минимум на год, а по хорошему на 3-5 лет. Новостные темы – это трейдинг по новостям. Есть прикольный человек http://denpanas.livejournal.com он как раз на новостях торгует низколиквидными акциями. Постоянно мониторит информацию, которую раскрывают компании, и покупает дешевые акции, которые могут подорожать на новостях. То есть это корпоративные новости, а не сводки статистики из США.

А. – Я в основном интересуюсь теханализом. Прочитал несколько книг, но в основном они мне напоминают учебники по геометрии - всякие пересечения кривых, треугольники. Конечно, у каждой технической идеи есть "умное" объяснение, но не факт, что это работает. Много догм. Тот же тренд каждый может провести, как ему вздумается, много субъективизма. То есть постфактум мы все умные 🙂

Б. – Теханализ – это чистая психология, выраженная в графиках. Он работает, потому что все верят, что он работает 🙂 Тоже прикольный нонсенс.

А. – Мне кажется, что сейчас стало гораздо больше роботов (которые как раз работают по ТА-алгоритмам, т.к. их легко формализовать) и именно поэтому ТА работает 🙂 Да, действительно забавно 🙂 Ведь рынок не сам по себе развивается, «в вакууме», а на него в том числе влияет психология масс. Об этом, кстати, есть интересная книжка "Мудрость толпы". Книжка, правда, не о влиянии масс на рынок, скорее о том, как коллектив ("стадо") может находить правильные решения, даже если все его члены по отдельности не «семи пядей во лбу».

Б. – Слышал про эту книжку. Очень хочу прочитать ее. На этой идее prediction markets работают. Правда я знаю только один, который работает на реальных деньгах www.intrade.com.

А. – Идея о том, что «решение коллектива» может быть лучше решения отдельных экспертов, кстати, лежит в основе классификатора AdaBoost, который агрегирует голоса от большого числа более слабых классификаторов, точность которых должна всего лишь превышать 50%. Агрегированный результат (голоса с весами + там ещё сама процедура обучения хитрая) обычно сильно превышает 50%. Собственно, я читал про AdaBoost по своей основной работе и поэтому заинтересовался применением классификаторов в трейдинге, с этого началось.

Б. – Интересная штука. По идее ей можно подать на вход простые стратегии... интересно, что получится.

А. – Мне очень нравится область data mining'a, это вообще для меня икона, как можно догадаться. На данном этапе я нашел небольшую freeware библиотеку, которая считает индикаторы. Хочу по их показаниям получить классификатор для прогнозирования направления движения цены. Рассматриваю это все как "домашнее задание" по курсу ИИ. Т.к. первичен, конечно, интерес к обработке данных и к ИИ. У меня в этом плане есть опыт, хотя в университете мы это, увы, не проходили. Я б с удовольствием вместо унылых дифуров или пятой серии численных методов ходил бы на ИИ на третий поток нашего факультета. В итоге сейчас всё сам изучаю, последние 5 лет. Ну вот, а если "домашний проект" будет хорошо работать, то может быть попробую поторговать в реальности. Помечтать-то всегда можно 🙂

Б. – На самом деле пока своими деньгами не поторгуешь по системе, даже без робота, - никогда не поймешь как это все. Как важно вовремя войти, вовремя выйти, как важно быть уверенным в своей системе торговли и не переходить на эмоции. Всегда кажется, что рынок идет против тебя и издевается : ) Прикольные ощущения.

А. – А ты торговал/торгуешь?

Б. – Я в разгар кризиса открыл счет, чтобы по дешевке купить акций - был уверен, что они вырастут, как в 1998. Но заигрался. Бессистемно покупал и продавал... на интуиции. По сути, торговал на эмоциях. Потом немного попытался поторговать по системе, но на разработку системы времени не было, и система была примитивная и не протестированная. В итоге понял, что для хорошего тестирования нужна статистическая оценка, а без нее - рулетка. Поэтому перешел на фундаментальный анализ, купил акций, которые, на мой взгляд были недооценены руководствуясь достаточно примитивным критерием - капитализация ниже чистых активов (т.е. чистые активы компании стоят дороже, чем за них просят на бирже). В итоге какие-то выросли, какие-то упали. Критерий крайне примитивный, так как такая ситуация может означать, что компания бесперспективная. Пока пытаюсь читать мегакнигу. Считается, что это фундаментальный труд в области инвестирования (не трейдинга). Автор - учитель Баффета. Книга - реально офигенная. Там, например, все про недавний ипотечный кризис написано, только книга написана в 30-х годах 20-го века : )

А. – Может быть, тебе будет интересен пост в ру-трейдерс про "аналитиков". Я с постом полностью согласен, у нас аналитики, по кр. мере те, которые работают "на публику" - это зачастую астрологи с бизнес-образованием 🙂

Б. – Все верно написано. Ден Панас как раз периодически мочит этих "аналитиков" : )
Тут важно понимать, что у них работа такая - впаривать. Они могут даже очень правильные вещи писать, но то, что они написали, профессионалы давно отработали (купили/продали), а потом прибегают обыватели и покупают уже подорожавшее и продают уже упавшее, в итоге разгоняют цену, а профессионалы закрывают позиции. Есть даже люди, которые действуют вопреки толпе обывателей. Если обыватели покупают - надо продавать, если продают - надо покупать.

Еще хорошие книжки:

Эдвин Лефевр "Воспоминания биржевого спекулянта".

Адам Смит "Игра на деньги" - на всякий случай, Адам Смит - псевдоним 🙂 Как раз тут про поведение обывателей много написано. Книжка вообще про психологию трейдера. Все на примерах и историях рассказано. Не загрузная, легкая и интересная.

А. – Спасибо за плодотворную беседу!

хорошоплохо (никто еще не проголосовал)
Loading...Loading...
Добавить комментарий