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

MQL4 Asesores Expertos

Trabajo finalizado

Plazo de ejecución 2 días

Tarea técnica

Функция.

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

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

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

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

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);

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


Han respondido

1
Desarrollador 1
Evaluación
(137)
Proyectos
167
35%
Arbitraje
11
91% / 0%
Caducado
0
Libre
2
Desarrollador 2
Evaluación
(172)
Proyectos
186
32%
Arbitraje
5
60% / 20%
Caducado
3
2%
Libre
Ha publicado: 3 ejemplos
3
Desarrollador 3
Evaluación
(173)
Proyectos
231
61%
Arbitraje
3
33% / 33%
Caducado
6
3%
Libre
Ha publicado: 1 ejemplo
4
Desarrollador 4
Evaluación
(588)
Proyectos
1064
50%
Arbitraje
39
28% / 41%
Caducado
49
5%
Trabaja
Ha publicado: 1 artículo, 8 ejemplos
5
Desarrollador 5
Evaluación
(83)
Proyectos
154
29%
Arbitraje
1
100% / 0%
Caducado
27
18%
Libre
6
Desarrollador 6
Evaluación
(1)
Proyectos
7
14%
Arbitraje
2
0% / 100%
Caducado
0
Libre
Ha publicado: 1 artículo
7
Desarrollador 7
Evaluación
(42)
Proyectos
112
56%
Arbitraje
2
50% / 0%
Caducado
3
3%
Libre
Ha publicado: 1 ejemplo
8
Desarrollador 8
Evaluación
(69)
Proyectos
146
34%
Arbitraje
13
8% / 62%
Caducado
26
18%
Libre
Ha publicado: 6 ejemplos
9
Desarrollador 9
Evaluación
(296)
Proyectos
475
40%
Arbitraje
105
40% / 24%
Caducado
80
17%
Ocupado
Ha publicado: 2 ejemplos
10
Desarrollador 10
Evaluación
(144)
Proyectos
285
42%
Arbitraje
19
63% / 5%
Caducado
29
10%
Libre
Ha publicado: 2 ejemplos
11
Desarrollador 11
Evaluación
(4)
Proyectos
12
0%
Arbitraje
0
Caducado
3
25%
Libre
Solicitudes similares
Требуется создать советник на основе разворотных паттернов, используя дополнительные индикаторы такие как скользящее среднее, отклонение от скользящей средней, угол наклона скользящей средней. Возможно будет добавлено что то еще по ходу работы
Суть ТС:Приход в 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 <

Información sobre el proyecto

Presupuesto
30+ USD
Plazo límite de ejecución
a 10 día(s)