Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 664

 
Alexey Kozitsyn:
Sí, los parámetros de entrada no se pueden modificar. Para ser sincero, no entiendo por qué hay que cambiar este valor según las comillas de 3/5 dígitos. Este valor se establece en los parámetros de entrada. ¿No se puede escribir 100 (si son 3/5 dígitos) y no molestarse?

De hecho, optimizo en 5 dígitos - más historia, pero comercio en 4 y uso diferentes ajustes, incluyendo puntos. No quiero confundir la configuración, por eso esta es la solución.

 
-Aleks-:

De hecho, optimizo en 5 dígitos - más historia, pero comercio en 4 y uso diferentes ajustes, incluyendo puntos. No quiero confundir la configuración, por eso esta es la solución.

Debería funcionar así

int Sign = 1;

int OnInit() {
// Округлим огрызки - 3 и 5 знак
Sign=(SymbolInfoInteger(_Symbol,SYMBOL_DIGITS)==3 || SymbolInfoInteger(_Symbol,SYMBOL_DIGITS)==5)?10:1;
// Приведем к терминальному количеству знаков
TakeProfit*=Sign;
StopLoss*=Sign;
TrailingShift*=Sign;
TrailingStep*=Sign;
Slippage*=Sign;
}
 
Vitaly Muzichenko:

Esto debería funcionar

int Sign = 1;

int OnInit() {
// Округлим огрызки - 3 и 5 знак
Sign=(SymbolInfoInteger(_Symbol,SYMBOL_DIGITS)==3 || SymbolInfoInteger(_Symbol,SYMBOL_DIGITS)==5)?10:1;
// Приведем к терминальному количеству знаков
TakeProfit*=Sign;
StopLoss*=Sign;
TrailingShift*=Sign;
TrailingStep*=Sign;
Slippage*=Sign;
}


Gracias - Lo probaré en cuanto pueda poner en marcha el EA...

 

También me aparece este error, ¿cómo lo corrijo?

'MODE_MAIN' - identificador de enumerador ya definido initmql4__1.mqh 223 24


 ENUM_STO_PRICE StoFieldMigrate(int field)


  {
   switch(field)
     {
      case 0: return(STO_LOWHIGH);
      case 1: return(STO_CLOSECLOSE);
      default: return(STO_LOWHIGH);
     }
  }

//+------------------------------------------------------------------+
enum ALLIGATOR_MODE  { MODE_GATORJAW=1,   MODE_GATORTEETH, MODE_GATORLIPS };
enum ADX_MODE        { MODE_MAIN,         MODE_PLUSDI, MODE_MINUSDI };
enum UP_LOW_MODE     { MODE_BASE,         MODE_UPPER,      MODE_LOWER };
enum ICHIMOKU_MODE   { MODE_TENKANSEN=1,  MODE_KIJUNSEN, MODE_SENKOUSPANA, MODE_SENKOUSPANB, MODE_CHINKOUSPAN };
enum MAIN_SIGNAL_MODE{ MODE_MAIN,         MODE_SIGNAL };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double CopyBufferMQL4(int handle,int index,int shift)
  {
   double buf[];
   switch(index)
     {
      case 0: if(CopyBuffer(handle,0,shift,1,buf)>0)
         return(buf[0]); break;
      case 1: if(CopyBuffer(handle,1,shift,1,buf)>0)
         return(buf[0]); break;
      case 2: if(CopyBuffer(handle,2,shift,1,buf)>0)
         return(buf[0]); break;
      case 3: if(CopyBuffer(handle,3,shift,1,buf)>0)
         return(buf[0]); break;
      case 4: if(CopyBuffer(handle,4,shift,1,buf)>0)
         return(buf[0]); break;
      default: break;
     }
   return(EMPTY_VALUE);
  }
//+------------------------------------------------------------------+

 
-Aleks-:

En tal situación, me sale un error - ayúdame a entender por qué se produce el error - en MQL5 no se puede cambiar el valor de una variable introducida por el usuario?

¡No puedes!

Si has decidido utilizar MQL4_to_MQL5.mqh, te recomiendo encarecidamente que no lo hagas. Ya que fue escrito para los ejemplos, que están en la descripción de la biblioteca. Es decir, no es universal en absoluto. En particular, existe una versión muy limitada de MarketInfo (para hacer funcionar sólo ejemplos). Pero las buenas soluciones están ahí. Por lo tanto, es mejor no usar este mqh en sí, sino tomar sólo cosas útiles de él.

 
-Aleks-:

También me aparece este error, ¿cómo lo corrijo?

'MODE_MAIN' - identificador de enumerador ya definido initmql4__1.mqh 223 24


 ENUM_STO_PRICE StoFieldMigrate(int field)


  {
   switch(field)
     {
      case 0: return(STO_LOWHIGH);
      case 1: return(STO_CLOSECLOSE);
      default: return(STO_LOWHIGH);
     }
  }

//+------------------------------------------------------------------+
enum ALLIGATOR_MODE  { MODE_GATORJAW=1,   MODE_GATORTEETH, MODE_GATORLIPS };
enum ADX_MODE        { MODE_MAIN,         MODE_PLUSDI, MODE_MINUSDI };
enum UP_LOW_MODE     { MODE_BASE,         MODE_UPPER,      MODE_LOWER };
enum ICHIMOKU_MODE   { MODE_TENKANSEN=1,  MODE_KIJUNSEN, MODE_SENKOUSPANA, MODE_SENKOUSPANB, MODE_CHINKOUSPAN };
enum MAIN_SIGNAL_MODE{ MODE_MAIN,         MODE_SIGNAL };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double CopyBufferMQL4(int handle,int index,int shift)
  {
   double buf[];
   switch(index)
     {
      case 0: if(CopyBuffer(handle,0,shift,1,buf)>0)
         return(buf[0]); break;
      case 1: if(CopyBuffer(handle,1,shift,1,buf)>0)
         return(buf[0]); break;
      case 2: if(CopyBuffer(handle,2,shift,1,buf)>0)
         return(buf[0]); break;
      case 3: if(CopyBuffer(handle,3,shift,1,buf)>0)
         return(buf[0]); break;
      case 4: if(CopyBuffer(handle,4,shift,1,buf)>0)
         return(buf[0]); break;
      default: break;
     }
   return(EMPTY_VALUE);
  }
//+------------------------------------------------------------------+

Renombrar. Los campos de TODOS los enumeradores deben ser diferentes. Y tienes los mismos campos enel enum ADX_MODE yen el enum MAIN_SIGNAL_MODE.
 
fxsaber:
Renombrar. Los campos de TODAS las enumeraciones deben ser diferentes. Y tienes los mismos campos enel enum ADX_MODE yen el enum MAIN_SIGNAL_MODE.

Lo he comentado por ahora... No creo que sea crítico...

Sin embargo, compilado un EA utilizando dos bibliotecas - funciones de comercio y la traducción de otras funciones de 4 a 5.

Todavía estoy harto del probador en 5 - no puedo encontrar donde los indicadores se pueden añadir en la visualización y cómo filtrar el registro ...

Todavía no puedo ver los pedidos abiertos, eh.

 

Cómo interpretar esto:

2016.11.04 20:42:25.224 2016.02.11 14:04:30 Al configurar el error imprevisto pendiente - 4756
2016.11.04 20:42:25.224 2016.02.11 14:04:30 Magic=49266773 cPoza::setOrder envió una solicitud para establecer una orden. Tipo: BuyStop lot=1.0 opPrice=68180.0 tp=68200.0 sl=67260.0
2016.11.04 20:42:25.224 2016.02.11 14:04:30 parada de compra fallida 1.00 RTS-12.16 a 68180 sl: 67260 tp: 68200 [Vencimiento no válido].
2016.11.04 20:42:25.224 2016.02.11 14:04:30 Al configurar el error imprevisto pendiente - 4756

 
-Aleks-:

Cómo interpretar esto:

2016.11.04 20:42:25.224 2016.02.11 14:04:30 Al configurar el error imprevisto pendiente - 4756
2016.11.04 20:42:25.224 2016.02.11 14:04:30 Magic=49266773 cPoza::setOrder envió una solicitud para establecer una orden. Tipo: BuyStop lot=1.0 opPrice=68180.0 tp=68200.0 sl=67260.0
2016.11.04 20:42:25.224 2016.02.11 14:04:30 parada de compra fallida 1.00 RTS-12.16 a 68180 sl: 67260 tp: 68200 [Vencimiento no válido].
2016.11.04 20:42:25.224 2016.02.11 14:04:30 Al configurar el error imprevisto pendiente - 4756

Hay algo que falla en la configuración de la caducidad.
 
-Aleks-:

Hasta ahora estoy harto del probador en cinco - no puedo encontrar donde se pueden añadir los indicadores a la visualización y cómo filtrar el registro...

No hay manera de ver los pedidos abiertos todavía, eh.

Estoy utilizando un script convertido de MT4 de 2006 para ver el historial del probador. Muestra todo tan convenientemente como MT4.
Razón de la queja: