Redactaré un asesor de forma gratuita - página 169

 

Antonio Simon Del Vecchio Я только что приготовила его и не успела протестировать.

Todo funciona. Gracias. Pero, no tengo experiencia en trabajar con este tipo de herramientas, así que de repente, después de comprobarlo, me he dado cuenta de que he cometido un error y no he especificado una petición en los TdR: por favor, corríjanlo para que el EA cierre sólo el par de divisas (una o más órdenes) en cuyo gráfico se lanza.
 
torrr #:
Todo funciona. Gracias. Pero, no tengo experiencia en trabajar con este tipo de herramientas, así que de repente, después de comprobarlo, me he dado cuenta de que he cometido un error y no he especificado una petición en los TdR: por favor, corríjanlo para que el EA cierre sólo el par de divisas (una o más órdenes) en cuyo gráfico se lanza.
Solo agregar un Magic. Saludos. 
//+------------------------------------------------------------------+
//|                                                     Practica.mq4 |
//|                        Copyright 2022, Antonio Simón Del Vecchio |
//|                    https://www.mql5.com/es/users/simondelvecchio |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, Antonio Simón Del Vecchio"
#property link      "https://www.mql5.com/es/users/simondelvecchio"
#property version   "1.00"
#property strict


input int Magic = 12345;
input int Periodo = 50;


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(OrdersTotal() > 0 && CruceMediaPrecio())
     {
      Cerrar();
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Cerrar()
  {
   double Precio = 0;
   for(int i = OrdersTotal() - 1; i >= 0; i--)
     {
      if(OrderSelect(i, SELECT_BY_POS))
        {
         if(OrderType() == OP_BUY && OrderMagicNumber()== Magic)
            Precio = Bid;
         else
            Precio = Ask;
         if(!OrderClose(OrderTicket(), OrderLots(), Precio, 3, clrNONE))
            Print("Error al cerrar la órden: ", GetLastError());
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool CruceMediaPrecio()
  {
   double Media = iMA(Symbol(), PERIOD_CURRENT, Periodo, 0, MODE_SMA, PRICE_CLOSE, 0);
   double Max = iHigh(Symbol(), PERIOD_CURRENT, 0);
   double Min = iLow(Symbol(), PERIOD_CURRENT, 0);
   if(Max > Media && Min < Media)
     {
      return(true);
     }
   return(false);
  }
//+------------------------------------------------------------------+
 
Antonio Simon Del Vecchio #:

Gracias de nuevo. Sólo que no entiendo de dónde sacar el magik, ya que todas las operaciones se abrieron manualmente (¿tal vez los comentarios al abrir las órdenes sirvan?)

P.D. Encontré un script que abre las órdenes manualmente con la capacidad de establecer un magik. Creo que funcionará así.
 
torrr #:

Gracias de nuevo. Sólo que no entiendo de dónde sacar el magik, ya que todas las operaciones se abrieron manualmente (¿tal vez los comentarios al abrir las órdenes sirvan?)

P.D. Encontré un script que abre las órdenes manualmente con la capacidad de establecer un magik. Creo que funcionará así.

Pensé que las posiciones eran abiertas por otro EA. Si las abres manual, este te va a servir. 

//+------------------------------------------------------------------+
//|                                                     Practica.mq4 |
//|                        Copyright 2022, Antonio Simón Del Vecchio |
//|                    https://www.mql5.com/es/users/simondelvecchio |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, Antonio Simón Del Vecchio"
#property link      "https://www.mql5.com/es/users/simondelvecchio"
#property version   "1.00"
#property strict

input int Periodo = 50;


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(OrdersTotal() > 0 && CruceMediaPrecio())
     {
      Cerrar();
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Cerrar()
  {
   double Precio = 0;
   for(int i = OrdersTotal() - 1; i >= 0; i--)
     {
      if(OrderSelect(i, SELECT_BY_POS))
        {
         if(OrderType() == OP_BUY && OrderSymbol() == Symbol())
            Precio = Bid;
         else
            Precio = Ask;
         if(!OrderClose(OrderTicket(), OrderLots(), Precio, 3, clrNONE))
            Print("Error al cerrar la órden: ", GetLastError());
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool CruceMediaPrecio()
  {
   double Media = iMA(Symbol(), PERIOD_CURRENT, Periodo, 0, MODE_SMA, PRICE_CLOSE, 0);
   double Max = iHigh(Symbol(), PERIOD_CURRENT, 0);
   double Min = iLow(Symbol(), PERIOD_CURRENT, 0);
   if(Max > Media && Min < Media)
     {
      return(true);
     }
   return(false);
  }
//+------------------------------------------------------------------+
 
Antonio Simon Del Vecchio #:

Pensaba que las posiciones las había abierto otro EA. Si los abre manualmente, esta opción le servirá.

¡Muchas gracias! Estaré probando.
 

Saludos a todos, una pregunta, tengo un EA codigo completo, sin embargo quisiera saber si se puede agregar un panel informativo en donde informe aspectos del momento como, balance, equidad, # de operaciones abiertas, profit del dia, semana, mes, etc.

Gracias.

 
Hola por favor escriba un EA para MT5,

Que venda en el cruce de la banda de Bollinger superior si el precio actual es el máximo de la barra actual.
Los parámetros de las bandas de Bollinger, el marco de tiempo, el tamaño del lote, el takeprofit y el StopLoss como entradas manuales.

Muchas gracias :)
 
Dac coyr Bollinger superior si el precio actual es el máximo de la barra actual.
Los parámetros de las bandas de Bollinger, el marco de tiempo, el tamaño del lote, el takeprofit y el StopLoss como entradas manuales.

Muchas gracias :)

Haz una captura de pantalla del terminal MetaTrader 5 y pon los indicadores en el gráfico, por favor. Y una petición más: el fondo del gráfico debe ser blanco.

 
Vladimir Karputov #:

Haz una captura de pantalla del terminal MetaTrader 5 y pon los indicadores en el gráfico, por favor. Y una petición más: el fondo del gráfico debe ser blanco.


Este es sólo un indicador, pero la orden de venta se ejecutará cuando el precio cruza la banda de Bollinger superior, si el precio actual corresponde al precio más alto de la barra actual / nueva.

Esto significa que se abrirá una orden de venta por cada nuevo precio más alto por encima de la banda superior de Bollinger.
Archivos adjuntos:
 
Hola. Soy nuevo en el comercio. Quiero saber cómo utilizar el robot en el comercio?
Razón de la queja: