Mira cómo descargar robots gratis
¡Búscanos en Facebook!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Asesores Expertos

Waddah Attar Win - Asesor Experto para MetaTrader 5

Publicado por:
Vladimir Karputov
Visualizaciones:
719
Ranking:
(24)
Publicado:
2017.04.27 16:32
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Autor de la idea — Ahmad Waddah Attarautor del código mq5 — barabashkakvn

El asesor funciona con órdenes pendientes Buy Limit (BuyLimit) y Sell Limit (SellLimit). Además, cuando el precio se acerca mucho a una orden pendiente:

   if((m_symbol.Ask()-LastBuyLimitPrice)<=5*m_symbol.Point()) // FirstLot está muy cerca
      m_trade.BuyLimit(LastBuyLimitLot+IncLot,m_symbol.NormalizePrice(LastBuyLimitPrice-ExtStep));

   if((LastSellLimitPrice-m_symbol.Bid())<=5*m_symbol.Point()) // FirstLot está muy cerca
      m_trade.SellLimit(LastBuyLimitLot+IncLot,m_symbol.NormalizePrice(LastSellLimitPrice+ExtStep));

colocamos otra orden pendiente

Para obtener el último precio de la orden pendiente colocada, usamos OnTradeTransaction():

//+------------------------------------------------------------------+
//| TradeTransaction function                                        |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
                        const MqlTradeRequest &request,
                        const MqlTradeResult &result)
  {
//--- obtener el tipo de transacción como valor de enumeración
   ENUM_TRADE_TRANSACTION_TYPE type=trans.type;
   Print(EnumToString(type));
//--- si la transacción es el resultado de la adición de la operación a la historia
   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)) // elegir órdenes pendientes
        {
         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;
           }
        }
     }
  }

Simulación con EURUSD,M15 desde 2015.06.07 a 2016.12.31 — modo de generación de ticks "Todos los ticks", depósito inicial 10000:

Waddah Attar Win tester

Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/17339

BBand Width Ratio BBand Width Ratio

Implementación del indicador Bollinger Band Width para MetaTrader 5.

MACD nromalizada MACD nromalizada

MACD nromalizada

up3x1_premium_v2M up3x1_premium_v2M

Dos iMA en el periodo actual y otra en PERIOD_D1.

Bull vs Medved Bull vs Medved

El asesor toma decisiones comerciales usando sencillas combinaciones de velas. Diseñado para funcionar en el periodo H4.