этот сайт кажется стандартным ответом на все, что касается клещей.
но я пытаюсь сделать нечто другое (я пошел другим путем, потому что мои тиковые данные НЕ из того же источника, как предполагается на этом сайте - они имеют другую начальную точку и поэтому не являются подходящей подложкой для предлагаемых файлов/систем преобразования).
Действительно, при использовании моего метода нет необходимости использовать старую версию metatrader. Если я прав. Я тоже почти у цели - мне просто нужна помощь на последнем этапе,
Что вы думаете?
1) Я на правильном пути?
Как я уже сказал, я просто не могу использовать путь а-ля этот сайт (Birt EA), так как он не действителен для моей начальной точки.
2) Если да - есть ли у вас идеи, как преодолеть этот последний камень преткновения?
mikey:
[...]
4) НО проблема: согласно metatrader, в этих данных есть несколько баров с одинаковой датой и меткой времени (потому что metatrader игнорирует секунды; самое малое, что он считает - это минуты). Я думаю, что решение этой проблемы заключается в том, чтобы изменить данные так, чтобы все бары имели разные отметки даты и времени (с разрешением, которое может быть воспринято метатрейдером). [...]
Это ничего не решит, поскольку тестер всегда будет сначала интерполировать тики для бэктестинга, независимо от того, что вы делаете в центре истории. Основная идея метода Бирта заключается в том, чтобы заменить файл интерполированных тиков файлом, содержащим реальные тики, на которых тестер будет тестировать. Даже если вы преуспеете в вашей текущей попытке, тестер все равно будет интерполировать тики для проверки, так что это не имеет смысла.
Я рекомендую вам прочитать это -> https://www.mql5.com/en/articles/1511 и еще раз просмотреть учебник Бирта. Вашей целью должно быть создание правильного FXT файла с реальными тиками для замены FXT файла, сгенерированного тестером. Используя метод Бирта, вы можете отключить "пересчет" и таким образом заставить тестер использовать ваш FXT файл (с вашими реальными тиками).
Все зависит от следующего:
1) Интерполирует ли metatrader тики только ВНУТРИ баров? (Я думаю, что да)
2) И он делает это, руководствуясь и ограничиваясь заданными значениями бара: open, high, low, close?
Если [1] и [2] верны, я думаю, что мой метод действителен, потому что в моем методе каждый бар имеет только 1 тик. Таким образом, открытие, максимум, минимум и закрытие имеют одинаковое значение. Поэтому, когда metatrader использует их для интерполяции тиков - все интерполированные тики получают одинаковое значение/цену. Таким образом, интерполяция metatrader новых тиков не является проблемой - она ничего не меняет.
Мне кажется, я понимаю суть проблемы и, возможно, нахожусь на пути к лучшему, на мой взгляд, способу ее решения. Но меня могут поправить. Может быть, я наивен.
1) Интерполирует ли metatrader тики только ВНУТРИ баров? (Я думаю, что да)
2) И он делает это, руководствуясь и ограничиваясь заданными значениями бара: open, high, low, close?
Если [1] и [2] верны, я думаю, что мой метод действителен, потому что в моем методе каждый бар имеет только 1 тик. Таким образом, открытие, максимум, минимум и закрытие имеют одинаковое значение. Поэтому, когда metatrader использует их для интерполяции тиков - все интерполированные тики получают одинаковое значение/цену. Таким образом, интерполяция metatrader новых тиков не является проблемой - она ничего не меняет. [...]
Понятно... Спасибо за разъяснение. Ну, если бар имеет O=C=H=L и объем=1, то действительно должен быть сформирован только 1 тик. Но это означает, что вы "растягиваете" временную шкалу на средний объем бара. И вы растягиваете его "равномерно", хотя разные бары имеют разные объемы. Это должно иметь серьезные последствия для большинства экспертов. Это также означает, что даты/время в отчетах о тестировании будут растянуты, и что своп будет сделан в бесчисленное количество раз больше, чем следовало бы. Это звучит крайне ненадежно, и я думаю, что это просто не будет "работать" для большинства экспертов.
В любом случае, отвечая на ваш вопрос "как это сделать". Просто создайте файл M1 HST с каждым баром, представляющим один тик. Это можно сделать с помощью скрипта. Структура HST-файла описана в руководстве (Terminal Help), и вы можете повторно использовать некоторый код из скрипта csv2fxt.
p.s. Если вам интересно, как интерполяция выполняется в тестере, есть хорошая статья о том, как это делается в тестере MT5... Должно быть очень похоже (если не то же самое) на то, что происходит в MT4 Tester -> https://www.mql5.com/en/articles/75.
В качестве дополнительного пояснения к моему предыдущему:
Каждому тику присваивается свой собственный бар M1 (бар с уникальной датой и меткой времени, с разрешением времени в целых минутах).
Таким образом, это означает, что время смещается - бар тика может иметь совсем другое время, чем то, когда этот тик произошел на самом деле.
Но для меня это НЕ проблема. Мне не нужно точно знать время. Я знаю, какие данные я поместил в бэктест (с этой даты по эту дату) и в конце я узнаю, была ли прибыль или убыток получена в конце этого периода с помощью этого метода. (Точная дата/время на выходном графике меня не волнует).
Опять же - меня могут поправить. Это все разумно или безумие? Пожалуйста, найдите время, чтобы понять, что я сказал, а не просто отсылайте меня к Биртсу, потому что если я могу правильно донести и передать это, и это разумно - я думаю, это может быть лучшим способом делать вещи.
mikey:
[...] Но для меня это НЕ проблема. Мне не нужно точно знать время. Я знаю, какие данные я поместил в бэктест (с этой даты по ту дату), и в конце я узнаю, была ли получена прибыль или убыток в конце этого периода с помощью этого метода. (точная дата/время на выходном графике меня не волнует) [...].
Да. Ваш ответ только что появился, когда я отправил свой последний.
RE: volume...- если мой советник не "читает" объем, я в безопасности? Мне не нужно беспокоиться об этом? Я не думал об объеме - но, как я уже сказал, мой советник не "читает" его ни для чего. Итак, просто чтобы прояснить - я могу игнорировать объем? Или я должен установить объем равным 1 для всех баров?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Резервное тестирование с тиковыми данными
Я думаю, что нашел хороший способ сделать это в metatrader - и я прошел через этот метод, но застрял, и мне нужна помощь на последнем этапе.
1) Получены тиковые данные от компании (коммерческий источник) символ: CL (нефть) В бесплатных источниках, например, dukascopy и т.д. нет этого символа.
2) Использовал программное обеспечение компании для рендеринга этих тиковых данных в формат бара (без потери разрешения). Формат бара:
дата, время, открытие, максимум, минимум, закрытие, объем.
Каждый бар имеет только 1 тик в нем! Таким образом, для данного бара открытие, максимум, минимум, закрытие все одинаковы, потому что в баре всего 1 тик.
3) Я получаю эти тиковые данные в тестер стратегий metatrader, заходя в папки истории metatrader и удаляя все соответствующие файлы. Я открываю metatrader в автономном режиме и использую центр истории и функцию импорта, чтобы получить эти данные. Конечно, хотя это тиковые данные - со своим форматом баров - они нормально воспринимаются metatrader. Когда я использую тестер стратегий (конечно, все еще в автономном режиме), он может получить доступ к этим данным.
4) НО проблема: согласно metatrader, в этих данных есть несколько баров с одинаковой датой и временем (потому что metatrader игнорирует секунды; самое малое, что он считает - это минуты). Я думаю, что решение этой проблемы заключается в том, чтобы изменить данные так, чтобы все бары имели разные отметки даты и времени (с разрешением, которое может быть воспринято метатрейдером). Так, например, если
один бар имеет метку времени 18:00:00, а следующий - 18:00:08, то второй бар должен быть изменен на метку времени 18:01:00. Чтобы метатрейдер мог принять его за следующий бар. Это, конечно, изменит все временные метки (и метки даты в свое время), но я не думаю, что это действительно важно. Мой вопрос - КАК ИЗМЕНИТЬ ВСЕ ШТАМПЫ ДАТЫ И ВРЕМЕНИ ТАКИМ СПОСОБОМ?
Конечно, в данных слишком много записей для Excel. У меня есть доступ к microsoft Access.
Возможно, сработает скрипт, который будет добавлять 1 секунду итеративно к каждому временному входу. Но при этом нужно будет соответственно менять час по мере роста, а затем, конечно, и дату. Именно это меня и заводит в тупик. Не знаю, как это сделать.
Пример моих тиковых данных, основанных на барах, вырезан и вставлен ниже
(это данные CL - фьючерс на сладкую сырую нефть)
дата, время, открытие, максимум, минимум, закрытие, объем
20100831,18:00:00,71.70,71.70,71.70,71.70,2
20100831,18:00:00,71.70,71.70,71.70,71.70,1
20100831,18:00:00,71.70,71.70,71.70,71.70,1
20100831,18:00:00,71.70,71.70,71.70,71.70,1
20100831,18:00:00,71.70,71.70,71.70,71.70,1
20100831,18:00:01,71.73,71.73,71.73,71.73,2
20100831,18:00:01,71.74,71.74,71.74,71.74,1
20100831,18:00:01,71.73,71.73,71.73,71.73,1
20100831,18:00:01,71.74,71.74,71.74,71.74,1
20100831,18:00:01,71.74,71.74,71.74,71.74,1
20100831,18:00:01,71.74,71.74,71.74,71.74,1
20100831,18:00:01,71.74,71.74,71.74,71.74,1
20100831,18:00:01,71.74,71.74,71.74,71.74,1
20100831,18:00:01,71.74,71.74,71.74,71.74,1
20100831,18:00:01,71.75,71.75,71.75,71.75,7
20100831,18:00:01,71.75,71.75,71.75,71.75,1
20100831,18:00:04,71.75,71.75,71.75,71.75,1
20100831,18:00:05,71.74,71.74,71.74,71.74,1
20100831,18:00:05,71.75,71.75,71.75,71.75,1
20100831,18:00:05,71.75,71.75,71.75,71.75,3
20100831,18:00:08,71.75,71.75,71.75,71.75,7
20100831,18:00:09,71.75,71.75,71.75,71.75,1
20100831,18:00:10,71.75,71.75,71.75,71.75,1
20100831,18:00:10,71.75,71.75,71.75,71.75,1
20100831,18:00:10,71.71,71.71,71.71,71.71,1
20100831,18:00:11,71.70,71.70,71.70,71.70,1
20100831,18:00:11,71.68,71.68,71.68,71.68,1
20100831,18:00:19,71.71,71.71,71.71,71.71,1
20100831,18:00:19,71.71,71.71,71.71,71.71,1
20100831,18:00:19,71.69,71.69,71.69,71.69,1
20100831,18:00:19,71.69,71.69,71.69,71.69,1
20100831,18:00:19,71.68,71.68,71.68,71.68,2
20100831,18:00:19,71.67,71.67,71.67,71.67,1
20100831,18:00:34,71.72,71.72,71.72,71.72,1
20100831,18:00:34,71.72,71.72,71.72,71.72,1
20100831,18:00:35,71.72,71.72,71.72,71.72,1
20100831,18:00:37,71.72,71.72,71.72,71.72,1
20100831,18:00:56,71.71,71.71,71.71,71.71,1
20100831,18:00:56,71.71,71.71,71.71,71.71,1
20100831,18:00:56,71.70,71.70,71.70,71.70,1
20100831,18:01:00,71.71,71.71,71.71,71.71,1
20100831,18:01:02,71.72,71.72,71.72,71.72,1
20100831,18:01:11,71.71,71.71,71.71,71.71,1
20100831,18:01:12,71.71,71.71,71.71,71.71,1
20100831,18:01:13,71.71,71.71,71.71,71.71,1
20100831,18:01:16,71.70,71.70,71.70,71.70,1
20100831,18:01:26,71.70,71.70,71.70,71.70,3
20100831,18:01:26,71.70,71.70,71.70,71.70,5
20100831,18:01:28,71.70,71.70,71.70,71.70,1
20100831,18:01:33,71.71,71.71,71.71,71.71,1
20100831,18:01:36,71.70,71.70,71.70,71.70,4
20100831,18:01:45,71.70,71.70,71.70,71.70,1
20100831,18:01:46,71.71,71.71,71.71,71.71,2
20100831,18:01:46,71.71,71.71,71.71,71.71,4
20100831,18:01:49,71.71,71.71,71.71,71.71,1
20100831,18:02:19,71.70,71.70,71.70,71.70,1
20100831,18:02:25,71.70,71.70,71.70,71.70,1
20100831,18:02:25,71.70,71.70,71.70,71.70,1
20100831,18:02:25,71.70,71.70,71.70,71.70,1
20100831,18:02:25,71.70,71.70,71.70,71.70,1
20100831,18:02:26,71.70,71.70,71.70,71.70,1
20100831,18:02:26,71.70,71.70,71.70,71.70,1
20100831,18:02:39,71.74,71.74,71.74,71.74,1
20100831,18:03:10,71.74,71.74,71.74,71.74,1
20100831,18:03:29,71.75,71.75,71.75,71.75,1
20100831,18:03:34,71.75,71.75,71.75,71.75,1
20100831,18:03:34,71.77,71.77,71.77,71.77,1
20100831,18:03:41,71.78,71.78,71.78,71.78,1
20100831,18:03:41,71.78,71.78,71.78,71.78,5
20100831,18:03:41,71.78,71.78,71.78,71.78,5
20100831,18:03:41,71.79,71.79,71.79,71.79,1
20100831,18:03:44,71.78,71.78,71.78,71.78,1
20100831,18:03:50,71.78,71.78,71.78,71.78,1
20100831,18:03:52,71.79,71.79,71.79,71.79,1
20100831,18:04:14,71.79,71.79,71.79,71.79,1
20100831,18:04:14,71.79,71.79,71.79,71.79,1
20100831,18:04:14,71.80,71.80,71.80,71.80,1
20100831,18:04:14,71.80,71.80,71.80,71.80,2
Обратите внимание, что я могу отобразить данные без секунд и только в минутах, что может помочь в решении.
20100831,18:00,71.70,71.70,71.70,71.70,2
20100831,18:00,71.70,71.70,71.70,71.70,1
20100831,18:00,71.70,71.70,71.70,71.70,1
20100831,18:00,71.70,71.70,71.70,71.70,1
20100831,18:00,71.70,71.70,71.70,71.70,1
20100831,18:00,71.73,71.73,71.73,71.73,2
20100831,18:00,71.74,71.74,71.74,71.74,1
20100831,18:00,71.73,71.73,71.73,71.73,1
20100831,18:00,71.74,71.74,71.74,71.74,1
20100831,18:00,71.74,71.74,71.74,71.74,1
20100831,18:00,71.74,71.74,71.74,71.74,1
20100831,18:00,71.74,71.74,71.74,71.74,1
20100831,18:00,71.74,71.74,71.74,71.74,1
20100831,18:00,71.74,71.74,71.74,71.74,1
20100831,18:00,71.75,71.75,71.75,71.75,7
20100831,18:00,71.75,71.75,71.75,71.75,1
20100831,18:00,71.75,71.75,71.75,71.75,1
20100831,18:00,71.74,71.74,71.74,71.74,1
20100831,18:00,71.75,71.75,71.75,71.75,1
20100831,18:00,71.75,71.75,71.75,71.75,3
20100831,18:00,71.75,71.75,71.75,71.75,7
20100831,18:00,71.75,71.75,71.75,71.75,1
20100831,18:00,71.75,71.75,71.75,71.75,1
20100831,18:00,71.75,71.75,71.75,71.75,1
20100831,18:00,71.71,71.71,71.71,71.71,1
20100831,18:00,71.70,71.70,71.70,71.70,1
20100831,18:00,71.68,71.68,71.68,71.68,1
20100831,18:00,71.71,71.71,71.71,71.71,1
20100831,18:00,71.71,71.71,71.71,71.71,1
20100831,18:00,71.69,71.69,71.69,71.69,1
20100831,18:00,71.69,71.69,71.69,71.69,1
20100831,18:00,71.68,71.68,71.68,71.68,2
20100831,18:00,71.67,71.67,71.67,71.67,1
20100831,18:00,71.72,71.72,71.72,71.72,1
20100831,18:00,71.72,71.72,71.72,71.72,1
20100831,18:00,71.72,71.72,71.72,71.72,1
20100831,18:00,71.72,71.72,71.72,71.72,1
20100831,18:00,71.71,71.71,71.71,71.71,1
20100831,18:00,71.71,71.71,71.71,71.71,1
20100831,18:00,71.70,71.70,71.70,71.70,1
20100831,18:01,71.71,71.71,71.71,71.71,1
20100831,18:01,71.72,71.72,71.72,71.72,1
20100831,18:01,71.71,71.71,71.71,71.71,1
20100831,18:01,71.71,71.71,71.71,71.71,1
20100831,18:01,71.71,71.71,71.71,71.71,1
20100831,18:01,71.70,71.70,71.70,71.70,1
20100831,18:01,71.70,71.70,71.70,71.70,3
20100831,18:01,71.70,71.70,71.70,71.70,5
20100831,18:01,71.70,71.70,71.70,71.70,1
20100831,18:01,71.71,71.71,71.71,71.71,1
20100831,18:01,71.70,71.70,71.70,71.70,4
20100831,18:01,71.70,71.70,71.70,71.70,1
20100831,18:01,71.71,71.71,71.71,71.71,2
20100831,18:01,71.71,71.71,71.71,71.71,4
20100831,18:01,71.71,71.71,71.71,71.71,1
20100831,18:02,71.70,71.70,71.70,71.70,1
20100831,18:02,71.70,71.70,71.70,71.70,1
20100831,18:02,71.70,71.70,71.70,71.70,1
20100831,18:02,71.70,71.70,71.70,71.70,1
20100831,18:02,71.70,71.70,71.70,71.70,1
20100831,18:02,71.70,71.70,71.70,71.70,1
20100831,18:02,71.70,71.70,71.70,71.70,1
20100831,18:02,71.74,71.74,71.74,71.74,1
20100831,18:03,71.74,71.74,71.74,71.74,1
20100831,18:03,71.75,71.75,71.75,71.75,1
20100831,18:03,71.75,71.75,71.75,71.75,1
20100831,18:03,71.77,71.77,71.77,71.77,1
20100831,18:03,71.78,71.78,71.78,71.78,1
20100831,18:03,71.78,71.78,71.78,71.78,5
20100831,18:03,71.78,71.78,71.78,71.78,5
20100831,18:03,71.79,71.79,71.79,71.79,1
20100831,18:03,71.78,71.78,71.78,71.78,1
20100831,18:03,71.78,71.78,71.78,71.78,1
20100831,18:03,71.79,71.79,71.79,71.79,1
20100831,18:04,71.79,71.79,71.79,71.79,1
20100831,18:04,71.79,71.79,71.79,71.79,1
20100831,18:04,71.80,71.80,71.80,71.80,1
20100831,18:04,71.80,71.80,71.80,71.80,2
20100831,18:04,71.80,71.80,71.80,71.80,1
20100831,18:04,71.80,71.80,71.80,71.80,3
20100831,18:04,71.80,71.80,71.80,71.80,17
20100831,18:04,71.80,71.80,71.80,71.80,1
20100831,18:04,71.80,71.80,71.80,71.80,4
20100831,18:04,71.79,71.79,71.79,71.79,1