Бэктестинг/оптимизация - страница 28

 

Представьте себе, что каждый день в 00.00 ea (во время своей обычной работы) начинает оптимизацию (с помощью генетических алгоритмов) для x количества данных (1 месяц, 2 месяца, 1 год, 1 день), а в конце оптимизации проверяет результаты, выбирает значения, которые дали лучшие результаты (высокая прибыль, низкая просадка), и изменяет свои значения на новые, не останавливая свою работу!

Это можно сделать вручную, но если это можно сделать автоматически, это может быть еще лучше, не так ли?

 

Мой опыт

Предположим, что у вас %90 качества тика, и вы не новичок,

1. Тестер - это большая пушка. Он работает, если вы знаете, как им пользоваться. Иначе вы потратите всю свою жизнь на тесты советника, по крайней мере 2-3 года вам нужно ждать живых данных.

2. Тестер не подходит для мультивременных и мультивалютных систем. Если ваша система форсирует сложные моменты, обратитесь к производителям.

3. В сети нет ни одного ценного эксперта. Так что это не проблема тестера. Но люди говорят, что тестеры плохие. Нет, это мы плохие.

4. Волны на рынке Форекс меняются год от года. Если система работает один год, то на следующий год она может не сработать. Поэтому эксперт должен быть образован в течение многих лет.

5. Единственный надежный тренд на этом рынке - это (месячные) и даже (5-летние) тренды. Но эти тенденции не подходят для высокого кредитного плеча. Это уменьшает наши шансы для советников с высоким кредитным плечом.

Спасибо

Ченгиз

 

маленькие детали в машинном обучении

w4rn1ng:
Представьте себе, что каждый день в 00.00 ea (во время своей обычной работы) начинает оптимизацию (с помощью генетических алгоритмов) для x количества данных (1 месяц, 2 месяца, 1 год, 1 день), а в конце оптимизации проверяет результаты, выбирает значения, которые дали лучшие результаты (высокая прибыль, низкая просадка), и изменяет свои значения на новые, не останавливая свою работу! Это можно сделать вручную, но если это можно сделать автоматически, это может быть еще лучше, не так ли?

Все, что можно точно описать, можно и запрограммировать. Возможно, mq4 - не самый подходящий инструмент для этого, но это можно сделать.

Практическая деталь: в зависимости от вашего советника/ваших индикаторов/вашего интервала оптимизации, автоматическая оптимизация может съесть много времени. То есть: чтобы переоптимизировать параметры на следующий день, вам понадобится не 5 минут, а 5 дней :-(.

Вопросы:

1.) тестировали ли вы свою идею вручную? Удалось ли это?

2.) Почему 2 месяца интервала между переоптимизациями? Почему не 1.5 или 2.5 ?

3.) Что именно означает "лучший результат" ? Вы предпочитаете 1000$ прибыли после 500$ просадки, или лучше 600$ прибыли при 100$ просадке? Предпочитаете ли вы систему, которая принесла 2000$ (первая неделя 2200, следующие 7 недель до 2000), или вы предпочитаете другую систему, которая принесла 100...200$ каждую неделю (всего 1300$)?

 

Я думаю, что лучше всего оптимизировать вручную и найти лучшие параметры для 2006 года, а затем проверить их на 2007. Если оба показывают схожие результаты, я проверяю период 2004-2007. Если все идет хорошо, я оставляю эти параметры.

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

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

Ежедневная переоптимизация дает плохой результат.

А насчет данных, из-за которых советник плохо работает - не волнуйтесь. У меня был такой же результат, когда я загрузил данные EUR/USD на данные GBP/USD. Результатом были смешанные котировки. Если вы удалите котировки и перезапустите MT4 в автономном режиме, а затем загрузите только один набор котировок (правильных), советник должен работать нормально.

Также, чтобы проверить, все ли в порядке с моделированием, у меня есть несколько отдельных копий МТ, и я проверяю советников на разных МТ от разных брокеров. Результаты немного отличаются, но ничего особенного (помогает выявить проблемы).

 
autopips:
Все, что можно описать точно, можно и запрограммировать. Возможно, mq4 не самый подходящий инструмент для этого, но это можно сделать.

Практическая деталь: в зависимости от вашего советника/ваших индикаторов/вашего интервала оптимизации, автоматическая оптимизация может съесть много времени. То есть: чтобы переоптимизировать параметры на следующий день, нужно не 5 минут, а 5 дней :-(.

Вопросы:

1.) тестировали ли вы свою идею вручную? Удалось ли это?

2.) Почему 2 месяца интервала между переоптимизациями? Почему не 1.5 или 2.5 ?

3.) Что именно означает "лучший результат"? Вы предпочитаете 1000$ прибыли после 500$ просадки, или лучше 600$ прибыли при 100$ просадке? Вы предпочитаете систему, которая заработала 2000$ (первая неделя 2200, следующие 7 недель до 2000), или вы предпочитаете другую систему, которая заработала 100...200$ каждую неделю (всего 1300$)?

Да, возможно, нужно написать новую программу для помощи mt4 в этом процессе, в любом случае я согласен, что это можно сделать! Идея неплохая, но, как вы знаете, рынок постоянно меняется, поэтому хороший способ позволить советнику быть всегда в игре - это переоптимизация каждый день, и здесь возникает необходимость в автоматическом процессе. Мой советник выполняет одну операцию каждые 4 часа (или каждые 8 или 12 или 16... и т.д.).), в начале 4hcandle он смотрит, если это случай, чтобы войти или выйти из рынка, и как только он взял или вышел из позиции, он ждет еще 4 часа или больше, поэтому нам не нужен тикбитик 90% качество режимов, оптимизация (тот, который может потребовать 1 день работы процессора) требует 5-10 минут и не более (и результаты такие же, как 90% качество мод или forwardtest), моя идея состоит в том, чтобы позволить советнику быть переоптимизированным каждый день, хороший способ может быть, чтобы позволить советнику проверить в 00.00 (например) xml файл на удаленном сервере (сервер моего офиса) и загружать настройки из этого файла (например индикатор новостей), очевидно на другой стороне (сервер, который будет отдавать xml советнику) буду я, который будет делать оптимизацию каждый день, или может быть другая программа, которая в сочетании с mt4 оптимизирует и помещает результаты в xml файл полностью автоматически!

 
mcbalta:

4. Волны рынка Форекс меняются год от года. Если система работает один год, то на следующий год она может потерпеть неудачу. Поэтому эксперт должен быть образован в течение многих лет.

Вы правы, я тоже думаю, что они меняются из месяца в месяц (может быть один месяц низкой волатильности и мощного нисходящего тренда, следующий месяц - совершенно неспокойный рынок с высокой волатильностью и т.д.). Советник, оптимизированный под предыдущий месяц, в следующем месяце будет следовать за трендом, и потеряет много денег в неспокойном месяце), но если вы посмотрите, "изменение" состояния рынка на другое не происходит за 1 минуту, да, рынок постоянно меняется, но меняется медленно, Тот трейдер, который хорошо работает и замечает, что заканчивается трендовый период и начинается период волнения (который может длиться один месяц, одну неделю или один год, без разницы), изменит свою стратегию и получит прибыль, тот другой трейдер, который не понимает изменений и продолжает торговать в менталитете следования за трендом (как в этом примере), потеряет много денег, а в конце месяца посмотрит на график и скажет: "ну вот, рынок весь этот месяц колбасился, последний месяц он шел в нисходящем тренде без всякой колбасы... теперь я ясно вижу, я торговал колбасный месяц так, как будто это был трендовый месяц! какой же я дурак!".

Если мы оптимизируем ea день за днем, ea будет понимать и менять день за днем свою торговую стратегию, от тренда к чоппи, и она будет иметь прибыль в первый и во второй месяц тоже! (при условии, что у вас есть хорошая ea, подходящая для торговли как на трендовом, так и на чоппи рынке [очевидно, с разными настройками]).

Вот что я имею в виду: рынок постоянно меняется, это динамичный рынок, и советники терпят неудачу, потому что они не динамичны. Но что если советник станет динамичным?

 

Помощь в объединении тиковых данных

Здравствуйте,

Я ищу разработчиков Delphi (или Java, или C#), которые помогут мне объединить собранные мною тиковые данные. У меня есть несколько компьютеров с разными интернет-провайдерами, которые регистрируют каждый тик от 2 брокеров. Я хочу объединить все эти тики, собранные с разных компьютеров, в 2 базы данных (для каждого из 2 брокеров). Разработчик(и), который захочет мне помочь, получит доступ ко всем тиковым данным, которые я собрал на данный момент - с 1 января 2007 года. Пожалуйста, напишите мне в PM или по электронной почте: hiller159 [at] yahoo [dot] com

 

Спасибо

FX_Babe

holyguy7:
Шаг за шагом, как получить лучшие результаты бэктестинга

1. Загрузите данные MT4 для валютной пары, которую вы хотите протестировать, найденные ЗДЕСЬ. Убедитесь, что вы загрузили данные M1. Это должно дать вам данные за каждую минуту вплоть до 2004 года (около 1,5 лет бэкдаты).

2. После того как вы распакуете данные на жесткий диск, вам нужно импортировать их в Metatrader 4.

3. Откройте Metatrader 4 (запустите программу).

4. Перейдите в Центр истории в Metatrader 4. Нажмите F2 на клавиатуре. Или щелкните в верхней части Metatrader: Инструменты и выберите Центр истории

5. Откройте Forex, откройте валютную пару для импорта и откройте M1.

6. Нажмите Импорт и найдите место, куда вы распаковали данные для валютной пары.

7. Убедитесь, что Тип файла выбран на файлах Metaquotes. Нажмите Открыть и ОК. Затем Закрыть.

8. Теперь в окне Навигатор в левой части программы Metatrader 4 откройте пункт Скрипты. Он должен находиться прямо под Custom Indicators.

9. Откройте график в автономном режиме, выбрав File- Openoffline - SELECT и откройте пару на таймфрейме M1.

10. У вас должен быть открыт график M1 (офлайн) валютной пары. Дважды щелкните на скрипте Period Converter.

10. Перейдите на вкладку Input и вы должны увидеть значение 3. Вам нужно изменить значение на 5 (M5), 15 (M15), 30 (M30), 60 (H1), 240 (H4), 1440 (D1).

11. Теперь перейдите на вкладку Tools- Options- Charts и измените Max Bars in History и Max Bars in Chart на 999999999999 и нажмите OK.

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

Я обычно начинаю и выбираю 5, затем нажимаю OK. Затем я снова дважды щелкаю на Конвертере периодов и меняю значение на 15, затем нажимаю OK, затем снова щелкаю и меняю значение на 30, затем нажимаю OK, пока не закончу все таймфреймы.

ПРИМЕЧАНИЕ: Появится предупреждение: "Вы действительно хотите остановить "period_converter" и выполнить "period_converter" на графике M1?

Просто нажмите ДА, а затем дважды щелкните на period_converter снова, чтобы продолжить преобразование данных M1 во все таймфреймы.

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

Надеюсь, это поможет.
 
w4rn1ng:
Привет, вот что я хочу сделать:

Я хочу позволить моему советнику оптимизировать себя (оптимизация за последние 2 месяца), и он должен автоматически менять свои переменные, если он нашел лучшие переменные во время оптимизации (он будет оптимизировать 24ч/24, весь день, все дни).

Как вы думаете, возможно ли написать что-то подобное? Может быть, скрипт или что-то еще, чего я не знаю, что вы думаете?

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

Автоматическая оптимизация торгового робота в процессе реальной торговли - Статьи по MQL4

и ссылка на сайт для перевода на английский язык.

AltaVista - Перевод Babel Fish

Wackena

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

Автоматическая оптимизация торгового робота в процессе реальной торговли - Статьи по MQL4

и ссылка на сайт для перевода на английский язык.

AltaVista - Перевод Babel Fish

Wackena

Привет, спасибо за ответ, да, я уже нашел его несколько недель назад, в любом случае спасибо за помощь, это очень хорошо!

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