Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Оцени его работу в терминале MetaTrader 5
Close All if Take Profit activation - эксперт для MetaTrader 5
- Просмотров:
- 2022
- Рейтинг:
- Опубликован:
- 2020.03.31 11:07
- Обновлен:
- 2020.03.31 11:08
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Принцип работы
Советник ожидает закрытие позиции при срабатывании Take Profit. После этого производится попытка закрыть все позиции (без учёта символа и Magic number) и удалить все отложенные ордера (без учёта символа и Magic number).
Как советник понимает, что позиция была закрыта в результате срабатывания Take Profit:
- сначала отлавливается транзакция TRADE_TRANSACTION_DEAL_ADD (добавление сделки в историю)
- проверяем - действительно ли есть эта сделка в истории
- отфильтруем лишнее: сделка должна быть или BUY или SELL, это должна быть сделка DEAL_ENTRY_OUT (Выход из рынка) или DEAL_ENTRY_INOUT (Разворот)
- и САМОЕ ГЛАВНОЕ - это должна быть сделка DEAL_REASON_TP (Сделка проведена в результате срабатывания ордера Take Profit)
//+------------------------------------------------------------------+ //| TradeTransaction function | //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result) { //--- get transaction type as enumeration value ENUM_TRADE_TRANSACTION_TYPE type=trans.type; //--- if transaction is result of addition of the transaction in history if(type==TRADE_TRANSACTION_DEAL_ADD) { if(HistoryDealSelect(trans.deal)) m_deal.Ticket(trans.deal); else return; if(m_deal.DealType()==DEAL_TYPE_BUY || m_deal.DealType()==DEAL_TYPE_SELL) { if(m_deal.Entry()==DEAL_ENTRY_OUT || m_deal.Entry()==DEAL_ENTRY_INOUT) { long deal_reason=-1; if(m_deal.InfoInteger(DEAL_REASON,deal_reason)) { if((ENUM_DEAL_REASON)deal_reason==DEAL_REASON_TP) { m_need_close_all=true; // close all positions m_need_delete_all=true; // delete all pending orders } } } } } }
RSI Arrow Out of Zone EA
Торговая стратегия на основе сигналов пользовательского индикатора 'RSI Arrow Out of Zone EA'
Tunnel gen4 2Модификация кода 'Tunnel gen4'
Indicators Create
Библиотека (в виде советника) всего необходимого для создания индикаторов в советниках
Close Delete By Loss Or ProfitЗакрытие всех позиций и удаление отложенных ордеров