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
.
Así que de todos modos, yo estaba tratando de hacer los fractales altos sólo se forman cuando otra condición se produce como cruces iMACD, o cruces EMA o algunos otros cruces de indicadores.
Para que los fractales sólo se muestren en el indicador cuando se cumplan todas las condiciones.
No estaba seguro de lo que intentabas hacer, pero prueba esto, fíjate en las entradas externas.
¿Cómo ha llegado exactamente a esa conclusión y cuál es la diferencia funcional?
Llegué a esa conclusión, porque probablemente, yo estaba mirando desde perspectivas OOP. sí, esto no es cierto para el caso de MQL4, recuerdo ahora. Aunque puede ser una buena práctica?
¿O tal vez algo como esto?
sin embargo, deberías usar IndicatorCounted(), porque si lo haces así tu indicador está redibujando todos esos objetos en cada nuevo tick en lugar de dibujarlos todos una sola vez y añadir nuevos a medida que se forman nuevas barras
Llegué a esa conclusión, porque probablemente, yo estaba mirando desde perspectivas OOP. sí, esto no es cierto para el caso de MQL4, recuerdo ahora. Aunque puede ser una buena práctica?
Siempre es una buena práctica limitar el alcance. siempre es una buena práctica definir la variable/objeto donde se utiliza y inicializarlos en ese punto.
Definir un objeto fuera del bucle da como resultado una construcción por defecto más N asignaciones. Definido dentro del bucle resulta en N construcciones con valor - generalmente más rápido.
Nunca te preocupes por las optimizaciones hasta que puedas probar que el cambio hace una diferencia.
Siempre es una buena práctica limitar el alcance. Siempre es una buena práctica definir la variable/objeto donde se usa y inicializarla en ese punto.
Definir un objeto fuera del bucle da como resultado una construcción por defecto más N asignaciones. Definir dentro del bucle resulta en N construcciones con valor - normalmente más rápido.
Nunca te preocupes por las optimizaciones hasta que puedas probar que el cambio hace una diferencia.
Esto debería aplicarse también a su iterador. for (int i=0;. ..
Aunque, estoy un poco confundido en cuanto a por qué la declaración de las variables (más rápido y más lento) fuera del bucle no es bueno, mientras que está bien dentro del bucle
¿Y el int i = Bars funcionará fuera del bucle o dentro del bucle?
De todas formas es bueno ver que algunas de mis ideas en las que estaba trabajando ya están publicadas en este hilo, así que esto es una buena noticia y significa que me estoy acercando un poco más a ser capaz de codificar algo por mi cuenta algún día. Así que un poco de progreso es mejor que nada. Gracias
Así que ahora puedo trabajar en la comparación de algunos de los tiempos de los indicadores, voy a tratar de resolver esto ahora.
Como por ejemplo
Comparar v1[i] a v2[i] Indicador actualmente formado Tiempos && / || if(v1[i] tiempo es > v2[i] tiempo) y otras comparaciones como esta.
Gracias por todos los consejos de todo el mundo esto ha sido una gran ayuda.
Siempre es una buena práctica limitar el alcance. Siempre es una buena práctica definir la variable/objeto donde se usa y inicializarla en ese punto.
Definir un objeto fuera del bucle da como resultado una construcción por defecto más N asignaciones. Definir dentro del bucle resulta en N construcciones con valor - normalmente más rápido.
Nunca te preocupes por las optimizaciones hasta que puedas probar que el cambio hace una diferencia.
Ok, parece que tengo algunas variaciones de un código de trabajo ahora gracias.
Aunque, estoy un poco confundido en cuanto a por qué la declaración de las variables (más rápido y más lento) fuera del bucle no es bueno, mientras que es bien dentro del bucle
¿Y el int i = Bars funcionará fuera del bucle o dentro del bucle?
Tienes que tener en cuenta qué es lo que estás haciendo, cuando creas un indicador estás aplicando tu código a todas y cada una de las barras del gráfico, esto significa que necesitas obtener el valor del indicador macd tal y como era para cada una de esas barras históricas.
En tu código original lo hiciste:
el último parámetro 1 es el valor del macd tal y como estaba en la barra 1 del gráfico, la barra anterior a la actual que está indexada como barra 0Obviamente no quieres usar ese único valor del macd en tu operador condicional sobre todo el gráfico histórico .
Necesitas indexar el macd al mismo índice de barra que cada barra así que por ejemplo en la barra 500 necesitas esto
ese último parámetro debe cambiar para coincidir con el número de barra al que su indicador está aplicando sus algoritmos.
por eso lo necesitas dentro del bucle, para que puedas usar el iterador del ciclo del bucle ( i ) para el último parámetro por lo que obtienes tu valor de macd como era para cada barra del gráfico histórico.
Espero que esto ayude a aclarar un poco las cosas.
Pruebe este cambio
¿Y por qué es mejor que for(int i = Bars?
Por favor, aconsejar gracias