Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 190

 
gyulnara.kosareva:
Hola, ¿puedo instalar un EA sin archivo mql4 si sólo tengo el archivo ex del EA?

Sí, para eso está el archivo .ex

 
Hola a todos.
Tenía la versión 400.1129 de la app MT4 instalada en mi android, hasta el 29.10.2019 la app funcionaba como un reloj. El viernes empecé a abrirla en mi teléfono, la pantalla de bienvenida me dijo que estaba abriendo una nueva cuenta demo e inmediatamente la aplicación se cerró. Y terminé en el escritorio. Lo he intentado docenas de veces y he obtenido el mismo resultado. Quité el terminal, descargué el nuevo terminal de la lista de reproducción, lo instalé y lo ejecuté con el mismo resultado: la aplicación se bloqueó. He descargado Rojo forex MT4 del mercado, lo he instalado y lanzado y funciona como un reloj. También descargué la versión 500.1780 de MT5 de Market, la instalé y la ejecuté, abrí una cuenta demo, todo funciona bien.
¡Por favor, aconseja qué hacer si quiero que MT4 funcione en mi teléfono de nuevo! Por favor.
 

Hola a todos, ¿podéis decirme qué pasa? El probador de estrategias en el mercado se queja de la recotización -NEW_ORDER(): lot=0.20; POSITION_TYPE_BUY(EURUSD); err: 4756/Failed tosend trade request; retcode: 10004/Requote;

¿Dónde puedo leer más sobre este error y cómo solucionarlo?

 
Nikolai Konstantinov:

Hola a todos, ¿podéis decirme qué pasa? El probador de estrategias en el mercado se queja de la recotización -NEW_ORDER(): lot=0.20; POSITION_TYPE_BUY(EURUSD); err: 4756/Failed tosend trade request; retcode: 10004/Requote;

¿Dónde puedo leer más sobre este error y cómo solucionarlo?


No se trata de un error, sino de una situación de mercado.
1. actualizar los precios antes de enviar una operación para su ejecución.
2. Reabrir después de la reparación
3. Aumentar el deslizamiento
 
Vladislav Andruschenko:

No es un error, es una situación de mercado.
1. Actualice los precios antes de enviar una operación para su ejecución.
2. Reabrir después de la reparación.
3. Aumentar el deslizamiento

Gracias, pero todo lo que has escrito ya está contado. ¿Hay que tener en cuenta algo más?

 

¡Hola! ¡Por favor, ayuda!

De repente, MT4 empezó a colgarse. Todos de diferentes empresas de corretaje.

Al iniciar el terminal se cuelga. En Gerente dice delante de él "no responde. No responde a nada, en la parte inferior del panel MT, está marcado que no hay conexión.

Reiniciar los terminales, cambiarlos de diferentes corredores, eliminar y volver a instalar, limpiar los datos con el programa Clean, apagar y encender el ordenador - no ha dado resultado.

Queda por reinstalar el sistema operativo, pero tan renuente.

¿Tal vez alguien ha tenido algo así?

¿Algún consejo?

 
odyn:

Queda por reinstalar el sistema operativo, pero es muy reticente.

Alternativamente, en una máquina virtual instalar el sistema operativo y el terminal, he instalado Oracle VM VirtualBox sin ningún problema allí MT4/MT5 trabajo

si se trata de un problema con el sistema operativo, es necesario reinstalarlo.


Lo he comprobado yo mismo. Funciona con MT4 y MT5 sin problemas.

 
odyn:

¡Hola! ¡Por favor, ayuda!

De repente, MT4 empezó a colgarse. Todos de diferentes empresas de corretaje.

Al iniciar el terminal se cuelga. En Gerente dice delante de él "no responde. No responde a nada, En la parte inferior del panel MT está marcado que no hay conexión.

Reiniciar los terminales, cambiarlos de diferentes corredores, eliminar y volver a instalar, limpiar los datos con el programa Clean, apagar y encender el ordenador - no ha dado resultados.

Queda por reinstalar el sistema operativo, pero tan renuente.

¿Tal vez alguien ha tenido algo así?

Por favor, avise a quien pueda.

Internet Explorer podría ser la raíz del problema

de las circunstancias - tiene que ser actualizado o retrocedido :-) Y de ninguna manera permitir todo tipo de complementos, plugins y extensiones.

Los autores decidieron que el componente del explorador era el mejor para mostrar el mercado/las señales/las noticias/el chat, pero el explorador en sí es una beta perpetua. Y sus problemas "interfieren" con el terminal

 

Buenos días a todos.

Podemos cambiar la condición en el código: "El Asesor Experto abre una posición dependiendo del cierre de la última posición. Si no había posición, se abre en función de la dirección de la vela anterior" y deberíamos cambiarlo porla posibilidad de colocar 2 órdenes pendientes a una determinada distancia del precio actual y, cuando una de ellas se dispare, se eliminará la 2ª orden. El resto del algoritmo no cambia.

Yo mismo lo ajusté, pero no pude conseguir una versión que funcionara.

#property description "Советник открывает позицию в зависимости от закрытия прошлой позиции. Если позиции не было то в зависимости от направления прошлой свечи"
#property description "При достижение Т/P следующий ордер открывается в эту же сторону"
#property description "При достижение S/L следующий открывается в противоположную сторону"
//+------------------------------------------------------------------
#property  show_inputs
//+------------------------------------------------------------------
enum TT {BUY, SELL, BUYLIMIT, SELLLIMIT, BUYSTOP, SELLSTOP};
enum YN {No,Yes};
//+------------------------------------------------------------------
extern TT     Type         = BUY;
extern double Price        = 0; 
extern int    Distance     = 0;
extern int    stoploss     = 300,
              takeprofit   = 300;
extern double risk         = 0.01; //процент от депозита для рассчета объема первой позиции
extern double KoeffMartin  = 2.0;
extern int    OkrLOT       = 2;//округление лота
extern int    slippage     = 3;//Максимально допустимое отклонение цены для рыночных ордеров
extern int    MagicNumb    = 77;//Magic

double MINLOT,MAXLOT;                                  
//+------------------------------------------------------------------+
int OnInit()
{
   MAXLOT = MarketInfo(Symbol(),MODE_MAXLOT);
   MINLOT = MarketInfo(Symbol(),MODE_MINLOT);
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
void OnTick()
{
   double OSL,OTP,OOP,SL,TP;
   int tip;
   double STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);
   for (int i=0; i
   {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumb)
         {
            tip = OrderType(); 
            OSL = NormalizeDouble(OrderStopLoss(),Digits);
            OTP = NormalizeDouble(OrderTakeProfit(),Digits);
            OOP = NormalizeDouble(OrderOpenPrice(),Digits);
            SL=OSL;TP=OTP;
            if (tip==OP_BUY)             
            {  
               if (OSL==0 && stoploss>=STOPLEVEL && stoploss!=0)
               {
                  SL = NormalizeDouble(OOP - stoploss   * Point,Digits);
               } 
               if (OTP==0 && takeprofit>=STOPLEVEL && takeprofit!=0)
               {
                  TP = NormalizeDouble(OOP + takeprofit * Point,Digits);
               } 
               if (SL != OSL || TP != OTP)
               {  
                  if (!OrderModify(OrderTicket(),OOP,SL,TP,0,White)) Print("Error OrderModify <<",GetLastError(),">> ");
               }
            }                                         
            if (tip==OP_SELL)        
            {
               if (OSL==0 && stoploss>=STOPLEVEL && stoploss!=0)
               {
                  SL = NormalizeDouble(OOP + stoploss   * Point,Digits);
               }
               if (OTP==0 && takeprofit>=STOPLEVEL && takeprofit!=0)
               {
                  TP = NormalizeDouble(OOP - takeprofit * Point,Digits);
               }
               if (SL != OSL || TP != OTP)
               {  
                  if (!OrderModify(OrderTicket(),OOP,SL,TP,0,White)) Print("Error OrderModify <<",GetLastError(),">> ");
               }
            } 
            return;
         }
      }
   }
   tip=-1;
   double Lot=0;
    for (i=OrdersHistoryTotal()-1; i>=0; i--)
   {
      if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
      {
         if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumb)
         {
            if (OrderProfit()<0) 
            {
               Lot=lot(OrderLots(),KoeffMartin);
               tip=OrderType();
            }
            else 
            {
               Lot=lot(0,1);
               if (OrderType()==OP_BUY)  tip=OP_SELL;
               if (OrderType()==OP_SELL) tip=OP_BUY;
            }
            break;
         }
      }
   }

   if (tip==-1)
   {
      Lot=lot(0,1);
      if (Open[1]>Close[1]) tip=OP_BUY;
      else tip=OP_SELL;
   }
   if (tip==OP_BUY) if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bi  d,Digits),slippage,0,0,NULL,MagicNumb,Blue)!=-1) Comment("Open Sell");
   if (tip==OP_SELL) if (OrderSend(Symbol(),OP_BUY ,Lot,NormalizeDouble(Ask,Digits),slippage,0,0,NULL  ,MagicNumb,Blue)!=-1) Comment("Open Buy");                               
}
//--------------------------------------------------------------------

double lot(double l,double k)

{

   double ML = AccountFreeMargin()/MarketInfo(Symbol(),MODE_MARGINREQUIRED);

   if (k==1) l = ML*risk/100;
   else l = NormalizeDouble(l*k,OkrLOT);
   if (l>ML) l = ML;
   if (l>MAXLOT) l = MAXLOT;
   if (l
   return(l);
}
//-----------------------------------------------------------------
            {
               Lot=lot(0,1);
               if (OrderType()==OP_BUY)  tip=OP_SELL;
               if (OrderType()==OP_SELL) tip=OP_BUY;
            }
            break;
         }
      }
   }

   if (tip==-1)
   {
      Lot=lot(0,1);
      if (Open[1]>Close[1]) tip=OP_BUY;
      else tip=OP_SELL;
   }
   
   if (tip==OP_BUY) if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bi  d,Digits),slippage,0,0,NULL,MagicNumb,Blue)!=-1) Comment("Open Sell");
   if (tip==OP_SELL) if (OrderSend(Symbol(),OP_BUY ,Lot,NormalizeDouble(Ask,Digits),slippage,0,0,NULL  ,MagicNumb,Blue)!=-1) Comment("Open Buy");                                 
}
//--------------------------------------------------------------------
double lot(double l,double k)
{
   double ML = AccountFreeMargin()/MarketInfo(Symbol(),MODE_MARGINREQUIRED);
   if (k==1) l = ML*risk/100;
   else l = NormalizeDouble(l*k,OkrLOT);
   if (l>ML) l = ML;
   if (l>MAXLOT) l = MAXLOT;
   if (l
   return(l);
}
//-----------------------------------------------------------------
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
Archivos adjuntos:
SSSR_v.1.mq4  11 kb
 
Intentaré reformular el último post:

//--------------------------------------
Según el algoritmo, el Asesor Experto abre una posición en función del cierre de una posición anterior.
Si no hay posición, se abre en función de la dirección de la última vela.

Este algoritmo debería cambiarse por:

Comprar:

Colocar 2 órdenes pendientes BuyStop al precio especificado en la configuración y SellStop al precio especificado en la configuración.
Tan pronto como el precio alcanza una de las órdenes de stop, se mueve a una posición de mercado con ТР y SL establecidos. La orden que no se activó se elimina.

El resto del algoritmo no se modifica, es decir "Cuando se alcanza el TP/P, se abre la siguiente orden en la misma dirección".
"Cuando se alcanza S/L, la siguiente orden se abre en sentido contrario"
//---------------------------------------------------