| / | Статьи |
Cтатьи
Тестер
Техника оптимизации (тестирования) и некоторые критерии выбора рабочих параметров эксперта
Авторизуйтесь или зарегистрируйтесь , чтобы добавить новую статью
|
|
Техника оптимизации (тестирования) и некоторые критерии выбора рабочих параметров эксперта [ en ]ВведениеВидимо, ни для кого не является большой тайной, что подбор адекватных параметров - не менее важный этап, чем выбор торговой тактики и написание самого эксперта. Подтверждением тому служит постоянное обращение к этой теме на множестве форумов, в той или иной мере связанных по тематике с автоматической торговлей. Но если с автоматизацией торговых операций все достаточно очевидно и прозрачно, то сколько-нибудь приемлемого для пользователя автоматизированного алгоритма обработки результатов оптимизации, объединенного в логически завершенную цепочку, мне не встретилось. А процесс, согласитесь, очень трудоемкий, и затраты времени на него заслуживают попытки, как минимум, максимально автоматизировать все операции и привести их к единому алгоритму. Этот подход и метод и будет изложен в статье. ИдеяЗадача. Анализ и отбраковка заведомо непригодных для реальной торговли параметров эксперта, полученных во время оптимизации. Максимальное использование возможностей терминала и автоматизация ручных операций. Весь процесс подразделяется на несколько этапов. Такое разделение связано не столько со сложностью реализации непрерывного автоматического алгоритма, сколько с невозможностью заранее, на этапе оптимизации, сформулировать необходимые требования (допуски и фильтры) к параметрам системы. Да и необходимости такой, в общем-то, нет. На мой взгляд, заставлять машину принимать стратегические решения - это "не самая хорошая мысль". А выбор параметров (групп параметров) - это стратегия. Считает, торгует, жизнь облегчает - вот пусть этим и занимается, а по каким правилам "железу" работать, решать должен трейдер. Каждый из этапов и переходы между ними максимально, насколько это представилось возможным, автоматизированы. Этап 1. Оптимизация. Стандартный вариант, с настройками по желанию пользователя. Опять-таки, не секрет, но упомянуть об этом необходимо. Выходов здесь несколько. Один кардинальный - отказаться от применения генетического алгоритма при оптимизации. Но это не всегда, по тем или иным причинам, подходит. Два следующих - это полумеры, но хотя бы что-то: - провести оптимизацию не один раз, а два или больше. Первый раз, допустим, по "Balance", следующий по "Maximal Drawdown" или чему-то еще. Окно "Оптимизируемый параметр" на вкладке "Тестирование" в свойствах эксперта позволяет сделать такой выбор. После этого объединить полученные таблицы результатов и работать уже с объединенной. - максимально уменьшить количество комбинаций параметров. Есть еще один нюанс, который нужно учесть при проведении оптимизации. Возможно, кому-нибудь это окажется полезным. В свойствах эксперта, на вкладке "Оптимизация" можно выставить различные ограничения, хочу сказать про одно из них: "Максимальная просадка". При использовании этого параметра нужно помнить, что это просадка в процентах от текущего баланса. Что здесь нужно учесть. Если, к примеру, выставить ограничение 10% и взять начальный баланс 10000, то в процессе оптимизации, когда баланс вырастет хотя бы до 15000, первоначальная 1000 превратится в полторы - согласитесь, это разные цифры. И начальный депозит (а где гарантия, что такой просадки не будет в самом начале торговли?) будет реагировать на них по-разному. Если же начальный депозит установить 1000000, а ограничение 0,1%, эта тысяча так и останется приблизительно тысячей. Этап 2. Работа с "Результатами оптимизации". Все результаты копируются в Excel и обрабатываются уже там. Наборов получится много, их нужно сократить. "Обрезание" можно проводить по любой графе отчета - дело за трейдером. Аналогично этапу 2, все полученные результаты копируются в Excel, в ту же таблицу, где уже расположены результаты оптимизации. Очевидно, что тесты с отрицательными результатом безжалостно отсекаются (строки удаляются). Вопрос в том, как оценить оставшиеся? Наверное, многие замечали, что визуальное восприятие графика баланса дает не меньшее, а иной раз и большее представление о характеристиках системы, чем цифры в отчете. Как правило, если эта кривая "хороша", то и цифры в отчете "красивые", а если в ней не наблюдается монотонной растущей тенденции, то никакие цифры убедить в том, что это "хорошо", не смогут. Проблема в том, что оставшихся вариантов много, и провести отдельный тест, чтобы проанализировать отчет и глазами посмотреть на график каждого, очень затруднительно... Хотя, если упереться, то... Чтобы обойти эту проблему и еще больше сократить количество наборов, я придумал для себя некий критерий "пропорциональности" сравниваемых участков. Сравниваются три величины: прибыль в день, количество сделок в день и максимальная просадка, соответственно, на участках оптимизации и тестирования. Если они приблизительно, в пределах какого-то допуска, соответствуют друг другу, то набор остается в работе, если нет - исключается из дальнейшего анализа. Кроме того, при определенных условиях, а конкретно - не очень продолжительных участках тестирования, могут, в какой-то степени, дать представление о "гладкости" кривой баланса. 3-й и 4-й этапы можно и нужно повторить несколько раз на разных участках истории, во-первых, чтобы убедиться в надежности выбранных результатов, а во-вторых, чтобы максимально сократить их количество. Оставшихся 3-5 вариантов вполне достаточно для проведения осознанного окончательного выбора. Завершением 3-го и 4-го этапов будет формирование set-файлов из оставшихся наборов, проведение индивидуальных тестов на любых участках истории, сравнение между собой, выбор и т.д. В общем, это уже вопрос квалификации, вкусов и пристрастий каждого трейдера и выходит за рамки этой статьи. Техника
|
![]() Тестирование и оптимизация советников
В статье описан процесс тестирования и оптимизации советников в тестере торговой платформы МТ4. Необходимость и востребованность такого рода материала назрела давно. Многие начинающие посетители форума плохо представляют себе суть и последовательность действий при работе с экспертами. Предлагаемая статья дает им возможность чуть более профессионально подойти к делу. |
|
| Предыдущая |
внутри макросов есть такой

Спасибо за статью, вопрос такой:
3.1. Оптимизация - например мы берем период с 2010 01 01 по 2010 06 01
а параметр 3.4. Проведение тестирования - за тот же период делать или уже на не знакомом? И параметры оптимизации только Counter или все которые тестировал?
Вот, сначала сам сделал что-то подобное, а потом уж наткнулся на эту статью. Должен признать, что здесь реализован более глубокий подход.
Но кратко скажу о своем методе (всё в Экселе):
- применяю формулу: "Прибыль" * "Всего сделок" * "Прибыльность" * "Матожидание" / "Просадка $" / "Просадка %" (символы: * и / - соответственно умножить и разделить)
- лучшими считаются варианты с максимальным значением этого выражения
- в отдельную таблицу делается выборка 10 лучших вариантов (по убыванию)
- можно установить минимальное число сделок за исследуемый период (желтая клетка на листе "Результат")
Работа с таблицей:
- как и предлагает автор, копируем результаты оптимизации в лист "Данные" (предварительной подготовки компьютера делать не надо)
- и смотрим на лист "Результат"
Прикреплен файл для Excel 7
Мда, а как быть тем кто в программировании не силен? Я имею ввиду "подготовку эксперта", как там все в коде прописать, что бы все прогоны потом из экселя брались? Потому что руками потом опять прогонять положительные результаты действительно очень долго...
Подобная техника оптимизация реализована ранее.
У меня есть вопрос. Как вы решаете задачу исключения повторных прогонов?
Например, ваш эксперт требует оптимизацию 4-х параметров. Вы провели оптимизацию параметров с большим шагом изменения, чтобы получить оптимальное количество прогонов.
В Экселе обработали результат. Нашли положительные результаты. Теперь мы хотим получить оптимизацию параметров с меньшим шагом. Комбинации 3-х параметров записываем в файл. Оптимизируем 2 параметра: счетчик и 4-й параметр. При оптимизации получаем комбинации параметров, которые ранее использовались. Как их исключить? Как реализовать кэширование комбинаций, которые ранее использовались?
"На всякий чих не наздравствуешься"..... я про свой чих говорю :).... Мне пока достаточно того, что получилось. То, что вы хотите, средствами терминала не реализуется (штатными средствами), можно модуль в эксель для поиска одинаковых строк написать, но на мой взгляд, "овчинка выделки не стоит".
PS А вот выделенное не понятно в принципе.
PS2 За ссылочку спасибо. Именно эти и, подобные им, посты и натолкнули на мысль связать это все в единый комплекс :)
Подобная техника оптимизация реализована ранее.
У меня есть вопрос. Как вы решаете задачу исключения повторных прогонов?
Например, ваш эксперт требует оптимизацию 4-х параметров. Вы провели оптимизацию параметров с большим шагом изменения, чтобы получить оптимальное количество прогонов.
В Экселе обработали результат. Нашли положительные результаты. Теперь мы хотим получить оптимизацию параметров с меньшим шагом. Комбинации 3-х параметров записываем в файл. Оптимизируем 2 параметра: счетчик и 4-й параметр. При оптимизации получаем комбинации параметров, которые ранее использовались. Как их исключить? Как реализовать кэширование комбинаций, которые ранее использовались?
C Новым Годом!
Внес небольшие изменения в пример подготовленного эксперта.
Существенно ускорилась работа функции чтения параметров из файла, особенно это заметно при тестировании при большом количестве данных (проходов).