![Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров](https://c.mql5.com/36/63/dokumentaciya-po-mql5-konstanti__2.png)
- www.mql5.com
- Советники: SL_TP
- Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6.
- Советники: Ea-cm_sl-nl-tp
Советники выставляющие СЛ и ТП для открытых позиций есть. Нужен точь такой же, но для отложенных ордеров. Возможно ли его вообще создать? В КодоБазе не попался такой, поэтому и спрашиваю.
https://www.mql5.com/ru/code/33444
При открытии ордера, выставляет стоп и тейк.
Или нужен, чтоб робот отслеживал появление новых ордеров и выставлял им стоп и тейк? Если так, то не знаю где брать (бесплатно).
Советники выставляющие СЛ и ТП для открытых позиций есть. Нужен точь такой же, но для отложенных ордеров. Возможно ли его вообще создать? В КодоБазе не попался такой, поэтому и спрашиваю.
Советники выставляющие СЛ и ТП для открытых позиций есть. Нужен точь такой же, но для отложенных ордеров. Возможно ли его вообще создать? В КодоБазе не попался такой, поэтому и спрашиваю.
Время будет, выложу в кодобазу.
#include <Trade\Trade.mqh> CTrade m_trade; input double SL = 0; input double TP = 0; input bool All_Charts = true; //+------------------------------------------------------------------+ void OnTick() { for(int i = OrdersTotal() - 1; i >= 0; i--) if(OrderGetTicket(i) && (All_Charts || OrderGetString(ORDER_SYMBOL) == _Symbol)) { bool Modify = false; string symbol = OrderGetString(ORDER_SYMBOL); double _SL = OrderGetDouble(ORDER_SL); double _TP = OrderGetDouble(ORDER_TP); if(SL != 0 && _SL == 0) { if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_LIMIT || OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_STOP || OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_STOP_LIMIT) _SL = IsNormalizePrice(symbol, OrderGetDouble(ORDER_PRICE_OPEN) - SL * SymbolInfoDouble(symbol, SYMBOL_POINT)); else _SL = IsNormalizePrice(symbol, OrderGetDouble(ORDER_PRICE_OPEN) + SL * SymbolInfoDouble(symbol, SYMBOL_POINT)); Modify = true; } if(TP != 0 && _TP == 0) { if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_LIMIT || OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_STOP || OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_STOP_LIMIT) _TP = IsNormalizePrice(symbol, OrderGetDouble(ORDER_PRICE_OPEN) + TP * SymbolInfoDouble(symbol, SYMBOL_POINT)); else _TP = IsNormalizePrice(symbol, OrderGetDouble(ORDER_PRICE_OPEN) - TP * SymbolInfoDouble(symbol, SYMBOL_POINT)); Modify = true; } if(Modify) { if(!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)) return; if(!MQLInfoInteger(MQL_TRADE_ALLOWED)) return; m_trade.OrderModify(OrderGetTicket(i), OrderGetDouble(ORDER_PRICE_OPEN), _SL, _TP, (ENUM_ORDER_TYPE_TIME)OrderGetInteger(ORDER_TYPE_TIME), OrderGetInteger(ORDER_TIME_EXPIRATION)); } } } //+------------------------------------------------------------------+ double IsNormalizePrice(string symbol, double price) { double tick_size = 0; SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE, tick_size); return(NormalizeDouble(MathRound(price / tick_size) * tick_size, (int)SymbolInfoInteger(symbol, SYMBOL_DIGITS))); } //+------------------------------------------------------------------+
При настройке All_Charts = true, будет ставить стоплосы и тейки на всех графиках, если false, то только на том где запущен советник.
![Советники: SL_TP Советники: SL_TP](https://c.mql5.com/36/63/sovetniki-sl-tp.jpg)
- 2022.12.15
- www.mql5.com
https://www.mql5.com/ru/code/33444
При открытии ордера, выставляет стоп и тейк.
Или нужен, чтоб робот отслеживал появление новых ордеров и выставлял им стоп и тейк? Если так, то не знаю где брать (бесплатно).
По разному пробовал https://www.mql5.com/ru/code/33444 . СЛ и ТП на отложенных ордерах так и не выставился. На текущих тоже.
Ордера и настройки Советника прилагаю...
![Quick_deals_EA. Горячие клавиши плюс клик левой кнопки мыши на графике. Quick_deals_EA. Горячие клавиши плюс клик левой кнопки мыши на графике.](https://c.mql5.com/36/63/quick-deals-ea-goryachie-klavishi.jpg)
- www.mql5.com
Время будет, выложу в кодобазу.
При настройке All_Charts = true, будет ставить стоплосы и тейки на всех графиках, если false, то только на том где запущен советник.
Ну если будет возможность желательно чтобы выложили... Только на всех графиках с моей точки зрения излишне. Достаточно только на текущем. И абсолютно согласен с вами что кроме СЛ и ТП других настроек и не надо по возможности.
По разному пробовал https://www.mql5.com/ru/code/33444 . СЛ и ТП на отложенных ордерах так и не выставился. На текущих тоже.
Ордера и настройки Советника прилагаю...
Проверил, всё ставится, и ордера, и стоплосы, и тейкпрофиты.
Судя по всему, вы запустили советник, а отложенные ордера выставляли каким то другим образом, а не этим советником.
Вы попробуйте советником поставить ордера, это же удобнее чем через контекстное меню.
Ну если будет возможность желательно чтобы выложили... Только на всех графиках с моей точки зрения излишне. Достаточно только на текущем. И абсолютно согласен с вами что кроме СЛ и ТП других настроек и не надо по возможности.
Вы не смогли воспользоваться тем кодом, что я выложил?
Я добавил файл с советником под комментом с кодом.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования