Скрипт для терминала MT 5 - CloseAllProfitPositions

HSergey

С опытом
11 Фев 2020
6,183
829
18
Поинты
26.00
Пол
Муж.
Скрипт для торгового терминала MetaTrader 5 - CloseAllProfitPositions

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

На рисунке ниже показано как выглядит расположенный в левой верхней части экрана торгового терминала создаваемый скриптом отчет по всем текущим позициям на счете:

CloseAllProfitPositions.png

Данный скрипт полезен и эффективен, у меня он находится всегда под рукой во вкладке "Избранное" и неоднократно выручал меня в самые необходимые моменты, рекомендую всем скрипт CloseAllProfitPositions.
 

Вложения

IMG_1943.webp

Скрипт для MT5: CloseAllProfitPositions


Скрипт CloseAllProfitPositions предназначен для автоматического закрытия всех прибыльных позиций в торговом терминале MetaTrader 5. Он может быть полезен трейдерам, которые хотят оперативно зафиксировать прибыль на всех открытых сделках.

Основные характеристики:


1. Закрытие только прибыльных позиций, где текущая прибыль больше нуля.


2. Поддержка всех финансовых инструментов и типов ордеров.


3. Простота использования – скрипт запускается одним кликом.

Код скрипта:


//+------------------------------------------------------------------+


//| Скрипт: CloseAllProfitPositions.mq5 |


//| Назначение: Закрытие всех прибыльных позиций |


//+------------------------------------------------------------------+


#property copyright "Fin-Gate"


#property version "1.00"


#property script "Close All Profit Positions"





#include <Trade\Trade.mqh> // Работа с торговыми операциями





CTrade trade; // Создаем объект для торговли





//+------------------------------------------------------------------+


//| Функция проверки и закрытия прибыльных позиций |


//+------------------------------------------------------------------+


void CloseProfitPositions()


{


int total_positions = PositionsTotal(); // Получаем количество открытых позиций





for (int i = total_positions - 1; i >= 0; i--) // Перебор всех позиций


{


ulong ticket = PositionGetTicket(i); // Получаем тикет позиции





if (PositionSelectByTicket(ticket)) // Если позиция выбрана


{


double profit = PositionGetDouble(POSITION_PROFIT); // Текущая прибыль





if (profit > 0) // Проверяем, прибыль ли позиция


{


string symbol = PositionGetString(POSITION_SYMBOL); // Инструмент


if (trade.PositionClose(symbol)) // Закрываем позицию


{


PrintFormat("Позиция по %s с тикетом %d закрыта. Прибыль: %.2f", symbol, ticket, profit);


}


else


{


PrintFormat("Ошибка закрытия позиции по %s с тикетом %d. Код ошибки: %d", symbol, ticket, GetLastError());


}


}


}


}


}





//+------------------------------------------------------------------+


//| Точка входа в скрипт |


//+------------------------------------------------------------------+


void OnStart()


{


Print("Скрипт CloseAllProfitPositions запущен");


CloseProfitPositions();


Print("Скрипт завершил выполнение");

Инструкция по использованию:


1. Сохраните код в файле с именем CloseAllProfitPositions.mq5 в папке MQL5\Scripts вашего терминала MT5.


2. Перезагрузите терминал MetaTrader 5, чтобы скрипт появился в разделе “Навигатор → Скрипты”.


3. Перетащите скрипт на график или дважды кликните по его названию.


4. Все прибыльные позиции будут закрыты автоматически.

Преимущества скрипта:


• Быстрая фиксация прибыли на всех сделках.


• Удобство и простота использования.


• Экономия времени при большом количестве позиций.

Примечание: Перед использованием убедитесь, что у вас включена торговля алгоритмическими средствами (опция “Разрешить автоматическую торговлю”).

Заключение:

Скрипт CloseAllProfitPositions – это полезный инструмент для трейдеров, которые хотят мгновенно закрыть все прибыльные позиции. Он минимизирует необходимость ручных действий и помогает эффективно управлять рисками.