Вокруг сферы торговли на Форексе (да и на фондовом рынке тоже, принципиальных отличий тут куда меньше, чем сходства) крутится такое огромное количество мифов, не имеющих ничего общего с реальностью, что в голове у новичка обычно сразу же возникает каша из неведомой фигни, которая искажает дальнейшее восприятие до неузнаваемости. Ухудшает ситуацию ещё и «антинаучность» всей сферы, и конфликт интересов между посредниками (провайдерами ликвидности, брокерами) и клиентами, которые лишь усиливают эффект.В результате спустя годы попыток расхлебать эту кашу немногим, лишь самым стойким людям удаётся дойти до более-менее правдоподобной картины мира. Тем не менее, даже у них остаётся порой множество мифов, поверить в которые очень легко, а проверить со стороны практически невозможно.
К числу таких мифов, на мой взгляд, относится проскальзывающее время от времени в известных изданиях мнение о всемогущих самообучающихся компьютерных алгоритмах торговли (именуемых зачастую ИИ — искусственным интеллектом), якобы используемых трейдерами, чуть ли не знающих все движения рынка наперёд. Мой опыт общения с профессиональными управляющими и менеджерами фондов по всему миру показывает, что это мнение очень далеко от правды. В данной статье постараюсь раскрыть этот вопрос подробнее и показать, почему это скорее всего не так.
Содержание
Вступление
Я уже давно привык, что в сфере финансов верить можно лишь тому, что можно неопровержимо доказать. Этот известный в науке принцип позволяет надёжно отсеять 99.9% лжецов, которым выгодно показать себя «крутым трейдером» и, пользуясь давлением авторитета, впарить мало что смыслящим новичкам что угодно.При этом на фоне последних успехов в машинном обучении кажется очень логичной мысль о самостоятельно научившемся торговать на рынке алгоритме. Ещё 10-15 лет назад самые лучшие применения ИИ находились на уровне экспертных систем наподобие Deep Blue, победившей нашего соотечественника Гарри Каспарова.
Однако Deep Blue не учился игре самостоятельно. Фактически, все знания об игре были запрограммированы в него вручную командами программистов, которые в свою очередь консультировались с профессиональными игроками, пытаясь «разбить на части» накопленные людьми знания о шахматах, разложив их на конкретные алгоритмы. Именно такой подход и привёл IBM к успеху, и именно он сейчас применяется в самых сильных шахматных программах.
Сегодня же мы имеем самообучающиеся (не совсем ещё «само», но самости им всё же хватает) системы, способные с нуля обнаружить многие весьма неочевидные закономерности и научиться играть в видеоигры лучше любого человека, распознавать объекты на изображениях, водить автомобили, отвечать на вопросы, распознавать речь, сразу переводить её на другой язык и произносить результат и даже обыгрывать лучших профессионалов-людей в игре го (отличается от шахмат в первую очередь на порядки бОльшим числом вариантов и сложностью в формализации — в отличие от профессиональных шахматистов, игроки в го зачастую не могут объяснить тот или иной ход, говоря лишь, что он «чувствовался» правильным). На фоне такого кажущегося всемогущества нейросетевых алгоритмов кажется очевидной идея, что можно взять кучу котировок и запросто «натаскать» алгоритм на предсказание будущих движений. Но не всё так просто.
Факты
Начну с доказательной базы.
По роду деятельности я общаюсь с большим количеством как профессиональных трейдеров, так и не очень профессиональных, но людей, имеющих большой опыт в исследовании рынка, менеджерами фондов, агентами и другими людьми, имеющими отношение к сфере торговли. Конечно же, далеко не всем из них можно доверять, но здесь логично применять «научный» подход, описанный в начале статьи и смотреть больше не на слова, а на дела.
Итак, какими фактами я располагаю:
1. Ни один из известных мне профессиональных алготрейдеров с доказанным на протяжении нескольких лет хорошим торговым результатом не использует в качестве основы своей системы нейронные сети или какой-либо другой самообучающийся алгоритм. В основе их роботов лежит классический «ручной» подход к написанию алгоритмов, при котором у трейдера имеется в голове какая-то идея первоначально, он реализует в коде и настраивает её, и затем пытается использовать для извлечения прибыли.
2. Некоторые из трейдеров, ставших сейчас профессионалами, действительно длительное время извлекающие прибыль из торговли, экспериментировали в прошлом с нейросетями, но никакого положительного результата из этих экспериментов не получили. Кроме того, я общался с некоторым числом профессиональных математиков и программистов (в т.ч. профессорами западных вузов, спецами по мат. статистике и экономике). Один из них, к примеру – весьма обеспеченный человек из Англии, PhD, профессор экономики, который около 10 лет своей жизни потратил на изучение движений на финансовых рынках, потратив порядка $1 млн на оплату своих исследований, которые он проводил совместно со знакомыми профессорами. Читал некоторые из его публикаций (всё официально и научно) – как и в большинстве случаев, интересно, сложно и совершенно бесполезно на практике. Начали с использования сложных математических методов, продолжили нейросетями в применении к прогнозированию напрямую, закончили навороченной системой собственных индикаторов, показания которых были исходными данными для анализа нейросети, но его команде так и не удалось разработать алгоритм, способный длительное время выдавать достаточный для отбивания накладных расходов результат.
При этом человек вполне адекватен, понимает все основные принципы риск-менеджмента и важность использования стопов. Если кому-то интересно, сейчас он торгует вручную на мажорах по фундаменту (не настолько успешно, чтобы попасть в индексы Айсов, но вроде не сливается) и инвестирует свои средства в парочку ДУ.
3. Ни от одного из трейдеров или менеджеров, действительно хорошо разбирающихся в теме прибыльной торговли, я ни разу не слышал о каких-либо трейдерах, успешно применяющих на практике нейросети в качестве основного инструмента прогнозирования. Причём следует понимать, что если была бы такая информация на уровне слухов, проверить её я бы не смог. Но её попросту нет, а охват тут немалый.
4. Абсолютно все известные мне случаи, в которых трейдеры упоминали об использовании нейросетей для прогнозирования, заканчивались печально — от ПАММ-счетов до роботов и сигналов. На текущий момент, фактически, у меня сформировался такой весьма надёжный признак: если трейдер упоминает в описании своей торговли нейросети и/или самообучающиеся алгоритмы, то почти наверняка инвестировать в него не стоит, ибо по сути это с вероятностью 99.9% окажется фигня.
При этом в разных изданиях по-прежнему выходят весьма убедительные публикации на тему использования нейросетей в торговле. А эксперты по машинному обучению в своих выступлениях и книгах считают возможность прибыльной торговли таких алгоритмов совсем уж очевидной, о чём любят время от времени напомнить.
WTF?
Так в чём же дело? Почему наблюдается такое сильное расхождение ожиданий и мнения большинства с реальностью даже у очень умных и разбирающихся в данной сфере (имеется в виду машинное обучение) людей?
Во-первых, нужно понимать, что нейросетевые алгоритмы очень хороши в том, с чем у человека порой бывает плоховато: в нахождении неочевидных закономерностей. И люди, далёкие от торговли на финансовых рынках полагают, что в этом всё дело: нужно просто найти какую-то закономерность в котировках (не важно какую, главное чтобы она была на истории) и дело в шляпе.
Опытные трейдеры же понимают, что дело тут далеко не только лишь в одной закономерности. И подтверждается это очень просто: MQL Маркет просто кишит прибыльными на истории роботами, которые не могут дать своим покупателям ни цента прибыли в долгосроке. И лишь пренебрежимо малая доля этих роботов (явно намного меньше 1%) действительно сможет показать сколько-нибудь положительный результат на реальных счетах покупателей.
А дело здесь в основном заключается в том, с чем у нейросетей сейчас очень плохо: несмотря на отличные показатели в нахождении закономерностей, у них отсутствует здравый смысл. Пояснить это проще на примере. Допустим, что у нас есть такая головоломка, ответ на которую мы поручаем найти алгоритму, построенному на нейросетях:
Вроде бы всё выглядит очень просто, не так ли? Однако даже люди, пытающиеся разгадать эту головоломку, могут дать несколько принципиально различающихся ответов. Перед тем, как читать дальше, подумайте минуту над ответом.
Самое очевидное на взгляд многих людей решение следующее:
Т.е. если принять первое число за x, второе — за y и третье — z, то просто берём формулу z=x*(y+1) и получаем любой нужный нам ответ. В таком случае четвёртая строчка расшифровывается как 8*(11+1)=96.
Однако многие видят первой другую закономерность: если включить в число допустимых параметров для каждой строки результат с предыдущей (и для первой строки результат примем нулевым), то увидим следующую закономерность:
В таком случае ответ уже 8+11+21=40.
На этом, как правило, человеческие способности в нахождении закономерностей заканчиваются. Любые другие из них, по сути, отсекаются его здравым смыслом и текущей ситуацией, в которой возникла эта головоломка. К примеру, если это задание из теста на IQ, то наверняка подойдёт скорее второй ответ, т.к. составители очень любят включать в головоломки необходимость в «широком взгляде на проблему», который демонстрируется здесь решением взять результат с предыдущей строки. Однако компьютерные алгоритмы наверняка смогут найти ещё десятки, если не сотни различных допустимых закономерностей. К примеру, можно взять первое число, умножить на второе, добавить 0.2 от суммы ответа предыдущей строки и числа 3 и полученный результат округлить до ближайшего целого. Удивительно, но это тоже работает, и получаем ещё один возможный ответ (93, если что). И хотя практически любому человеку очевидно, что едва ли это является запрашиваемым ответом, это совершенно неочевидно для самообучающегося алгоритма. Для него, к примеру, может показаться более убедительной закономерность, связанная с формой цифр (если данные на вход подаются в виде изображения). Или какая-то другая, которую человек в принципе никогда не будет рассматривать как имеющую смысл.
При всём этом понять, какую именно закономерность выявил алгоритм практически невозможно, т.к. для этого в общем случае необходимо реконструировать нейросеть, поняв что в ней за что отвечает, а ведь её изначально используют именно для тех случаев, когда написать необходимый для решения задачи алгоритм «вручную» невозможно, или как минимум крайне тяжело! Получается, что в абсолютном большинстве случаев к алгоритму относятся как к «чёрному ящику», судят о котором только по получаемым результатам.
Классический пример опасности данного подхода приведён в книге известного американского исследователя Элиезера Юдковски. Подробнее:
Успехи машинного обучения подмечают не только узкие специалисты, но и многие другие, кому это может быть полезным. В том числе и военные. А поскольку у американских военных денег больше всех, не удивительно, что именно они являлись заказчиком исследования, посвящённого обнаружению замаскированных танков на фотографиях при помощи нейросетевых алгоритмов.
Задача была простой: взять фотографии с замаскированными в лесной обстановке танками, фотографии без замаскированных танков и научить систему отличать одно от другого.
Исследователи взяли 50 фотографий с танками, 50 без них и, используя стандартные техники машинного обучения, получили в первом случае 50 ответов «да» и во втором — 50 ответов «нет».
Но исследователи-то не дураки: у них было по 100 фотографий с танками и без, и оставшиеся 100 они использовали для проверки (аналогичный трюк при настройке торговых алгоритмов называется форвардным тестированием). Результаты оказались положительными: все оставшиеся фотографии алгоритм распознал идеально.
Готовую программу отослали в Пентагон, чтобы местные спецы проверили её в реальных условиях. Тут-то и выяснилось, что точность распознавания программы не сильно отличается от 50%, и доверять её результатам совершенно нельзя.
Дальнейшая проверка показала существенную деталь, которую исследователи упустили из вида: все 100 фотографий танков были сделаны в облачную погоду, а фотографии леса без камуфлированных танков — в солнечную. Таким образом, нейросеть натренировали лишь на распознавание погоды, но никак не на поиск танков на фотографии.
В этом и кроется основная сложность: если при настройке нейросети были допущены какие-то ошибки, нельзя «залезть в код программы» и посмотреть, что там не так. Практически единственной возможностью проверить результат является доказательство на практике.
Ещё один момент, который необходимо учитывать — редкость присутствия хороших торговых возможностей на финансовых рынках. Это подтверждает опыт множества знакомых со мной профессиональных трейдеров: им порой приходится больше месяца ожидать подходящего момента для входа в рынок, а всё остальное время является с точки зрения их торгового подхода неподходящим. И это не какая-то аномалия, а логичное поведение лучших профессиональных трейдеров, которое наглядно показывает редкость возможностей для более-менее эффективного предсказания движений в ближайшем будущем.
Разумеется, что если предоставить самообучающемуся алгоритму котировки «как есть», то вероятность, что будет найдена какая-то подобная закономерность на фоне огромного массива данных (основная часть из которых представляет собой «фоновый шум») минимальна. Куда вероятнее, что алгоритм попытается как-то связать между собой не имеющие никакого смысла и взаимосвязи данные, что в большинстве случаев и происходит.
Кто виноват и что делать
Перечисленные недостатки приводят к весьма ожидаемому результату: абсолютное большинство попыток «научить» нейросеть торговле приводят к поиску не имеющих никакого практического смысла закономерностей в исторических данных. При этом попытки понять, а что же такого там нашла нейросеть в котировках, хотя порой и предпринимаются, в большинстве случаев бесполезны.
Лично для меня, как инвестора, всё вышеперечисленное означает следующее: если какой-либо трейдер упоминает, что «ядром» его прогнозирующего алгоритма является нейросеть, самообучающийся алгоритм и т.п., то с очень большой вероятностью это либо дезинформация, которая ни к чему хорошему обычно не приводит, либо правда, и в таком случае относиться к такой торговле нужно с тройной осторожностью.
Признак по моему опыту стал уже настолько надёжным, что во всех случаях, встретив его, я мог, по сути, не копаться в имеющихся материалах дальше, а поставить пометку «фигня» и с чистой совестью пройти мимо, будучи полностью уверенным в том, что с этим трейдером каши не сваришь. Однако ради проверки данной закономерности в лишний раз я всё-таки докапывался всегда до конца, и это неизменно приводило к одному и тому же результату: трейдер не оказывался способным демонстрировать устойчивые во времени показатели торговли.
Для практикующих трейдеров всё вышеперечисленное означает одно из двух:
1. Стоит забыть про применение нейросетей к прогнозированию движений и продолжить разрабатывать торговые алгоритмы «классическим» методом.
2. Стоит учитывать имеющиеся недостатки и постараться использовать сильные стороны подобного подхода.
Если с первым всё понятно, то со вторым требуется небольшое пояснение.
Полагаю, что в некоторых случаях применение нейросетей в торговле всё же может быть оправданным. На мой взгляд, делать это можно только в тех случаях, когда первичный поиск закономерностей не осуществляется нейросетью.
Это возможно в случае, к примеру, если исходные данные для нейросети поставляются «классическим» алгоритмом и имеют явный смысл. Т.е. это не «сырые» котировки и не показания десятков индикаторов, не имеющие никакого особого смысла и взаимосвязи, а, к примеру, специальным образом подготовленные данные, описывающие силу возникшего недавно импульса. На выходе же будем ожидать , к примеру, решение о входе в рынок (стоит входить в направлении импульса или нет) и размеры SL/TP. В таком случае нейросеть будет искать закономерности в понятных нам исходных данных, а принятые ей решения можно будет проверить на наличие здравого смысла, поскольку все входы будут привязаны к возникшим недавно импульсам. Устойчивость подхода во времени позволит проверить классический форвард-тест: если алгоритм окажется способным показывать прибыль несколько лет подряд на данных, отсутствовавших в наборе данных для обучения, при этом во всех его решениях прослеживается смысл, то логично предполагать, что он наверняка будет показывать прибыль и дальше.
В данном случае, однако, всё ещё остаётся вопрос, как избежать «переподгонки», т.е. ситуации, в которой полученный алгоритм будет показывать прибыль лишь на истории. Даже при наличии здравой исходной идеи (например, импульсной торговли) это остаётся непростым вопросом, что опять-таки подтверждается MQL Маркетом, где присутствует достаточное количество импульсных систем, прибыльных лишь на истории. И если в случае «ручных» алгоритмов можно понять конкретную причину, то в случае нейросетей опираться получится только на результат, что уже само по себе несёт явные риски.
Критика
Разумеется, что моя статья наверняка встретит критику. Всё-таки описанное в ней очень резко расходится с господствующим «общественным мнением», так что это ожидаемо. Здесь опишу основные положения критики, которые я ожидаю встретить, и готовые ответы на них.
1. «Но ведь нейросетями для составления прогнозов пользуются крупнейшие инвест-банки!»
Во-первых, методы торговли в крупных банках существенно отличаются от методов торговли частных трейдеров. Во-вторых, судя по тем данным, которые открыто публикуются банками, результаты их торговли не то чтобы очень впечатляют — лидеры прошлого года по указанной ссылке являются аутсайдерами в этом году, что как-то не напоминает «предсказание рынка». В-третьих, по причине непрозрачности подобных методов торговли любому понимающему в торговле что-то риск-менеджменту тяжело адекватно оценить несущиеся риски. Наконец, в-четвёртых, едва ли кто-либо из читателей владеет достоверной непубличной информацией по этому вопросу, поэтому любые рассуждения на эту тему опираются на данные информагентства ОБС.
2. «Всё дело в вычислительных мощностях. Ваши знакомые, видать, попросту не имели доступа к хорошим серверам».
Во-первых, некоторые имели. Во-вторых, при правильной работе достичь впечатляющих итоговых результатов сегодня можно даже на «обычном» железе.
3. «Так сами же указали в конце, что использовать нейросети в торговле таки можно. Где же примеры?»
В указанном мной случае использования нейросетей необходимо, чтобы человек не только уже хорошо разбирался в торговле и понимал, каких подводных камней ему нужно избежать, но и являлся профессионалом в машинном обучении. Крайне редко оба этих качества присутствуют у одного человека, а трейдеры редко посвящают в свои замыслы кого-то кроме близких друзей, к которым есть заметный уровень доверия (при этом небольшие команды по 2 человека, к слову, порой работают весьма успешно, и зачастую лучше своих коллег-«одиночек»). Поэтому ситуация, в которой оба этих качества окажутся вместе, очень маловероятна.
Краткие выводы
Суммирую всю статью в нескольких тезисах — полагаю, это положительно сказывается на понимании.
1. Если нейросетевые алгоритмы и применяют в торговле, то это редкость и наверняка речь идёт о высокоспецифичных узконаправленных системах, в которых главенствующую роль играют всё-таки люди, которые в целом понимают, что именно они ищут и как работают.
2. Если в описании системы трейдера стоит «самообучающийся алгоритм искусственного интеллекта на нейросетях», то бежать от него следует куда подальше.
3. Опираться на находимые нейросетями закономерности при самостоятельной торговле не стоит. Если и использовать нейросети в торговле, то нужно максимально специализировать и направлять их, не надеясь, что «он сам всё поймёт».
Надеюсь, этот небольшой ликбез даст читателям избежать ошибочных решений и позволит сэкономить драгоценное время.