Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
MultiTester - библиотека для MetaTrader 5
- Просмотров:
- 9306
- Рейтинг:
- Опубликован:
- 2019.07.19 22:21
- Обновлен:
- 2024.10.29 15:14
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Бывает, нужно советник прогнать на множестве символов. Для этого в MT5-тестере существует режим "Все символы, выбранные в окне Обзора рынка". Получается прогон одних и тех же настроек советника на разных символах.
Но иногда требуется сделать много различных запусков MT5-тестера. Данная библиотека позволяет это.
Возможности.
Можно задавать любое количество комбинаций символов, таймфреймов, интервалов. И проводить на них не только одиночные прогоны, но и оптимизацию, включая форвард.
Сценарии.
- Исследование, на каких символах и/или интервалах и/или таймфреймах ТС показывает хорошие результаты.
- Проведение оптимизации на последовательных интервалах с целью оценки автооптимизационных перспектив ТС.
Использование.
Настраиваем MT5-Тестер, как нам нужно.
На картинке показано, что будет проводиться Оптимизация полным перебором по реальным тикам на определенном интервале.
Создаем список нужных оптимизаций. Например, можно запустить советник из поставки к данной библиотеке.
С настройками, как на картинке, он запустит оптимизацию по всем символам из Обзора рынка, при этом для каждого символа сделает оптимизацию на M1 и M15 таймфреймах.
Результат будет таким
И теперь можно спокойно смотреть результаты оптимизации штатными средствами MT5-тестера.
Программирование.
Пример1.
Рассмотрим сначала совсем простой пример.
#include <fxsaber\MultiTester\MultiTester.mqh> // Множественные прогоны/оптимизации в Тестере. // Эта функция отвечает за формирование списка заданий. void SetTesterSettings() { TesterSettings.Add("AUDCAD"); // Прогнать AUDCAD с настройками, что заданы в Тестере. TesterSettings.Add("EURUSD", PERIOD_H1); // Прогнать EURUSD H1 с настройками, что заданы в Тестере. TesterSettings.Add("GBPUSD", PERIOD_M6, D'2019.07.01', D'2019.09.01'); // Прогнать GBPUSD M6 на заданном интервале. }
Результатом запуска такого советник будет три вызова Тестера с настройками, что читаются в исходном коде.
Пример2.
Разберем исходный код советника, демонстрация запуска которого приведена в начале.
#include <fxsaber\MultiTester\MultiTester.mqh> // Множественные прогоны/оптимизации в Тестере. sinput bool Period_M1 = false; // Включить M1 sinput bool Period_M5 = false; // Включить M5 sinput bool Period_M15 = false; // Включить M15 sinput bool false; // Только кастомные символы // Эта функция отвечает за формирование списка заданий. void SetTesterSettings() { // Перебираем все символы из Обзора рынка. for (int i = SymbolsTotal(true) - 1; i >= 0; i--) { const string Name = SymbolName(i, true); if (!OnlyCustomSymbols || SymbolInfoInteger(Name, SYMBOL_CUSTOM)) { if (Period_M1) TesterSettings.Add(Name, PERIOD_M1); // Если M1-задан, добавляем каждый символ с таким ТФ. if (Period_M5) TesterSettings.Add(Name, PERIOD_M5); // Если M1-задан, добавляем каждый символ с таким ТФ. if (Period_M15) TesterSettings.Add(Name, PERIOD_M15); // Если M15-задан, добавляем каждый символ с таким ТФ. if (!Period_M1 && !Period_M5 && !Period_M15) // Если ни один ТФ не задан, запустим на ТФ советника. TesterSettings.Add(Name); } } }
Во втором примере формируется список заданий, исходя из отмеченных ТФ и символов в Обзоре рынка. Опять же смотрим комментарии в исходнике.
Итак, все, что нужно, это прописать эту строку
#include <fxsaber\MultiTester\MultiTester.mqh> // Множественные прогоны/оптимизации в Тестере.
и написать только одну функцию, формирующую задания интуитивно понятным способом.
// Эта функция отвечает за формирование списка заданий. void SetTesterSettings()
Особенности.
- Требует разрешения использования DLL. Вызываются несколько WinAPI-функций из user32.dll. Поэтому не подходит для Маркета, если не обходить.
- В поставке в файле MTTester.mqh содержатся методы управления MT5-тестером, которые удобно использовать и в других проектах.
- Есть возможность возобновления задания с прерванного места.
Торговая стратегия по индикатору iRVI (Relative Vigor Index, RVI)
Day iRSI Current iMAТорговая стратегия на индикаторе iRSI (Relative Strength Index, RSI) с дневного таймфрейма и двух iMA (Moving Average, MA) с текущего таймфрейма
Модификация первой версии "Relative Vigor EA" - изменён блок генерации сигнала
RSI Custom Smoothing 2Модификация первой версии "RSI Custom Smoothing"