Закрытие убыточных позиций поиском и закрытием прибыльных позиций
- Данный помощник ищет, среди всех позиций, в терминале самую убыточную позицию.
- Далее, путем поиска остальных прибыльных позиций, он вычисляет серию позиций, которые могут перекрыть убыток, когда прибыль одной или нескольких позиций больше, чем убыток другой позиции.
- Если набор таких позиций был найден, тогда советник закрывает их.
- Серия позиций может состоять абсолютно из любых позиций. Их максимальное количество регулируется в настройках советника.
- Также можно указать минимальный убыток для поиска и дополнительная прибыль для закрытия.
В продолжении темы про нивелирование позиций, я хочу предложить Вам более надежный и приятный алгоритм перекрытия убыточных позиций. Конечно, каждый в праве выбрать свой способ избавления от минусовых позиций. Наша прошлая статья, описывающая помощника для трейдера, а именно Закрытие по общей прибыли или убытку, с трейлингом полученного профита, принесла достаточно хорошие результаты.
Предисловие
Работа помощника

-
16:57:34 Exp - Exp - CloseMinusByPlus GBPUSD,H1: initialized
-
16:58:41 Exp - Exp - CloseMinusByPlus GBPUSD,H1: Перекрытие убыточных позиций путем закрытия профитных позиций начато:
-
16:58:41 Exp - Exp - CloseMinusByPlus GBPUSD,H1: Самый большой минус: -51 пипсов
-
16:58:41 Exp - Exp - CloseMinusByPlus GBPUSD,H1: Самый большой минус тикет: 222064678
-
16:58:41 Exp - Exp - CloseMinusByPlus GBPUSD,H1: Самый большой плюс: 22 пипсов
-
16:58:41 Exp - Exp - CloseMinusByPlus GBPUSD,H1: Самый большой плюс тикет: 222064722
-
16:58:41 Exp - Exp - CloseMinusByPlus GBPUSD,H1: Совокупный профит по найденным позициям: 72 пипсов
-
16:58:41 Exp - Exp - CloseMinusByPlus GBPUSD,H1: Число позиций для закрытия: 5
-
16:58:41 Exp - Exp - CloseMinusByPlus GBPUSD,H1: Тикеты для закрытия убыточной позиций: 222064678
-
16:58:42 Exp - Exp - CloseMinusByPlus GBPUSD,H1: close #222064678 buy 0.10 GBPUSD at 1.65055 at price 1.65004
-
16:58:42 Exp - Exp - CloseMinusByPlus GBPUSD,H1: Тикеты для закрытия профитных позиций: .222064722.222064691.222064750.222064878.222064715
-
16:58:53 Exp - Exp - CloseMinusByPlus GBPUSD,H1: close #222064878 sell 0.10 EURUSD at 1.35773 at price 1.35774
-
16:58:54 Exp - Exp - CloseMinusByPlus GBPUSD,H1: close #222064750 sell 0.10 GBPUSD at 1.65034 at price 1.65025
-
16:58:54 Exp - Exp - CloseMinusByPlus GBPUSD,H1: close #222064722 sell 0.10 GBPUSD at 1.65039 at price 1.65025
-
16:58:55 Exp - Exp - CloseMinusByPlus GBPUSD,H1: close #222064715 sell 0.10 EURUSD at 1.35765 at price 1.35773
-
16:58:56 Exp - Exp - CloseMinusByPlus GBPUSD,H1: close #222064691 sell 0.10 GBPUSD at 1.65038 at price 1.65024
В настройках мы установили - запускать расчет когда будет найдена самая большая убыточная позиция с минусом в -50 (MinLossInUnit=-50) пипсов (TypeOfUnitToClose=2) и совокупный профит будет больше на 20 пипсов (AdditionalProfitInUnit=20)
Пример работы данного алгоритма в советнике 2 MACD
без функции:

с функцией закрытия путем перекрытия:
Внешние переменные и настройки
Название | Описание |
---|---|
TypeOfUnitToClose | Тип расчетов прибыли и убытков. В долларах или в пунктах |
MinLossInUnit | Минимальный убыток позиции в юнитах (TypeOfUnitToClose) , который берется в расчет советника. Ордер с убытком в "MinLossPoss_in_unit" юнитов(долларов или пунктов), должен устанавливаться в минусовой зоне. Это верхняя планка для поиска убыточных позиций. Например: MinLossInUnit=-100 TypeOfUnitToClose=dollars, тогда советник ищет или ждет позицию с убытком больше или равно -100 долларов, например: -100 долларов, -150 долларов -200 долларов и так далее. Позиция с убытком -99 долларов уже игнорируется. |
AdditionalProfitInUnit | Количество юнитов прибыли для разницы закрытия комплекта позиций. Позиция (один или несколько) с общей прибылью, превышающей убыток на "AdditionalProfitInUnit" юнитов. Например: AdditionalProfitInUnit=10 MinLossInUnit=-100 TypeOfUnitToClose=dollars Советник ищет или ждет как минимум 2 позиции, одна из которых с убытком -100 долларов, а вторая с прибылью +110 долларов. в этот момент советник принимает решение о включении своей функции и закрытия этих двух позиций. |
MaxPos_in_Class | Параметр "MaxPos_in_Class" должен ограничивать количество прибыльных позиций закрытия. Например: MaxPos_in_Class=3, тогда советник будет искать комплект для закрытия из максимум 3 прибыльных позиций +1 убыточная |
FirstSymbolClose | Искать пары позиций и закрывать только той валюты, минус которой мы обрабатываем. Вы можете выключить параметр FirstSymbolClose, тогда советник будет закрывать любые комплекты из убыточных и прибыльных позиций на всем счете, независимо от того, какая валютная пара включена в расчет. При включении функции FirstSymbolClose - советник считает и закрывает комплекты из одной валютной пары |
OpenHoura OpenMinutea | Время начала работы советника |
CloseHoura CloseMinutea | Время окончания работы советника |
OrderToClose |
Тип позиций : -1=All Orders, 1-Sell, 0=Buy |
MagicToClose |
Магик позиций : -1 = любой магик. Или Вы можете указать уникальный магический номер своих позиций, которые следует обрабатывать Вы можете указать несколько магиков через запятую, например: 777,888,999 |
SymbolToClose |
Валютная пара для мониторинга -1=Все символы, 1=Только текущий символ (символ, на который установлен советник) Вы можете записать список валютных пар через запятую, например: EURUSD,USDCHF,USDJPY |