![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
я не профессиональный программист. Экспертов писал на MQL3, 4 и 5. При переходе с 3-ки на 4-ку тоже было много новшеств в том числе и в синтаксисе. При переходе с 4-и на 5-у - пересторится было несложно. Поизучал немного С, С++ и С#, чтобы понимать что такое &, структуры, классы и пр. Я так понимаю как раз на таких как я язык и рассчитан. И в принципе все удобно. Кому не нравится ООП, пишите в обычном стиле.
Я так понимаю профессиональным программистам удобнее писать в общепринятых языках - так запихивайте все расчеты в DLL, а уж функционал обработки приказов достаточно простой. Хотя, я не писал ни одной DLL инаверно много не знаю.
Чтокасается обработки ошибок, так единственое с чем приходилось бороться - это деление на 0. Все остальное - на совести самого брокера, который криво исполняет приказы. Тут ответ на поверхности. Нах.. такой брокер ? Надо менять !
Механизм работы с таймсериями/индикаторами стал работать быстрее, экономичнее и позволяет оперировать огромной историей, не резервируя 100% памяти под нее, как это было в МТ4.
Язык стал детальнее, уровень контроля над процессами торговых операций серьезно вырос, что дало возможность разработчикам писать более безопасных роботов. Платой за детализацию и эффективность стало повышение сложности, но с другой стороны сложность была снижена применением ООП.
Почитайте статью Основы тестирования в MetaTrader 5, там говорится о загрузке минимальной истории.
История по используемым инструментам закачивается тестером из клиентского терминала (не с торгового сервера!) автоматически при первом обращении к данному инструменту.
Агент тестирования закачивает только недостающую историю с небольшим запасом, чтобы обеспечить необходимые данные на истории для расчета индикаторов на момент начала тестирования. Минимальный объем истории при скачивании с торгового сервера для таймфреймов D1 и меньше составляет один год. Таким образом, если запускается тестирование на интервале 2010.11.01-2010.12.01 (тестирование на интервале в один месяц) с периодом M15 (каждый бар равен 15 минутам), то у терминала будет запрошена история по инструменту за весь 2010 год. Для таймфреймов Weekly будет запрошена история в 100 баров, что составляет примерно два года (в году 52 недели). Для тестирования на месячном таймфрейме Monthly агент запросит историю за 8 лет (12 месяцев * 8 лет = 96 месяцев).
Если не удается по каким-либо причинам обеспечить необходимый запас баров перед началом тестирования, то дата начала будет автоматически сдвинута от прошлого к настоящему для того, чтобы обеспечить такой запас.Как оказалось с "огромной историей" не хочет работать тестер. Столкнулся с проблемой: советнику нужно 63000 баров Н1, в тестере он не работает поскольку «видит» только около 10000 баров - проверяю через Bars. На графике работает - «видит» 99000 баров.
И на всей истории и за последний год не работает.
HR 0 08:47:31 History EURUSD: history synchronized from 1971.01.04 to 2013.10.28
QH 3 08:47:31 Tester EURUSD: start time changed to 1971.05.27 00:00 to provide data at beginning
JQ 0 08:47:31 History EURUSD,H1: contains 101 bars of beginning data from 1971.01.04 00:00 to 1971.05.26 00:00
QO 0 08:47:31 History EURUSD,H1: history cache reserved for estimated 274388 bars
CK 0 08:47:31 History EURUSD,H1: history begins from 1971.01.04 00:00
EE 0 08:47:31 Tester EURUSD,H1 (MetaQuotes-Demo): OHLC bar states generating. OnTick executed on the bar begin only
FL 0 08:47:31 Tester EURUSD,H1: testing of Experts\Smart Neurons III.ex5 from 1971.01.04 00:00 to 2013.10.28 00:00 started with inputs:
NQ 0 08:47:31 Tester Horizon=48
GE 0 08:47:31 Tester History=62400
NR 0 08:47:31 Tester Moving_Average=12
MP 0 08:47:31 Tester Risk=1
LK 0 08:47:31 Smart Neurons III (EURUSD,H1) 1971.05.27 00:00:00 Alert: ERROR HISTORY BARS<62598
HL 2 08:47:31 Tester tester stopped because OnInit failed
=============
FH 0 08:46:58 History EURUSD: history synchronized from 1971.01.04 to 2013.10.28
RR 0 08:46:58 History EURUSD,H1: history cached from 2012.01.02 00:00
EH 0 08:46:58 Tester EURUSD,H1 (MetaQuotes-Demo): OHLC bar states generating. OnTick executed on the bar begin only
GF 0 08:46:58 Tester EURUSD,H1: testing of Experts\Smart Neurons III.ex5 from 2013.01.01 00:00 to 2013.10.28 00:00 started with inputs:
FK 0 08:46:58 Tester Horizon=48
KS 0 08:46:58 Tester History=62400
JL 0 08:46:58 Tester Moving_Average=12
IJ 0 08:46:58 Tester Risk=1
JF 0 08:46:58 Smart Neurons III (EURUSD,H1) 2013.01.01 00:00:00 Alert: ERROR HISTORY BARS<62598
LF 2 08:46:58 Tester tester stopped because OnInit failed
==============
Помогает:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Как задать количество доступных баров истории в тестере стратегий ?
Karlson, 2013.04.09 18:54
Устанавливайте начало теста с того времени,с которого вам необходимо получать данные.
В коде отдельно устанавливайте дату начала торговли.
К примеру
1.Начало тестирования 2010.01.01.
2.Начало торговли 2011.07.01.
Будут у вас подготовленные данные.