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

 
Ducati:
Герберт,

Да, он действительно изменился сразу после загрузки билда 200! Я совсем забыл, что он загрузил новый билд.

Я также только что скачал совершенно новую версию metatrader с сайта metatrader, это версия 4 build 200, и она не позволяет мне импортировать исторические данные из Alpari. Я выбираю файл, но ничего не происходит. Это отстой!

Вы можете повторить это еще раз.

Я подал отчет об ошибке в MetaQuote, но не получил никакого ответа на него.

На аналогичные вопросы на форуме MetaQuote просто отвечают: "Это было улучшено". Я сомневаюсь, что только у нас есть проблемы с таким поведением.

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

Это должно позволить нам выбирать между новым методом загрузки (из MetaQuote?) и импортом из другого источника, такого как Alpari.

 

К счастью, у меня все еще есть сборка 198 на моем компьютере. Я просто скопирую эту папку.

 

Получение 99% качества моделирования

Я видел это на другом форуме. Можем ли мы это использовать?

Paul Dawidowicz 16.11.06 05:46

Slawa,

Раньше я генерировал fxt-файл из тиковых данных, а затем перемещал его в директорию истории, и тогда я получал 99% качество моделирования.

С новым обновлением он игнорирует сгенерированный fxt файл, и качество на том же советнике, M1 упало до 25%.

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

Slawa 16.11.06 10:32

Измените версию fxt на 403.

 

В теме Phoenix есть отличное руководство по бэктестингу советника.

Теперь, когда вышел билд 200, вам больше не нужно беспокоиться о ручной загрузке истории котировок.

https://c.mql5.com/forextsd/forum/162/phoenix-2007-how-to-optimize-phoenix.pdf

 

это ошибка: metatrader перезаписывает его.

Щелкните правой кнопкой мыши на вашем файле данных fxt и установите "только чтение" на вкладке свойств, это предотвратит его удаление, таким образом я смог заставить тиковые данные работать и с билдом 200.

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

 

Правильный способ бэктестинга на основе банка данных Альпари

Получил это с другого сайта и хочу убедиться, что вы, ребята, проводите бэктесты с правильными данными из банка данных Альпари;

Похоже, что существует много путаницы по поводу вопросов надежности и того, как добиться наиболее точных результатов. Я не являюсь гуру программирования или торговли, но я думаю, что могу предоставить небольшой полезный FAQ по бэктестингу с использованием MT4.

Хорошее бэктестирование важно при рассмотрении подхода к системной торговле, потому что вы хотите иметь некоторое представление о реализуемости вашей идеи, прежде чем приступать к ее реализации (по крайней мере, я так считаю). Если вы проводите бэктестинг с 50% качеством моделирования, эх... вы не можете быть уверены в том, что происходит. Если у вас 90% качество моделирования, вы можете быть более уверены в том, как бы на самом деле работала ваша система.

+=========================+

|FAQ по бэктестингу MT4 v1.0 |MCBoogs' MT4 Backtesting FAQ.

+=========================+

Содержание:

- Раздел 1: Надежен ли бэктестинг MT4?

- Раздел 2: Загрузка/импорт/конвертация 1M данных

- Раздел 3: Настройка бэктестера

- Раздел 4: Другие вопросы

Раздел 1: Надежен ли бэктестинг MT4?

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

При бэктестинге вы хотите использовать модель EVERY TICK MODEL и иметь точные данные 1M, чтобы получить максимально точный тест. Данные 1M важны, потому что модель EVERY TICK MODEL использует любой наименьший доступный таймфрейм и "симулирует" движение цены в пределах наименьших доступных баров. Наличие 1M данных позволяет фрактальной интерполяции внутри баров происходить только в очень узком диапазоне 1M баров.

Самое простое [и единственное] решение этой проблемы - использовать хорошие данные 1M. Наиболее полные данные, которые вы можете получить [по крайней мере, бесплатно], находятся в банке данных Альпари. У них есть данные в родном формате MT по 1М таймфрейму до середины 2004 года. Однако, чтобы настроить данные для использования, необходимо проделать определенную работу.

---------------------------------------------------------------------------

Раздел 2: Загрузка/импорт/конвертация данных 1M

(1) Вам необходимо модифицировать MT4, чтобы разрешить использование большего количества баров. Зайдите в меню Инструменты, затем перейдите в Опции [или просто нажмите C+O]. Перейдите на вкладку графиков и введите 9999999999999 для баров в истории. MT4 по умолчанию установит максимальное значение.

[Примечание: Причина, по которой MT4 имеет ограниченное количество баров, заключается в том, что большее количество баров (особенно при использовании в моделях бэктестинга) означает, что MT4 будет съедать больше места на HD].

(2) Загрузите 1M данных из банка данных Альпари в той валюте, на которой вы собираетесь тестировать.

(3) Импортируйте данные в MT4 с помощью History Center. Перейдите в меню Инструменты => Центр истории [или нажмите F2]. Убедитесь, что вы импортируете данные в нужной валюте и на таймфрейме M1. Вы же не хотите, чтобы данные по EURUSD были важны для USDCAD, например.

(4) Преобразуйте данные с помощью скрипта конвертера периодов, включенного в MT4 [сейчас у вас только 1M баров]. Для этого вам нужно открыть автономные графики.

-Перейдите в меню File, затем Open Offline, выберите данные 1M валюты, которую вам нужно конвертировать. Появится график с этими данными.

-Затем перетащите скрипт period_converter на автономный график. Инт ExtPeriodMultiplier, который вы можете изменить, - это множитель, который вы применяете к графику. Так, если значение будет равно 5, то 1М данных будет преобразовано в 5М данных.

-Для простоты, вам нужно запустить конвертер периодов со следующими целыми числами, чтобы получить все таймфреймы для бэктестинга: 5,15,30,60,240 и 1440.

[ПРИМЕЧАНИЕ: вы также можете конвертировать данные 1M в таймфреймы, не свойственные MT4, если вы хотите провести индикаторный анализ или что-то еще на другом таймфрейме].

Поздравляем, теперь вы импортировали и конвертировали данные в MT4. Теперь, чтобы проиллюстрировать один из моих предыдущих пунктов, откройте валюту, данные по которой вы импортировали. Посмотрите на разницу в барах загруженных данных по сравнению с данными, поступающими от демо-брокера [Так, если вы загрузили 1M данных с июля 04 по август 05, посмотрите на график в конце августа 05 и в начале сентября 05]. Вы заметите, что бары (на каждом временном интервале, если вы правильно их конвертировали) из загруженного временного периода будут более полными.

------------------------------------------------------------------

Раздел 3: Настройка бэктестера

Теперь, когда вы успешно импортировали полные данные, вам нужно сделать еще несколько вещей, чтобы запустить надежный бэктест.

(1) Проверьте опцию пересчета при следующем запуске бэктеста, потому что вам нужно, чтобы бэктестер использовал ваши новые блестящие данные (чего он не будет делать, пока вы ему не скажете). Каждый раз, когда вы импортируете новые данные, вам нужно пересчитать (я пересчитываю каждые несколько тестов, просто чтобы чувствовать себя в безопасности, возможно, это отражение внутренних проблем с уверенностью, но это для другого FAQ).

(2) Отметьте опцию "Использовать дату" и установите диапазон дат только на период времени, когда у вас есть хорошие надежные данные. Таким образом, вы будете бэктестировать только хорошие данные. Это будет отражено в проценте качества моделирования.

(3) Убедитесь, что модель настроена на КАЖДЫЙ ТЫК. Если это не так, то вся эта тяжелая работа, которую мы только что проделали, была напрасной. Я рассказал о том, почему мы это делаем, ранее в FAQ.

------------------------------------------------------------------------

Раздел 4: Другие вопросы

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

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

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

 

Как вы проводите бэктест?

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

EG: SL имеет значение, начало, шаг и стоп?

Я просто хочу установить SL на 15

Спасибо

 
matrixebiz:
Когда я загружаю советника для бэктестинга, а затем захожу в настройки эксперта, почему для каждой строки есть 4 отдельные опции?

EG: SL имеет значение, старт, шаг и стоп?

Я просто хочу установить SL на 15

Спасибо

Это нужно для оптимизации настроек. Например:

sl=15

начните с 5 с шагом 1 и остановитесь на 20.

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

Что касается бэктестинга и оптимизации настроек, у нас есть следующие ссылки:

- Backtest Modeling Quality;

- MetaTrader Strategy Tester, часть 2;

- MetaTrader Strategy Tester, часть 1;

- M1 Tick by Tick Data for BackTesting.

Убедитесь, что у вас достаточно данных для бэктестирования с качеством моделирования 90%.

 

Данные бэктестов MT4 - откуда они берутся

Привет

MT4 версии 200 теперь имеет возможность загружать 1 минутную историю с 1999 года. Это замечательно подходит для тестирования долгосрочных стратегий. Проблема в том, что если я проведу бэктест на этих данных, смогу ли я продублировать результаты на реальных данных? Можно ли получить эти данные от брокера, у которого мы могли бы получить репрезентативный живой поток?

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

 
tururo:
Привет

MT4 версии 200 теперь имеет возможность загружать 1-минутную историю с 1999 года. Прекрасно подходит для тестирования долгосрочных стратегий. Проблема в том, что если я проведу бэктест на этих данных, смогу ли я продублировать результаты на реальных данных? Можно ли получить эти данные от брокера, у которого мы могли бы получить репрезентативный живой поток?

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

Как я понимаю, этот билд 200, поэтому я думаю, что данные откуда-то берутся. Я думаю, что это не данные вашего или моего брокера.

Поэтому до сих пор я использую данные Alpari (для бэктестинга/оптимизации).

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

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