MetaTrader 5 Strategy Tester! - страница 27

 

Здравствуйте, Модератор, Форумчане!

Есть 2 предложения по оптимизатору и тестеру (одно из них уже высказывал в другой рубрике: Remote agents (Удаленные агенты)):

1. В ходе оптимизации советников позволить тестеру осуществлять прогон советника со сдвигом вперед от начала периода тестирования на один период до конечной границы (Например, полный период - неделя, таймфрейм Н1. Зашли с -1го числа 00 часов, прошли, оптимизировали, нашли. Далее сдвинулись на 01 час, стартанули отсюда, потом на 02 и т.д.). Это точно также как трейдер может зайти в рынок с любого момента времени в указанном периоде. Это необходимо, т.к. оптимизация в строго заданных границах со строгим началом теста и его окончанием не позволяет найти лучшие параметры. Стоит разбить период, в ходе которого осуществлялась оптимизация, и запустить советник в тест с другого момента времени внутри этого периода, т.е. дать другой момент начала теста и результаты работы советника могут быть отрицательными, хотя вроде он оптимизировался под этот период работы. Тогда что говорить о форвард-периоде?

2. Создать для тестера "Симулятор Рынка". Например, мы оптимизировали нашего советника и задача стоит проверить его в экстремальных условиях, т.е. в условиях, которые он совсем не знает, причем длительностью в тот же срок периода, что и при оптимизации. Тогда можно предложить такой выход, если у нас нет совсем никаких больше исторических данных, - симулировать рынок, развернув его в обратную сторону, т.е. запустить тестирование не сначала периода, с которого начали оптимизацию, а с конца. Например, при оптимизации, рынок был бычьим, а теперь - медвежий, с как бы изменившейся амплитудой колебаний. Справится ли советник?!!

 

Приветы!!! Оптимизируя советник на периоде год,к примеру,выбираем параметры.На этих параметрах любой внутренний месяц в точности ведет себя так как и должен.Да и по другому быть не может.Эффективность конечно меняется от месяца к месяцу.Но если так интересно и пойти ненужным сложным путем проверки,то можно сделать так.Январь начинаем 10000.Заканчиваем 15000 ( к примеру.Февраль начинаем уже 15000.Заканчиваем 22000 и тд...Уверен что в итоге результат будет практически такой ,как и про прогоне целиком за год.Немного отличаясь,за счет переходных сделок.

Генетический алгоритм позволяет быстрее проходить теститирование,об этом ответили в другой ветке.Правда заметил,что ну почти попадаем точно.Редко ,но бывает ,что чуть подправив параметры получаем результат повыше,но это настолько несущественно.Медленный перебор параметров,это перебор всех возможных комбинаций.Лично для себя делаю для точной настройки.Иначе жизни не хватит,конечно смотря у кого сколько параметров :-) 

Генетические алгоритмы - это просто!
Генетические алгоритмы - это просто!
  • 2010.05.25
  • Andrey Dik
  • www.mql5.com
В статье автор расскажет об эволюционных вычислениях с использованием генетического алгоритма собственной реализации. Будет показано на примерах функционирование алгоритма, даны практические рекомендации по его использованию.
 

Не знаю, может это уже было.

1. Когда планируется (и планируется ли) сделать отладку в тестере. Вопрос совсем не праздный. Практически невозможно отладить код на реальных котировках. Некоторые ситуации возникают достаточно редко и ОЧЕНЬ хотелось бы отлаживать код на тестере. 

2. Введите, наконец, не только дату, но и ВРЕМЯ интервала теста.

 

Присоединясь.

Невозможно отладить код без отладчика в тестере (без отладчика на истории) . НЕРЕАЛЬНО просто. Когда будет возможность отладки при тестировании на истории ???

Очень актуальный вопрос для трейдеров. Я к чемпионату всякую хрень писать вслепую не собираюсь. Как можно программировать без нормального отладчика. 

 
ForexMoneyMaker:

Здравствуйте, Модератор, Форумчане!

Есть 2 предложения по оптимизатору и тестеру (одно из них уже высказывал в другой рубрике: Remote agents (Удаленные агенты)):

1. В ходе оптимизации советников позволить тестеру осуществлять прогон советника со сдвигом вперед от начала периода тестирования на один период до конечной границы (Например, полный период - неделя, таймфрейм Н1. Зашли с -1го числа 00 часов, прошли, оптимизировали, нашли. Далее сдвинулись на 01 час, стартанули отсюда, потом на 02 и т.д.). Это точно также как трейдер может зайти в рынок с любого момента времени в указанном периоде. Это необходимо, т.к. оптимизация в строго заданных границах со строгим началом теста и его окончанием не позволяет найти лучшие параметры. Стоит разбить период, в ходе которого осуществлялась оптимизация, и запустить советник в тест с другого момента времени внутри этого периода, т.е. дать другой момент начала теста и результаты работы советника могут быть отрицательными, хотя вроде он оптимизировался под этот период работы. Тогда что говорить о форвард-периоде?

2. Создать для тестера "Симулятор Рынка". Например, мы оптимизировали нашего советника и задача стоит проверить его в экстремальных условиях, т.е. в условиях, которые он совсем не знает, причем длительностью в тот же срок периода, что и при оптимизации. Тогда можно предложить такой выход, если у нас нет совсем никаких больше исторических данных, - симулировать рынок, развернув его в обратную сторону, т.е. запустить тестирование не сначала периода, с которого начали оптимизацию, а с конца. Например, при оптимизации, рынок был бычьим, а теперь - медвежий, с как бы изменившейся амплитудой колебаний. Справится ли советник?!!


 То что вы описали называется форвард-период. То есть советник оптимизируеться на одном участке, а прогоняется на другом и это уже реализовано в тестере
 
1CMaster:

Присоединясь.

Невозможно отладить код без отладчика в тестере (без отладчика на истории) . НЕРЕАЛЬНО просто. Когда будет возможность отладки при тестировании на истории ???

Очень актуальный вопрос для трейдеров. Я к чемпионату всякую хрень писать вслепую не собираюсь. Как можно программировать без нормального отладчика. 

Print и всё реально, даже более чем.

Хотя отладчик в тестере был бы только плюсом.

 
notused:

Print и всё реально, даже более чем.

Хотя отладчик в тестере был бы только плюсом.

Принтил я как то рекурсию перебора 4 значений на ограниченном интервале. Хрень это - принт для простеньких алгоритмов.

В результате перебросил код в другую программу - создал подобную модель и сразу же в отладчике обнаружил массу недочетов в логике.

На МТ5 этого просто не замечаешь. Логи не выход.

УВАЖАЕМЫЕ РАЗРАБОТЧИКИ - НУЖЕН ОТЛАДЧИК В ТЕСТЕРЕ СТРАТЕГИЙ

 
sergey1294:
 То что вы описали называется форвард-период. То есть советник оптимизируеться на одном участке, а прогоняется на другом и это уже реализовано в тестере

Думаю, что ForexMoneyMaker знает об этом.)) Как я понял, он предлагает автоматизировать проверку оптимизированных параметров системы методом форвард-теста с заданным интервалом с разных точек. Очень полезное дополнение было бы к тестеру. 

--- 

Я так посмотрел и заметил, что многим не хватает автоматизации форвард-тестирования в тестере. Я это вижу так. Допустим, решили протестировать период от начала 2010 года по текущий момент. Поставили галочку, что тест нужно провести с переоптимизацией параметров каждый указанный интервал. Например, каждый месяц. Указали длительность периода для оптимизации параметров. Например, год на оптимизацию. Получается, что первая оптимизация параметров будет от начала 2009 года до начала 2010 года, а проверка оптимизированных параметров в первый месяц 2010 года (январь). Далее автоматом происходит сдвиг окна и начинается следующая оптимизация параметров от февраля 2009 года по февраль 2010 года, а после снова проверка оптимизированных параметров уже в февраль 2010 года. И так далее. После получаем совокупный непрерывный результат со всех участков Out of Sample. Кстати, нужно ещё предусмотреть такой момент. Оптимизация параметров должна происходить в выходные дни, независимо от того, какие интервалы выбраны. Это нужно сделать включаемой/отключаемой опцией, так как некоторые стратегии оптимизируются быстро и могут оптимизироваться на лету в режиме реального времени не прерывая торговлю. Или возможно трейдер захочет установить короткие интервалы. Например, два дня на оптимизацию параметров и 12 часов на тест. Также нужна опция, которая будет указывать тестеру проводить тест с учётом закрытия сделок в конце каждого тестируемого периода или открытые сделки нужно оставить, провести оптимизацию параметров и продолжить торговлю. 

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

  Вот если разработчики это реализуют, то это будет ВЗРЫВ. ))) На сегодняшний день я знаю только одну программу в которой это реализовано. Правда не так круто, как это описано выше. Но MetaTrader 5 должен быть лучшей торговой платформой.))) И на мой взгляд самый основной шаг в сторону "лучшая торговая платформа" именно в тестере. Всё остальное в принципе можно сделать с помощью MQL5, который можно ещё и расширять по возможностям. 

 
tol64:

......

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

  Вот если разработчики это реализуют, то это будет ВЗРЫВ. ))) На сегодняшний день я знаю только одну программу в которой это реализовано. Правда не так круто, как это описано выше. Но MetaTrader 5 должен быть лучшей торговой платформой.))) И на мой взгляд самый основной шаг в сторону "лучшая торговая платформа" именно в тестере. Всё остальное в принципе можно сделать с помощью MQL5, который можно ещё и расширять по возможностям. 

Спасибо tol64: за поддержку идеи. Но, возможно, не всё понадобиться из того, что предложено.

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

К сожалению, окончательно, в этом убедиться пока не смог, т.к. поиск наилучшего решения всё ещё находится в процессе поиска, и для этого может понадобиться не одна итерация оптимизаций по 10496 (?) проходов. Но одно налицо, тестеру очень сложно искать эти лучшие решения: за 1,5 недели пройдено всего 2200 итераций из первого цикла поиска. Поэтому если кому-то уже удалось пройти этим путем, пишите, поделитесь опытом: помогает ли действительно такой метод исследований? Будет ли найдено решение и удержится ли советник на рынке?

https://www.mql5.com/ru/forum/4485 

https://www.mql5.com/ru/forum/1997/page18 

Во всяком случае пока я знаю точно, что более менее интересную стратегию подготовить можно ручным способом: путем написания соответствующего кода.

Здесь результаты теста советника для МТ4 за 10 лет работы (2001 - 2011) по паре EURUSD на PERIOD_M30: http://autograf.borda.ru/?1-7-0-00000015-000-0-0-1315418272

Экономическое трактование результатов тестирования/оптимизации
Экономическое трактование результатов тестирования/оптимизации
  • www.mql5.com
Что имеется ввиду - временная просадка (незафиксированный убыток - временная просадка, вышедшая в прибыль) первой сделки, т.
 
ForexMoneyMaker:

...

Здесь результаты теста советника для МТ4 за 10 лет работы (2001 - 2011) по паре EURUSD на PERIOD_M30: http://autograf.borda.ru/?1-7-0-00000015-000-0-0-1315418272

На тестирование методом форвард-теста уходит очень много времени. Для меня, например, важно получить результаты за последние ~10 лет. Причём это должен быть диверсифицированный портфель торговых стратегий. То есть каждую стратегию нужно протестировать на каждом инструменте методом форвард-теста. Даже, если учесть, что оптимизация параметров будет идти 1 минуту для каждой оптимизации, то на это будет уходить примерно столько времени:

 

Без облака тут уже не обойтись.)) Со временем может быть оно станет по мощности таким, как лидер списка TOP500 (http://www.top500.org/).  

--- 

До того, как я начал изучать программирование я провёл около 10 000 тысяч тестов вручную используя другие программные продукты. По 10 инструментам и практически по всем их таймфреймам вдоль и поперёк.  В принципе я нашёл то, что мне нужно, но опять же, чтобы правильно настроить систему нужно потратить много времени. Это стоит того. Ниже результат, который получен методом форвард-теста на 15-минутном таймфрейме. Период оптимизации 8 недель, период теста 2 недели. Вручную осилил столько, больше не выдержал.))

 

На данный момент остановил свой выбор на более крупных таймфреймах, нашлись некоторые другие интересные решения. 

Причина обращения: