И здесь мы объявляем метод Order открытия позиции.
В методе Order мы используем входные параметры метода как флаги на открытие или закрытие позиции на покупку или продажу.
И функции сигналов торговой системы мы выделим в класс Sidus.
Здесь мы объявляем переменные экземпляра класса — хэндлы используемых индикаторов и их буферы.
И в конструкторе класса мы их инициализируем.
И мы также объявляем и реализуем методы вычисления сигналов на открытие или закрытие позиции на покупку или продажу.
В результате выделения функций в отдельные классы код советника существенно сократится.
Здесь мы сначала включаем файлы созданных нами классов с помощью директивы include.
Затем мы объявляем входные параметры советника и создаем экземпляры классов, передавая в конструкторы классов соответствующие входные параметры.
В методе OnInit советника мы просто теперь вызываем метод OnCheckTradeInit класса CheckTrade.
В методе OnTick советика для проверок мы вызываем метод OnCheckTradeTick класса CheckTrade.
И после получения исторических данных символа, мы вычисляем сигналы торговой системы, используя методы класса Sidus.
И отправляем запрос на ордер с помощью класса Trade.
Тестирование советников
Встроенный тестер терминала MetaTrader 5 позволяет протестировать и оптимизировать входные input параметры советника с использованием исторических данных финансовых инструментов.
Открыть тестер можно, нажав правой кнопкой мышки на советнике в окне Навигатор терминала и в контекстном меню выбрав Тестировать.
Также тестер можно открыть в меню Вид терминала с помощью команды Тестер стратегий.
Тестирование является многопоточным и проводится с помощью специальных сервисов-агентов, которые представлены тремя типами.
Это локальные агенты, устанавливаемые вместе с клиентским терминалом.
И число локальных агентов равно числу логических ядер процессора компьютера, которые используются агентами параллельно, поэтому при тестировании задействуются все доступные ресурсы компьютера.
Также для тестирования можно использовать локальные сетевые агенты, установленные на других компьютерах вместе с клиентскими терминалами.
Компьютеры должны быть соединены в локальную сеть, после чего создается ферма агентов с помощью менеджера агентов в меню Сервис терминала и производится подключение агентов во вкладе Агенты тестера терминала.
Локальные сетевые агенты также могут быть установлены на компьютере отдельно от торговой платформы с помощью файла metatester64.exe. Локальные сетевые агенты можно устанавливать только в 64-битных системах.
Еще один тип агентов это облачные агенты, использование которых платное и подключить которые также можно во вкладе Агенты тестера терминала.
Окно тестера позволяет выбрать интервал тестирования, финансовый инструмент для тестирования, если он явно не задан в советнике, временной период финансового инструмента, включить оптимизацию входных параметров советника, визуальный режим тестирования и др.
При включении визуального режима тестирования с помощью флажка Визуализация, на графике показываются используемые советником индикаторы.
Вкладка Бэктест окна тестера показывает результаты тестирования советника.
Для максимальной приближенности к условиям реальной торговли, при тестировании можно выбрать режим «Произвольная задержка», «Каждый тик на основе реальных тиков».
Быстро провести оптимизацию входных параметров можно в режиме «Форвард: 1/4», «Без задержки», «Только цены открытия».
«Только цены открытия» — расчет ведется только по ценам открытия баров.
Форвард-тестированием называется повторный прогон советника на другом временном периоде.
Такая возможность предусмотрена для исключения подгонки параметров советников на определенных участках исторических данных.
С включением этой опции история котировок валют и акций делится на две части.
Непосредственно оптимизация происходит на первом отрезке истории, а второй используется только для подтверждения полученных результатов.
Если на обоих отрезках эффективность торгового робота одинаково высока, значит, торговая система обладает наилучшими параметрами и подгонка параметров практически исключена.
Форвард 1/4 — используется четверть указанного периода для форвард-тестирования.
Режим произвольных задержек исполнения эмулирует сетевые задержки при передаче и обработке торговых запросов, а также моделирует задержки исполнения приказов дилерами при реальной торговле.
Важной функцией Тестера стратегий является оптимизация торгового робота, которая позволяет подобрать для конкретного советника лучшие входные параметры.
В процессе оптимизации происходит тестирование одного торгового робота с разными входными параметрами.
Количество комбинаций входных параметров при оптимизации может достигать десятков или сотен тысяч.
В итоге, оптимизация может превратиться в очень длительный процесс, который все же можно существенно сократить при помощи генетических алгоритмов.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии