Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 618
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
¿Puede decirme por qué puede ser así? :
Fun_1() y Fun_2() son similares.
¿Pueden decirme qué puede estar causando esto? :
Fun_1() y Fun_2() son similares.
académicamente - las funciones no son puras y cambian el estado global.
brevemente - ambas funciones leen y escriben una variable global o un archivo.
académicamente - las funciones no son puras y cambian el estado global.
en resumen - ambas funciones leen y escriben una variable global o un archivo.
Sí, cada uno de ellos escribe un archivo. ¿Y qué?
y no trabajan juntos :-)
P.D. es imposible decir con más precisión el origen de los golpes subterráneos sin fuentes. En algún lugar hay un error - corríjalo
Para ahorrar espacio y mejorar la percepción, en una sola función. Sigue sin funcionar.
para el futuro - si usted puede necesitar el resultado de la función (por lo menos trabajado/no trabajado), no lo haga nulo. A simple vista es difícil determinar que exista un criterio de "desencadenado" - es nulo, no importa cómo se lance todo es bueno.
en los derechos del depurador:
Tienes un montón de variables globales Count_XXX, Range_XXX, que conviertes (además de arrays dSSxx[]), las utilizas para decidir si se registran o no y luego las pasas a algún sitio, ya sea por referencia o por valor...
es obvio que hay algo que falla en su recálculo - Count_dSS obtiene 0 cuando lo vuelves a llamar. La impresión puede ayudar a descubrirlo o los puntos de ruptura y observar.
para el futuro - si usted puede necesitar el resultado de la función (al menos funcionó o no), no lo anule. A simple vista, es difícil determinar cuál es el criterio de "desencadenado": es nulo, no importa cómo se lance, todo es bueno.
en los derechos del depurador:
tienes un montón de variables globales Count_XXX, Range_XXX, que conviertes (además de los arrays dSSxx[]), en base a ellas decides si registrar o no y luego pasas a algún sitio ya sea por referencia o por valor...
es obvio que hay algo que falla en su recálculo - Count_dSS obtiene 0 cuando lo vuelves a llamar. La impresión puede ayudar a descubrirlo o los puntos de ruptura y observar.
Una versión simplificada:
// Hay dos matrices dinámicas A[][2] y B[][2]
// buscamos coincidencias por el índice de la primera dimensión "0".
// Matriz A Matriz B
// 31 25 19 66
// 44 15 62 30
// 62 47 54 71
// 31 94
// Queremos conseguir:
// Matriz dSSd[][4] Matriz dSSw[][4]
// 31 25 31 94 31 94 31 25
// 62 47 62 30 62 30 62 47
¿A qué re-conocimiento te refieres?
Una versión simplificada:
Me refiero a una función similar a la primera (que puede ser diferente en detalle). Has hecho la misma pregunta: por qué estas funciones funcionan individualmente, pero una tras otra (independientemente del orden) no. Más concretamente, sólo la primera función funciona y registra algo.
bueno - coge el estado global, es decir, la primera llamada de la primera de estas funciones cambió las variables globales o el contenido de las matrices. ¿Por qué? Deberías saberlo, porque debería cambiar al escribir en un archivo :-) Honestamente - romper con el tiempo
A mí, por ejemplo, me cuesta y me da reparo. Consigue un depurador o pon impresoras en todos los lugares sospechosos ya. Entiendes la lógica de los nombres y tienes una idea de cómo debería funcionar (no coincide con la realidad :-) )
PD/ de la explicación de lo que hay en la entrada y lo que hay fuera, veo que en lugar de dos arrays dSSx[][4] es suficiente y uno dSS[][3] :-)
Me refiero a una función similar a la primera (que puede ser diferente en detalle). Has hecho la misma pregunta: por qué estas funciones funcionan individualmente, pero una tras otra (independientemente del orden) no. Más concretamente, sólo la primera función funciona y registra algo.
Así pues, el estado global está jodido, es decir, la primera llamada de la primera de estas funciones cambió las variables globales o el contenido de las matrices. Tal vez usted sepa mejor por qué deben cambiarlo al escribir en el archivo :-). Honestamente - romper con el tiempo
A mí, por ejemplo, me cuesta y me da reparo. Consigue un depurador o pon impresoras en todos los lugares sospechosos ya. Entiendes la lógica de los nombres y tienes una idea de cómo debería funcionar (que no coincide con la realidad :-) )
PD/ de la explicación de lo que hay en la entrada y lo que hay fuera, veo que en lugar de dos arrays dSSx[][4] es suficiente y uno dSS[][3] :-)