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

 
Viachaslau Baiko:

posible pérdida de datos debido a la conversión de tipos

Pruébalo.

Archivos adjuntos:
 
Renat Akhtyamov:
Muéstrame la línea del código a la que apunta el compilador

Hay muchas líneas así, por eso pedí un módulo adaptado para los nuevos terminales. Pero gracias por su disposición a ayudar)

 
Alekseu Fedotov:
Gracias, lo intentaré.
 
Viachaslau Baiko:

Hay muchas líneas así, por eso pedí un módulo adaptado para los nuevos terminales. Pero gracias por su disposición a ayudar)

Justo en esta línea :

" posible pérdida de datos debido a la conversión de tipos"

debe ser el número de línea y la posición en la línea de código con el error.

Así de fácil, puedes arreglar todos los errores, conociendo la ubicación exacta en el código

 
Renat Akhtyamov:

justo en esta línea :

" posible pérdida de datos debido a la conversión de tipos"

debe haber un número de línea y una posición en la línea de código con el error.

Es una forma fácil de arreglar todos los errores, conociendo la ubicación exacta en el código.

He tomado el Asesor Experto ofrecidopor Alekseu Fedotov y he tratado de modificarlo para adaptarlo a mis necesidades.

Mis necesidades son las siguientes: En un cruce de varillas, abrimos una posición, y la cerramos en el cruce opuesto. Si es posible, transferimos la posición al punto de equilibrio.

Pero al final no se abre nada. Me estoy devanando los sesos. ¿Cuál puede ser el problema?

Archivos adjuntos:
4Tester.mq4  20 kb
 
Viachaslau Baiko:

Tomé el EA ofrecidopor Alekseu Fedotov y traté de modificarlo para adaptarlo a mis necesidades.

Mis necesidades son las siguientes: Si se cruzan, abrimos una posición. Si se vuelven a cruzar, la cerramos. Si es posible, transferimos la posición al punto de equilibrio.

Pero al final no se abre nada. Me estoy devanando los sesos. ¿Cuál puede ser el problema?

No estoy seguro de cuál es el problema, pero me gustaría ver una línea de código con un error de MMC, por última vez.
 
Renat Akhtyamov:
muestra la línea del código con el error de MMC, por última vez me ofrezco a ayudar.
Hubo un error por mi parte. Hice mal la lógica del programa. Y me resultó más fácil rehacerlo. No hay ningún error en el código de MMC.
 
Por favor, indíqueme si es posible hacer lo siguiente con mql4 o mql5:

después de que el precio cruce un nivel vertical, para colorear parte del fondo de otro color, como se indica en la imagen.

Gracias.
Archivos adjuntos:
Immagine1.JPG  100 kb
 
Renat Akhtyamov:
mostrar un fragmento de código sobre cómo leer la señal del indicador en su EA
extern int     stoploss             = 200,
               takeprofit           = 400,
               slippage             = 10,
               Magic                = 777;          

extern double  Lot                  = 0.5,
               buy_level            = 15;      
            

void OnTick()
{
   for (int i=0; i<OrdersTotal(); i++)                        
   if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
   if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())return;
  
   double STO = iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0);
   double SL=0,TP=0;
  
   if (STO > buy_level)
  
  
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits);
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*  Point,Digits);    
      if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
      PlaySound("timeout.wav");
      Print("Ордер успешно размещен");
}
}
 
TimBerg:
extern int     stoploss             = 200,
               takeprofit           = 400,
               slippage             = 10,
               Magic                = 777;          

extern double  Lot                  = 0.5,
               buy_level            = 15;      
            

void OnTick()
{
   for (int i=0; i<OrdersTotal(); i++)                        
   if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
   if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())return;
  
   double STO = iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0);
   double SL=0,TP=0;
  
   if (STO > buy_level)
  
  
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits);
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*  Point,Digits);    
      if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
      PlaySound("timeout.wav");
      Print("Ордер успешно размещен");
}
}

Aquí mismo:

iStochastic(NULL,15,2,3,1,MODE_SMA,0,MODE_SIGNAL,0);

cambiar el período (marco de tiempo) a 1,5,15,30,60,240,1440,10080,43200 //M1.M5.M30 ... etc.

o introduzca Period() en lugar de 15, entonces cuando cambie manualmente de TF, el actual se fijará automáticamente