Колка крепкого орешка
В сентябре D? совместно с разработчиком программного обеспечения TSLab и брокерской компанией «Алор +» объявил конкурс на лучший алгоритм для участия в Кубке ММВБ. В результате были выбраны три системы, разработчиком одной из которых является автор этой статьи. На Кубке ММВБ он выступает под ником VladimirN, его робот показал лучшие результаты из трех отобранных: добирался до 38-го места в общей турнирной таблице с доходностью 17%.
Владимир оказался человеком, не стремящимся к публичности. Он не хочет афишировать свое имя и отказался публиковать свое фото. Его история отличается от большинства тех, что мы публиковали в рубрике «Марафон трейдера». Это не история успеха, а рассказ о трудностях и неудачах, с которыми можно столкнуться на рынке. Впрочем, это не поражение, потому что Владимир Н., по его словам, все еще борется.
Уже и не помню, откуда узнал о торговле акциями, но зато отлично помню, как искал в своем городе брокера. Эта часть знакомства с рынком кажется мне довольно забавной. Дело было в 2005 году. Офис первой компании, предоставляющей брокерские услуги, я нашел в здании телефонной станции. Обстановка была странной. Первое, что привлекло внимание, это люди, сидящие в полумраке за компьютерами. В правом углу были две женщины лет 50 и о чем-то шептались. В левом — какая-то девушка. Прямо напротив входа спиной ко мне сидел низенький бородатый мужчина с заправленными в носки брюками. Ошибся дверью, подумал я, и уже собирался уйти, когда заметил, что у бородача на мониторе свечной график. Так вот они какие — трейдеры, подумал я. Ко мне подошла девушка. Бросились в глаза ее сильно потрескавшиеся губы и собранные в хвост немытые волосы. Оказалось, что она здесь работает, и я задал интересующие меня вопросы. Когда спросил про обучение, девушка, обрадовавшись, заявила, что обучит меня торговать максимум за полчаса. В это время бородач взял листок бумаги и начал водить им по монитору, я понял, что он прокладывает тренд, а бумага ему заменяет линейку, и быстро сделал ноги.
Офис следующей компании найти оказалось очень сложно. Это была обычная квартира в жилом доме, находящемся на окраине незнакомого мне района. На двери в подъезд висел листок бумаги с распечатанными на принтере логотипом брокера и стрелочкой, указывающей на окна первого этажа. Встречать меня вышел мужчина. Мы прошли внутрь «двушки», заставленной офисной мебелью и оргтехникой. Навстречу мне вышел другой очень приветливый мужчина, протянул руку, представился и, извиняясь, попросил снять перед дверью обувь. Я посмотрел на его ноги и увидел, что директор представительства крупной инвестиционной компании стоит передо мной в носках. Ковролин был не слишком чистым, но меня смущало не то, что я могу испачкаться, а сама нелепость ситуации. В ходе нашей беседы часто звонил домофон. Заходили новые люди, и все они ходили по офису в носках.
Я начал с торговли акциями на ММВБ в апреле 2005 года. Моим любимым инструментом были привилегированные бумаги Сбербанка : первое время получалось немного зарабатывать, торгуя их внутри дня. Тогда мне казалось, что я вижу все движения с точностью до рубля, но я не брал их целиком, потому что никогда не сидел в акциях подолгу. Я понимал, что прибыль от моих краткосрочных сделок гораздо меньше, чем та, какую я мог получить, держа акции подолгу, и это на меня сильно давило. Вообще, торгуя на фондовом рынке, постоянно испытываешь что-то похожее на чувство вины, а самобичевание в моем случае иногда доходит до немыслимых границ.
Однажды в момент сильного роста я с полным «плечом» за два дня поймал 20-процентное движение «префов» Сбербанка, но уверенность в своих прогнозах и появившееся желание брать движения целиком сыграли со мной злую шутку. Я поставил цель роста еще на 10% выше и не стал забирать прибыль, решив, что на этот раз нужно подержать позицию и взять все движение, переждав коррекции. За свою уверенность я был наказан: акция пошла против меня, и бумажная прибыль была быстро потеряна. Позже подхватил «Газпром» в районе 250 руб. и начал активно торговать. Я видел «хай» по бумаге в районе 360 руб. еще до того, как был достигнут уровень 300 руб., но после ошибки со Сбербанком потерял уверенность в себе, и хорошо заработать опять не получилось.
Ралли 2006 года закончилось, и начался длительный боковой тренд, который высосал из меня все силы и деньги. Я пытался играть позиционно, но у меня никак не получалось определить силу движений, и меня постоянно выносило по «стопам».
Во время начала падения 2008 года я имел неосторожность регулярно читать один трейдерский форум, что, как я думаю теперь, только мешало, поселяя внутри неуверенность в собственных идеях и нарушая понимание рынка. Помнится, задолго до общего снижения рынка начала валиться акция «Сургутнефтегаза» . Когда она стоила в районе 30–31 руб., я сделал технический прогноз на снижение бумаги до 18–19 руб. Этот прогноз настраивал меня на будущее «медвежье» движение всего рынка, и психологически я готовился к падению на 25–30%. «Сургутнефтегаз» я «зашортил» небольшим лотом и взял впоследствии что-то около 3 руб. с акции.
Хуже получилось со Сбербанком и «Газпромом», за начавшимся падением которых я внимательно следил. В самом начале снижения форумчане начали покупать акции «Газпрома» по 300 руб. в расчете на скорый отскок. Я поступил согласно их логике, купив акции Сбербанка по 100 руб., планируя после отскока войти в «шорт». Но на следующее утро случился сильнейший гэп вниз, бумага сильно подешевела, и буквально в течение двух дней цена дошла примерно до 75 руб., после чего так же быстро вернулась к 98 руб. Я посчитал это показателем дна и решил, что коррекция окончена. В итоге я просидел в «Сбере» до 65 руб., где и закрыл позицию.
Финальным аккордом в серии неудач стала история с ГМК «Норильский никель» : вышла какая-то ошеломительная новость, и аналитики предрекали бумаге поход к новым максимумам. Рынок к тому времени уже сильно просел, и мне виделась возможность отскока — я купил ГМК, и эта сделка привела меня к маржин-коллу.
Когда рынок достиг дна, у меня не было ни денег на счете, ни желания торговать. На РБК хоронили индекс РТС на уровне 500 пунктов и пили за его упокой. В голове был полный бардак. Когда широкое падение по всему рынку остановилось, а «префы» Сбербанка просели еще, до 8 руб. за акцию, ко мне начало приходить понимание, что это дно, но пользы оно не принесло: счет был обнулен.
До сих пор я не знаю, какую роль в обнулении моего счета сыграл околорыночный шум: обсуждения на форумах, прогнозы аналитиков, выступление гуру по РБК. С одной стороны, весь этот набор чужих мнений сильно мешает сформировать собственную позицию по рынку, с другой — оставаться в полной информационной изоляции тоже неправильно. Теперь я сильно урезал поток шума, и торговать стало комфортнее.
Спустя некоторое время после моего провала брокер увеличил комиссию на ММВБ, и я стал подумывать о FORTS с его гораздо более привлекательными условиями для торговли. Перешел на срочный рынок в июне 2009 года и поначалу там неплохо зарабатывал, торгуя руками, но потом увлекся алгоритмическим трейдингом и ушел в него с головой. Первые мои механические торговые системы (МТС), как потом выяснилось, были неплохими, но я все силы потратил на их усовершенствование. Сделал несколько систем, торгующих внутри дня, с неплохими результатами на истории. Однако после их запуска на реальном счете они начали сливать, и сливают по сей день.
В боевых условиях системы сливали, несмотря на то что форвардный анализ в обе стороны был хорошим. Теперь доверие к форвардному анализу у меня подорвалось, но делать его все равно нужно, потому что он отметает явно слабые системы, в которых есть сильная подгонка под историю. Я делаю форвардный анализ в обе стороны — и в будущее, и в прошлое. Выглядит это примерно так. Допустим, я имею историю по инструменту с января 2005-го по июнь 2010 года. Система оптимизируется на участке с января 2008-го по январь 2010 года, а потом с полученными параметрами прогоняется по тем участкам истории, которые не использовались для оптимизации. Таким образом, мы заглядываем как в прошлое, так и в будущее.
Первые же системы, как я уже сказал, впоследствии показали отличные результаты, но я ими не торговал. Считаю важным пояснить почему. Практика показала, что если система плохая, то в течение уже первых двух недель после оптимизации она начинает резко уходить в минус. Именно это произошло и с моими первыми роботами: они поторговали немного в плюс и начали сливать. Но впоследствии оказалось, что это была естественная просадка, за которой последовал сильный рывок доходности вверх. Интрадейные системы, разработанные мною позже, повели себя немного иначе: сначала доходность росла, что вселяло уверенность в их работоспособности, а потом начался слив. Чтобы избежать подобных недоразумений, теперь все свои новые системы я долго тестирую в реальных условиях. Это как новый роман для писателя: прежде чем нести его к редактору, произведению нужно дать отлежаться на полке.
Недавно посчитал общее количество скриптов, которые сделал за этот год, — набралось около 200. Из них, может быть, две-три системы сейчас показывают плюс, а все остальные ушли в мусорное ведро. Основная часть из них построена на трендовых стратегиях. На мой взгляд, большую роль играет таймфрейм, на котором строится система. На небольших таймфреймах работающие трендовые стратегии построить крайне сложно — наверное, по тем же причинам, по которым большинство трейдеров, торгующих руками внутри дня, сливают свои счета. Также у меня есть и высокочастотник, который я сделал из любопытства.
Кстати, такой огромный объем работы лично для меня возможен только в системе TSLab. Не имея опыта в программировании, я могу в течение дня смастерить несколько систем с помощью визуального редактора. Обычно это происходит так: меня осеняет какая-то идея, и, чтобы не потерялась нить, я начинаю сразу же переводить ее в скрипт. В МТС, которая получается в итоге, от первоначальной идеи может ничего и не остаться, так как идея оказывается нерабочей, но в процессе работы приходят новые мысли, и разработка продолжается постоянно.
Много говорится об универсальных системах вообще без оптимизируемых параметров, которые якобы должны подходить под любой инструмент и на любом таймфрейме давать стабильный доход. Я считаю это утопией, но если такая система когда-либо появится в ваших руках, никому не рассказывайте об этом и копите втихаря на остров, яхту или космический челнок.
Расскажу об одной из интрадейных систем, которая оказалась для меня интересной в плане ее конструирования. Она работает с фьючерсом на индекс РТС внутри дня, начинает работу в 10.31 и заканчивает в 23.42, полностью исключая утренние гэпы. Торгует и в «лонг», и в «шорт», используя для входа в позицию фильтр, основанный на EMA. Причем МТС может находиться одновременно в «шорте» и в «лонге», и каждая позиция будет отдельно вестись программой независимо от другой.
Получая сигнал, система входит в позицию сразу двумя отдельными частями. Для первой части создаются два условия на выход — это тейк-профит и стоп-лосс, то есть, ожидая заранее заданную доходность, допустим, 1000 пунктов, мы подстраховываемся «стопом», который по мере движения фьючерса в нашу сторону двигается вслед за ценой, держась на расстоянии (тралится). Третий «стоп» закрывает позицию по рыночной цене ровно в 23.42, независимо от размера прибыли или убытка.
Вторая часть позиции тралится большим стоп-лоссом, к примеру, 2000 пунктов. Таким образом мы защищаемся в случае бокового движения от частых выносов позиции, а в случае хорошего сильного движения стараемся держать позицию как можно дольше, подтягивая «стоп». В 23.42 эта часть позиции также закрывается по рыночной цене.
С точки зрения логики система мне кажется правильной (см. график 1). По кривой доходности (см. график 2) четко видно, до какого момента была сделана оптимизация (предпоследний максимум), а где система начала работать в реальности. В оправдание неудачи можно было бы сказать, что рынок поменялся, стал более волатильным, потому что система в некоторые дни все еще берет хорошую прибыль, но я поставил диагноз: система плохая, так как имеет слишком много условий и параметров — имеет место обычная подгонка под график.
Я стремлюсь к тому, чтобы алгоритм был для меня комфортным в плане понимания сделок. В обязательном порядке просматриваю не только график доходности, но и точки входа / выхода на большом промежутке времени. Особенно это касается оптимизированных систем. Иногда случается так, что некоторые параметры после оптимизации дают не самые высокие показатели доходности, но, глядя на точки, я понимаю, что этот вариант как раз то, что нужно.
На счет длительности истории, на которой имеет смысл тестировать системы, у меня однозначного мнения нет. Рынок меняется. На FORTS, к примеру, раньше утренние гэпы отображались на графиках в виде разрывов, теперь же это свеча от уровня закрытия прошлой сессии, кроме того, увеличилась длительность сессии, и, наконец, выросла волатильность внутри дня. Поведение инструмента меняется постоянно. Нужна ли оптимизация на истории двух-трехгодичной давности? Сомнительно.
Одно время я увлекся фильтрацией: вводил в алгоритм дополнительные условия, при выполнении которых сделка не совершалась. Самое простое — не «шортить» на растущем рынке и не покупать на падающем. Если свеча закрывается выше скользящей средней, допустим, ЕМА 50, то не «шортим». Этот простой фильтр при оптимизации очень хорошо сглаживает кривую доходности, но в реальных торгах он мне еще ни разу не помогал. В своих интрадейных скриптах я очень активно использовал тейк-профит. Но положительных результатов добиться с помощью него также не удалось. Вообще, экспериментируя с параметрами системы и используя дополнительные условия, я всегда стараюсь помнить о границе, которую переходить нельзя. Чем больше в систему вводится дополнительных условий, тем больше она подгоняется под историю.
Анализируя работу алгоритма на исторических данных, я особое внимание обращаю на поведение системы в длительных «боковиках» и на сильноволатильных участках, а также смотрю, как часто происходят сделки на утренних гэпах. Это очень важный момент: если такие сделки происходят часто, я отметаю систему сразу. Также значительную роль при тестировании играет размер проскальзывания. Сначала я ставлю более или менее реальное проскальзывание и смотрю результат, а после делаю краш-тест с большим проскальзыванием и наблюдаю, насколько сильно проседает график доходности и на каких участках.
Самое интересное, что при просмотре графиков работа алгоритмов мне кажется логичной и правильной. Я думаю, что вот здесь, так же как это сделала система, я бы вошел в позицию, а здесь вышел. Встречаются очень хорошие сделки: часто алгоритм продает на самой вершине, а покупает в самом низу, но при взгляде на кривую доходности становится грустно — там слив. Почти во всех системах у меня получаются очень хорошие входы, особенно в «лонг», а вот придумать, где и как выходить, очень сложно.
Сейчас я участвую в конкурсе ММВБ, используя МТС. После начала конкурса движение индекса очень сильно изменилось, я уже перепробовал кучу систем и до сих пор ищу подходы к рынку. На мой взгляд, срочный рынок ММВБ находится на хорошем этапе развития. Появилась нормальная ликвидность, и в плане арбитражных стратегий здесь можно найти интересные возможности, особенно работая с фьючерсом на индекс ММВБ. Стал очень быстрым «стакан», спреды небольшие.
В то же время я для себя отметил трудности в плане работы с МТС на этом рынке. Во-первых, история очень короткая, и на ранних этапах жизни фьючерсов ликвидность небольшая, а во-вторых — найти даже такую историю в удобном для меня формате крайне сложно. Кроме того, по утрам бывают просто нереальные гэпы: часто, прежде чем, например, свалиться вниз, рынок делает большой гэп вверх. Эти движения сносят напрочь любые «стопы».