Как в MQL5 (не MQL4) сделать так, чтоб советник закрывал все ордера когда общая прибыль достигла определённой суммы?Например открыто 3 отдера, EURUSD -180, USDCHF +240 и GBPUSD +190.Как в этом примере общая прибыль 250 и чтоб в этом случае закрывались все ордера.И чтоб это можно было настроить (input) .На примере этого советника.
- [АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5.
- Как я собираю себе советника методом тыка
- вопрос по МТ4
Aleksandr55777:
Как в MQL5 (не MQL4) сделать так, чтоб советник закрывал все ордера когда общая прибыль достигла определённой суммы?Например открыто 3 отдера, EURUSD -180, USDCHF +240 и GBPUSD +190.Как в этом примере общая прибыль 250 и чтоб в этом случае закрывались все ордера.И чтоб это можно было настроить (input) .На примере этого советника.
Как в MQL5 (не MQL4) сделать так, чтоб советник закрывал все ордера когда общая прибыль достигла определённой суммы?Например открыто 3 отдера, EURUSD -180, USDCHF +240 и GBPUSD +190.Как в этом примере общая прибыль 250 и чтоб в этом случае закрывались все ордера.И чтоб это можно было настроить (input) .На примере этого советника.
Нет ничего проще. Все что нужно - это разность
AccountInfoDouble(ACCOUNT_EQUITY)) - AccountInfoDouble(ACCOUNT_BALANCE))
Как только она достигла заданной величины, закрывай позиции.
Aleksandr55777:
Как в MQL5 (не MQL4) сделать так, чтоб советник закрывал все ордера когда общая прибыль достигла определённой суммы?Например открыто 3 отдера, EURUSD -180, USDCHF +240 и GBPUSD +190.Как в этом примере общая прибыль 250 и чтоб в этом случае закрывались все ордера.И чтоб это можно было настроить (input) .На примере этого советника.
Как в MQL5 (не MQL4) сделать так, чтоб советник закрывал все ордера когда общая прибыль достигла определённой суммы?Например открыто 3 отдера, EURUSD -180, USDCHF +240 и GBPUSD +190.Как в этом примере общая прибыль 250 и чтоб в этом случае закрывались все ордера.И чтоб это можно было настроить (input) .На примере этого советника.
В MQL5 (не MQL4) открытыми бывают позиции, а не ордера. Пример кода:
//+------------------------------------------------------------------+ //| Trade classes | //+------------------------------------------------------------------+ #include <Trade/Trade.mqh> CTrade trade; //+------------------------------------------------------------------+ //| Input variables | //+------------------------------------------------------------------+ input uint InpProfit=250; //Прибыль input ulong Magic_Number=123; //Магическое число //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void Close_All_Positions() { if(AccountInfoDouble(ACCOUNT_EQUITY)-AccountInfoDouble(ACCOUNT_BALANCE)>=InpProfit) { for(int i=PositionsTotal()-1; i>=0; i--) { ulong position_ticket=PositionGetTicket(i); if(PositionGetInteger(POSITION_MAGIC)==Magic_Number) { trade.PositionClose(position_ticket); } } } } //+------------------------------------------------------------------+С уважением, Владимир.
В коде Владимира внизу можно добавить:
void OnTick() { Close_All_Positions(); }
Тогда после запуска советника он будет на каждом тике проверять, не надо ли закрыть позиции, и закрывать при необходимости. Если позиции были открыты вручную, то их Magic_Number = 0.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь