Нужно написать функцию, которая будет частично закрывать все открытые ордера одного направления

MQL4 Эксперты

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

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

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

Функция.

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

Мне нужен код этой функции с объявлением глобальных переменных в случае необходимости.

Подробности.

·         Процент, на который мы частично закрываем ордер объявляем в настройках.

Input int PartForClose = 10;      Допустим, так.

Однако, необходимо с каждым новым частичным закрытием закрывать на одинаковую величину. Поэтому PartForClose – есть не просто процент от оставшегося объема, а процент от первичного объема открытия ордера. Как вариант, можно первичный объем прописать в мэджике, и каждый раз при частичном закрытии ордера не нужно будет ничего вычислять. Это просто версия.

·         В аргументах функции, вероятно, достаточно указать только направление ордеров, которые будем закрывать. Например,

enum TradeDir

{

      BUY = 0,                               // Buy

      SELL = 1                                // Sell

};

PartialClose (const TradeDir dir)

{

 

}

·         Функция должна частично закрыть много ордеров, а за один проход это делать не совсем корректно. Вопрос: можно ли сделать так, чтобы в режиме тестера ордера частично закрывались именно за один проход. Чтобы тестер не растягивал закрытие n ордеров на n бар? Этот вопрос от моего незнания. Если нет – значит нет.

·         В глобальных переменных я опишу булевский флаг. Например,

bool ProcessingClose;

Когда приходит пора к частичному закрытию ордеров одного направления, я флаг активирую. Запускается функция как-то так:

If(ProcessingClose) PartialClose (BUY);

После того, как функция обработала и закрыла все ордера, она (функция) должна деактивировать флаг.


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

1
Разработчик 1
Оценка
(137)
Проекты
167
35%
Арбитраж
11
91% / 0%
Просрочено
0
Свободен
2
Разработчик 2
Оценка
(172)
Проекты
186
32%
Арбитраж
5
60% / 20%
Просрочено
3
2%
Свободен
Опубликовал: 3 примера
3
Разработчик 3
Оценка
(173)
Проекты
231
61%
Арбитраж
3
33% / 33%
Просрочено
6
3%
Свободен
Опубликовал: 1 пример
4
Разработчик 4
Оценка
(588)
Проекты
1064
50%
Арбитраж
39
28% / 41%
Просрочено
49
5%
Работает
Опубликовал: 1 статью, 8 примеров
5
Разработчик 5
Оценка
(83)
Проекты
154
29%
Арбитраж
1
100% / 0%
Просрочено
27
18%
Свободен
6
Разработчик 6
Оценка
(1)
Проекты
7
14%
Арбитраж
2
0% / 100%
Просрочено
0
Свободен
Опубликовал: 1 статью
7
Разработчик 7
Оценка
(42)
Проекты
112
56%
Арбитраж
2
50% / 0%
Просрочено
3
3%
Свободен
Опубликовал: 1 пример
8
Разработчик 8
Оценка
(69)
Проекты
146
34%
Арбитраж
13
8% / 62%
Просрочено
26
18%
Свободен
Опубликовал: 6 примеров
9
Разработчик 9
Оценка
(296)
Проекты
475
40%
Арбитраж
105
40% / 24%
Просрочено
80
17%
Занят
Опубликовал: 2 примера
10
Разработчик 10
Оценка
(144)
Проекты
285
42%
Арбитраж
19
63% / 5%
Просрочено
29
10%
Свободен
Опубликовал: 2 примера
11
Разработчик 11
Оценка
(4)
Проекты
12
0%
Арбитраж
0
Просрочено
3
25%
Свободен
Похожие заказы
Требуется создать советник на основе разворотных паттернов, используя дополнительные индикаторы такие как скользящее среднее, отклонение от скользящей средней, угол наклона скользящей средней. Возможно будет добавлено что то еще по ходу работы
Суть ТС:Приход в POI старшего тф, вход в позицию на младшем тф Анализ графика начинается всегда со старшего тф. Должен быть понятный контекст для работы. Активы: EURUSD, XAUUSD POI старшего таймфрейма: Liquidity (1M, 1W, 1D, 4H, 1H) Imbalance (1M, 1W, 1D, 4H, 1H) Order Block (1M, 1W, 1D, 4H, 1H) HTF Fractals (1M, 1W, 1D, 4H, 1H) Всегда дожидаться цену в POI старшего таймфрейма. Вход в позицию: Слом LTF структуры на
к примеру 10 стратегий выстреливают одновременно в одну и ту же милисекунду при открытие бара надо их сделать последовательными один за другим, с проверкой, что предыдущий ордер был открыт и модифицирован SL TP оредра могут быть отложенные и маркет пока один ордер исполняется другие ждут в очереди так как используется ММ настоящий баланс double Total_Current_Risk() { double res = 0; for (int i = 0; i <

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

Бюджет
30+ USD
Сроки выполнения
до 10 дн.