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

Waddah Attar Win - эксперт для MetaTrader 5

Опубликовал:
Vladimir Karputov
Просмотров:
3016
Рейтинг:
(24)
Опубликован:
2017.01.10 08:21
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Автор идеи — Ahmad Waddah Attarавтор кода mq5 — barabashkakvn

Советник работает с отложенными ордерами Buy Limit (BuyLimit) и Sell Limit (SellLimit). При этом, когда цена подходит очень близко к отложенному ордеру:

   if((m_symbol.Ask()-LastBuyLimitPrice)<=5*m_symbol.Point()) // FirstLot очень близко
      m_trade.BuyLimit(LastBuyLimitLot+IncLot,m_symbol.NormalizePrice(LastBuyLimitPrice-ExtStep));

   if((LastSellLimitPrice-m_symbol.Bid())<=5*m_symbol.Point()) // FirstLot очень близко
      m_trade.SellLimit(LastBuyLimitLot+IncLot,m_symbol.NormalizePrice(LastSellLimitPrice+ExtStep));

размещаем ещё один отложенный ордер

Для получения последней цены размещённого отложенного ордера используем OnTradeTransaction():

//+------------------------------------------------------------------+
//| TradeTransaction function                                        |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
                        const MqlTradeRequest &request,
                        const MqlTradeResult &result)
  {
//--- получить тип сделки как значение перечисления
   ENUM_TRADE_TRANSACTION_TYPE type=trans.type;
   Print(EnumToString(type));
//--- если сделка — результат добавления сделки в истории
   if(type==TRADE_TRANSACTION_ORDER_ADD)
     {
      long     order_type        =0;
      double   order_price       =0.0;
      double   order_volume      =0.0;
      string   order_symbol      ="";
      long     order_magic       =0;
      if(OrderSelect(trans.order)) // выбрать отложенные ордеры
        {
         order_type=OrderGetInteger(ORDER_TYPE);
         order_price=OrderGetDouble(ORDER_PRICE_OPEN);
         order_volume=OrderGetDouble(ORDER_VOLUME_INITIAL);
         order_symbol=OrderGetString(ORDER_SYMBOL);
         order_magic=OrderGetInteger(ORDER_MAGIC);
        }
      else
         return;
      if(order_symbol==m_symbol.Name() && order_magic==m_magic)
        {
         if(order_type==ORDER_TYPE_BUY_LIMIT)
           {
            LastBuyLimitPrice=order_price;
            LastBuyLimitLot=order_volume;
           }
         if(order_type==ORDER_TYPE_SELL_LIMIT)
           {
            LastSellLimitPrice=order_price;
            LastSellLimitlLot=order_volume;
           }
        }
     }
  }

Тестирование на EURUSD,M15 с 2015.06.07 по 2016.12.31 — режим генерации тиков "Все тики", начальный депозит 10000:

Waddah Attar Win tester

e-TurboFx e-TurboFx

Проводится анализ баров на наличие N баров одного типа, идущих подряд.

MA Reverse MA Reverse

Торговля по Moving Average. Проверка на достаточность средств.

up3x1_premium_v2M up3x1_premium_v2M

Две iMA на текущем периоде и одна на PERIOD_D1.

Bull vs Medved Bull vs Medved

Советник принимает торговые решения на простых комбинациях свечек. Рассчитан на работу на периоде H4.