Нужно написать робота (вспомогательного) для изменения цены открытия отложенных ордеров

MQL4 Asesores Expertos

Trabajo finalizado

Plazo de ejecución 25 días
Comentario del Cliente
Всё сделано хорошо. Трудности преодолены энергично и творчески. Работа оставила приятное впечатление.
Comentario del Ejecutor
Конструктивный заказчик, четко понимает свои задачи, умеет их сформулировать и тщательно проверить. Спасибо за совместную работу.

Tarea técnica

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

Нужно написать робота (вспомогательного) для изменения цены открытия отложенных ордеров при изменении суммарного объёма открытых ордеров на счёте.

Суть:

1)      То, что происходит на счёте без участия робота (с помощью двух других программ – мультивалютного советника, открывающего ордера BUY или SELL и программы, выставляющей отложенные локирующие ордера SELL STOP и BUY STOP). Примеры:

открывается основной ордер BUY объёмом 1 лот по цене 1000 пунктов. К нему тут же встаёт локирующий отложенный ордер SELL STOP объёмом 0,5 лот по цене 800 пунктов, то есть на расстоянии 200 пунктов от цены открытия основного. Открывается второй основной ордер BUY объёмом 2 лот по цене 950 пунктов, к нему встаёт локирующий отложенный ордер SELL STOP объёмом 1 лот по цене 850 пунктов, то есть на расстоянии 100 пунктов от цены открытия основного. В момент открытия второго основного ордера суммарный объём открытых основных ордеров на счёте возрастает в 3 раза, с 1 лот до 3 лот.

2)      Задача робота:

Уменьшить/увеличить расстояние между ценами открытия ордеров внутри каждой пары (основной/локирующий ордер) настолько, насколько увеличился/уменьшился суммарный объём открытых основных ордеров. Объём увеличился в 3 раза, значит каждое расстояние надо уменьшить втрое. Для первой пары расстояние между ценой открытия основного и локирующего ордера 200 пунктов. 200 / 3 = 66. От цены открытия основного ордера откладывается 66, получается новая цена локирующего ордера 1000-66=933 пункта (вместо 800). Для второй пары расстояние между основным и локирующим ордером 100 пунктов. 100/3=33. От цены открытия основного ордера отнимается 33 пункта, получается новая цена открытия локирующего ордера 950-33=917 пунктов (вместо 850).

Я представляю себе программу со следующими настраиваемыми параметрами:

MagicOrdersBasis Monitoring  – магики основных ордеров, суммарную лотность которых программа будет учитывать. Все, исключая перечисленные - например №222,№333 (магики, присвоенные ранее  локирующим ордерам или ордерам другой программы). Это магики, за которыми робот только следит, сам он магики не присваивает.

MagicOrdersLock Monitoring  - магики отложенных локирующих ордеров, среди которых программа будет искать локирующую пару для основного ордера (например 444,555). Магики, за которыми робот следит, сам робот магики не присваивает.

Ratio Lock/Basis  - в приведённом выше примере это соотношение составляет 0,5 (объём локирующего ордера составляет 0,5 от объёма основного). Он изменяется (в локирующей программе) и является единым для всех пар Lock/Basis. Нужен для того, чтобы робот нашёл парный локирующий ордер к основному, чтобы потом посчитать расстояние между ними.

MinStop минимальное расстояние между текущей ценой и ценой открытия локирующего ордера. Если MinStop установлен 30 пунктов, а робот посчитает, что отложенный ордер должен встать на расстоянии 15 пунктов от текущей цены, то расстояние должно установиться равным MinStop, то есть 30 пунктов. (Чтобы лок не попытался встать ближе, чем минимальное расстояние для стопов на сервере).

Digits  - 1 или 2 (один или два знака после запятой). На одних счетах возможен объём до 0,1 лот, на других 0,01 лот. MetaTrader округлит значение локирующего ордера до этих цифр, и его надо учитывать при поиске отложенного локирующего ордера.

Последовательность действий робота может выглядеть следующим образом:

1)      Открывается (или закрывается) основной ордер.

2)      Робот суммирует его объём с объёмом других основных ордеров (или отнимает от суммарного объёма при закрытии ордера).

3)      Робот вычисляет, во сколько раз увеличился или уменьшился суммарный объём основных ордеров, определяя последующий коэффициент уменьшения/увеличения расстояния между ценами открытия ордеров в паре Lock/Basis (в привёдённом выше примере увеличение суммарного объёма составило 3 раза, значит расстояние уменьшится тоже в 3).

4)      Робот находит «локирующую пару» к открывшемуся основному ордеру, умножая размер основного на Ratio Lock/Basis и учитывая, что лок является противоположным по направлению, он на той же валютной паре, и его магик содержится в MagicOrdersLock Monitoring. Для основного ордера BUY локирующий ордер будет SELL STOP. При основном ордере BUY объёмом 2 лот «локирующей парой» при соотношении 0,5 будет отложенный локирующий ордер SELL STOP объёмом 1 лот с магиком, включённым в MagicOrdersLock Monitoring. При этом нужно учесть, что MetaTrader округляет все цифры до двух или одного знака после запятой. То есть размер локирующего ордера при дробных значениях основного не всегда будет точно вписываться в соотношение 0,5. Например, если объём основного 1,73 лот, тогда при соотношении Lock/Basis 0,5 объём основного получится 0,865. При допустимом минимальном объёме 0,01 MetaTrader округлит его либо до 0,86 либо до 0,87 и надо будет искать ордер либо 0,86, либо 0,87. При допустимом минимальном объёме 0,1 значение огруглится либо до 0,8 либо до 0,9, и надо будет искать лок величиной либо 0,8 либо 0,9.

5)      Робот определяет расстояние между ценой открытия основного ордера и ценой открытия локирующего ордера (если цена открытия основного ордера BUY 950 пунктов, а цена открытия отложенного локирующего SELL STOP 850 пунктов, то расстояние между ними 950-850=100 пунктов). Если основной ордер SELL 950 пунктов, а отложенный ордер BUY STOP 1050 пунктов, то расстояние между ними 1050-950=100 (тоже 100 пунктов).

6)      Робот делит расстояние в каждой паре Lock/Basis на коэффициент уменьшения/увеличения, полученный ранее (в примере был равен 3). Для первой пары в примере, где «Lock 0,5 лот, 800 пунктов / Basis 1 лот, 1000 пунктов» расстояние между ордерами было 200 пунктов, значит 200/3=66 пунктов – это будет новое расстояние между ордерами для этой пары. Для второй пары в примере, где « Lock 1 лот, 850 пунктов / Basis 2 лот, 950 пунктов» расстояние было 100 пунктов, значит 100/3=33 пункта – новое расстояние между ордерами для пары.

7)      Робот изменяет цену открытия каждого локирующего ордера. Для первой пары, где цена открытия основного ордера была 1000 пунктов, будет 1000-66=933 пункта – новая цена открытия локирующего отложенного ордера в этой паре (вместо 800). Для второй пары, где цена открытия основного ордера была 950 пунктов, будет 950-33=917 пунктов – новая цена открытия локирующего отложенного ордера в этой паре (вместо 850).

При этом надо учитывать, что для пары, где основной ордер BUY, его цена открытия (во второй паре в примере это 950) будет выше, чем цена открытия парного отложенного локирующего SELL STOP (во второй паре это 850), то есть для этой пары полученные 33 пункта надо отнимать от цены основного, чтобы получить цену локирующего 950-33=917. Если положение обратное, то есть основной ордер SELL с ценой открытия 950, то его цена будет наоборот ниже, чем цена его локирующего парного ордера BUY STOP с ценой 1050. И полученные 33 пункта надо прибавлять к цене открытия основного ордера 950+33=988 пунктов – новая цена открытия отложенного локирующего ордера в этой паре.  

Предполагаемое максимальное число основных ордеров – до 20-ти. Отложенных -до 200.


Han respondido

1
Desarrollador 1
Evaluación
(266)
Proyectos
598
35%
Arbitraje
64
20% / 58%
Caducado
147
25%
Libre
Ha publicado: 1 artículo, 22 ejemplos
2
Desarrollador 2
Evaluación
(19)
Proyectos
21
19%
Arbitraje
1
0% / 100%
Caducado
2
10%
Trabaja
3
Desarrollador 3
Evaluación
(174)
Proyectos
232
61%
Arbitraje
3
33% / 33%
Caducado
6
3%
Libre
Ha publicado: 1 ejemplo
4
Desarrollador 4
Evaluación
(6)
Proyectos
8
13%
Arbitraje
1
0% / 100%
Caducado
0
Libre
5
Desarrollador 5
Evaluación
(28)
Proyectos
46
48%
Arbitraje
2
50% / 50%
Caducado
0
Libre
6
Desarrollador 6
Evaluación
(618)
Proyectos
1428
59%
Arbitraje
31
81% / 0%
Caducado
10
1%
Libre
7
Desarrollador 7
Evaluación
(163)
Proyectos
193
61%
Arbitraje
7
14% / 29%
Caducado
2
1%
Libre
Ha publicado: 3 ejemplos
8
Desarrollador 8
Evaluación
(281)
Proyectos
650
28%
Arbitraje
112
19% / 62%
Caducado
319
49%
Libre
9
Desarrollador 9
Evaluación
(40)
Proyectos
106
52%
Arbitraje
17
12% / 65%
Caducado
25
24%
Libre
10
Desarrollador 10
Evaluación
(195)
Proyectos
395
28%
Arbitraje
155
20% / 52%
Caducado
112
28%
Libre
11
Desarrollador 11
Evaluación
(69)
Proyectos
146
34%
Arbitraje
13
8% / 62%
Caducado
26
18%
Libre
Ha publicado: 6 ejemplos
12
Desarrollador 12
Evaluación
(298)
Proyectos
477
40%
Arbitraje
105
40% / 24%
Caducado
81
17%
Trabajando
Ha publicado: 2 ejemplos
Solicitudes similares
Советник нужен полноценный, хотя он нужен для поиска закономерностей. Так как я в первый раз заказываю советник, то нужен опытный человек, который сможет направить (подсказать) по составлению грамотного ТЗ. Желательно чтобы исполнитель был русскоязычным, так как я с России. Всем благ
Нужен советник на золото , закинул скрин каком принципе . На mt5, и что бы код был бы свободный , смогбы его доработать . Встроенный стоп лосс, тайк профит , интерфейс .что бы автоматически открывал и закрывал позиции
Ищу для покупки исходный код адекватного торгового робота на долгосрок. Интересуют только прозрачные алгоритмы с понятным обоснованием входов и выходов. Сразу мимо: мартингейл, сеточники, усреднения убытков и торговля без стопов. Каждая сделка должна быть защищена расчетным или фиксированным Stop Loss. В приоритете системы, работающие по тренду, на пробой импульса или возврат к среднему. Чтобы начать предметный
Начало с двойного (считается нулевым), на следующем шаге сетки в любую сторону закрывается профитный ордер и открывается новая пара; таким образом: либо с одного края сетки, либо с двух всегда остаётся двойной ордер; при перевороте позиций открывается тройной ордер одинакового объёма (два ордера в сторону тренда и один в обратную) : расстояние профитов рассчитывается от крайнего двойного (против тренда), а после
enum ENUM_VOLUME { VOLUME_FIXED, VOLUME_PERCENT, VOLUME_MONEY, }; enum ENUM_CALC_MODE { CALC_MODE_OFF, CALC_MODE_FACTOR, CALC_MODE_PERCENT, CALC_MODE_POINTS, }; enum ENUM_TSL_MODE { TSL_MODE_OFF, TSL_MODE_PERCENT, TSL_MODE_POINTS, }; //+------------------------------------------------------------------------------------------------------------------+ //|
Ищем разработчика-партнёра MQL5 / Forex EA Ищем не просто исполнителя “написать советник по ТЗ”, а разработчика-партнёра , который уже работает с MQL5 / Forex , имеет свои наработки, рабочие стратегии, опыт тестирования и оптимизации советников . Формат сотрудничества Мы выступаем как селлеры и партнёры по продвижению : берём на себя упаковку, продажи, привлечение клиентов; заинтересованы в долгосрочном
1. Общая концепция Советник предназначен для автоматического обнаружения ценовых волн, их визуализации с помощью инструмента «Сетка Фибоначчи» и циклической торговли на откатах. Основная особенность — мультиволновой режим: советник должен одновременно отслеживать и отрисовывать все движения, подходящие под фильтр размера. 2. Логика поиска и визуализации волн Динамическое натяжение: Советник сканирует рынок на глубину

Información sobre el proyecto

Presupuesto
150+ USD
Plazo límite de ejecución
de 14 a 21 día(s)