Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Hola a todos.
Por favor, ayude a un novato a entender el uso de arrays en las clases. Corta el código de la llave en un trozo pequeño para representar el problema:
Al ejecutar obtiene un error Array out of range en la cadena de la clase heredada, en la clase padre obtengo el esperado 0.
2012.02.13 00:41:25 2011.01.01 00:00:00 array fuera de rango en 'test1.mq5' (29,36)
2012.02.13 00:41:25 2011.01.01 00:00:00 array[0]= 0.0
Entiendo que estoy pasando (o direccionando) incorrectamente un array a una clase heredera, aunque con variables normales no hay ningún error con ese manejo.
¿Qué estoy haciendo mal?
Últimamente veo este mensaje con mucha frecuencia al ejecutar archivos *.mq5:
¿Cuál puede ser el problema?
Hola a todos.
¿Qué estoy haciendo mal?
Mira, cuando declaras "second Csecond;" en la segunda línea, no se llama al método InitArray(), ¿verdad? Al mismo tiempo, el propio objeto Csecond ya ha sido creado, por lo que resulta que cuando se llama a la función "Csecond.Printer();", se refiere a la matriz no inicializada y adimensional Stf_ZZ_Val[].
Por favor, dígame si el límite de 1000 barras de historia disponible desde la fecha de inicio se ha eliminado (como en MT4) durante las pruebas?
¿Explique lo que quiere decir con eso?
En el Cinco, se cargan los datos del año anterior desde el inicio de las pruebas. Por lo tanto, si está probando desde 2012.02.01, los datos se cargarán desde 2011.01.01.
La única excepción es la prueba en Días, Semanas y Meses - el comienzo de los datos allí se calcula en base a la necesidad de tener 100 barras antes del comienzo de la prueba.
Explica lo que quieres decir con eso.
Cuando se ejecuta, por ejemplo desde 2011.01.01 en datos diarios necesitamos un historial con al menos 3000 barras. En otras palabras, tenemos que establecer un período conscientemente más largo, que el que necesitamos para las pruebas, y seguir el "punto de partida" programáticamente. ¿Cuál es la dificultad de proporcionar todo el historial (o de solicitarlo) durante las pruebas?
No hay ninguna dificultad. No queríamos introducir una casilla de verificación adicional en los ajustes de la prueba, que habría sido incomprensible para la mayoría de los usuarios y se habría utilizado mal en un gran número de casos.
Es una solución normal especificar un periodo más largo a sabiendas.
Otra solución - ordenar las pruebas sobre una base mensual, y utilizar los indicadores diarios y los datos de precios (es decir, en lugar de PERIOD_CURRENT establecer PERIOD_D1 explícitamente).
También está la cuestión de la disponibilidad del historial no en las pruebas, sino en el comercio automático real. ¿Qué debemos hacer en este caso? El probador puede ser más astuto...
Gracias por la aclaración.
Como nota al margen: estoy haciendo pruebas con agentes remotos a través de Internet. ¿Por qué los agentes obtienen el historial de minutos completo si estoy probando a precios de apertura? El tiempo de preparación antes de que comiencen las pruebas es simplemente obsceno: una hora, por ejemplo. Es bueno para los que tienen una tubería de 10 a 100 megabits, pero aquí estás sentado en un mísero megabit...