Главная PythonDLL Агенты MQL5Doc JavaDoc GitHub English

MetaTrader 5 Агенты & AWS EC2

Использование MetaTrader 5 (MT5) Agents на серверах Амазона VPS/VDS. Это отличный вариант проверки торговой стратегии для валютных и биржевых рынков Forex, CFD и Futures.

MetaTrader 4 (MT4) не имеет Агентов тестирования.

Отличие от использования облака Агентов:

Агенты запускаются с флагом “/local”, как при локальном использовании.

Затраты при использовании серверов Амазона могут быть гораздо экономичнее, чем при использовании облака Агентов. Расчёт стоимости облака происходит по загадочной формуле, поэтому очень сложно оценить затраты на полную оптимизацию.

В чём выгода?

Цены на спот-инстансы доступны здесь. Но после регистрации становится доступна таблица, которую можно получить при создании спот-инстанса (синяя кнопка “Request Spot Instances”) и нажав на серую кнопку “Change instance type”.
Spot Prices

Есть особый инстанс:
cc2.8xlarge CPUs 32 Memory 60.5GiB SSD 4 x 840 GB
Цена в диапазоне от $0.20 до $0.30 за час, что соответствует инстансам с 16 CPUs. Этот инстанс имеет статус устаревшего и может периодически исчезать из списка доступных. Имеет смысл просматривать все 4 региона США на его доступность перед заказом инстанса.

cc2.8xlarge идеально подходит для Агентов тестирования.

Начальная настройка

Имеет смысл в четырёх регионах США создать правило для Security Groups.
Security Groups
N. Virginia, Ohio, N. California, Oregon
Нужно открыть порты для доступа извне. Поскольку сервер будет существовать ограниченное время и не будет использоваться в публичных целях, то можно не заморачиваться с выбором портов и открыть их все, хоть это и противоречит правилам безопасности.
Security Groups AllPorts

Нужно создать Роль с правами доступа в ведро S3.

  1. Перейти в раздел управления Ролями и нажать на синюю кнопку “Create role”.
  2. Выбрать сервис EC2 и нажать на синюю кнопку “Next”.
    ubuntu
  3. Скрипт для запуска Агентов только скачивает файлы из ведра S3, поэтому достаточно выбрать “AmazonS3ReadOnlyAccess” и нажать на синюю кнопку “Next”.
    ubuntu
  4. Теперь нужно задать имя Роли и нажать на синюю кнопку “Create role”.
    ubuntu

Можно создать ключи доступа для использования программ по закачке файлов в ведро S3. Эти ключи также позволяют получать спот-цены со всех регионов в AmazonUtils. Забытые ключи доступа в исходных кодах могут доставить неприятности.

Закачка файлов в S3

  1. Сначала нужно создать ведро S3 с параметрами по умолчанию.
  2. Создать папку “MetaQuotes”.
    AWS S3 root
  3. Закачать файл “c:\Program Files\MetaTrader 5\metatester64.exe” в папку “MetaQuotes”.
    AWS S3 MetaQuotes
  4. Нужные файлы из папки “c:\Users\USER\AppData\Roaming\MetaQuotes\Terminal\Common\Files" закачать в “MetaQuotes/Terminal/Common/Files/”.

Закачку нужно делать для каждого региона, в котором планируется запуск Агентов.

Заказ сервера для Агентов

В разделе Spot Requests нажать на синюю кнопку “Request Spot Instances”.

Появится новый дизайн заказа, у которого все настройки спрятаны под “Additional configurations”. Переключиться на старый дизайн можно в самом низу страницы по “Previous version of Request Spot Instances”.

В новом дизайне нужно выбрать “Defined duration workloads”.
Defined duration workloads

Созданный мною скрипт для запуска Агентов рассчитан на Ubuntu.
Ubuntu

Я обычно выбираю cc2.8xlarge со встроенным SSD на 840GB. На него часто большая скидка, потому что этот инстанс прошлого поколения, но для Агентов тестирования он отлично подходит.
Instance Type

Если инстанс имеет встроенное дисковое пространство, то количество гигабайтов для EBS задать можно минимум (оплачивается отдельно).
EBS
Все Агенты запускаются в “/mnt”. Первый раздел встроенного диска автоматически монтируется в эту папку. Если размера первого раздела не хватает, то нужно брать инстанс только с EBS или редактировать скрипт. Добавлять второй раздел не имеет смысла, потому что он будет последним.
lsblk

Задать правило открытия портов в “Security groups”.
Security groups

Если использовать заранее созданную роль в “IAM instance profile”, то в скрипте не нужно указывать ключ к Амазону.
IAM instance profile

Открываем aws_ubuntu_user_data.sh и вставляем содержимое в “User data”.
User data

После нажатия на синюю кнопку “Launch” произойдёт запрос на создание инстанса.

Инстанс может быть выдан Амазоном с задержкой, поэтому нужно обновлять страницу, пока он не появится в списке “Instances”.
Instance

После этого можно переходить на страницу инстанса и нажать на серую кнопку “Connect” для получения IP.
IP

Добавление Агентов в MetaTrader 5

Теперь можно добавить Агенты в список для оптимизации в MetaTrader 5 (MT5).
MT5 Add
MT5 Add 2

Скрипту нужно время (примерно 5 минут) для запуска Агентов в Ubuntu.
MT5 Agents

По всем вопросам обращаться в эту тему.