Интервью с Леонидом Величковским: "Главный миф о нейронных сетях – сверхприбыльность" (ATC 2010)

Automated-Trading | 19 августа, 2010

Интервью на Automated Trading Championship 2010 от 19.08.2010.

Герой нашего интервью - Леонид Величковский (LeoV) – уже принимал участие в Чемпионатах по автоматическому трейдингу. В 2008 году его мультивалютная нейронная сеть ярко вспыхнула на небосклоне, заработав в определенный момент 110 000 $, но в итоге пала жертвой собственного агрессивного мани-менеджмента. В интервью двухлетней давности Леонид говорил о собственном опыте трейдинга и особенностях работы его советника. В преддверии же Чемпионата ATC 2010 наш герой рассказывает о самых распространенных мифах и заблуждениях, связанных с нейросетями.

- Леонид, вы довольно редкий представитель трейдерского сообщества, который использует для торговли нейронные сети. Это непростые разработки, однако стан их поклонников с каждым годом растет. Чем именно они вас привлекают?

- Шесть лет назад, когда я только начинал, нейронные сети привлекли меня своей новизной, необычностью, загадочностью и кажущейся большой прибыльностью. С годами многие мифы рассеялись, но нейросети по-прежнему привлекают своей способностью адаптироваться под любую кривую и находить закономерности там, где их никто и ничто не может найти.

- Расскажите подробнее про мифы, связанные с нейронными сетями. Какие разочарования вас постигли на этом поприще?

- Главный миф, связанный с нейросетями, - это их сверхприбыльность. Но это относится не только к нейросетям, а к Форексу в целом. Поначалу кажется, что заработать легко и просто – покупай и продавай, ничего сложного. Однако позднее вступают в силу факторы, о которых ты даже не подозревал – только потом ты начинаешь их осмысливать и понимать. В нейросетях разочаровывает то же, что и привлекает – их способность хорошо обучаться и адаптироваться под любой рынок, подстраиваясь под любые данные. Их большое преимущество становится существенным минусом в применении к финансовым рынкам. Такая вот удивительная метаморфоза!

Леонид Величковский

- Каким образом вы пришли к пониманию того, что в нейронных сетях нет сверхприбыльности? Какой личный опыт торговли предшествовал этому?

- Сверхприбыльности нет не только в нейросетях, но и в целом на Форексе. Нейронные сети, собственно говоря, это такие же торговые системы (далее - ТС), как и остальные, просто вместо обычных индикаторов там используется нейросеть. А далее на первый план выходит мани-менеджмент, то есть «жадность» трейдера.

Когда только начинаешь торговать, то понятие мани-менеджмента для тебя отсутствует, как таковое. Но со временем ты приходишь к осознанию необходимости этого инструмента. Ведь работа на Форексе, да и вообще на финансовых рынках, сопряжена с риском. Нужно отдавать себе отчет в том, что рисковать 100 долларами и 100 000 долларами – это разные вещи. Когда я торговал на первоначальных депозитах в 100, 500 и даже 1 000 долларов – риск был один, да и само отношение к торговле было одним. А когда начал торговать на более значительных суммах, то отношение к торговле стало совсем другим – вырос уровень риска, и быстро пришло понимание того, что можно все потерять. Вместе с этим пришла и некоторая ответственность.

К примеру, при торговле на депозите в 100 долларов уровень дохода в 100% в год мало кого устроит, я думаю. А вот торгуя на депозите в 100 000 долларов, получить доход в 100% в год очень даже неплохо. Таким образом, возникает некая психологическая коллизия - трейдеры, торгующие на небольших депозитах, стремятся как можно быстрее и больше заработать. Это в свою очередь приводит к превышению всех мыслимых и немыслимых рисков. В результате – закономерный слив депозита! Поэтому я считаю, торговля на малых депозитах обречена на провал ввиду естественного желания человека как можно быстрее и больше заработать. А 100 долларов, к примеру, не являются слишком большой суммой, чтобы не рисковать.

- На протяжении вот уже шести лет вы занимаетесь нейронными сетями в трейдинге. Каким образом вы создаете эти загадочные нейросети? Чем пользуетесь?

- Я же не программист, а трейдер. Программировать нейросети и использовать их на финансовых рынках – абсолютно разные вещи. В разработке советников мне помогают программисты - это Роман Крамарь (bstone), Юрий Зайцев (YuraZ), Виктор Николаев (Vinin) и Дмитрий Федосеев (Integer). Все они профессионалы своего дела и им не нужно ничего разжевывать – они все знают и без меня. Всем им я очень благодарен за работу и профессионализм.

Также я сотрудничал и продолжаю сотрудничать со Стивом Вардом (Ward Systems Group) и Сергеем Доленко (Neuroproject), которые дали мне бесценную информацию о применении нейросетей на финансовых рынках. Кроме того я тесно общался с Деннисом Мейерсом (Meyers Analitics), Филиппом Лонжу (Noxa Analytics, Inc.) и Марком Симпсоном (Bowfort Technologies Inc.), с которыми тестировал новые системы и индикаторы.

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

Пользуюсь я, разумеется, MetaTrader 4, сейчас пытаюсь подружиться с МetaTrader 5. Второй незаменимый инструмент для работы – NeuroShell, без которого никуда. В качестве связки MetaTrader 4 – NeuroShell использую MTFeed. 

Леонид Величковский

- Существует множество методов обучения нейронных сетей. Как обучаете их лично вы, Леонид? И, наконец, задам вопрос, который терзает множество начинающих нейротрейдеров: как избежать так называемой «перетренировки»?

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

Соответственно, если нейронная сеть, обучаясь на прошлых данных, слишком хорошо заучивает уроки (примеры) прошлого, то в итоге она попросту может не заметить или не определить новые паттерны, закономерности и участки рынка в будущем. Ведь все они претерпели некоторые изменения. То есть нейросеть слишком хорошо приспособилась под те условия рынка, которые были в прошлом, а в изменившихся в будущем условиях рынка оказалась неспособна распознать новые образы.

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

Существует заблуждение, что чем лучше было в прошлом, тем лучше будет в будущем. Это ведет к тому, что чем меньше ошибка на участке обучения, тем лучше сеть будет работать в будущем. Однако это не так – рынок меняется и, слишком хорошо обучившись на прошлых данных, нейросеть может не увидеть будущее. По опыту знаю, что соотношение ошибки на участке обучения и профиту на OOS (Out Of Sample – вне интервала оптимизации) или на реале следующее - ошибка постепенно уменьшается с увеличением времени обучения, а вот профит сначала увеличивается, а потом падает, образуя некий максимум в определенный момент времени. Именно этот максимум и нужно поймать.

Далее, с увеличением времени тренировки, ошибка также плавно будет падать, а профит на OOS может образовывать ещё несколько максимумов, но они, как правило, меньше самого первого. Хотя я сталкивался с ситуацией, когда второй и даже третий максимумы были выше, чем первый. Но считается, что по прибыльности и эффективности первый максимум лучше прочих. По сути, наша задача состоит в том, чтобы поймать этот первый максимум. А это уже зависит от мастерства и опытности трейдера – других, более точных, критериев я не знаю. Хотя, конечно, можно и нужно ориентироваться на процент прибыльности, ошибку, просадку, коэффициент Шарпа и множество других параметров. Но, в конечном счёте, на что и как ориентироваться, зависит исключительно от трейдера. От того, как он понимает свою ТС, и знает, как она себя ведёт.


На участке же тренировки происходят совершенно другие вещи. Ошибка и профит ведут себя прямо противоположно – ошибка плавно падает, а профит плавно растёт. Если при оптимизации увеличивается профит, то советник попросту подгоняется под кривую рынка, трансформируя цену в плавную кривую. Эта кривая должна подниматься вверх и называется эквити. По сути это оптимизация тоже на уменьшение ошибки. И получается следующая вещь: чем больше профит на участке тренировки или оптимизации, тем больше вероятность перетренировки или переоптимизации (подгонки) и, как следствие, – убытки в будущем.


Второй способ избежания перетренировки – это увеличение участка тренировки, то есть увеличение количества данных, на которых обучается сеть. Но и тут есть свои подводные камни. Увеличение количества данных на финансовых рынках ведет к тому, что сеть может просто не увидеть и не распознать те паттерны, закономерности и участки рынка, которые существуют на заданном нами участке тренировки. Участок для этого слишком большой. А происходит все это из-за того, что рынок с течением времени меняется. И какой-то определённый паттерн на этом большом участке оказывается слишком «разным», чтобы сеть определила в нем тот же самый паттерн, просто изменившийся во времени.

Тут возникает закономерный вопрос: какой участок рынка давать сети для обучения? Ответ - тот, на котором сеть хорошо распознает паттерны, закономерности и участки рынка, нужные ТС и трейдеру. А это уже зависит от мастерства трейдера - как он видит рынок и как хорошо он сможет подобрать нужный участок тренировки. По моему опыту - это от 500 до 2000 баров в зависимости от таймфрейма и состояния рынка.

Есть ещё несколько способов, как избежать перетренировки, но они не столь значительны.

Теперь мы ясно увидели, что многое действительно зависит от мастерства и опыта трейдера. Поэтому я считаю, что эта профессия требует не только математических знаний, но и некоторого творческого подхода. Также понятно, что все особенности и нюансы использования нейросетей, да и обычных ТС, идут от того, что рынок со временем меняется, и прошлое не повторится в точности в будущем. Эта особенность существует только на финансовых рынках. Распространен миф, что нужно дать нейросети кучу данных и поставить обучаться – и она сама разберется, что ей нужно. Для обычного способа применения нейросетей это может быть и так, но на финансовых рынках имеются свои особенности, которые я описал выше, поэтому здесь не все так однозначно.

На мой взгляд, эти два способа избежания перетренировки так же относятся и к оптимизации обычных советников, без нейросетей. Переоптимизация, или как её ещё по-другому называют «подгонка», характерна исключительно для финансовых рынков. И способы её обхода те же самые. Суть переоптимизации также заключается в том, что характер финансовых рынков изменяется во времени – строго говоря, «рынок не стационарен».

- С какими ошибками может столкнуться трейдер, решивший использовать нейросети?

Стандартное заблуждение трейдеров, начинающих использовать нейросети и подающих на вход ненормализованные данные, пытаясь получить цену следующего бара, – «сегодня будет, как вчера, а завтра будет, как сегодня» (если рассматривать дневные бары). Это обычная перетренировка сети - поскольку данные на Форексе не сильно отличаются друг от друга (100 пунктов – это всего лишь 0.7% от цены), то соответственно ошибка обучения тоже будет небольшой и сеть очень быстро найдет этот локальный минимум обучения.

- Определенная часть нейротрейдеров использует в своих разработках предобработку входных данных. Есть ли в ваших нейросетях подобное?

- Вообще говоря, я не использую чистый временной ряд для подачи на входы нейросетей. Временной ряд всегда преобразовывается через какой-то индикатор, который нормализует данные в какой-то ряд. К примеру, от -100 до 100 или от -1 до 1. Дальнейшая нормализация уже не требуется, потому что если значения индикатора превышают 1, то всегда можно поделить на соответствующее число, добившись непревышения единицы. Я стараюсь делать как можно меньше преобразований входных данных, так как любое преобразование несет в себе дополнительные нелинейные искажения во входной сигнал. А это соответственно приводит к неправильному обучению нейросети, поскольку искажения могут неправильно трактоваться сетью. Более того, при сильных преобразованиях, а соответственно больших нелинейных искажениях, сеть может обучаться не на реальном входном сигнале, а на нелинейных искажениях, что может привести к неправильной работе и сливу.

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

Стохастик вносит нелинейные искажения


Стохастик вносит нелинейные искажения в нейросеть

Эти места отмечены на графике белым овалом. В первом случае цена идет вверх, а стохастик практически стоит на месте в своих максимальных значениях. Во втором случае цена практически стоит на месте, а стохастик резко идет вниз от максимальных к минимальным значениям. В первом случае стохастик будет неинформативен сети, а во втором случае будет просто «вводить ее в заблуждение». В обоих случаях поведение стохастика будет отрицательно сказываться как в обучении, так и на работе нейросети в реале. А это может привести к финансовым потерям.

