Написать скрипт для MТ5 «Калькулятор увеличения позиции».

MQL5 Скрипты

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

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

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

Универсальный скрипт для работы на любой валютной паре (5,4,3 знака) и золоте. Суть работы скрипта сделать расчет на графике и определить диапазон размеров лота для увеличения существующей открытой позиции на рынке. Направление расчетов лонг и шорт.

Идея проекта. Есть открытая позиция на рынке. Допустим, есть сигнал на рынке и пользователь хочет добавить в имеющуюся позицию. Я хочу предварительно проанализировать, как дополнительная сделка изменит точку входа у существующей открытой позиции. Для этого скрипт виртуально исполняет ордер в направлении открытой позиции по указанной цене входа и значением стоплосс. В результате у открытой позиции изменится параметр точки входа и стоплосс. Требуется определить диапазон лота для виртуального ордера от минимально разрешенного до максимального возможного. При условии, что точка входа у полученной открытой позиции будет находиться в прибыли, по отношению к новому значению стоплосс. Эти данные вывести на экран для анализа.

Для успешной работы скрипта требуется: наличие открытой позиции на инструменте, направление ордера должно совпадать с направлением открытой позицией, входные параметры для ордера корректны. Не должно быть ограничений по использованию скрипта на демо (для тестовых испытаний).

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

Описание алгоритма работы скрипта дается на примере шорта. Для лонга алгоритм по смыслу зеркальный. На инструменте имеется открытая позиция на рынке с входом в точке «А» и объемом лот1. Виртуально продаем по рынку с параметрами цена продажи «В», стоплосс «С» и объемом лот2. В зависимости от объема лот2 значение точки входа «D» полученной открытой позиции будет находиться в диапазоне «А» > «D» > «В». Необходимо скриптом вычислить диапазон лот2, чтобы точка входа полученной позиции находилась в диапазоне «А» > «D» > «С» + спред на инструменте. Позиция должна остаться в прибыли в случае срабатывания стоплосс в «С».

Скрипт принимает при запуске следующие параметры:

  1. Тип сделки шорт/лонг;

  2. Цена входа «В»;

  3. Стоплосс «С»;

Скрипт должен выполнять проверки полученных и вычисленных параметров. Проверки должны выполняться при первой возможности, избегая делать какие либо расчеты и использовать машинные ресурсы зря. При обнаружении ошибки, скрипт должен прекратить выполнение программы и выдать сообщение с указанием параметра ошибки.

Требуется выполнение следующих проверок.

Сначала проверяем введенные данные пользователем в скрипт при запуске.

  1. Стоплосс и цена входа соответствуют заявленному направлению сделки (сравниваем введенные данные с указанным направлением)?

Затем начинаем получать данные из Терминала и продолжаем проверки.

  1. Проводить проверки получения всех запрашиваемых данных у терминала требуемых для использования в расчетах.

  2. Есть открытая позиция на инструменте?

  3. Условие «А» > «С» > «В»?

Если разработчик считает, что требуются еще дополнительные проверки, то их нужно добавить.


Если на этапе проверок скрипт обнаружит любую ошибку, то он должен выдать сообщение следующего вида построчно (использовать функцию Alert):

Пустая строка (что бы отделить поле вывода от других данных),

«Калькулятор увеличения позиции» (что бы понимать, кто выдает сообщение),

«Расчет не возможен!»,

Указать какое условие проверки не выполнено,

Пустая строка (что бы отделить поле вывода от последующей информации).


Мы убедились, что все данные корректные. Производим расчеты. Полученное значение лот2 проверяем на условие «А» > «D» > «С» + спред на инструменте. Выводим результаты вида построчно(использовать функцию Alert) :

Пустая строка (что бы отделить поле вывода от других данных),

«Калькулятор увеличения позиции» (что бы понимать, кто выдает данные сейчас),

«Инструмент - », Symbol,

«Максимально возможный размер лота = », лот2,

«Минимально возможный размер лота = », minlot (разрешенный дилером на инструменте),

«Шаг изменения лота = », steplot (установленный дилером на инструменте),

Пустая строка (что бы отделить поле вывода от последующей информации).


Так же предусмотреть ситуацию «Улучшить позицию не позволяет минимальный размер лота».


Дополнительные требования.


Разработчик должен предоставить исходный код скрипта Заказчику. Все строки в коде должны иметь комментарии с пояснением выполняемой операции.


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

1
Разработчик 1
Оценка
(5)
Проекты
31
87%
Арбитраж
1
0% / 100%
Просрочено
12
39%
Свободен
2
Разработчик 2
Оценка
(45)
Проекты
76
20%
Арбитраж
7
0% / 86%
Просрочено
14
18%
Свободен
3
Разработчик 3
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
4
Разработчик 4
Оценка
(44)
Проекты
100
39%
Арбитраж
17
29% / 41%
Просрочено
32
32%
Работает

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

Бюджет
Сроки выполнения
от 5 до 7 дн.