Descargar MetaTrader 5

Handle del indicador es erroneo

Para añadir comentario, por favor Autorícese o regístrese
Jose Miguel Soriano
5045
Jose Miguel Soriano  

Tengo varios EA en ejecución en VPS.

Cuando cargo el EA o modifico propiedades del EA cargado en el gráfico y "acepto", se genera el error "Handle del indicador es erróneo" y esto tanto con indicadores personalizados como estándar.

El código no da ningún problema en pruebas u optimizaciones. 

Si recompilo desaparece el problema, además del engorro que supone, esto me hace desconfiar del envío de mis EAs al "mercado".

¿Alguien ha tenido este problema?

Rogerio Figurelli
Moderador
44588
Rogerio Figurelli  
josemiguel1812:

Tengo varios EA en ejecución en VPS.

Cuando cargo el EA o modifico propiedades del EA cargado en el gráfico y "acepto", se genera el error "Handle del indicador es erróneo" y esto tanto con indicadores personalizados como estándar.

El código no da ningún problema en pruebas u optimizaciones. 

Si recompilo desaparece el problema, además del engorro que supone, esto me hace desconfiar del envío de mis EAs al "mercado".

¿Alguien ha tenido este problema?

Hola josemiguel1812, si recompila y desaparece el problema puede ser relacionado con la transferencia, que debe ser binaria para ser correcta.
Jose Miguel Soriano
5045
Jose Miguel Soriano  
figurelli:
Hola josemiguel1812, si recompila y desaparece el problema puede ser relacionado con la transferencia, que debe ser binaria para ser correcta.

No entiendo lo de "transferencia binaria".

He tratado de precisar el inicio del problema: yo tengo todo el código por defecto en multidivisa. Si especifico "EURUSD;EURJPY;GBPCHF" el programa cuenta tres símbolos y carga un array dinámico string con los tres nombres; las demás variables globales (como los handles -punteros- de indicador o los valores de SL y TP) se cargan en arrays dinámicos (en este caso de dimensión 3). Todo ello en OnInit(). El "vaciado" de estos arrays lo hago en OndeInit() con ArrayFree(). Este es el sistema lógico y eficiente según MT5. Si la cadena de entrada es "EURUSD", trabaja igual pero con arrays de dimensión 1.

El problema surgía (lo acabo de resolver) cuando estando cargado en gráfico el programa, cambiaba las propiedades. Es decir, estando ya el programa en el bucle OnTick() u OnChartEvent(). Cometía el error de dejar al array de divisas fuera de la inicialización a EMPTY_VALUE que hago a todos los arrays dinámicos en OnInit(). Cuando cambiaba las propiedades, el array de divisas arrastraba valores anteriores y el resultado era un nombre de divisa que acumulaba nombres anteriores (por ejemplo EURUSDEURUSD). Cuando recompilaba se producía la reiniciliación necesaria y se resolvía.

Y todo esto ha venido al reflexionar sobre su respuesta.

Gracias. 

Para añadir comentario, por favor Autorícese o regístrese