Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Чуть выше Вы писали:
Возможно, так задумывалось, но... Провожу натурный эксперимент (build 358).
Удаляю все символы из папки "C:\Program Files\MetaTrader 5\Bases\Alpari-Demo\history"
Подключаюсь к Alpari-Demo (в терминале открыты 5 графиков: EURUSD H1, EURCHF H1, USDJPY H1, GPBUSD H1+M1).
Через несколько минут наблюдаю картину (закачка истории ещё продолжается):
Содержимое папки C:\Program Files\MetaTrader 5\Bases\Alpari-Demo\history
...
При этом если я правильно понимаю размеры файлов истории Вы смотрите в каталоге терминала, о чем говорит расположение "рабочего" каталога - C:\Program Files\MetaTrader 5\Bases\Alpari-Demo\history\EURJPY
У тестера же свой собственый каталог для этих данных - C:\Program Files\MetaTrader 5\tester\Агент (по количеству агентов)\bases\ДЦ или иной брокер (сервер)\history\....
В чем собственно проблема тогда?
Проблема в нежелании внимательно читать исходное сообщение ;)
В папке тестера при тестировании за текущий год действительно 2 файла (2009, 2010), но при первом запуске тестера на конкретном инструменте подкачивается ВСЯ история по нему (если не была закачана ранее или была удалена) в папку "x:\Program Files\MetaTrader 5\Bases\...", и пока он эту ЛИШНЮЮ информацию до конца не докачает, тестирование не начинается.
Я не возражаю против дублирования данных из \MetaTrader 5\Bases\ в MetaTrader 5\tester\Агент (по количеству агентов)\bases, т.к. понимаю, что это моментальный снимок состояния тиков для обеспечения абсолютной идентичности котировок при переборе параметров оптимизации. Но совсем уж лишние в текущий момент данные зачем закачивать?
Проблема в нежелании внимательно читать исходное сообщение ;)
В папке тестера при тестировании за текущий год действительно 2 файла (2009, 2010), но при первом запуске тестера на конкретном инструменте подкачивается ВСЯ история по нему (если не была закачана ранее или была удалена) в папку "x:\Program Files\MetaTrader 5\Bases\...", и пока он эту ЛИШНЮЮ информацию до конца не докачает, тестирование не начинается.
Я не возражаю против дублирования данных из \MetaTrader 5\Bases\ в MetaTrader 5\tester\Агент (по количеству агентов)\bases, т.к. понимаю, что это моментальный снимок состояния тиков для обеспечения абсолютной идентичности котировок при переборе параметров оптимизации. Но совсем уж лишние в текущий момент данные зачем закачивать?
История закачивается верно - значит был запрос на 2004 год. А при использовании тестера безусловно и верно закачивается вся история на максимальную глубину - это абсолютно верное и осознанное решение. Достаточно посмотреть на "непонимающие" возгласы пользователей МТ4, чтобы понять - если об истории мы не позаботимся, то пользователи не в состоянии даже проконтролировать историю.
Перечитайте мой ответ еще раз, пожалуйста.
Мы не просто так закачиваем и перепроверяем всю историю. Если используется тестер, то это неминуемо (не в этот тест, так в следующем) означает полную и безусловную работу со всей историей вне зависимости от того, что на данном конкретном тесте будет использоваться небольшой промежуток истории. Поэтому терминал заранее подготавливает и полностью перепроверяет глубину и корректность всей истории нужного символа. Конечно же, конкретному тест-агенту для конкретного теста передается/синхронизируется только нужный промежуток истории.
Так как трейдеры склонны не замечать правила корректной подготовки условий для тестирования, то терминал сам старается максимально подготовить и перепроверить окружение. Мы специально в MetaTrader 5 сняли ограничения на объемы и глубину запрашиваемых данных, чтобы трейдерам не приходилось вручную заниматься докачкой и синхронизацией данных.
1. Тестер стратегий
При тестировании тестером грузится только пара указанная в параметрах тестера. В том случае если проводится оптимизация по всем символам каждый символ будет последовательно подгружен.
Если советник мультивалютный остальные символы нужно подгружать самостоятельно.
Идея тут такова:
а. У тестера есть СВОЙ обзор рынка, в который изначально выставляется только пара указанная в параметрах тестера.
б. В случае необходимости остальные пары должны быть добавлены в обзор рынка тестера из советника, при помощи Select-а.
в. По существующим в обзоре рынка парам тестер стратегий синхронизирует данные с терминалом, а тот в свою очередь с торговым сервером (на котором открыт счет).
При этом загружается история на весь тестируемый период + определенное количество инфы до даты начала тестирования (если не ошибаюсь 1 год).
в. Если такая глубина эксперт (Вас) не устраивает необходимую историю следует подгрузить самостоятельно. Например в блоке инициализации, предварительно проверив наличие истории и синхронность данных.
а. логично
б. т.е., в общем случае, подкачать ПЕРЕД НАЧАЛОМ ТЕСТИРОВАНИЯ всё, что понадобится советнику в ходе тестирования, НЕВОЗМОЖНО (если не качать абсолютно всё).
в. т.е., до запуска советника в тестере соответствующие пары ещё отсутствуют в обзоре рынка тестера (в соответствии с пунктом а.)
в(2). глубина устраивает, большего я не просил.
Таким образом, закачку по поводам б, в, в(2) логичнее (но чуть сложнее) делать по факту обращения к данным в советнике.
Предлагаю добавить #property tester_symbol для заполнения таблицы из пункта а (если идея описана верно), с возможность задать несколько, как у #property description. Но по-прежнему убеждён, что при отсутсвии #property tester_symbol подкачка должна идти "по ходу пьесы" (кроме базового символа), т.к. их НЕОБХОДИМОСТЬ зависит толко от алгоритма работы самого эксперта.
2. Терминал
Тут история формируется подобным образом (насколько я понимаю по символам указанным в обзоре рынка терминала, с учетом открытых графиков). При начале работы с терминалом формируется необходимый минимум истории по символам с которыми ведется работа (точное количество баров не помню, но на форуме оно неоднократно указывалось).
Если данная глубина истории не устраивает то данные следует подгрузить самостоятельно. Для этого нужно переключиться на максимальный ТФ - месяц (как один из рекомендуемых вариантов) и при помощи прокрутки графика влево подгрузить историю на максимальную глубину.
Также желательно выставить необходимое число баров на графике в параметрах терминала.
Как оказалось, в конкретном случае закачивается не необходимый минимум, а вся история по символу, с которым ведётся работа.
Наблюдение (билд успел поменяться на 360): если немного поменять условия - не удалять после первоначальной закачки всю папку истории, оставив там текущий год, подкачка предыдущих лет самовольно не осуществляется! До запуска тестера на этом символе.
Перечитайте мой ответ еще раз, пожалуйста.
Мы не просто так закачиваем и перепроверяем всю историю. Если используется тестер, то это неминуемо (не в этот тест, так в следующем) означает полную и безусловную работу со всей историей вне зависимости от того, что на данном конкретном тесте будет использоваться небольшой промежуток истории. Поэтому терминал заранее подготавливает и полностью перепроверяет глубину и корректность всей истории нужного символа. Конечно же, конкретному тест-агенту для конкретного теста передается/синхронизируется только нужный промежуток истории.
Так как трейдеры склонны не замечать правила корректной подготовки условий для тестирования, то терминал сам старается максимально подготовить и перепроверить окружение. Мы специально в MetaTrader 5 сняли ограничения на объемы и глубину запрашиваемых данных, чтобы трейдерам не приходилось вручную заниматься докачкой и синхронизацией данных.
Именно просто так, "чтобы была"! К следующему использованию тестера история могла быть подкорректирована (особенно сейчас, когда она у разных ДЦ имеет кучу недостатков, от полного отсутсвия, до кривых данных).
Пользователь не понимает свалившегося на него счастья! Добавьте в настройках галку "НЕ ХОЧУ, хочу только по запросу пользователя или эксперта/скрипта/индикатора". И "НЕ ХОЧУ принудительного автоматического обновления MT5" тоже.
а. логично
б. т.е., в общем случае, подкачать ПЕРЕД НАЧАЛОМ ТЕСТИРОВАНИЯ всё, что понадобится советнику в ходе тестирования, НЕВОЗМОЖНО (если не качать абсолютно всё).
в. т.е., до запуска советника в тестере соответствующие пары ещё отсутствуют в обзоре рынка тестера (в соответствии с пунктом а.)
в(2). глубина устраивает, большего я не просил.
Таким образом, закачку по поводам б, в, в(2) логичнее (но чуть сложнее) делать по факту обращения к данным в советнике.
Предлагаю добавить #property tester_symbol для заполнения таблицы из пункта а (если идея описана верно), с возможность задать несколько, как у #property description. Но по-прежнему убеждён, что при отсутсвии #property tester_symbol подкачка должна идти "по ходу пьесы" (кроме базового символа), т.к. их НЕОБХОДИМОСТЬ зависит толко от алгоритма работы самого эксперта.
Для формирования списка символов, в том числе в тестере удобно (и вполне достаточно) использовать вот эти функции
Получение рыночной информации
Функции для получения информации о состоянии рынка.
Функция
Действие
SymbolsTotal
Возвращает количество доступных (выбранных в MarketWatch или всех) символов
SymbolName
Возвращает наименование указанного символа
SymbolSelect
Выбирает символ в окне MarketWatch или убирает символ из окна
-Проверьте, а не возвращает ли функция ArrayResize() значение "-1"?
Раньше, вроде как всплывало сообщение, типа "Out of memory", и программа аварийно завершалась - теперь нет. build 360.
Build 360. Похоже на ошибки в CTrade:
2010.10.04 18:59:00 CTrade::PositionOpen: instant buy 0.10 EURUSD at 1.36890 sl: 1.36390 tp: 1.37890 [done at 0.00000]
2010.10.05 09:43:00 CTrade::PositionModify: modify buy 0.00 EURUSD (sl: 1.36897, tp: 1.37861) [done]
Build 360. Несколько раз в тестере были сообщения "tester agent got failed"
GK 0 Tester 18:26:31 EURUSD: history preliminary downloading started
CL 0 Tester 18:28:55 EURUSD: history preliminary downloading completed
GH 0 Core 2 18:28:59 agent process started
HP 0 Core 2 18:29:00 connecting to 127.0.0.1:3000
OI 2 Tester 18:29:05 tester agent got failed
LI 0 Core 2 18:29:05 connect closed
GN 0 Core 2 18:34:14 agent process started
KJ 0 Core 2 18:34:14 connecting to 127.0.0.1:3000
RJ 0 Core 2 18:34:15 connected
OP 0 Core 2 18:34:15 authorized (agent build 360)
NH 0 Tester 18:34:15 EURUSD,M1 (Alpari-Demo): testing of Experts\third.ex5 from 2010.10.04 00:00 to 2010.11.05 00:00 to be started
...
HQ 0 Core 2 19:27:47 agent process started
II 0 Core 2 19:27:48 connecting to 127.0.0.1:3000
CP 2 Tester 19:27:53 tester agent got failed
HP 0 Core 2 19:27:53 connect closed
KI 0 Core 2 19:28:10 connecting to 127.0.0.1:3000
QL 0 Core 2 19:28:10 connected
PN 0 Core 2 19:28:10 authorized (agent build 360)
RJ 0 Tester 19:28:10 EURUSD,M1 (MetaQuotes-Demo): testing of Experts\third_alptest2.ex5 from 2010.10.04 00:00 to 2010.11.05 00:00 to be started
MF 0 Core 2 19:28:11 common synchronization completed
IM 0 Core 2 19:28:11 3124 bytes of account info loaded