Нужно отметить, что эти два примера являются достаточно заметными искажениям, которые человеческий глаз увидит сходу. А сколько искажений, которые мы не можем увидеть и проанализировать? Уверяю вас, очень много! И все эти искажения (и большие, и маленькие) складываются. Поэтому нужно осторожно относиться к предобработке входных данных.

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

- Как вы оцениваете результаты нейросети после тренировки или ТС после оптимизации? По каким критериям ставите их на работу на реале?

- В настоящее время я практически не беру в расчёт результаты ТС, которые получились на участке тренировки (оптимизации). Практически я рассматриваю результаты только на OOS или реале, поскольку считаю, что на периоде тренировки (оптимизации) результаты ТС ни о чём не говорят. Это может быть подгонкой или перетренировкой, а определить точно, подгонка это или нет, практически нет возможности. Помочь как-то определить это может только тест на OOS или, что ещё лучше, реале. Иногда просто сравниваю результаты на реале (OOS) и тренировки (оптимизации). Поэтому на иллюстрациях показаны эквити на реале с торговым плечом 1:1(загрузка депозита 1% при плече ДЦ 1:100). Если плечо увеличивать, то размах хода эквити, естественно, будет увеличиваться.

Вообще, я рассматриваю и анализирую результаты ТС только с торговым плечом 1:1, то есть с «выключенным» мани-менеджментом. Потому что мани-менеджмент может вводить в заблуждение относительно реальной просадки ТС и, соответственно, «неожиданного» маржин колла и других неприятностей. На рисунках вы можете видеть эквити как раз с торговым плечом 1:1.

Кстати, это та же торговая система, которая участвовала в Чемпионате 2008 года, только на данный момент времени, с несколько изменёнными параметрами.

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

- Со времен ATC 2008 прошло почти 2 года, многое успело поменяться. Какие выводы вы сделали для себя исходя из результатов того чемпионата? Почему ваш эксперт не смог попасть в число призеров?

- Чемпионат - это соревнование. А кто не рискует, тот не пьёт шампанского. Я рискнул – и превысил все возможные риски, исходя из своего мани-менеджмента. Поднялся в гору до 110 000, а затем, чего и следовало ожидать, из-за агрессивного мани-менеджмента упал до 14 749. За 3 месяца прибыль составила почти 50% - результат неплохой. Но просадка составила 92%, что неприемлемо в реальной жизни. Потом, прогнав свой советник с разумным мани-менеджментом за тот же период, я получил почти такой же результат в 14 000, но с просадкой около 25% - это уже хороший результат для реальной жизни. Вывод - не нужно гнаться за сверхприбылями, а то можно угореть. Но чемпионат диктует свои правила и, конечно же, нужно рисковать, чтобы выиграть.

Леонид Величковский

- Изменилось ли что-нибудь коренным образом в ваших разработках с тех пор? Может быть, наткнулись на какое-то ноу-хау и применили его на практике?

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

- Советник Александра Топчило, победивший в ATC 2007, состоял из трех независимых подсистем, однако сам автор собирался совершенствоваться в данном направлении и создать комитет нейросетей. А вы используете в собственных разработках комитеты, Леонид?

- Нет, от комитетов я отказался ввиду сложности их исполнения и сложности в обслуживании. Вообще, с годами я пришел к тому, что стал использовать более простые ТС. Так как сложная и навороченная ТС, да еще с комитетами, не дает гарантии более стабильного и значительного профита в сравнении с более простой системой.

- Автор единственного мультивалютного эксперта, который вошел в число победителей ATC, Николай Косицин считает, что правила грядущего Чемпионата благоволят мультивалютникам и оставляют мало шансов одновалютникам. Используете ли вы в собственных разработках мультивалютность? На каких парах торгуют ваши советники?

- Разумеется, использую – без этого никуда. В торговле это позволяет хеджировать сделки и получать более плавную эквити, а в анализе – делать более стабильные и надёжные во времени торговые системы. На Чемпионате планирую торговать на EUR/USD, USD/JPY и AUD/USD - посмотрим, как будет складываться ситуация на рынке ближе к соревнованию.

- Спасибо за интервью, Леонид. Желаю удачи на Чемпионате!