Mira cómo descargar robots gratis
¡Búscanos en Telegram!
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

Opposite trade - Asesor Experto para MetaTrader 5

Visualizaciones:
735
Ranking:
(20)
Publicado:
2017.11.21 08:07
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Abrimos una nueva posición, opuesta a la cerrada, con el mismo volumen. Funciona para cualquier símbolo y cualquier número mágico.

Por ejemplo, se ha abierto una posición AUDUSD BUY 0.01. Si esta posición se cierra (por ejemplo, manualmente), el asesor Opposite trade abrirá de inmediato una nueva posición de AUDUSD, solo que ahora la posición será SELL.

El código completo se ubica en la función 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;
           }
        }
     }
  }

Aquí esperamos la transacción de salida de la posición (DEAL_ENTRY_OUT). En cuanto esta transacción haya aparecido, miraremos el tipo de transacción (si cerramos la posición BUY, la transacción será SELL, si cerramos la posición SELL, la transacción será BUY) y abriremos una nueva posición.

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

Laguerre stripped of double stochastic Laguerre stripped of double stochastic

Filtro de Laguerre "desmontado", usado con un estocástico doble.

up3x1 Investor up3x1 Investor

Análisis del tamaño de la vela. Idea del sistema comercial: tras la salida de las noticias, los parámtros de la vela tienen mucho más significado.

Conversor de archivos HTML para el calendario de eventos económicos Conversor de archivos HTML para el calendario de eventos económicos

Conversor de archivos HTML para el calendario de eventos económicos. Analiza una página cargada desde la web http://www.investing.com/economic-calendar, y forma un archivo CSV con la lista de noticias.

Psychological Psychological

Oscilador clásico, importado desde la plataforma FXAccuCharts.