Errores, fallos, preguntas - página 841

 
faton:

Buenas tardes. Me pueden aconsejar, escribí un indicador simple... y cuando llega una nueva barra, así se comporta la línea del indicador. ¿Cuál puede ser el problema?

CopyRates(FirstAktiv,PERIOD_CURRENT,0,rates_total,mrate1);
CopyRates(SecondAktiv,PERIOD_CURRENT,0,rates_total,mrate2);
Compruebe lo que devuelveCopyRates. El número de elementos copiados no es necesariamente igual al solicitado. Por lo tanto, el array puede ser sobrepasado y los datos en este lugar del buffer serán nulos, lo cual sucedió.
 

Parece que mientras se actualiza la nueva versión de Terminal, la carpeta Archivos de Programa\Meta Trader 5\MQL5 se ha copiado completamente en C:\NUsers\user\AppData\Roaming\MetaQuotes\Terminal\00C5B588590D4A2C89EFC1E0C5301ECA\MQL5 (es Win7, aunque otros SO probablemente tengan la misma carpeta + quizás otras también). De lo contrario no me explico, donde está el par de horas de trabajo, realizado hace unos días y que la fruta probado con éxito.

El caso es que tengo la costumbre de formatear las clases a través del archivo .mqh, y luego conectarlas. Sin saberlo, tiré mi mqh y mq5 en Archivos de Programa\Meta Trader 5\MQL5, vi que no aparecían en el Navegador y los moví a la carpeta de trabajo (C:\sers\user\AppData\Roaming\MetaQuotes\Terminal\00C5B588590D4A2C89EFC1E0C5301ECA\MQL5). Todo iba bien, hasta que se actualizó el terminal - ejecuté el Asesor Experto para seguir probando, y entonces quise retocar algo más y vi un código antiguo, una copia del que estaba en Archivos de Programa\Meta Trader 5\MQL5. Se ha optimizado la versión correcta, porque mq5 no ha cambiado y el terminal no ha adivinado que se han hecho cambios en mqh. La recompilación ha hecho que se vuelva a la versión antigua.

El resultado es que estoy muy molesto y tendré que gastar una o dos horas para lo que ya he hecho.

Las formas de salir de esta situación que veo son.

1) copiar toda la carpeta, pero sólo la lista de archivos incluidos en el paquete estándar;

2) avisar de alguna manera al usuario de que se va a sobrescribir (aunque, si se cambian muchos archivos de la biblioteca estándar, será un engorro);

3) determinar de alguna manera (calcular el crc, por ejemplo) que la carpeta mql5 en Archivos de Programa ha cambiado, y antes de instalar una nueva versión, emitir un aviso para que pueda guardar sus datos;

4) hacer una copia de la antigua MQL5 en Terminal\00C5B588590D4A2C89EFC1E0C5301ECA\ (añadir, por ejemplo, MQL5.384 versión) - el más fácil.

El problema es poco frecuente, pero maldita sea, es malo.

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
notused:

Parece que durante la actualización de la nueva versión del terminal, hay una copia COMPLETA de la carpeta.................................

........................... ......................

.............................

En resumen: muy cabreado, tendré que volver a gastar una o dos horas en algo que ya he hecho.

Puedo ver una salida a esta situación - ................

....................

Es un problema poco frecuente, pero, maldita sea, es malo.

Comentario constructivo a los desarrolladores: Por favor, hacer una copia de seguridad automática de toda la carpeta MQL5 de la construcción anterior, al instalar una nueva. La vida útil - hasta la próxima construcción, a continuación, reemplazar. Esto no anula el tratamiento cuidadoso de los archivos del cliente al instalar la construcción. Es para el caso de fuerza mayor (como se describe anteriormente) + para guardar las versiones del cliente de la biblioteca estándar.
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 

Factor de recuperación- este indicador muestra el riesgo de la estrategia, cuánto arriesga el Asesor Experto para obtener el beneficio. Se calcula como la relación entre el beneficio obtenido y la reducción máxima; (no dice cuál)

STAT_RECOVERY_FACTOR

Factor de recuperación - relaciónSTAT_PROFIT/STAT_BALANCE_DD

doble



Print("Factor=",TesterStatistics(STAT_RECOVERY_FACTOR));                                    // Выводим Фактор Восстановления
Print("Profit/BalanceDD=",TesterStatistics(STAT_PROFIT)/TesterStatistics(STAT_BALANCE_DD)); // Отношение профита к просадке по балансу
Print("Profit/EquityDD=",TesterStatistics(STAT_PROFIT)/TesterStatistics(STAT_EQUITY_DD));   // Отношение профита к просадке по средствам

Hemos establecido experimentalmente que el factor de recuperación se calcula como la relación entre el beneficio y la detracción por el capital, no por el saldo.

¿Hay un error en la referencia?

 
ilunga:
Bien, así es, te han mostrado los últimos 50.000. Hay 1440 barras en el día.

Gracias, eh...

Esa no es la cuestión. No es una pregunta, es un suspiro de dolor...

Si sólo elijo el mes de junio para la prueba (30 días X 1440 < 50.000), ¿qué se supone que debo ver en el gráfico por razón de agosto?

Por cierto, los timpickers del probador tienen la desagradable propiedad de cerrarse solos después de un segundo...

No es fatal, de todas formas puedes coger la fecha más rápido con las manos, pero...

 
//+------------------------------------------------------------------+
//|                                                  Sample_Tick.mq5 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"

int Tick_All;

MqlTick           last_tick;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   Tick_All=0;

//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(!SymbolInfoTick(_Symbol,last_tick))
     {
      Print("Failed to get Symbol info!");
     }

   Tick_All++;
   Print(Tick_All,"   ",last_tick.bid,"   ",last_tick.ask,"  ",last_tick.last," ",last_tick.volume);
  }
//+------------------------------------------------------------------+

No entiendo por qué se activa OnTick aunque el precio no cambie?????

2012.09.10 11:52:11 Sample_Tick (EURUSD,M5) 493 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:10 Sample_Tick (EURUSD,M5) 492 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:09 Sample_Tick (EURUSD,M5) 491 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:07 Sample_Tick (EURUSD,M5) 490 1.2787 1.2789 1.2788 300000

 
EQU:

Gracias, eh...

Esa no es la cuestión. No es una pregunta, es un suspiro de dolor...

Si sólo elijo el mes de junio para la prueba (30 días X 1440 < 50.000), ¿qué debería ver en el gráfico por razón de agosto?

Escriba al servicio de atención al cliente. Tampoco entiendo por qué el número de barras del gráfico se cuenta _siempre_ a partir del real y no de la fecha de finalización establecida en el probador.
 
sion:
Volumen - puede cambiar, y hay más)

¡¡puedes ver que el volumen no cambia!!

 
dentraf:

¡¡puedes ver que el volumen no cambia!!

Ya he mirado el código.
 

No entiendo cómo funciona o no funciona)


Print("<><><><><",request_action.magic);//Print((ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000);
  if(magic_num!=(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000){Print("<<<<<<<<<<<<<<<<<<<<<",(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000," magic_num=",magic_num);return;}

KG 0 prp4 (EURJPY,M15) 02:23:25 <><><><><73200011000
RR 0 prp4 (EURJPY,M15) 02:23:25 <<<<<<<<<<<<<<<<<<<<<732 magic_num=732   <-поидее числа равны и условие не должно срабатывать

Impresión comentada

Print("<><><><><",request_action.magic);Print((ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000);
  if(magic_num!=(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000){Print("<<<<<<<<<<<<<<<<<<<<<",(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000," magic_num=",magic_num);return;}

MH 0 prp4 (EURJPY,M15) 02:28:11 <><><><73200011000
PE 0 prp4 (EURJPY,M15) 02:28:11 92233720368 <- y este número no sé de dónde ha salido, al parecer en el primer cálculo "(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000" de esto, algo raro cuenta

<condición no se mantuvo, la impresión no se imprimió, por lo que los números eran iguales.

Hasta la 1 de la madrugada, no hubo ningún problema.

P.D. Lo he probado en mi portátil, la build 687 sigue ahí, la misma tarta.