Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1759
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
qué, dónde y cuándo y de dónde a dónde, la respuesta es clara.
Se conoce el tamaño del gráfico en píxeles, el número de velas mostradas, sus fechas, los sangrados, se obtienen los precios máximos y mínimos. ¿Cuál es el problema?
Intentaré ser más específico.
¿Debe comprobarse si la línea tiene un extremo en qué barra, en 0 o en 1, o en qué otra barra?
Se conoce el tamaño del gráfico en píxeles, se conoce el número de velas, sus fechas, los sangrados, se obtienen los precios máximos y mínimos. ¿Cuál es el problema?
Puedo esbozar 2 problemas a simple vista...
1) Si tienes 1 píxel corresponde a 10 puntos (por ejemplo). ¿Cuántos píxeles necesitaría para cubrir 15 puntos?
2) Si el mínimo y el máximo del gráfico se modifican al desplazarse, o al cambiar la TF o la escala, ¿se cumplirá el requisito de que el círculo debe corresponder a un número determinado de puntos?
Se me ocurren dos problemas...
1) Si tienes 1 píxel que corresponde a 10 puntos (por ejemplo)... Entonces, ¿cuántos píxeles serían necesarios para cubrir 15 puntos?
2) Si el gráfico de mínimos y máximos se modifica mediante el desplazamiento, o el cambio de TF o de escala, ¿se cumplirá el requisito de que el círculo debe corresponder a un número determinado de puntos?
1 - ¿Puedes redondear a números enteros?
2 - No está prohibido recalcular según el evento en el gráfico
¿Tienes problemas reales o inventados?Intentaré ser más específico.
Momento actual: Vemos 2 líneas en la parte superior y 2 en la inferior
Uno de los superiores dio una señal, y uno de los inferiores dio una señal-el segundo desde el fondo (fractura)
¿Y? ¿Qué tiene de malo el ZigZag? - Siempre mostrará la dirección de la última ruptura.
y te librarás inmediatamente de la siguiente tarea - filtrar las pausas en un par de puntos - Ajuste de la desviación
y otra tarea futura para la gente como su TS - encontrar cuántas barras hace fue la ruptura - en mi ejemplo, también puede devolver tal valor
Y una vez más - mi código ZZ debe hacerse en una función separada y calcular ZZ para cada línea en cada tick y recordar para cada línea la última dirección de ZZ y el número de barra donde fue el último cálculo - el cálculo será rápido, puede ejecutarlo en el probador
si quieres, haz lo que dicen en los foros - si Buf[1] > Buf[2] && Buf[2] > Buf[3].... probablemente MA va hacia abajo....
No, nadie ha dicho nada de encajar. Se necesita que el diámetro del círculo sea siempre igual a un número determinado en puntos.
Puede que lo haya entendido mal, pero ¿qué tiene de difícil fijar el diámetro en pips?
¿Debe comprobarse si la línea tiene un extremo en qué barra, en 0 o en 1, o en qué otra barra?
A cero.
Unade las dos líneasbajas = Bar[1] <Bar[0], una de las dos líneas altas =Bar[1] >Bar[0]
Busca en las dos líneas superiores y en las dos inferiores
En cualquier momento puede haber una ruptura en la segunda más alta y la primera más baja, o en la más baja y la más alta, o en la primera más alta y la segunda más baja. O en ambos a la vez.
1 - ¿Puedes redondear a números enteros?
2 - No está prohibido recalcular a un evento en el gráfico.
1) No es redondeo es un error... y muy grande... en mi ejemplo es 10, pero en algunos instrumentos podría ser 100, 1000, 10000, etc... bonito redondeo...
2) Así que le dirás al cliente que es posible, y luego harás que su procesador 24 por 7 compruebe todos los iconos de todos los gráficos cada segundo para ver si el tamaño del círculo puede cambiar allí... + Tendrá que asegurarse de que su código esté siempre encendido. Creo que es un sabotaje :)
En resumen... Al principio dijiste que la tarea se puede resolver, pero luego resultó que los valores serán aproximados y tendrán un gran margen de error, y el código del watchdog debe estar funcionando para fijar y ajustar los valores colgando el procesador...
¿Y crees que a esto se le llama resolver el problema? Se llama agarrar sin pensar, y luego convencer/probar/cuestionar que es lo correcto...
¿Y? ¿Qué tiene de malo el ZigZag? - Siempre mostrará la dirección de la última fractura
y te librarás inmediatamente de la siguiente tarea - filtrar las pausas en un par de puntos - Ajuste de la desviación
y otra tarea futura para la gente como su TS - encontrar cuántas barras hace fue la ruptura - en mi ejemplo, también puede devolver tal valor
Y una vez más - mi código ZZ debe hacerse en una función separada y calcular ZZ para cada línea en cada tick y recordar para cada línea la última dirección de ZZ y el número de barra donde fue el último cálculo - el cálculo será rápido, puede ejecutarlo en el probador
si quieres, haz lo que dicen en los foros - si Buf[1] > Buf[2] && Buf[2] > Buf[3].... probablemente MA va hacia abajo....
Miré de nuevo, cómo aplicar a mi problema - no he descubierto todavía.
A cero.
Una de las dos líneas bajas= Bar[1] <Bar[0], una de las dos líneas altas=Bar[1] >Bar[0].
Buscamos a lo largo de las 2 líneas superiores y las 2 líneas inferiores
En cualquier momento puede haber una ruptura en la segunda más alta y la primera más baja, o en la más baja y la más alta, o en la primera más alta y la segunda más baja. O en ambos a la vez.
1)Busque fracturas en todas las líneas.
2) De los que hay una ruptura, seleccionamos el que tiene el extremo de 0 barras...
¿Funciona este algoritmo?