English
Интервью с Валерием Мазуренко (ATC 2011)

Интервью с Валерием Мазуренко (ATC 2011)

MetaTrader 5Интервью | 8 декабря 2011, 07:15
3 811 0
Automated-Trading
Automated-Trading

Интервью на Automated Trading Championship 2011 от 08.12.2011.

Задача написания эксперта, торгующего по нескольким валютным парам, является сложной как с точки зрения поиска подходящих стратегий, так и с технологической стороны. Но если поставить перед собой такую цель, то ничего невозможного нет. Четыре раза из года в год выставлял на Чемпионат мультивалютного торгового робота Валерий Мазуренко (notused), и на этот раз оказался как никогда близок к идеалу.

Мы не смогли с ним связаться в то время, когда его эксперт был в TOP-10, но интерес к нему не угас и после того, как он покинул первую десятку. Валерий рассказал нам свой рецепт приготовления мультивалютных советников.

Вы уже не первый раз участвуете в Чемпионате, изменилось ли что-то за эти годы?

Думаю, что ничего особо не меняется. Единственное, в этом году меньше дисквалифицированных за множественные регистрации. По поводу МТС - из года в год очень большая группа экспертов играет "на все" и надеется на удачу. Торговые предпочтения, как мне кажется, сменились в сторону более простых методов.

Простые методы - это хорошо или плохо?

Простые методы - это хорошо для всех, так как, например, советник на нейронных сетях далеко не все программисты потянут, и далеко не каждый трейдер сможет объяснить, что ему нужно от сети. Зато, условно, пару средних и статистически подобранный стоп/тейк потянут на несколько порядков больше трейдеров и программистов. Для чемпионата это тоже хорошо, т. к., если советник простой, то это привлекает внимание как опытных, так и начинающих трейдеров.

Лично я считаю, что "ядро" идеи должно быть простым. А далее уже возможны "навороты".

Вы всегда так думали или пришли к этому выводу с годами? Вы же получили математическое образование.

Я всегда так думал, а годы только подтвердили эту мысль. Математику в хорошем объеме я впервые применил на этом Чемпионате.

В первый раз вы выставили на ATC 2006 простого советника, а далее участвовали только мультивалютниками. Разве это простые методы?

На MQL4 натренировался писать мультивалютники, хотя это не очень простая задача. А с появлением языка MQL5 нет ничего проще, чем написать мультивалютного робота. Само по себе использование мультивалютного подхода не является сложным, на мой взгляд, конечно.

Участник ATC 2011 Валерий Мазуренко (notused)

В этом году ваш эксперт неплохо идет, это связано с тем, что вы назвали "применить математику в хорошем объеме"?

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

"Хороший объём" - видимо сильно сказано, ничего сложного, в общем-то нет, сама оптимизация советника заняла около месяца с участием MQL5 Cloud Network. При этом оптимизация проходила в несколько этапов.

Как я уже отмечал, в качестве метода управления капиталом было выбрано оптимальное F, а целевой функцией оптимизации - "фундаментальное уравнение торговли", как её называет Ральф Винс. Плюс небольшие трудности при соединении стратегий.

Вот в общем-то и вся математика. А в "хорошем объёме" - так даже в таком объёме мало кто осмысленно применяет математику.

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

Я бы лучше не смог сказать. Да, именно так. Простые торговые методы доступны каждому, а вот математику применить к результатам многие ленятся или не умеют.

Тогда что бы вы сказали о Мастере MQL5?

Честно говоря, ничего не могу сказать, т. к. не пользовался им по своим причинам. Я не доверяю Стандартной библиотеке, сам могу написать то, что мне нужно, и советник будет 100% быстрее, а значит, в MQL5 Cloud Network потребуется меньше денег и т. д. Начинающие программисты и трейдеры могут его использовать, чтобы посмотреть на результаты некоторых своих идей.

Чем является для вас участие в Чемпионате?

На этом Чемпионате мне хотелось показать две вещи:

  1. придумать прибыльную стратегию просто;
  2. как удачно соединить между собой стратегии, если некоторые из них некоторый промежуток времени будут убыточными.

Текущий советник содержит 7 или 8 стратегий, у которых общим является фиксированный StopLoss/TakeProfit (так проще считать оптимальное F), а направление входа сделки отличается. Тем не менее, здесь тоже есть шаблон:

Пусть a, b и c - булевые переменные, которые обозначают какие-то условия (например, а - короткая средняя растет, b - RSI меньше 30, с - цена выше длинной средней и т. п. В общем, типичный набор условий).

Тогда намерение купить выражается формулой:

buy = f1(f2(a, f3(b, c)))

где f1, f2, f3 - возвращают булевые значения и могут принимать следующий вид:

  • f1(a) = a или !a (определяется перед оптимизацией)
  • f2(a, b) = a^b или a&b или a | b (определяется перед оптимизацией)
  • f3 выглядит как и f2, только со своим логическим знаком.

Таким образом, мне оставалось лишь подобрать удачное сочетание логических операций и советник готов. Да и операции можно подбирать не вручную, а в автоматическом режиме, плюс выбрать другой вид функции buy.

Тут большинство читателей засомневалось в том, что это "простые" методы. В Мастере MQL5 можно быстро проверить любую простую идею. Каким он должен быть?

Методы точно простые с точки зрения программирования. Да, немного неожиданно применение "исключающего или", но ведь логические операторы "&&" и "||" практически все применяют. А Мастер MQL5 необходимо развивать в сторону оптимизации кода, чтобы идею можно было не только прогнать в тестере, но и оптимизировать в MQL5 Cloud Network или без него. И чтобы время оптимизации было одного порядка с аналогичным советником, написанным вручную.

Например: buy = !(a & (b ^ c)) - это же очень просто!

Как вы нашли эти самые 7-8 стратегий и затем собрали в один советник. Сначала отдельно искали правильный подход для каждой валютной пары, затем оптимизировали и только потом собирали всё в одно целое или как-то иначе?

Искал для каждой валютной пары подходящую логическую комбинацию, затем оптимизировал по максимуму "фундаментального уравнения торговли" постоянным лотом. Если PF получался более 1.5 на всём отрезке тестирования, то стратегия принималась. Если же PF<1.5, то для принятия такой стратегии необходимо было на основе оптимального F увеличение стартового капитала минимум в 10 раз. Все проходы, которые совершили менее 30 трейдов, просто игнорировались. Да и "фундаментальное уравнение торговли" использовалось со степенью, хотя степень в общем случае не нужна.

После отбора стратегий встал вопрос, как их соединить в правильной пропорции. Для этого нужно решить следующую задачу: по номеру прохода определить веса каждой стратегии. Поскольку 12 пар участвует, плюс по Винсу необходимо добавлять ещё одну стратегию "не торговать", то необходимо было найти способ, как по номеру прохода выставить правильные веса, чтобы выполнялось равенство x1 + x2 +... + x11 + x13 = 1.

Способ был найден, но в нём оказалось 13 вложенных циклов, а это значит, что способ неэффективный на таких размерностях. Поэтому уменьшил размерность до четырех. Т.е. сгруппировал случайным образом пары по 3, подобрал веса каждой пары в рамках этой тройки. В итоге получилось четыре тройки стратегий. И на последнем этапе подбирал веса каждой тройки в рамках одновременной работы всех четырёх троек.

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

К сожалению, к этой мысли я пришел немного позже, но уверен, что соединение на основе корреляций было бы эффективнее случайного.

Звучит как алхимия. Сколько времени занимает приготовление подобного советника по этому рецепту? И как долго он сохраняет свою свежесть (пригодность к работе в онлайне)?

Приготовления у меня заняли около месяца (плюс/минус) с использованием MQL5 Cloud Network. Несмотря на это, я сэкономил себе много времени, ибо советник написался за день, а всё остальное - механические движения, которые не отвлекают от других дел.

По поводу свежести - думаю, что несколько месяцев жить будут, но на самом деле - не знаю. Времени могло уйти и меньше - тестирование проводил по всем тикам, хотя, когда подбирал сами стратегии, можно было использовать OHLC и время бы сократилось очень существенно, и тогда бы приготовления сократились до 2-3 недель.

Значит, основную задачу трейдера вы для себя решили? Технология создания автоматических торговых систем уже есть и их можно ставить на реальные счета?

Ну, всё-таки в этом году у меня советник, годный только в корзину, я хотел им показать, что особо ломать голову над пятнадцатью средними, двенадцатью MACD и четырьмя параболиками не стоит. Естественно, он не пригоден к реальным торгам. Если его ставить на реальный счёт, то необходимо:

  1. при подборе стратегий использовать "фундаментальное уравнение торговли" без степени,
  2. добавить стандартные критерии: PF>1.5, просадка < X и т. д.,
  3. помнить, что это оптимальное F, а поэтому положить на счет только лимит потерь, а на остальное купить облигаций, например.

И фантазия у меня бурная - способов генерации стратегий найду много. Планирую после Нового Года попробовать на реальном счете советник, который собран по принципам, описанным выше.

Что больше отнимает личного времени - поиск стратегий или их реализация в виде кода?

Мне кажется, что всё-таки поиск стратегий занимает больше времени. А реализация - дело десятое и простое, у каждого опытного программиста есть готовые классы, шаблоны, функции, с которыми он работает. И чтобы запрограммировать новый советник опытному программисту на MQL5 нужно не так много времени, как может показаться начинающему.

На Чемпионате есть и другие мультивалютные стратегии. Изучали кого-то, что можете сказать о них?

Среди мультивалютников отмечу разработку участника ias, ибо видно, что в его управление капиталом заложена здравая идея. Плюс я также использую MA и BANDS и иногда интересно наблюдать его открытые позиции и сравнивать с моими. Среди "моновалютников" отмечу Xupypr'а - не за советника, а за подход. По сути Xupypr хорошо посмеялся над сложными стратегиями.

Говорят, что Правила Чемпионата заставляют писать мультивалютные советники, чтобы можно было выиграть. Но до сих пор среди призеров их не было.

По моему мнению, действительно, правила несколько несимметричны, в этом плане их лучше бы выровнять. Но мультивалютник рано или поздно победит. Для примера - у меня сейчас прибыль по двум или трем инструментам из 12. И первый прибыльный инструмент встречается на пятой стратегии. Если бы я запускал моновалютника, то вряд ли дошел бы до пятой стратегии и на данный момент болтался бы на предпоследней/последней странице. А поскольку "моновалютников" больше, то и сугубо по статистике у группы "моновалютников" больше шансов на то, что один из них победит. Надеюсь, скоро это изменится.

Имеет ли право на существование подход, которым пользуется участник yyy999 из Китая? Делали сами что-то подобное?

Делал и не раз, всё без толку. Тут везет до поры до времени. Разве что применять подход методом ставок - разбить капитал на несколько частей и скармливать по частям. Но на долгосрочную перспективу такой подход неприемлем.

Мне кажется вредным наличие поля "Баланс", ибо это сугубо виртуальная цифра, не имеющая отношение к действительности.

Фиксированные значения Stop Loss и Take Profit подбирались в денежном выражении, похоже. А можно было обойтись без них, каков был результат?

Нет, стопы и тейки подбирались в пунктах в районе 10-100 пунктов Stop и 10-200 пунктов Take Profit (все пункты старые, для четырех знаков). Без SL/TP не мог бы обойтись, т. к. другого закрытия не предусматривал. Единственное, можно было сделать Стоп/Тейк плавающим, но фиксированный стоп удобен для оптимального F, а Тейк сделан фиксированным для упрощения задачи.

Какой совет могли бы дать участникам и зрителям?

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

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

Да, знаниями я всегда готов делиться и недавно начал проект bot4you.biz, но он коммерческий. Пишем роботов под многие торговые системы/платформы. Может быть удивительным для тех, кто освоил языки MQL4/MQL5, тот факт, что робот для фондового рынка в несколько раз (а то и на порядок) сложнее написать, нежели аналогичный робот для MetaTrader.

Да, немного неожиданно. А чем это объясняется?

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

Очень жду прихода на фондовый рынок платформы от компании MetaQuotes.

Спасибо вам за ответы, Валерий. Желаем успехов в торговле и во всех начинаниях!

MQL5-RPC - Удаленный вызов процедур из MQL5: доступ к Web-сервисам и анализ данных Automated Trading Championship 2011 MQL5-RPC - Удаленный вызов процедур из MQL5: доступ к Web-сервисам и анализ данных Automated Trading Championship 2011
В этой статье описывается технология MQL5-RPC, которая позволяет осуществлять вызов удаленных процедур из MQL5. Мы разберем основы XML-PRC, ее реализацию на MQL5 и два примера ее практического использования. Первый пример - использование удаленного вызова процедур web-сервиса внешнего сайта, второй пример - клиентская часть XML-RPC сервера, который будет использован для обработки и анализа данных сайта Automated Trading Championship 2011. Если вас интересует вопрос программной реализации экспорта и анализа различных статистических характеристик участников ATC 2011, эта статья для вас.
Множественный регрессионный анализ: генератор стратегий и тестер в одном флаконе Множественный регрессионный анализ: генератор стратегий и тестер в одном флаконе
В статье описываются способы использования множественного регрессионного анализа для разработки торговых систем. Показано, что регрессионный анализ может быть применен для автоматизации поиска стратегии. В качестве примера продемонстрировано получение регрессионного уравнения и использование его в эксперте, не требующее высокой квалификации в программировании.
Интервью с Ли Фаном (ATC 2011) Интервью с Ли Фаном (ATC 2011)
На седьмой неделе Чемпионата советник Ли Фана (lf8749) установил рекорд - за 10 трейдов он заработал более $100 000. Именно эта удачная серия сделок обеспечила экспертописателю двухнедельное пребывание на первой строчке рейтинга. Каким образом удалось совершить такой подвиг, мы решили выяснить у самого Ли Фана.
Основы объектно-ориентированного программирования Основы объектно-ориентированного программирования
Для использования объектно-ориентированного программирования (ООП) вовсе не обязательно знать что такое полиморфизм, инкапсуляция... можно просто пользоваться его возможностями. В статье рассматриваются основные возможности ООП с примерами их использования.