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
Entendí que utilizaba la nueva descripción - las antiguas
no están en la descripción, pero siguen siendo resaltados por el editorAl utilizar esta función hay un error "2012.11.28 09:58:32 4194304 bytes no disponibles", ayuda a entender, aumentó el archivo de intercambio a 10GBt.
Yedelkin:
А лог-файл случайно алёртами не забивается?
Lo he comprobado, el registro es de 10 kBt, ha habido más,
Error "MemoryException 09:36:12 4194304 bytes not available", se repite a menudo.
Notado (por el código anterior):
// Selección del periodo de la matriz por índice (de PERIOD_M5 (índice - 5) a PERIOD_D1 (índice - 19))
Si se toman menos períodos (por ejemplo, PERIOD_M5 a PERIOD_M6) para la enumeración, no se producirá ningún error.
// Selección de un periodo de una matriz por índice (desde PERIOD_M5 (índice - 5) hasta PERIOD_D1 (índice - 19))
1. ¿De qué tipo de matriz estamos hablando?
2. ¿Qué valor está contenido en esta matriz bajo el índice - por ejemplo, 19?
1. ¿De qué tipo de matriz estamos hablando?
2. ¿Qué valor contiene esta matriz bajo el índice, por ejemplo, 19?
Creo que es más fácil hacer esto, escribí la función como un experto independiente, puede ejecutar y ver por sí mismo.
Si tienes tiempo y ganas de ayudar. (El error es el mismo).
Código duplicado:
Se adjunta el archivo. Parámetros del probador (por si acaso)
EURUSD.e
H1
OHLC
2012.1.1 - 2012.4.1
Actualizando una pregunta, me interesan dos errores:
1. 2012.11.28 11:45:18 4194304 bytes no disponibles
Todavía no puedo resolverlos, pero si en lugar de enumerar los períodos m_period = PERIOD_INDEX[iperiod], se pone por ejemploPERIOD_H1, no habrá ningún error,
pero necesito todos los puntos.
2. 2012.11.28 11:45:49 2012.01.01 00:00:00 Alerta: Error CopyBuffer - número de error: 4806
para solucionar este error, voy a descomentarSleep(1000); desaparecerá y los datos del buffer se copiarán normalmente.
pregunta: ¿por qué? ¿es posible prescindir deSleep(1000), para evitar pérdidas de tiempo adicionales?
Por desgracia, no tengo un probador a mano.
Un poco de trivia. En el lado izquierdo de la línea tienes
hay una variable de tipo int a la izquierda y un valor de tipo ENUM_TIMEFRAMES a la derecha. ¿Por qué no declaras 'ENUM_TIMEFRAMES m_period;' justo en la quinta línea?
2. Tiene un triple bucle anidado donde se llama a un mismo indicador en un tiempo bastante corto. Sólo para un símbolo se producen unas 1400 llamadas. Los indicadores usados no tienen tiempo de liberar memoria. Busca en los hilos del foro sobre la función IndicatorRelease(). Una vez se dijo que el uso de esta función en el código ya es un error.
Un rápido cambio de indicadores en el código también explica la aparición del error 4806. El nuevo indicador simplemente no tiene tiempo para cargar los datos necesarios.
¿Pueden decirme cómo deshacerse de la terminación anormal?
El EA deja de funcionar y esto sólo se puede ver en el registro, es verde en el gráfico.
He cambiado el código teniendo en cuenta tus comentarios:
(corregido m_period = PERIOD_INDEX[iperiod];, el error no es significativo en este caso - pero gracias, lo he arreglado)
Problema con el error (Error CopyBuffer - número de error: 4806) - eliminado, lo curé con Sleep(1000); - lo achaqué a que no tenía suficiente tiempo para crear el indicador.
El problema del error (4194304 bytes no disponibles) se mantiene.
La observación sobre IndicatorRelease() - se tiene en cuenta en el procesamiento.
Si alguien tiene alguna idea, por favor, compártala, gracias.