Тестирование Стратегий Алгоритмический Трейдинг, Торговые Роботы
В тот момент, когда происходит первое обращение к чужому символу, процесс тестирования останавливается и происходит подкачка истории по паре символ/период от терминала к агенту тестирования. Одновременно включается генерация тиковой последовательности для этого символа. Тестер позволяет проводить проверку на истории стратегий, торгующих на нескольких инструментах. Такие эксперты условно называют мультивалютными, так как изначально в предыдущих платформах тестирование проводилось только для одного инструмента. В тестере же терминала MetaTrader 5 можно моделировать торговлю по всем доступным инструментам.
- Однако теперь вы знаете, как принимать данные, используя пользовательский файл CSV.
- Ход выполнения тестирования отображается на вкладке “Журнал”, дополнительно в журнал выводятся сообщения самого советника.
- Они позволяют выбрать оптимальное соотношение скорость/качество в соответствии с вашими потребностями.
- В этом примере мы рассматриваем акции Apple и выбираем годы 2016–2017 в качестве продолжительности тестирования.
- Количество локальных агентов по умолчанию соответствует количеству ядер на компьютере.
Разработать прибыльного и безошибочного эксперта без тестера практически невозможно. Если в истории символа есть минутный бар, но тиковых данных за эту минуту нет, тестер сгенерирует тики в режиме “Все тики”. Это позволяет выстроить правильный график в тестере в случае неполных тиковых данных у брокера.
История по тестируемому инструменту синхронизируется и закачивается терминалом с торгового сервера перед запуском процесса тестирования. При этом в первый раз терминал скачивает с торгового сервера сразу всю доступную по тестируемому инструменту историю, чтобы впоследствии не обращаться за ней. На рисунке представлен очень привлекательный график тестирования этого эксперта. Для минутного бара известно 4 цены, и для них точно известно, что первой идет цена Open, а последней идет цена Close. Между ними есть цены High и Low, последовательность их наступления неизвестна, но известно, что цена High больше или равна цене Open (цена Low меньше или равна цене Open). Запуск функции OnTick() производится на всех контрольных точках, которые строятся по ценам OHLC минутных баров.
На графике дата начала форвард-период отмечается вертикальной линией. Включите эту опцию, чтобы использовать настройки комиссии текущего торгового счета вместо пользовательских настроек, указанных ниже. Чтобы использовать настройки комиссии текущего торгового счета, включите опцию “Использовать предопределенные комиссии”.
Функция IndicatorRelease() изначально предназначена для освобождения расчетной части индикатора, если он больше не нужен. Это позволяет экономить как память, так и ресурсы процессора, потому что каждый тик вызывает расчет индикатора. Второе ее предназначение – запретить показ индикатора на графике тестирования после окончания одиночного прогона. Для вывода текущего времени мы использовали функцию TimeTradeServer(), а не TimeCurrent().
Подробный пример использования функции Sleep() можно посмотреть в разделе Организация доступа к данным. Таким образом, для проведения мультивалютного тестирования в клиентском терминале MetaTrader 5 не требуется предпринимать никаких дополнительных усилий. Достаточно открыть графики соответствующих инструментов в клиентском терминале. История по нужным символам будет автоматически загружена с торгового сервера при условии, что эти данные есть на нем. Перед началом тестирования мультивалютного эксперта необходимо выбрать требуемые для тестирования инструменты в “Обзоре рынка” терминала и подкачать данные на нужную глубину. При первом же обращении к “чужому” символу будет автоматически произведена синхронизация по этому символу между агентом тестирования и клиентским терминалом.
Глобальные Переменные Клиентского Терминала #
Режим “1 minute OHLC” подойдет для тех, кому нужно протестировать стратегию быстрее, однако достаточно точно. Если нужна очень быстрая и грубая оценка — только по ценам открытия баров, выбирайте режим “Только цены открытия”. Главным преимуществом тестирования является оценка торгового робота без его реальной работы на рынке. Кроме того, в тестере это занимает намного меньше времени — всего несколько минут против дней, недель и месяцев при тестировании эксперта на реальном рынке.
Освобождать накопленную прибыль в конце дня — данная опция доступна только при включении опции “Использовать дневной фиксированный убыток”. Если она включена, то в конце торгового дня прибыль, накопленная в течение дня, будет освобождаться и записываться на баланс (а соответственно учитываться в свободной марже). Также вы можете быстро вернуться к одному из предыдущих результатов оптимизации и настройкам, на которых он был достигнут.
Остальные параметры задаются аналогично тому, как это происходит при тестирование торговых роботов. До тех пор пока открыт визуализатор, записи журнала агента тестирования не отсылаются в тестер стратегий в торговой платформе. Тем не менее, они могут быть просмотрены через нее при помощи команды “Журналы локальных агентов” в контекстном меню. Ход выполнения тестирования отображается на вкладке “Журнал”, дополнительно в журнал выводятся сообщения самого советника. При включении режима визуального тестирования, ход тестирования можно просмотреть непосредственно на графике. Помимо этого здесь представлены графики распределения количества и успешности торговых операций по часам, дням и месяцам, а также графики, характеризующие рискованность торговой стратегии.
Символ И Период
В него записываются вся информация о тестировании и действиях советника во время него. Информация о параметрах торговых операций доступна в разделах Торговля и История. На вкладке “График” можно легко визуально определить, насколько успешно отработал советник на выбранном инструменте на выбранном интервале времени. Результаты тестирования советников отображаются на вкладках “Бэктест” и “График”. Также комиссию можно взимать в зависитот от объема каждой сделки или от ежедневного или ежемесячного оборота.
Но в большинстве случаев имейте в виду, что ваша худшая просадка впереди, а не позади вас. Ручное тестирование торговой стратегии позволит вам оценить жизнеспособность вашей торговой идеи. Вы можете просмотреть исторические данные, чтобы увидеть, будут ли ваши идеи работать. В окне данных можно посмотреть информацию о ценах (OHLC), дате и времени бара, спреде, объеме, а также об используемых индикаторах.
Где Посмотреть Результаты Тестирования #
Тестер стратегий в MetaTrader является примером автоматизированного инструмента тестирования, имеющего встроенную систему бэктестинга. Вы можете использовать язык MQL4 для построения своей торговой системы. Если вы хотите протестировать стратегию с использованием внутридневных данных, таких как ежечасные, минутные или тиковые данные, вам, вероятно, потребуется приобрести данные у поставщика. Преимущества покупки данных у поставщика состоят в том, что, как правило, их данные уже отфильтрованы и очищены. Существует множество бесплатных поставщиков котировок, которые позволят вам загрузить исторические данные для дневных или недельных таймфреймов.
Для того, чтобы быть загруженным вziplineданные должны быть в CSV-файле и в предопределенном формате – как в предварительном просмотре DataFrame. Агент получает хэши блоков и с сравнивает с теми, что он уже хранит у себя. Если отпечаток данного блока параметров отсутствует у агента, или присланный хэш отличается от имеющегося, то агент запрашивает сам блок параметров. Данное ограничение не распространяется на тестирование в визуальном режиме. Достаточно определить момент поступления цены Open и затем анализировать следующий тик, чтобы определить что перед нами – High или Low. Если цена ниже цены Open, значит, перед нами цена Low – покупаем на этом тике, следующий тик будет соответствовать цене High, на котором закрываем покупку и открываем продажу.
Что Такое Тестирование На Истории?
Если в терминале задан шаблон с названием tester.tpl в каталоге /profiles/templates клиентского терминала, то именно он будет применен к открываемому графику. Пример такого эксперта Synchronize_Bars_Use_OnTimer.mq5 приложен к статье. В этом варианте не требуется проверять значение_функции на равенство нулю и сама поверхность результатов оптимизации в 3D-представлении имеет ту же форму, только зеркально отраженную от исходной. Расчет индикатора на каждом тике делается однократно, и все последующие обращения за данными индикатора до поступления нового тика не вызывают пересчета. Поэтому, если в эксперте с помощью функции EventSetTimer() включен таймер, то перед каждым вызовом обработчика OnTimer() будут запрошены данные индикатора с момента последнего тика.
Проведем оптимизацию и представим результаты оптимизации в виде 2D графика. При использовании тестера для решения математических задач закачка истории и генерация тиков не происходят. Были сделаны замеры времени тестирования при различных значениях тестирование торговых стратегий параметра timer (периодичность события Timer). На полученных данных построен график зависимости времени тестирования T от значения периодичности Period. Во время тестирования/оптимизации не осуществляется построение графических объектов.
Быстрый Переход К Редактированию Советника
В этой статье я показал, как использоватьziplineрамки для проведения тестирования торговых стратегий на истории. Как только вы познакомитесь с библиотекой, легко опробовать различные стратегии. В следующей статье я расскажу об использовании более продвинутых торговых стратегий, основанных на техническом анализе.
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров, что позволяет выбрать наиболее удачную их комбинацию. Для проверки качеств торгового робота в MetaTrader 5 встроен Тестер торговых стратегий.