Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 614
![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
Gracias por responder. Si no te importa, por favor envíame el EA del que hablas (o una parte del mismo, que está con el canal) - sería interesante ver otra implementación.
No puedo darle sentido a algo que hice hace unos años. Por alguna razón no funciona, aunque recuerdo que antes funcionaba y comerciaba. Deja que primero ordene el código, lo arregle y luego lo publique. Tal vez mañana. No quiero avergonzarme si hay algunos errores infantiles.
La idea general, por supuesto, es ésta. ¿Y cómo se determina la anchura del canal (rango en su caso)? Lo hago a través del tamaño de una vela media y además todo está ligado a la longitud del canal, porque la presencia del canal no se comprueba en un número rígido de barras, sino, por ejemplo, en una longitud de 10 a 30 barras.
Lo que me interesa es la cuestión de seleccionar la anchura a partir de la longitud...
Puede hacer varios parámetros externos para el ancho del canal en un indicador. Y hacer cálculos por separado para cada parámetro.
En cuanto a la longitud, ocurre lo mismo.
Hola. El Expert Advisor de la cesta debería cerrar todas las órdenes cuando llega la condición, pero primero cierra la orden, luego intenta cerrarla de nuevo (el servidor nos da un error diciendo "Entrada no válida") y sólo entonces va más allá. Aquí hay un código de muestra y el propio EA.
En su función CloseOrders(), si la orden se cierra, el ciclo while(cnt<=5 ) enviará de nuevo el código para cerrar la orden, y se producirá un error, por supuesto, para luego salir a través de if(). romper;
En la función ProtectionClose(), ya ha añadido las líneas con el while exit correcto.
Intenta cavar aquí.En su función CloseOrders(), si la orden se cierra, el ciclo while(cnt<=5) enviará de nuevo el código para cerrar la orden, y se producirá un error, por supuesto, entonces saldrá a través de if(). romper;
En la función ProtectionClose(), ya se han añadido líneas con elwhile exit correcto
Intenta investigar un poco aquí.Pero en el caso que he descrito, es la función ProtectionClose() la que cierra la orden. Arreglaré ese error.
Sin embargo, es la función ProtectionClose() la que cierra las órdenes en el caso que he descrito. Arreglaré ese error.
No he profundizado en el código, no he podido ejecutarlo en tester, no hay indicador.
Pero, por ejemplo, sus funciones OpenUsdbuy(); OpenSellusd() son consecutivas.
OpenSellusd() abre GBPUSD, EURUSD, AUDUSD, NZDUSD, etc. Será el primero en cerrarlos en orden inverso a NZDUSD, AUDUSD, etc.
Sólo tres pares en la función ProtectionClose() tienen un while exit en dos variantes: USDCAD, USDCHF y USDJPY.
En otras monedas, se puede salir de while() sólo por un error if(!Resultado[...]).
Es posible realizar varios parámetros externos para el ancho del canal en un indicador. Y hacer cálculos por separado para cada parámetro.
La cuestión es que no quiero establecer el ancho del canal a la fuerza - el Asesor Experto/indicador debe detectar la presencia del canal independientemente del par de divisas y/o la volatilidad actual. En consecuencia, establezco la longitud mínima y máxima del canal a partir de parámetros externos, y esto sólo en el proceso de depuración del algoritmo - después estos parámetros serán cosidos en él. En esta fase, hay algunas quejas. Aunque puedo captar los canales en general (la imagen fue tomada del código de trabajo), me gustaría ver otras soluciones de este tema.
No he profundizado en el código, no he podido ejecutarlo en tester, no hay indicador.
Pero, por ejemplo, sus funciones OpenUsdbuy(); OpenSellusd() son consecutivas.
OpenSellusd() abre GBPUSD, EURUSD, AUDUSD, NZDUSD, etc. Será el primero en cerrarlos en orden inverso a NZDUSD, AUDUSD, etc.
Sólo tres pares en la función ProtectionClose() tienen una salida while en dos variantes: USDCAD, USDCHF y USDJPY.
En otras monedas se puede salir de while() sólo por un error if(!Resultado[...])
Gracias por el consejo, se me olvidó dejar el bucle en este caso, ahora debería funcionar. Si quieres puedo pegar el indicador como agradecimiento.
La idea general, por supuesto, es ésta. ¿Y cómo se determina la anchura del canal (rango en su caso)? Lo hago a través del tamaño de una vela media y además todo está ligado a la longitud del canal, porque la presencia del canal no se comprueba en un número rígido de barras, sino, por ejemplo, en una longitud de 10 a 30 barras.
Lo que me interesa es la cuestión de elegir la anchura de la longitud...
Bueno, en mi caso, sugerí una opción más ligera desde la linterna para asignar la altura del canal y el número mínimo de barras también.
La cuestión es que no quiero establecer el ancho del canal a la fuerza - el Asesor Experto/indicador debe detectar la presencia del canal independientemente del par de divisas y/o la volatilidad actual. Por lo tanto, sólo establezco la longitud mínima y máxima del canal a partir de parámetros externos, y esto sólo en el proceso de depuración del algoritmo - después estos parámetros serán cosidos en él. En esta fase, hay algunas quejas. Aunque puedo captar los canales en general (la imagen fue tomada del código de trabajo), me gustaría ver otras soluciones de este tema.
El punto es que no quiero establecer el ancho del canal a la fuerza - el Asesor Experto/indicador tiene que determinar la presencia del canal, independientemente del par de divisas y/o la volatilidad actual. En consecuencia, establezco la longitud mínima y máxima del canal a partir de parámetros externos, y esto sólo en el proceso de depuración del algoritmo - después estos parámetros serán cosidos en él. En esta fase, hay algunas quejas. Aunque puedo captar los canales en general (la imagen era de un código de trabajo), me gustaría ver otras soluciones para este tema.
Bueno, hay una idea para atrapar 2 fractales superiores consecutivos o 2 iHighest que consisten en, digamos, 5-10 velas. Atrapamos este caso dentro de un determinado rango de longitud. Si los valores de estos picos son cercanos, entre estos dos picos encontraremos iLowest.
Del mismo modo, busca primero los dos picos inferiores y luego el pico superior entre ellos.
Entonces bailaremos desde esos picos encontrados. En primer lugar, dibujamos niveles por ellos. Luego enseñamos el código para pensar más allá.
Esta opción eliminará el parámetro externo como Channel_width.
Se mire como se mire, creo que necesitamos al menos algunos parámetros para la duración.