Errores, fallos, preguntas - página 950

 
fyords:

Por favor, avisen si alguien se ha encontrado con algo así.

Hay un código:

En tiempo real en el terminal funciona: Pero en el probador el mismo código da un resultado diferente:

¿Se debe obtener el tamaño de la matriz independientemente del evento que se haya producido?

 
tol64:

¿Y el tamaño de la matriz debe obtenerse independientemente del evento que se haya producido?

Bueno, primero escribí el indicador y luego reduje todo a un simple ejemplo.
Resulta que sí - en cualquier caso, y los registros que se dan se repiten cada línea.

Cambiando el código por el siguiente:

//+------------------------------------------------------------------+
double date[];
//+------------------------------------------------------------------+
void OnInit()
{
   ArrayResize(date,3);
   Print(__FUNCTION__," ArraySize(date)=",ArraySize(date));
}
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
{
   Print(__FUNCTION__," ArraySize(date)=",ArraySize(date));
}
//+------------------------------------------------------------------+

se convirtió en algo aún más divertido. Terminal de resultados:

FD      0       12:57:59        test (EURGBP.m,M5)      OnInit ArraySize(date)=3
JO      0       12:57:59        test (EURGBP.m,M5)      OnChartEvent ArraySize(date)=3
DG      0       12:57:59        test (EURGBP.m,M5)      OnChartEvent ArraySize(date)=3

Probador:

JM      0       12:58:09        test (EURGBP.m,M15)     2013.01.01 00:00:00   OnInit ArraySize(date)=3
FE      0       12:58:09        test (EURGBP.m,M15)     2013.01.01 00:00:00   OnChartEvent ArraySize(date)=0
FR      0       12:58:09        test (EURGBP.m,M15)     2013.01.01 00:00:00   OnChartEvent ArraySize(date)=0
 
fyords:

Bueno, primero escribí el indicador y luego reduje todo a un simple ejemplo.
Resulta que sí, en cualquier caso, con los registros dados repitiendo cada línea.

...

No he conseguido reproducirlo. Estoy probando este código:

//+------------------------------------------------------------------+
//|                                                     !indTEST.mq5 |
//|                        Copyright 2010, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2010, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//---
#property indicator_chart_window
#property indicator_buffers 1 
#property indicator_plots   1
#property indicator_type1   DRAW_NONE
//---
double date[];
//---
//+------------------------------------------------------------------+
//| ИНИЦИАЛИЗАЦИЯ                                                    |
//+------------------------------------------------------------------+
void OnInit()
  {
   ArrayResize(date,3);
  }
//+------------------------------------------------------------------+
//| ДЕИНИЦИАЛИЗАЦИЯ                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   Print("ArraySize(date)=",ArraySize(date));
  }
//+------------------------------------------------------------------+

//---

Probado el indicador en modo de visualización.

 
tol64:

...

Probado el indicador en modo de visualización.

De igual manera, averiguando.
 
fyords:
Del mismo modo, me lo estoy imaginando.
Por lo que sé, los eventos de interacción de la programación se ignoran actualmente en el probador. Se pueden manejar eventos personalizados.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика - Документация по MQL5
 
tol64:
Por lo que sé, los eventos relacionados con la interacción con el gráfico se ignoran por el momento en el probador. Se pueden manejar eventos personalizados.

Realmente no me importa cuáles sean, siempre que vengan :)

También es interesante que tu código da un resultado 0, es decir, el error persiste.
PS. Win7 x64 + UAC y no portátil.

 
fyords:

Realmente no me importa cuáles sean, siempre que vengan :)

También es interesante que tu código me da el resultado 0, es decir, el error persiste.
PS. Win7 x64 + UAC y no portátil.

Con este código no obtengo ningún evento. ¿En qué eventos se imprime el mensaje en el probador? Incluso me lo preguntaba, por eso quería saberlo. )) Necesito un código para reproducirlo.

 
tol64:

Con este código no obtengo ningún evento. ¿En qué eventos se imprime el mensaje en el probador? Incluso me lo he preguntado, por eso he preguntado. )) Necesito un código para reproducirlo.

Yo tampoco lo entiendo, ya no funciona )).
Es extraño, porque el evento CHARTEVENT_CHART_CHANGE debería llegar de todos modos en el probador. ¿Verdad?
 

fyords:
... 

Extraño, porque el evento CHARTEVENT_CHART_CHANGE debería llegar de todas formas en el probador. ¿Verdad?
En tiempo real, este evento se genera cuando el gráfico se desplaza y las ventanas/subventanas cambian de tamaño. En el probador este evento aún no funciona (y quizás no lo hagan). De todos los eventos, por ahora sólo se pueden seguir los eventos de usuario de otros programas.
 

He probado el Asesor Experto ExpertMACD estándar en el probador de estrategias, que se entrega junto con MT5, genera errores:

2013.03.30 19:18:09 Core 2 genetic pass (0, 15) probado con error "OnInit failed" en 46 ms

2013.03.30 19:18:08 Core 1 genetic pass (0, 13) probado con error "OnInit failed" en 32 ms

2013.03.30 19:18:07 Core 2 genetic pass (0, 5) probado con error "OnInit failed" en 0 ms

Buscando he descubierto que el error está en el módulo: "SignalMACD" al optimizar los periodos MACD Rápido y Lento (al marcar las casillas en los parámetros del probador de estrategias).

¿Alguien se ha encontrado con este problema y cómo solucionarlo? (Cuando sólo hay un tic funciona de alguna manera, pero hay errores en cuanto se comprueban dos tic)

Razón de la queja: