Перейти к содержанию

Кевин Дейви


88

Рекомендуемые сообщения





Кевин Дейви: Разработка систем, лучшие стратегии, правильный бэктестинг




Кевин Дейви – приверженец алгоритмической торговли, автор книги «Building Winning Algorithmic Trading Systems» и трехкратный призер (и однократный чемпион) соревнования World Cup Trading Championships. Это – чемпионат протяженностью в год, для участия в котором требуется реальный депозит, размер которого должен составлять от $3500 до $10000 в зависимости от выбранной дисциплины. В этом интервью Кевин в подробностях расскажет обо всех этапах своего процесса разработки автоматических торговых систем и поделится парой интересных техник («проверка обезьяной») и необычным тестом, которому он подвергает свои системы после завершения процесса разработки. Интересного чтения!

Ссылки: подкаст, YouTube


***



Привет, добро пожаловать в пятый выпуск подкаста Better System Trader! Наш сегодняшний гость занимается разработкой, анализом, тестированием и созданием торговых систем уже более двадцати пяти лет. Торгует он все фьючерсные рынки, начиная от E-Mini S&P 500 и нефти и заканчивая кукурузой и какао. Он занял на соревновании World Cup Trading Championship в 2005 и в 2007 второе место, а в 2006 – первое, при этом каждый год он демонстрировал доходность, превышающую 100%. Сейчас Кевин Дейви зарабатывает на жизнь трейдингом, торгуя на личные средства, и периодически занимается обучением небольших групп трейдеров, совершенствуя их торговые навыки. Кроме того, он является автором книги, посвященной разработке алгоритмических торговых систем, которая упоминалась во многих других книгах и журналах.

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

***



— Спасибо, что пришли, Кевин, ценю это!

— О, никаких проблем, Эндрю!

— Думаю, для начала стоит обсудить вашу предысторию! Мне кажется, начало вашего пути выдалось достаточно интересным, как, впрочем, и то, к чему этот путь вас привел. Не могли бы поделиться с нами этой историей?

— Конечно! Началось все с рекламного листка в моем почтовом ящике. Там рассказывалось, как это здорово – торговать на товарном рынке! Что там можно заработать кучу денег… Хоть этот курс и оказался для меня бесполезным, я все же попался на крючок! В течение следующих нескольких лет все свободное время я посвящал торговле. Как и все, я успел перепробовать множество разных систем и подходов. Стратегия приносит убытки? Я забрасывал ее и пробовал прямо противоположный подход! При этом я, бывало, так завышал риски, что мне приходилось в обеденный перерыв сбегать с работы, ехать в банк и переводить деньги на счет своему брокеру, чтобы не получить маржин-колл. В общем, за эти годы я успел натворить немало глупостей!

Но со временем я начал подходить к этому делу более разумно. Так как по образованию я инженер, трейдинг стал для меня игрой чисел. Я пытался разобраться, какие тесты можно провести для того, чтобы доказать работоспособность определенных идей. Так я увлекся тестированием стратегий на истории! Конечно, вначале это приводило к тем же печальным результатам, потому что тесты я делал некорректно, разрабатывать торговые системы я тогда еще не умел, да плюс ко всему я занимался чрезмерной оптимизацией, старался учесть слишком много переменных, используя при этом недостаточное количество рыночных данных. Ну, и так далее в том же духе! Так что на то, чтобы понять этот процесс, у меня ушло не так уж мало времени.

Тем не менее, мне все-таки удалось придумать идею для системы, достойную того, чтобы принять участие в международном соревновании по трейдингу. Оно длилось год, торговля велась на реальные деньги. Мне удалось делать более чем по сто процентов в год на протяжении трех лет. Два раза я занимал второе место, один раз – первое. Это придало мне немало уверенности в том, что я действительно научился торговать! Ведь я получал по сто процентов в год в течение трех лет.

Ну, а дальше все сложилось вот как… Я работал в аэрокосмической отрасли, а торговлей занимался в свободное время. Но мою компанию выкупила более крупная фирма. Это дало мне возможность уволиться, имея при этом в запасе приличное количество сбережений, и попробовать пожить жизнью трейдера. Так я с тех пор и живу! Занимаюсь трейдингом на полную ставку уже, получается, шесть-семь лет. Разрабатываю системы, время от времени помогаю другим трейдерам, но в основном просто торгую на своем собственном депозите.

— Вау, очень вдохновляющая история! На пути к цели вы преодолели немало препятствий! Вам пришлось столкнуться с распространенными проблемами трейдеров-новичков, но вы смогли решить их и добиться победы на World Cup Trading Championship. Это очень впечатляет!

— О, спасибо! Да, я очень рад, что справился! Ведь, думаю, практически всем, кто занимается торговлей в свободное время, свойственно мечтать о том, что рано или поздно они смогут зарабатывать на жизнь одним только трейдингом. На эту тему даже есть книга, «Live the Dream» или типа того. Мне очень повезло, что я с этим справился. Это просто прекрасно, когда ты занимаешься чем-то, что действительно любишь, и вдруг получаешь возможность зарабатывать этим себе на жизнь и не отвлекаться ни на что другое!

— Да, здорово! Похоже, что дела у вас начали идти в гору как раз тогда, когда вы занялись самостоятельной разработкой алгоритмических торговых систем, постарались научиться правильно проводить бэктесты и так далее. Вы даже написали великолепную книгу «Building Winning Algorithmic Trading Systems». Я ее прочел, она мне очень понравилась! Хотелось бы поговорить на тему вашего процесса разработки стратегий и обсудить некоторые идеи, представленные в вашей книге.

— Окей, конечно!

— В книге вы рассказывали о том, что постановка целей играет большую роль. Именно с этого и начинается процесс разработки. Почему вы считаете, что это важно?

— Часто бывает, что люди начинают заниматься трейдингом со значками долларов в глазах. Они хотят разбогатеть, заработать кучу денег… Такое отношение во многом поощряет сама индустрия. Или, лучше сказать, не вся индустрия, а определенные ее фракции… Торговля на небольших депозитах, завышенные риски – все это поощряется. И людям начинает казаться, будто они могут сделать хоть 1000%. Их внимание уводится в сторону зарабатывания денег, и они упускают идею о том, что у трейдинга есть и обратная сторона – неизбежные просадки. Такие люди приходят в трейдинг, ожидая гигантских прибылей, но это – совершенно нереалистичные ожидания.

Потому я и считаю, что постановка реалистичных целей – это очень важно! Ведь если вы стремитесь делать по 1000% каждый год, но на практике у вас этого не выходит, то вы начнете хитрить, срезать углы, проводить на бэктестах чрезмерную оптимизацию, чтобы получить более высокую доходность… Но в реальности большей прибыли это не принесет, картинка будет красивее только на бэктестах. Есть, конечно, и люди, не обладающие нереалистичными ожиданиями, но тут возникает другая проблема: у большинства из них ожиданий или целей нет вообще! Они думают: ну, я просто буду торговать и все. Но я обнаружил, что правильная постановка целей – это ключевой момент.

Впервые я применил эту идею на практике как раз тогда, когда собирался принять участие в соревновании по трейдингу. Я подумал, что нет смысла участвовать, не обладая шансами на победу. И решил изучить таблицы победителей и их доходностей за предыдущие годы! Я сделал следующий вывод: если я смогу создать систему, которая имеет неплохие шансы на то, чтобы сделать за год 100% прибыли, то, вероятно, я смогу попасть в топ-3 или даже занять первое место. Мне удалось разработать торговую систему, учитывая эту цель.

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

— Это интересно! Действительно, мне кажется, что многие занимаются разработкой торговых систем, не задумываясь ни о чем, кроме доходности. Любопытно, что вы указали на то, что есть и другие цели. Это стоит учитывать! А после того, как мы разобрались с целями… Какие еще факторы нужно учесть перед тем, как начать разработку?

— Ну, если вы поставили цели, значит, вы уже представляете себе свою доходность и допустимую просадку. Следующий важный шаг – выбрать торговый инструмент. Может, золото, может, нефть. А дальше нужно разработать торговую идею, протестировать и посмотреть, что получится! Со временем, когда вы уже создадите достаточно стратегий, вы будете хорошо себе представлять, что ищете. Но в начале, конечно, будет казаться, что вариантов масса. Берите любые инструменты, пробуйте на них свои идеи – и смотрите, что получится! Вы обнаружите, что одни рынки немного более дружественны к трейдерам, чем другие. Но это зависит и от того, к какому подходу вы склоняетесь. Свинг-трейдинг? Дейтрейдинг? Определившись, вы сузите круг поисков.

— Думаю, справедливо будет сказать, что есть два основных подхода к разработке стратегий. Можно создать либо такую систему, которая будет работать на множестве инструментов, либо такую, которая специализируется только на одном рынке. Какова ваша точка зрения на этот счет, в чем заключаются преимущества и недостатки каждого из этих подходов?

— Ну, для участия в соревнованиях я создал систему, торгующую тренды, и применил ее на 8-12 рынках. Одна и та же система, отличались только параметры. Раньше я делал так! Но теперь я изменил свой подход. Сейчас я создаю системы, заточенные под конкретные рынки. А закончив разработку, я могу попробовать применить их и на других рынках, если они покажут хорошие результаты. Но при разработке я не руководствуюсь принципами типа «если ты создаешь систему, которая умеет торговать E-mini S&P 500, то она должна уметь торговать и другие индексы, например, E-mini Russell 2000». Или Nasdaq, или Dow… Есть разработчики, которые выдвигают подобные требования своим системам. Я – нет. Конечно, всегда приятно обнаруживать, что система с узкой специализацией хорошо торгует и другие рынки. Но по своему опыту могу сказать, что часто рынки имеют множество различий! К примеру, те же S&P 500 и Russell. И то, и другое – это индексы рынка акций. Они неплохо коррелируют! Но каждый обладает собственными свойствами, из которых можно извлечь прибыль, и то, что работает на одном, вовсе не обязательно будет работать и на другом. Так что сейчас при разработке я в первую очередь сосредотачиваюсь на системах, заточенных под конкретные рынки. Но если обнаруживаю, что какая-то система хорошо себя показывает сразу на многих, я, конечно, это использую!

— Ясно, отлично, спасибо, Кевин! Итак, мы определились с целями, выбрали рынок, торговые идеи у нас есть. Каков следующий шаг процесса разработки?..

— Следующий шаг – провести предварительные тесты! Чтобы определить, «годна» ли система или нет. Скажем, у нас есть стратегия с каким-нибудь простым входом и простым выходом по тейк-профиту или стоп-лоссу. Нам нужно понять, рабочая ли это система или нет. И тут, как мне кажется, не стоит тестировать идею на всем доступном наборе данных, потому что в этом случае очень легко угодить в ловушку оптимизации, подгонки, добавления правил. Так что если я обычно тестирую стратегию на отрезке истории в десять лет, то для начала я проведу предварительный тест, взяв отрезок длиной только лишь в год или два. Проверю идею, может, проведу небольшую оптимизацию, подправлю правила, чтобы посмотреть, способна ли эта система торговать в плюс на этом отрезке данных. Если может, – я перехожу к следующему шагу. Если нет, – это может означать, что либо сама идея не очень хороша, либо этот отрезок длиной в 1-2 года не является для нее подходящим. Из-за этого мне пришлось отсеять несколько хороших систем, но в целом я все же считаю, что такие идеи плохо себя показали бы и на всем отрезке длиной в 10 лет. Предварительное тестирование – это что-то типа инструмента для отсева плохих идей. Ведь если говорить откровенно, то большинство идей, придуманных вами или описанных в книгах, журналах, интернете, не в состоянии без правок показать хорошую работоспособность на больших временных отрезках. Хоть они и могут быть хорошими отправными точками для ваших собственных исследований, но все же отсеивать мне приходится куда больше идей, чем утверждать.

— Торговые системы имеют множество составляющих: вход, выход, таймфрейм, рынок и так далее, и изменение даже одной из них может оказать огромное влияние на итоговый результат. Как вы тестируете системы, учитывая сразу столько переменных?

— Ну, обычно я делаю так… Как правило, рынок, под который я буду разрабатывать торговую стратегию, я знаю с самого начала, так что эту переменную мы можем отбросить. Скажем, я хочу разработать систему для торговли золотом. Просто ради примера! Как правило, я уже сразу представляю себе и таймфрейм, знаю, что это будет за система – свинг-трейдинговая или внутридневная. Так что круг сразу сужается до двух-трех таймфреймов, к примеру, до часового, четырехчасового и дневного. Я не тестирую все доступные таймфреймы, надеясь, что какой-то из них сработает. Обычно я использую более общий подход и тестирую только H1, H4 и D1.

Следующий тест – варианты входов. Часто бывает, что какая-то идея для входов у меня уже есть. Скажем, какая-то система торговли прорывов. Я протестирую ее с обычным стоп-лоссом – просто чтобы посмотреть, работает ли она! А выход можно сделать после определенного количества баров. Может, я увижу, что вход не такой уж и плохой! Что у него есть какое-то преимущество на отрезке в 5-6 баров, а после, может, преимущество уже не очень. Взглянув, как система ведет себя на этом небольшом временном отрезке, я могу придумать вариант выхода получше, а заодно и отточить вход. Но к тому времени, как я перейду к следующему шагу, к более детальному тестированию, я буду уже хорошо себе представлять и систему, и таймфрейм, на котором она будет торговать.

— А какие показатели вы используете для того, чтобы оценить работоспособность стратегии?

— Ну, это зависит от того, что именно меня интересует! Скажем, я тестирую какой-то вид входов. Если я хочу определить, есть ли в нем смысл, то тут есть пара вариантов… Во-первых, можно не учитывать комиссии и просто стремиться к более точным входам, чем 50/50. Потому что 50/50 – это ведь полностью случайный вход, с тем же успехом можно кидать дротики в стену, попадая в случайные числа. Нужно что-то с винрейтом больше 50%. Конечно, это зависит от количества сделок, но обычно я ориентируюсь на показатель в 55%, 60%. Если мне удается достигнуть такого винрейта на протяжении большого количества сделок, значит, есть шанс, что в плане входов я двигаюсь в верном направлении.

Есть и другой подход. Может, вам плевать, как часто вы оказываетесь правы, но вот когда вы правы, – вы хотите быть по-настоящему правы! В том смысле, что у вашей системы может быть много ложных сигналов, но прибыльные сигналы с лихвой покрывают убытки. В этом случае при тестировании я учитываю комиссию, проскальзывания и так далее. Когда я провожу итерации на ограниченном участке истории, я стремлюсь к 70% прибыльных вариантов. Что я под этим подразумеваю? Скажем, я имею систему со входами на прорывах и с выходами через определенное количество баров. Я тестирую значения от 10 до 50 баров с инкрементом 5. Получается 10-11 вариантов выходов. Мне бы хотелось, чтобы после вычета всех комиссий 7-8 из них показывали хоть какой-то профит. Во-первых, это будет означать, что вход надежен, ведь он работает на широком диапазоне вводных значений. Во-вторых, это будет означать, что в этих входах вообще есть смысл! В противоположном случае… Скажем, я провел этот тест и получил отрицательные результаты – либо все, либо по большинству вариантов... Это – показатель того, что этот конкретный вид входа не так уж хорош. Приходится откладывать его в дальний ящик стола!

— Продолжая тему тестирования… В своей книге вы упоминали такой подход, как «проверка обезьяной» (monkey test). Можете рассказать нам о нем?

— Ну, в его основе лежит идея из одной старой книги… Когда-то проводился такой опыт, обезьян пытались обучить выбирать акции для инвестирования. И ученые сделали вывод, что иногда у них получается весьма неплохо! Но ведь обезьяны не понимают, что происходит, так что это – случайный тест. Иногда я сам провожу тесты, используя случайные входы или выходы. К примеру, я могу взять стратегию со входами на прорывах и протестировать ее со случайными выходами после какого-то количества баров. Это позволяет получить неплохое представление о том, насколько хороши или точны ваши входы. Можно так делать и не на выходах, а на входах: открывать сделки случайно, тестируя таким образом качество вашей стратегии выхода. Так что иногда я использую этот подход, чтобы посмотреть, насколько хороши мои входы или выходы. Благодаря этому я отсеял немало систем, ведь если ваши входы или выходы сопоставимы по прибыльности с рандомными, вероятно, вам стоит поработать над ними еще немного.

— Да, это – очень интересная техника для проверки определенных компонентов стратегии! Спасибо, что поделились ею с нами! В книге «The Universal Principles of Successful Trading» дается ссылка на вашу цитату: «В моем представлении успешный трейдинг – это применение принципа бритвы Оккама». Расскажете, что это такое и как применять его в трейдинге?

— Да! Уильям из Оккама – это монах, живший, кажется, в 13 или 14 веке. Он и придумал этот принцип! Если у вас есть выбор между простым ответом и сложным, – как правило, простой ответ лучше. В этом и заключается принцип бритвы Оккама. Могу привести пример, понятный всем, у кого есть дети. Вы входите на кухню и видите на полу разбитый стакан. Простой ответ – стакан разбили дети. Но вы можете спросить их, что случилось, и они вам расскажут, что достали стакан, поставили на стол, и тут вдруг в дом вбежала собака, напугала их, запрыгнула на стол, смахнула стакан – и убежала. Это – сложный ответ. Как вы думаете, какой из ответов верен? Наверное, простой! Так что при прочих равных простой ответ, как правило, является лучшим вариантом.

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

— Спасибо, отличный совет! Скажем, наша система прошла все предварительные тесты. Что делать дальше?

— Следующий шаг – углубленное тестирование. Тут есть множество подходов! Я использую то, что называется форвардным тестированием (walk-forward testing). Это – один из видов тестирования вне пределов выборки (out-of-sample), при нем вы получаете результаты, которые не были оптимизированы на тех данных, на которых производилась оценка системы. По сути, так форвардное тестирование и работает. Чего делать не следует, так это проводить полную оптимизацию, получать какие-то хорошие результаты – и думать, что так же все будет хорошо и на реальных рынках. Само собой, результаты тестирования будут хорошо выглядеть, – ведь они оптимизированы! Но между реальным миром и оптимизированными результатами мало общего. Так что я считаю, что стоит проводить именно тестирование вне пределов выборки, при котором вы можете оценивать систему и менять параметры, опираясь не на те данные, на которых вы ее тестируете. Это, по-моему, ключевой пункт в процессе разработки торговых систем.

Предположим, вы закончили предварительное тестирование и поняли, что у вас что-то есть! Теперь стоит провести подробное тестирование на всех данных. И тут есть один нюанс… Если система плохо себя на них показывает, то вам, вероятно, лучше забросить эту идею, перейти к следующей. Чего точно делать не следует, так это возвращаться, вносить кучу модификаций – и тестировать снова. И снова, и снова… Потому что в этом случае ваши данные «вне пределов выборки» превратятся в «данные в пределах выборки». Ведь вы провели столько тестов! Так что… Тестировать лучше только один раз. Бывает, что иногда я провожу 2-3 теста, но при этом я вношу в правила системы лишь незначительные уточнения.

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

— Ясно! Вы сказали, что используете при создании стратегии форвардную оптимизацию. Значит ли это, что периодически стоит проводить и реоптимизацию стратегий и в ходе реальных торгов?

— Да! Я подхожу к этому так.. Скажем, я провожу форвардное тестирование… Сейчас, очевидно, у нас недостаточно времени, чтобы углубляться в эту тему, но если вы тестируете и проводите оптимизацию, например, на отрезке в четыре года, то использовать эти параметры вам стоит, скажем, один год. А значит, вам стоит проводить реоптимизацию стратегии каждый год, используя при этом данные за последние четыре года. Мой подход таков: неважно, что я тестирую, но если для проведения оценки я использую окно величиной в один год, значит, то же самое мне стоит делать и тогда, когда я начну торговать по этой стратегии на реальном рынке. Если бы я мог показать вам список своих стратегий, вы бы увидели, что, кроме прочего, в нем указано и то, когда мне в следующий раз нужно провести оптимизацию, точнее, реоптимизацию. Она запланирована у меня заранее! Я не кидаюсь проводить оптимизацию каждый раз, когда доходность стратегии начинает падать. Нет, я придерживаюсь расписания, которое устанавливается еще на этапе разработки системы.

— А бывает такое, что вы решаете обойтись без использования форвардного анализа?

— Да, у меня есть несколько систем, которые я не подвергал форвардному анализу. Хороший пример таких стратегий – те, в которых нет параметров, которые можно было бы оптимизировать. Еще бывают такие системы, которые очень тяжело тестировать. Скажем, я торгую еще и на рынке опционов, а провести оценку и тестирование опционных стратегий практически невозможно. Так что в них форвардное тестирование я не использую. А еще иногда бывает, что я провожу форвардное тестирование с оптимизацией, а параметры остаются точно такими же! Хоть я их и не ограничивал. И получается, что в форвардном тестировании не было необходимости, раз уж система прошлась по всей истории, но параметры остались неизменными. Так что бывает и такое, что форвардный анализ не оказывает влияния на систему!

— Это интересно, спасибо! Итак, мы дошли до этапа, на котором мы имеем стратегию, показавшую удовлетворившие нас результаты. Что делать дальше?

— Дальше я обычно запускаю симуляцию Монте-Карло! Эта и подобные ей симуляции добавляют в результаты тестирования рандомность, проводят стресс-тест. Почему стоит их использовать? После проведения форвардного тестирования вы получаете кривую эквити, которая показывает, как система торговалась бы на отрезке в последние 5-10 лет. Показывает профит, просадку... Но проблема в том, что это – всего лишь история! Вы не можете знать, как система поведет себя в будущем.

Есть такая старая поговорка – самая худшая просадка у вас еще впереди. Так что если на истории ваша просадка не превышала, скажем, пять тысяч долларов на контракт, это не означает, что точно так же все будет и в будущем. Вы можете получить просадку и в 7 000, и в 10 000.

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

— Сколько же симуляций Монте-Карло нужно провести, чтобы составить представление о работоспособности стратегии?

— Обычно я провожу около 5 000 симуляций. Это количество дает мне сравнительно стабильные результаты. 5 000 симуляций нескольких лет торговли! Скажем, мы берем один год истории и 20 сделок. Я провожу тестирование, получаю линию эквити, значения просадки. Это – первая итерация. А далее мы снова возвращаемся к началу, проводим двадцать сделок в другой последовательности, получаем второй набор результатов, это – вторая итерация. И так далее! Пока не наберется пять тысяч. А дальше нужно провести анализ полученной статистики. Медианная просадка, медианная рентабельность, вероятность слива депозита. Эти переменные я и отслеживаю! А что насчет количества симуляций… 5 000 – хорошее число, по крайней мере, его оказывалось достаточно для тех систем, с которыми я работал. Конечно, результаты симуляций будут отличаться от результатов реальных торгов, но все же в целом они будут достаточно схожи.

— А какой размер позиций вы обычно используете при проведении симуляций Монте-Карло?

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

— Ясно, спасибо! Давайте на этом закончим тему симуляций Монте-Карло. Итак, мы поставили цели, разработали торговую идею для нашей стратегии, провели предварительное тестирование, остались довольны результатами, провели углубленное тестирование с использованием форвардного анализа, если это возможно, и завершили симуляции Монте-Карло, чтобы проверить надежность стратегии. Теперь можно переходить к торговле?

— Можно, но я этого не рекомендую! Причин этому несколько. Во-первых, сколько раз такое бывало, что вы брали систему, проводили все тесты, думали, что все выглядит прекрасно, на следующий день начинали по ней торговать – и сразу получали просадку? Неделю или две торговали в минус, впадали в депрессию и выключали систему. Многим из нас приходилось с этим столкнуться! Мне-то точно, знаю наверняка!

Другая проблема – разрабатывая систему, приходится преодолевать немало сложностей. Из-за чего у вас может появиться определенное чувство привязанности к ней, ведь вы потратили на нее свое время, успешно провели ее через все этапы разработки... Нередко это приводит к появлению эмоциональной привязанности. Звучит странно! Но ведь и правда – вы полны надежд, что система принесет вам деньги, и вам очень хочется, чтобы она достигла успеха.

Я обнаружил, что эмоциональная привязанность плохо сказывается на трейдинге и тогда, когда дела идут плохо, и даже тогда, когда дела идут хорошо! Очень вероятно, что она окажет не лучший эффект на качество принимаемых вами решений. Скажем, система показывает отличную доходность, и вы начинаете наращивать торговый лот чересчур агрессивно, потому что думаете: «Да, это – оно! Это – та самая система, которую я пытался разработать десять лет!». То есть вы испытываете чрезмерную уверенность. И противоположный пример – система попадает в просадку, и хотя все показатели кричат «прекращай торговлю!», вы по-прежнему чувствуете привязанность к системе, ведь вы потратили на нее столько времени и сил. Вы хотите, чтобы она достигла успеха, оставляете ее в рынке… А она продолжает сливать до тех пор, пока вы не лишитесь депозита.

Так что вместо того, чтобы пускать систему в работу сразу после завершения тестов… Я откладываю ее в сторонку. Причем на несколько месяцев – примерно от шести до двенадцати. И раз в месяц я возвращаюсь к ней – и провожу бэктест, анализируя, как она справлялась бы, если бы торговала в течение этого месяца. Тут, очевидно, очень важно провести тестирование так, чтобы условия максимально совпадали с рыночными. Что я под этим подразумеваю? Если вы разработали систему, но не учли проскальзывания, то есть если вы предположили, что всегда будете покупать по цене bid и продавать по цене ask, – то реалистичных результатов бэктестов вы не получите. Даже если вы будете проводить бэктесты хоть каждый день! Так что вы должны быть уверены в том, что результаты тестов можно будет повторить и в реальном времени. Это – ключевой фактор! Когда вы разрабатываете первые свои системы, сделать это тяжело, ведь вы просто не знаете, как это делается! Но когда вы с этим справитесь и увидите, что ваши реальные результаты совпадают с результатами бэктестов… Вы почувствуете уверенность: да, мне действительно стоит использовать именно этот тип ордеров, да, именно такие проскальзывания мне стоит учитывать.

Предположим, что вы все это знаете и умеете. Тогда вам нужно просто отслеживать, как система торговалась бы на текущем рынке. Я делаю это раз в месяц, а после шести месяцев я сравниваю эти результаты с теми, которые я получил ранее в форвардном тестировании. И если результаты получаются сопоставимые, то я начинаю рассматривать возможность запустить эту систему в работу!

Зачем все это нужно? Во-первых, это позволяет избавиться от эмоциональной привязанности, ведь шесть месяцев спустя память о трудах и мучениях, связанных с разработкой системы, ослабнет, а вместе с ней ослабнет и эмоциональная привязанность. Система станет для вас просто системой – и ничем более. И это хорошо! А другой плюс – бывает, что доходность уходит в минус сразу в самом начале… Иногда вы все-таки неосознанно преувеличиваете оптимизацию или подгоняете параметры, и когда начинаются реальные торги, это обязательно всплывает наружу, и ваша кривая эквити страдает. Ожидание длиной в несколько месяцев поможет вам избавиться от многих плохих систем! А те, что у вас останутся, – они на деле докажут, что в состоянии работать на реальных рынках. Что очень приятно!

— Как много ваших стратегий проваливают это испытание?

— Сначала их было немало! Но со временем их становилось все меньше и меньше. Я как раз провел недавно для своих учеников небольшое исследование на эту тему. Я взял 30 систем, которые я разработал за последние пять лет. Большинству из них было от 3 до 5 лет, то есть разработаны они были достаточно давно. Я установил критерий, без которого не стал бы допускать систему до реальных рынков после завершения процесса разработки.

И обнаружилась пара любопытных моментов! Во-первых, если бы я запустил в работу все 30 стратегий, – получился бы сравнительно неплохой результат! Работая как портфолио, системы сделали бы приличные деньги. Но приличной оказалась бы и просадка! Добавив критерий, тот самый тест от шести до двенадцати месяцев, я исключил из портфолио около 10-11 систем, то есть примерно треть. Очень интересно, что доходность получилась сопоставимая! Но просадки сократились почти вдвое! Плюс ко всему получалось, что систем у меня было на треть меньше, а значит, требования к марже и к размеру депозита были ниже. Что здорово повысило рентабельность портфолио!

Такая вот получилась наглядная демонстрация того, что прежде чем пускать систему в работу, имеет смысл подвергнуть ее еще паре дополнительных тестов! Вы можете подумать, как же так вышло, что мне пришлось отсеять целых 10-11 систем? Что ж… Остается только удивляться тому, насколько легко создать систему, которая кажется достойной, но в реальном рынке начинает просто разваливаться на части. Бывает, добавляешь слишком много правил, бывает, после форвардного тестирования решаешь провести еще парочку, хоть этого делать и не стоит, бывает, при оптимизации проводишь чересчур много итераций... А бывает, что просто рынки меняются!

К примеру, в своей книге я описал стратегию торговли по евро. Вначале она показывала весьма неплохую доходность! Но потом волатильность евро опустилась до исторических минимумов – и даже ниже. Выходит, я торговал по своей системе в условиях, которых ранее не бывало! И на которых я, определенно, никогда не проводил тесты этой системы. Естественно, ее доходность упала, она начала сливать. Это тоже можно использовать! За этот период длиной в 6-12 месяцев вы можете заметить, что рынки изменились. Что отразится и на доходности! Как я выяснил, о таких вещах куда приятнее узнавать до того, как вы начинаете торговать на реальных деньгах. Даже если это означает, что вам придется сбросить со счетов больше систем, чем вам хотелось бы… Но в итоге ваше портфолио систем все-таки будет выглядеть лучше.

— Да, определенно! Этот шаг звучит разумно, действительно, стоит включить его в процесс. Получается, вы торгуете с помощью портфолио систем, отслеживая при этом и другие стратегии на предмет возможного их добавления в будущем. Как вы решаете, когда имеет смысл внести изменения в портфолио, добавить или убрать из него систему?

— Думаю, это два разных вопроса! Очевидно, если ваша кривая эквити растет, есть два варианта. Можно добавить в портфолио новые системы, а можно просто увеличить размер позиций. Что выбрать – это вопрос скорее философский! Есть трейдеры, которые используют в торговле всего пару систем, но размер позиций у них огромный – 10, 20, 50 контрактов. Если чувствуете уверенность в своих системах, можете поступать так же. Но лично я предпочитаю противоположный подход! Я исхожу из предположения, что каждая прибыльная система рано или поздно ломается, перестает хорошо работать. Так что мне больше по душе не наращивать размер позиций, а добавлять новые системы! Я делаю это по мере роста депозита примерно раз в один-два месяца. Я смотрю на свой список систем на «испытательном сроке» и думаю, какая из них в данный момент лучше всего впишется в портфолио. И готова ли она к этому! Если готова, и ее доходность совпадает с моими целями, – тогда я ее добавляю. Вот так я по чуть-чуть и увеличиваю свое портфолио систем! Добавляю по одной стратегии каждый месяц-другой.

Другое дело – системы, которые недорабатывают. Конечно, тут существует множество сложных вариантов! Знаю, многие отслеживают величину просадки. Например, трейдер проводит тестирование, выясняет, что максимальная просадка у системы на истории составляет десять тысяч долларов. Стоит ей достигнуть этой просадки в реальной торговле, – они ее сразу выключают. Но подходов, конечно, масса! Можно выдумать немало поводов прекратить торговлю.

Но я обнаружил, что сложность заключается не в том, чтобы выбрать какую-либо идею, – сложность в том, чтобы следовать ей! В самом начале, еще до того, как вы начинаете торговать по системе, вам стоит сказать: «Так, я считаю, что я знаю все нюансы этой системы, и она является прибыльной. Но когда я получу по ней шесть убыточных сделок подряд, я ее отключу, потому что на истории никогда не случалось более двух убытков подряд. Шесть убытков – повод задуматься, что с системой что-то серьезно не так, так что стоит прекратить по ней торговлю». Запишите это! Повесьте куда-нибудь, может, даже расскажите об этом своему партнеру по торговле или важному для вас человеку. Это усилит ваше чувство ответственности! И когда случится шесть убытков подряд, вы должны непреклонно и безжалостно остановить торговлю, как вы и записывали вначале. Худшее, что вы можете сделать, – это отклониться от установленного вами правила и начать принимать решения сгоряча. Но большинство людей именно так и поступают! И я тоже так делал. Да и до сих пор, бывает, иногда делаю (смеется).

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

— Окей, здорово, спасибо, что поделились этим с нами, Кевин! Думаю, нам стоит закончить тему разработки систем и перейти в завершение к более общим вопросам. Как вы думаете, какими навыками нужно обладать хорошему разработчику стратегий?

— Ну, очевидно, без навыков программирования не обойтись. Кроме того, вам нужно неплохо разбираться в своей торговой платформе. Как я всегда говорю: вы должны знать ее достаточно хорошо, чтобы уметь ее обмануть! И создать все эти прекрасно выглядящие бэктесты. Если вы знаете трюки, благодаря которым их можно добиться, значит, вы сможете и избегать их использования в реальной разработке. Еще вам нужны хорошие аналитические навыки. Вы должны понимать, с чем имеете дело, уметь определять хорошие и плохие подходы.

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

Так что дисциплинированность нужна и для того, чтобы следовать системе, и для того, чтобы пройти по всему процессу разработки. Как просто при этом сжульничать или срезать углы! Ведь большинство трейдеров работают в одиночку. А значит, никто вас не уличит! Никто не узнает, если вы где-то схитрите, проведете чрезмерную оптимизацию… Вот что я могу сказать на этот счет: не узнает никто, – кроме рынка. Рынок так легко выводит трейдеров на чистую воду, что становится даже страшно! И обыгрывает их в реальном времени. Так что дисциплинированность нужна и для разработки систем, и для того, чтобы потом торговать по ним.

— Расскажите о самом важном уроке, усвоенном вами из трейдинга!

— Это хороший вопрос! Наверное, самый важный урок – вам нужно быть настойчивым. Часто имеет смысл сосредотачивать свое внимание на конечной цели, а не на том, что происходит в данный момент. Что я под этим подразумеваю? Нередко бывает, что люди уделяют слишком много внимания ежедневным колебаниям своего депозита. И это просто сводит с ума! Вместо этого лучше сосредотачиваться на конечной цели.

Скажем, моя цель – 30% в год, или 50%, не важно. И я знаю, что для того, чтобы добиться ее, мне придется преодолеть просадку. Но лучше я сосредоточусь на конечной цели и займусь разработкой торговых систем, которые помогут мне ее достичь. Да, я знаю, что сейчас мне придется проехаться по кочкам и ухабам, но я удерживаю свой взгляд на горизонте. И если я все буду делать правильно, то со временем все сложится так, как надо. Так что в краткосроке бывает все очень плохо! Случаются дни просто с огромными убытками! Но это еще не значит, что весь ваш подход ошибочен. Так что сосредоточьтесь на конечной цели!

А другой урок – нужно быть настойчивым! Я об этом уже говорил. Может, все 50 ваших первых идей покажут на бэктестах кошмарные результаты. Но это не означает, что вам нужно бросать это дело! Это означает, что вам нужно продолжать работать, пока вы не сможете создать какую-то хорошую систему. Справившись с этим, разработать вторую вам будет намного проще! А дальше просто продолжайте разработку… Так что бросать нельзя! Это – второй урок.

— Отличный совет, спасибо! У вас есть любимая книга по трейдингу?

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

— Да, эта серия – классика! И последний вопрос: как наши слушатели могут связаться с вами?

— Проще всего, наверное, будет сделать это через мой сайт! Kjtradingsystems.com. Можете и просто загуглить мое имя «Kevin Davey» вместе с «trading», уверен, я буду в первых результатах поиска. А еще можно написать мне на почту, kdavey@kjtradingsystems.com. Если кто-то сидит на форуме Big Mike или TradeStation, – можете встретить меня и там! Мой ник – kevinkdog. Так что найти меня несложно! С удовольствием пообщаюсь как с трейдерами-новичками, так и с ветеранами. Буду рад ответить на ваши вопросы!

— Окей, спасибо большое, что поделились сегодня с нами своим опытом и знаниями, Кевин! Хотите сказать еще что-нибудь перед тем, как мы закончим?

— Нет, думаю, мы и так много всего успели обсудить! Надеюсь, достаточно много, чтобы люди почувствовали, что это – непросто. Это вполне возможно! Но это точно не просто. Если вы приметесь за это дело с настроем «да, потребуется время, чтобы всему научиться; да, потребуется время, чтобы добиться каких-то успехов», то у вас будет больше шансов с ним справиться. Не становитесь одним из тех людей, которые считают, что можно разбогатеть за один день. Как я люблю повторять, трейдинг – это самый сложный способ заработать легкие деньги!

— Фантастика (смеется)! Советую всем посетить сайт Кевина – kjtradingsystems.com. Там есть много информации, в том числе и ссылки на его работы и книгу «Building Winning Algorithmic Trading Systems». Это – ценный источник информации и для начинающих, и для опытных разработчиков, так что рекомендую к покупке! Спасибо, что уделили нам время, Кевин!

— О, спасибо, что пригласили, Эндрю! Ценю это!

— Пока!


==> Следующее интервью с Кевином Дейви



Переведено специально


для TradeLikeaPro.ru


Изменено пользователем ju.vskv
  • Лайк 16
  • Огонь! 1
Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...