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

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

MetaTrader 5Интервью | 19 августа 2010, 13:15
5 558 2
Automated-Trading
Automated-Trading

Интервью на 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 - посмотрим, как будет складываться ситуация на рынке ближе к соревнованию.

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

Последние комментарии | Перейти к обсуждению на форуме трейдеров (2)
Гребенев Вячеслав
Гребенев Вячеслав | 10 окт. 2012 в 20:03

Как здоровско у него рабочее место оборудовано!
Anatoli Kazharski
Anatoli Kazharski | 10 окт. 2012 в 20:15
Virty:

Как здоровско у него рабочее место оборудовано!

А бывает ещё и вот так :)

 

Фрактальный анализ совместного движения валют Фрактальный анализ совместного движения валют
Насколько независимы валютные котировки? Движутся ли они согласованно или информация о направлении движения одной валюты ничего не скажет о движении другой? В этой статье предпринята попытка разобраться в этом вопросе, используя методы нелинейной динамики и фрактальной геометрии.
20 торговых сигналов на MQL5 20 торговых сигналов на MQL5
В этой статье вы научитесь получать торговые сигналы, необходимые для работы торговой системы. Приведены примеры формирования 20 торговых сигналов в виде отдельных пользовательских функций, которые можно использовать в написании экспертов. Для вашего удобства все функции из статьи собраны в один включаемый mqh-файл, который легко подключается к будущему эксперту.
Как быстро написать советник для Automated Trading Championship 2010 Как быстро написать советник для Automated Trading Championship 2010
Для того чтобы разработать эксперт для участия в чемпионате Automated Trading Championship 2010, воспользуемся шаблоном готового советника. Данная задача будет по силам даже новичку в программировании на MQL5, т.к. для ваших стратегий уже разработаны базовые классы, функции, шаблоны. Достаточно написать минимум кода, чтобы реализовать свою торговую идею.
Прототип торгового робота Прототип торгового робота
Целью данной статьи является обобщение и систематизация принципов создания алгоритмов и элементов торговых систем. В статье рассматривается вопрос проектирования алгоритма работы эксперта, в качестве примера представлен класс CExpertAdvisor, который может быть использован для быстрой и удобной разработки торговых систем.