Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Facebook!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Experts

Waddah Attar Win - expert para MetaTrader 5

Publicado por:
Vladimir Karputov
Visualizações:
1455
Avaliação:
(24)
Publicado:
2017.02.13 13:52
yR40SKY8.zip (0.79 KB)
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Autor da ideia — Ahmad Waddah Attarautor do código mq5 — barabashkakvn

Expert Advisor que trabalha com ordens pendentes Buy Limit (BuyLimit) e Sell Limit (SellLimit). Além disso, quando o preço chega muito perto da ordem pendente:

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

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

colocamos mais uma ordem pendente

Para obter o preço mais recente da ordem pendente colocada, utilizamos OnTradeTransaction():

//+------------------------------------------------------------------+
//| TradeTransaction function                                        |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
                        const MqlTradeRequest &request,
                        const MqlTradeResult &result)
  {
//--- obter o tipo de operação como valor de enumeração
   ENUM_TRADE_TRANSACTION_TYPE type=trans.type;
   Print(EnumToString(type));
//--- se a operação for o resultado da adição de negociação no histórico
   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)) // selecionar ordens pendentes
        {
         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;
           }
        }
     }
  }

Teste em EURUSD, M15, de 2015.06.07 a 2016.12.31 — modo de geração de ticks "Cada tick", depósito inicial 10 000:

Waddah Attar Win tester

Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/17339

up3x1_premium_v2M up3x1_premium_v2M

Duas iMA no período atual e uma no período PERIOD_D1.

Bull vs Medved Bull vs Medved

Expert Advisor para tomar decisões de negociação numa simples combinação de velas. Projetado para trabalhar no período H4.

BBand Width Ratio BBand Width Ratio

Implementação do indicador Bollinger Band Width para MetaTrader 5.

MACD normalizada MACD normalizada

MACD normalizada.