Плагин риск менеджер для MT5

Работа завершена

Время выполнения 166 дней

Техническое задание

Плагин риск менеджер для MT5

 

Термины:

Capital, $ – размер первоначального капитала торгового счета в долларах. Является переменной для плагина, устанавливается для группы счетов или конкретных МТ5 счетов.

Equity, $ – плавающая прибыль/убыток. Значение получать от сервера по конкретному счету.

Max daily loss, % - ежедневный лимит потерь. Является переменной для плагина, устанавливается для группы счетов или конкретных МТ5 счетов.

Max week loss, % - недельный лимит потерь. Является переменной для плагина, устанавливается для группы счетов или конкретных МТ5 счетов.

Max loss, % - максимальный лимит потерь за весь период. Является переменной для плагина, устанавливается для группы счетов или конкретных МТ5 счетов.

Max Exposure, LOT - максимальный одномоментный совокупный размер позиций. Является переменной для плагина, устанавливается для группы счетов или конкретных МТ5 счетов.

Time Liquidation of positions, sec – время в секундах до наступления Закрытия рынков, в которое в конце торговой недели должны быть принудительно закрыты открытые позиции. Является переменной для плагина, устанавливается для группы счетов или конкретных МТ5 счетов.

 

Описание:

Реализовать плагин, который блокирует для торговли МТ5 счета и закрывает открытые позиции по заданным в параметрах плагина критериям.

Критерии:

- превышен Ежедневный лимит потерь (Max daily loss, %);

- превышен Недельный лимит потерь (Max week loss, %);

- превышен Максимальный лимит потерь за весь период (Max loss, %);

 

Если счету меньше 30 дней

 

Ежедневный лимит потерь (Max daily loss, %):

Лимит потерь рассчитывается исходя из размера первоначального капитала (Capital), поэтому:

-если Equity на конец предыдущего торгового дня МЕНЬШЕ Capital, то сравнивать текущий Equity с Equity на конец предыдущего торгового дня;

-если Equity на конец предыдущего торгового дня БОЛЬШЕ ИЛИ РАВНО Capital, то сравнивать текущий Equity с Capital;

-в первый день сравнивать текущий Equity с Capital;

 

Недельный лимит потерь (Max week loss, %)

-если Equity на начало текущей торговой недели МЕНЬШЕ Capital, то сравнивать текущий Equity с Equity на начало текущей торговой недели;

-если Equity на начало текущей торговой недели БОЛЬШЕ ИЛИ РАВНО Capital, то сравнивать текущий Equity с Capital;

-в первую неделю сравнивать с Capital.

 

Максимальный лимит потерь за весь период (Maxx loss, %) – сравнивает текущий Equity c Capital установленного по счету или группе счетов.

 

Если счету больше 30 дней

Сравнивать не с Capital, а с Equity на конец 30-го календарного дня

 

Если счету больше 60 дней

Сравнивать не с Capital, а с Equity на конец 60-го календарного дня и т.д. с интервалом в 30 дней.

 

Плагин должен запрещать открывать позицию сверх установленного по каждой группе счетов или конкретного МТ5 счета - Максимального одномоментного совокупного размера позиции (Max Exposure, LOT);

Плагин должен в конце торговой недели Закрыть открытые позиции согласно времени закрытия рынков, за X секунд (переменная Time Liquidation of positions, sec) до закрытия.

Отчет времени вести исходя из даты регистрации счета в МТ5, параметр Зарегистрирован.

Настройки в виде переменных Max daily loss/Max week loss/Maxx loss, Max Exposure, Time Liquidation of positions должны задаваться для группы счетов или конкретного МТ5 счета.

Значение Equity в конце каждого дня для каждого счета необходимо записывать и хранить в отдельной базе MySQL. Параметр конец дня должен запрашиваться из МТ5 сервера.

При наступлении события «Блокировка счета», отправить запрос на отправку письма Клиенту. Адрес и порт почтового сервера должны быть вынесены в переменные (Mail server). Для вызова процедуры используется gRPC. Заказчик передает протофайл по запросу Исполнителя.

Переменные для плагина должны задаваться через Добавление\Изменение Параметров в Настройках платформы MetaTrader 5 Administrator.

По завершению работ необходимо передать исходный код Заказчику.

 

Пример настроек плагина

Параметр

Значение

BD

Address, user, password, database name

Mail server

Ip_adress:port

Groups 1

null

Logins 1

5000302

Max daily loss 1, %

4

Max week loss 1, %

7

Max loss 1, %

12

Max Exposure 1, LOT

6

Time Liquidation of positions 1, sec

300

Capital 1, USD

10000

Groups 2

ArumTrade\real\riskmanager\group1

Logins 2

null

Max daily loss 2, %

5

Max week loss 2, %

9

Max loss 2, %

13

Max Exposure 2, LOT

6

Time Liquidation of positions 2, sec

350

Capital 2, USD

15000

Groups 3

Logins 3

….

 

Groups X

ArumTrade\real\riskmanager\gr\*

Logins X

null

Max daily loss X, %

5

Max week loss X, %

9

Max loss X, %

12

Max Exposure X, LOT

6

Time Liquidation of positions X, sec

300

Capital X, USD

15000

 

 

Пример структуры таблицы базы MySQL

Логин МТ5

Дата + время

Значение equity

 

 

 

 


Откликнулись

1
Разработчик 1
Оценка
(17)
Проекты
21
14%
Арбитраж
1
0% / 100%
Просрочено
0
Свободен
2
Разработчик 2
Оценка
(21)
Проекты
29
34%
Арбитраж
1
100% / 0%
Просрочено
1
3%
Свободен
Опубликовал: 31 пример
3
Разработчик 3
Оценка
(284)
Проекты
459
39%
Арбитраж
94
44% / 18%
Просрочено
73
16%
Загружен
Опубликовал: 2 примера
4
Разработчик 4
Оценка
(337)
Проекты
624
38%
Арбитраж
39
23% / 64%
Просрочено
93
15%
Свободен
Опубликовал: 4 статьи, 19 примеров
5
Разработчик 5
Оценка
(30)
Проекты
45
16%
Арбитраж
2
0% / 100%
Просрочено
4
9%
Свободен
6
Разработчик 6
Оценка
(58)
Проекты
76
33%
Арбитраж
9
78% / 11%
Просрочено
7
9%
Свободен
Опубликовал: 2 примера
7
Разработчик 7
Оценка
(15)
Проекты
20
15%
Арбитраж
3
0% / 67%
Просрочено
2
10%
Свободен
8
Разработчик 8
Оценка
(1)
Проекты
1
0%
Арбитраж
0
Просрочено
0
Свободен
Похожие заказы
Добрый день. Нужно написать парсер для сбора статистики из страницы Онлайн Рулетки. Р улетка автоматическая, работает в онлайн режиме. Программа должна запомнить в массиве 15 последних выпавших чисел и каждый раз при появлении нового числа определить веса для всех 15 элементов массива, где могут быть от 1-36 чисел (0 не в счет). На самом деле если очень кратко, то от страницы рулетки надо собирать не только
Описание задачи: Нужен опытный разработчик на MQL4, который поможет другому программисту (работает через нейросеть, но слабо знаком с MQL4) разобраться в логике и корректно реализовать советника. Цель проекта: Создать стабильного советника, который будет принимать сигналы с мастер-счёта (счёт трейдера у брокера N) и синхронизировать их на клиентском счёте. ✅ Основной функционал: Синхронизация сделок между счётами
Название: MT4 копировщик сделок через Telegram + лицензии (Master → Client) Описание: Нужно разработать 2 советника (MQL4) + Telegram-бот: Master EA — отправляет сделки с моего счёта в Telegram-канал/группу (OPEN/CLOSE/MODIFY, SL/TP, Magic фильтр). Client EA — принимает сигналы из Telegram и исполняет сделки на счёте клиента. Обязательные требования: Формат сообщений

Информация о проекте

Бюджет
1500 - 2700 USD
Исполнителю
1350 - 2430 USD
Сроки выполнения
до 30 дн.