[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 309
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
Exactamente. La variable global Reason obtiene un valor, pero no lo obtiene en deinit(), sino en init() para que al ejecutar init(), pueda ver el motivo de la última desinicialización y realizar una determinada acción en función del valor. Pero no funciona como debería.
Te han dicho cómo hacerlo. En deinit() se averigua el motivo de la última desinicialización y se pasa por una variable declarada globalmente. En init() se comprueba el valor de la variable y se averigua el motivo de la última desinicialización. ¡¡¡Funciona!!!
PS Aparentemente, no todo el mundo se da cuenta de que init()/deinit() no cambian los valores de las variables declaradas globalmente a menos que se indique explícitamente en las declaraciones dentro de las funciones.
En realidad, es mejor no cerrar las órdenes en init(). Allí, MarketInfo() no suele funcionar como se espera.
Te han dicho cómo hacerlo. En deinit() se averigua el motivo de la última desinicialización y se pasa por una variable declarada globalmente. En init() se comprueba el valor de la variable y se averigua el motivo de la última desinicialización. ¡¡¡Funciona!!!
Esto sugirió lo que harías con esta función. Una característica como ésta suele pasar por la historia.
Ni siquiera puedo imaginarme la ejecución de la función en un bucle...
No puedo imaginar una función que se ejecute en un bucle...
De nada:
Me di cuenta de que Artem tiene un problema con el cambio de M5 TF. Ahí hay un error. Me gustaría comprobar si es así. Tal vez sea un error de MT4.
No, no es un error. Aquí está el EA. Se han cambiado los plazos de M1 a H1
19:20:02 111 CADJPY,M15: inicializado19:20:09 111 CADJPY,M15: DeinitReason 3
19:20:09 111 CADJPY,M15: desinicializado
19:20:09 111 CADJPY,M15: uninit razón 3
19:20:09 Supertendencia[1] CADJPY,M15: desinicializado
19:20:09 Supertrend[1] CADJPY,M15: uninit reason 3
19:20:09 HLC CADJPY,M15: desinicializado
19:20:09 HLC CADJPY,M15: uninit razón 3
19:20:09 AMA optimizado1 CADJPY,M15: desinicializado
19:20:09 AMA optimizado1 CADJPY,M15: uninit razón 3
19:20:09 AMA optimizado1 CADJPY,M15: desinicializado
19:20:09 AMA optimizado1 CADJPY,M15: uninit razón 3
19:20:09 Supertendencia[1] CADJPY,H1: inicializada
19:20:09 HLC CADJPY,H1: inicializado
19:20:09 AMA optimizado1 CADJPY,H1: inicializado
19:20:09 AMA optimizado1 CADJPY,H1: inicializado
19:20:09 111 CADJPY,H1: inicializado
No, no es un error. Aquí está el EA. Se han cambiado los plazos de M1 a H1
¡Eso es bueno! También tengo muchas razones para la desinicialización.
En realidad, es mejor no cerrar las órdenes en init(). Allí MarketInfo() no suele funcionar como se espera.
ni siquiera puedo imaginar que la función se ejecute en un bucle...
¡Eso es bueno! Porque yo también tengo mucho que ver con las razones de la desinicialización.
Sí. No puedes. Está escrito en la ayuda. Es algo común.Aquí está la última variante a comprobar. El anterior no tuvo mucho éxito, porque init()/deinit() a veces no se hace amigo de print()
Me preguntaba cómo escribir una función. La idea es que cuando N velas retroceden en una determinada dirección, debe calcular el número de velas. PERO. Para ello hay varias condiciones, o más exactamente, habrá una lista de ellas a lo largo del tiempo.
Digamos que la tendencia, por ejemplo, se dirige a la baja,... ...un pullback sube. Quiero, si 5 velas subieron, y cada vela fue alcista, y, por ejemplo, el tamaño de cada vela fue mayor quei_sizeOfCurrBar, y algunas otras condiciones, entonces la salida del número de barras continuamente alcista, y devolver algún resultado de la función.
¿Cuál es la mejor manera de escribirlo? De momento me he puesto a escribir, y entiendo que debería pasarlo por un bucle por barras, y de alguna manera debería limitar la vista en la profundidad del histórico no por un número fijo de barras, sino por barras, con esos parámetros, que nos interesan por condiciones.
Esto es lo que tengo, conseguido:
En este momento sólo vamos desde la penúltima barra hasta la barra con índice 6, es decir, 5 barras seguidas. Pero quiero que mi Asesor Experto busque sólo las barras que son alcistas y no todas seguidas. ¿Cómo aplicarlo adecuadamente?
He filtrado correctamente por tamaño.
Y cuando todo está ya escrito, el contador calculará el número de barras continuas con los parámetros nht,etvsvb y si hay suficientes de tales barras, se devolverá algún valor de la función.
Te han dicho cómo hacerlo. En deinit() se averigua el motivo de la última desinicialización y se pasa por una variable declarada globalmente. En init() se comprueba el valor de la variable y se averigua el motivo de la última desinicialización. ¡¡¡Funciona!!!
PS Aparentemente, no todo el mundo se da cuenta de que init()/deinit() no cambian los valores de las variables declaradas globalmente a menos que se indique explícitamente en las declaraciones dentro de las funciones.
En realidad, es mejor no cerrar las órdenes en init(). Allí MarketInfo() no suele funcionar como se espera.