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