Смотри, как бесплатно скачать роботов
Ищи нас в Twitter!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Советники

Opposite trade - эксперт для MetaTrader 5

Просмотров:
2752
Рейтинг:
(20)
Опубликован:
2017.08.07 13:01
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Открываем позицию, противоположную закрытой, с таким же объемом. Работает для любого символа и для любого magic'a.

Например была открыта позиция AUDUSD BUY 0.01. Если эта позиция закроется (например вручную), то советник Opposite trade сразу откроет новую позицию по AUDUSD, но только теперь это будет позиция SELL.

Весь код размещен в функции OnTradeTransaction:

//+------------------------------------------------------------------+
//| 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)
     {
      long     deal_type         =-1;
      long     deal_entry        =-1;
      double   deal_volume       =0.0;
      string   deal_symbol       ="";
      if(HistoryDealSelect(trans.deal))
        {
         deal_type         =HistoryDealGetInteger(trans.deal,DEAL_TYPE);
         deal_entry        =HistoryDealGetInteger(trans.deal,DEAL_ENTRY);
         deal_volume       =HistoryDealGetDouble(trans.deal,DEAL_VOLUME);
         deal_symbol       =HistoryDealGetString(trans.deal,DEAL_SYMBOL);
        }
      else
         return;
      if(deal_entry==DEAL_ENTRY_OUT)
        {
         switch((int)deal_type)
           {
            case  DEAL_TYPE_BUY:
               m_trade.Buy(deal_volume,deal_symbol);
               break;
            case  DEAL_TYPE_SELL:
               m_trade.Sell(deal_volume,deal_symbol);
               break;
            default:
               break;
           }
        }
     }
  }

Здесь мы ждем сделку выхода из позиции (DEAL_ENTRY_OUT). Как только такая сделка появилась - смотрим на тип сделки (если мы закрываем позицию BUY, то сделка будет SELL, если мы закрываем позицию SELL, то сделка будет BUY) и открываем новую позицию.

up3x1 Investor up3x1 Investor

Анализ размеров свечи. Идея торговой системы: после выхода новостей параметры свечи имеют значение.

ColorDerivative ColorDerivative

Индикатор Derivative, построенный в виде цветной гистограммы с дополнительным усреднением.

Конвертер HTML-файлов для календаря экономических событий Конвертер HTML-файлов для календаря экономических событий

Конвертер HTML-файлов для календаря экономических событий. Разбирает страницу, загруженную с сайта http://www.investing.com/economic-calendar, и формирует CSV-файл со списком новостей.

Psychological Psychological

Классический осциллятор, импортированный с платформы FXAccuCharts.