Скачать MetaTrader 5

Подкачка котировок тестером

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Forex Trader
114268
Forex Trader 2006.09.05 11:28 
Обращаюсь к разработчикам с просьбой разъяснить алгоритм использования и подкачки котировок тестером.
Тему эту поднимаю второй раз. Первое обсуждение было "Данные в тестере стратегий"

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

Вопрос
Тестер использует файлы котировок ..\history\server\*.hst , ..tester\cashes\*.* и tester\history\*.fxt.
В каком отношении они находятся друг к другу? Как гарантированно добиться наличия всех необходимых котировок? Может быть нужно удалять файлы из кэша перед новой закачкой данных? Или удалять файлы *.fxt? Или ставить галочку "Пересчитать" (зачем она вообще нужна)?

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

P.S. При работе тестера в правом нижнем углу иногда бежит подсчет загруженных данных. Куда складываются эти котировки? В каталог с файлами *.HST? Почему-то этот счетчик иногда начинает считать просто при повторном прогоне советника с теми же параметрами...
Forex Trader
114268
Forex Trader 2006.09.05 13:53  
Разработчики обещали решить эту проблему. Надо только подождать...

А пока самый надежный способ такой:
- открываем минутный график требуемой валюты
- выключаем автопоркрутку, смещение, и делаем минимальный масштаб
- кладём кирпич на кнопку Home, и идем курить
- приходим, убирем кирпич
- цепляем к графику скрипт period_converter с значением переменной 5
- дожидаемся появления записи в журнале "Эксперты" о том, что "столько-то записей записано"
- удаляем скрипт
- повторяем 3 последних шага со значениями переменных 15, 30, 60, 240, 1440
- смотрим дату первой котировки на минутном графике
- открываем тестер
- выбираем период М1
- устанавливаем начальной датой время первой минутной котировки
- ставим галочку "переситать"
- жмём старт
- как только начинается само тестирование (на закладке результаты появляются сделки), жмем стоп
- повторяем последние 4 шага для всех периодов (М5, М15, ...)
- при всех последующих тестах следим, чтоб галочка "пересчитать" была снята.

Все результаты будут идентичны ;)
Forex Trader
114268
Forex Trader 2006.09.05 13:56  
Разработчики обещали решить эту проблему. Надо только подождать...

А пока самый надежный способ такой:
- открываем минутный график требуемой валюты
...
Все результаты будут идентичны ;)


СПАСИБО! Это уже что-то!
MetaQuotes Software Corp.
Модератор
182415
MetaQuotes Software Corp. 2006.09.05 14:50  
Перед тестированием один раз прокачайте все графики путем постоянного нажатия на кнопку Home до тех пор, пока данные идут.

После чего никакой дополнительной подкачки не потребуется. А расхождения результатов можно также поискать в других местах.
Forex Trader
114268
Forex Trader 2006.09.05 14:58  
Перед тестированием один раз прокачайте все графики путем постоянного нажатия на кнопку Home до тех пор, пока данные идут.

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


Все не так просто.
Пример:
1) Прогоняю тестер первый раз, обнаруживается недостаток котировок (сделки начинаются не с начала указанного диапазона, хотя а протоколирую каждый день, т.е. часть диапазона тестер просто ПРОПУСКАЕТ)
2) Прохожу по всем графикам с запасом, то есть как минимум за полгода до стартовой точки.
2) Запускаю тестер. РЕЗУЛЬТАТ НЕ МЕНЯЕТСЯ. Куда делись подкачанные котировки?
MetaQuotes Software Corp.
Модератор
182415
MetaQuotes Software Corp. 2006.09.05 15:52  
Не с того начинаете. Сначала закачайте все графики, а потом запускайте тестер.
Forex Trader
114268
Forex Trader 2006.09.06 10:49  
2 komposter
- открываем минутный график требуемой валюты
- выключаем автопоркрутку, смещение, и делаем минимальный масштаб
- кладём кирпич на кнопку Home, и идем курить

После всех дебатов по поводу данных истории, а также собственного опыта, я усвоил следующее: хоть кирпич положи на кнопку Home, хоть сам на нее сядь, закачается только 16384 бара. В пересчете на дневки это 12 дней. С другой стороны, вручную на каждом т/ф можно закачать те же 16000 баров. Вопрос: зачем нужна возня с period_converter ?

Закачка эти несчастных 16000 баров у меня идет 10 сек. Закачать вручнуе все т/ф - 1-1.5 мин. Особенно не покуришь. Вопрос: обязательно ли курить ? :-)

И, наконец, главное. Если, к примеру, человек работает на Н1, а закачка истории дала ему по 16000 баров на всех нижележащих т/ф, то совершенно очевидно, что М1 будет покрывать только 1/60-ю истории Н1, М5 - 1/12-ю и т.д. Вопросы: Что дают следующие действия предложенной Вами схемы работы ?
- выбираем период М1
- устанавливаем начальной датой время первой минутной котировки
- ставим галочку "переситать"
- жмём старт
- как только начинается само тестирование (на закладке результаты появляются сделки), жмем стоп
- повторяем последние 4 шага для всех периодов (М5, М15, ...)

Изменяет ли это количество баров истории на используемых т/ф или это нужно для каких-то других целей ?
Как отражается неравномерность покрытия нижними т/ф тестируемого периода Н1 на качестве тестирования ?

Спасибо.
Forex Trader
114268
Forex Trader 2006.09.06 11:17  
После всех дебатов по поводу данных истории, а также собственного опыта, я усвоил следующее: хоть кирпич положи на кнопку Home, хоть сам на нее сядь, закачается только 16384 бара. В пересчете на дневки это 12 дней. С другой стороны, вручную на каждом т/ф можно закачать те же 16000 баров. Вопрос: зачем нужна возня с period_converter?

Закачка эти несчастных 16000 баров у меня идет 10 сек. Закачать вручнуе все т/ф - 1-1.5 мин. Особенно не покуришь. Вопрос: обязательно ли курить ? :-)
Курить обязательно =)
Может, у кого-то диал-ап...

Да, минуток мало. Их можно скачать с другого источника. Я именно так и делаю.
Поэтому и конвертер нужен...


И, наконец, главное. Если, к примеру, человек работает на Н1, а закачка истории дала ему по 16000 баров на всех нижележащих т/ф, то совершенно очевидно, что М1 будет покрывать только 1/60-ю истории Н1, М5 - 1/12-ю и т.д. Вопросы: Что дают следующие действия предложенной Вами схемы работы ?
- выбираем период М1
- устанавливаем начальной датой время первой минутной котировки
- ставим галочку "переситать"
- жмём старт
- как только начинается само тестирование (на закладке результаты появляются сделки), жмем стоп
- повторяем последние 4 шага для всех периодов (М5, М15, ...)
Если сделать ВСЕ файлы для тестера с одной начальной датой (датой первой минутки на графике), ВСЕ тесты будут давать один результат.


Как отражается неравномерность покрытия нижними т/ф тестируемого периода Н1 на качестве тестирования ?
В отчете тестирования, полоска качества моделирования.


Наверное, вы правы. Моя инструкция имеет право на жизнь, если скачать минутки за необходимый временной интервал времени. И сделать из них все другие ТФ и файлы для тестера.
В любом случае, у меня результаты тестов не меняютс якаждый день ;)
Forex Trader
114268
Forex Trader 2006.09.06 11:19  
Огромное спасибо тем, кто принял участие в обсуждении. Тем самым вы подтвердили мое опасение, что проблема не надуманная, что она существует.

Теперь по сути вопроса. Лично я торгую на CFD на акциях, поэтому мне интересно тестирование советника на тайм-фреймах от M15. После всех мытарств я выработал для себя следующий алгоритм.

1) Выбираем нужный инструмент. Запускаем тестер на M15 с любыми параметрами. Он пытается подкачать какие-то котировки. Заходим в логи и смотрим, с какой даты начинается тестирование. Если дата позже требуемой, переходим к следующему пункту.

2) Заходим на график инструмента и подкачиваем все котировки по всем тайм-фреймам до M5 включительно. Можно перекомпилировать советника, это в некоторых случаях почему-то помогало.

3) Запускаем оптимизацию. Если график оптимизации содержит более 10 проходов, то все в порядке. Если нет - переходим к п. 1. :-)

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

P.S. Жалко, что MetaTrader такой молчаливый. Я так понимаю, что это принципиальная позиция разработчиков (такое чувство, что в MT нет вообще никаких сообщений, надо будет последить :-) ). А то мог бы, вообще-то, сообщить, что нет истории котировок, покрывающей весь заданный диапазон...
Forex Trader
114268
Forex Trader 2006.09.06 11:45  
P.S. Жалко, что MetaTrader такой молчаливый. Я так понимаю, что это принципиальная позиция разработчиков (такое чувство, что в MT нет вообще никаких сообщений, надо будет последить :-) ). А то мог бы, вообще-то, сообщить, что нет истории котировок, покрывающей весь заданный диапазон...

Ещё дополнительным пунктом могу порекомендовать следующее.
После прохождения всех Ваших пунктов делаете следующее
4) Выключаем терминал МТ4. Выдёргиваем сетевой шнур LAN, или выключаем модем, если dial-up. Опять включаем терминал МТ4. Ставим галку пересчитать в тестере и прогоняем эксперт с полученными Вами ранее параметрами. Затем сравниваем результат полученный до и после отключения связи.

Сразу скажу, что у меня при отключении модема частенько происходит рассогласование времени открытия некоторых сделок, а иногда некоторые сделки при отсутсвии интернета во время тестирования вообще не открываются, причём не самые последние сделки на последнем текущем баре, а те, которые были далеко в начале истории и история М30, по которым была уже давным давно закачана. При наличии интернета результат всегда идентичен при каждом новом повторном тестировании через несколько дней! Поэтому провожу тестирование только при наличии интернет соединения. По крайней мере оно нужно на этапе запуска эксперта на тест при создании fxt файла, а потом модем можно отключить. Сообщите как обстоят дела у Вас на акциях? Я тестирую на EURUSD М30 по ценам открытия. В принципе я уже об этом сообщал несколько месяцев назад и разработчики говорили что проверят, но пока что до последнего официального билда ничего в этом плане не поменялось.

Правда как отловить эту ошибку в разнице сделок без высылки самого эксперта разработчикам я пока что не знаю. В принципе поскольку я об этой особенности МТ4 осведомлён, то и принимаю соответствующие меры при тестировании (включаю модем). Ну ведь другие же об этом не знают? Что они могут в результате подумать - а потом и написать здесь на форуме догадаться думаю не сложно ;o) ?!
Forex Trader
114268
Forex Trader 2006.09.06 12:47  
Вот это да! :-) Я подозревал, что такие штуки могут быть, поэтому тестирую только при наличии Интернета (благо, у меня DSL).

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

P.S. Тастирую на M15 (то есть, тестер использует M5) методом контрольных точек. Сегодня мне пообещали дать минутки за последние два года по всем акциям. Посмотрим, что получится.
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий