[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 656
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é puede causar un desbordamiento de pila? Cuando se abre una posición con una gran toma (la toma se calcula a partir de la volatilidad y se multiplica por 100, el tamaño es 41*100), entonces se escribe un desbordamiento de pila en el registro y... ...sólo tómalo. No se abren más posiciones hasta que esta se cierre, y esta, por supuesto, no se cerrará por el enorme TP.... Y el EA no funciona correctamente en absoluto, porque debería cerrar todas las posiciones cuando se alcanza el beneficio total predefinido de las posiciones abiertas... Pero no ocurre, aunque esta posición lleva mucho tiempo con enormes beneficios, unos dos mil puntos... ¿Cómo puedo combatirlo? No se puede asegurar la situación en la que todas las posiciones abiertas desborden la pila, y todo se ponga patas arriba...
la pila no puede desbordarse sólo con un número que está fuera del rango de tipos - habrá otro error
Los datos pasados a una función o una llamada recursiva a una función sin salir pueden desbordar la pila.
start() también es una función - quizás tengas muchas variables ahí.
la pila es una región de memoria donde se almacenan los valores intermedios (variables locales) de una función; puedes estar rompiendo la pila tú mismo si utilizas arrays dinámicos y no has comprobado correctamente el ámbito del array, es decir, estás escribiendo datos no en un array sino en una región de memoria que viene justo después del array
intenta mover algunas de las matrices a variables globales - ponlas en la parte superior del tablero
ZS: al menos es igual en todos los lenguajes de programación - creo que es igual en mql
la pila no puede desbordarse sólo con un número que está fuera del rango de tipos - habrá otro error
Los datos pasados a una función o una llamada recursiva a una función sin salir pueden desbordar la pila.
start() también es una función - quizás tengas muchas variables ahí.
la pila es una región de memoria donde se almacenan los valores intermedios (variables locales) de una función; puedes estar rompiendo la pila tú mismo si utilizas arrays dinámicos y no has comprobado correctamente el ámbito del array, es decir, estás escribiendo datos no en un array, sino en una región de memoria que viene justo después del array
intenta mover algunas de las matrices a variables globales - ponlas en la parte superior del tablero
ZS: al menos es igual en todos los lenguajes de programación - creo que es igual en mql
Igor, sabes que hasta ahora he evitado usar arrays... Sólo tengo un par de arrays en mi código - un array de órdenes antes del tick y un array de órdenes después del tick. Los tengo definidos en el área de variables globales. Lo curioso es que moví el código para abrir estas posiciones a otro lugar del EA y el error desapareció. Parece que había una llamada recursiva para abrir órdenes, aunque no me he molestado en ello. Simplemente decidí que no sería adecuado colocar la apertura inmediatamente después de cerrar todas las posiciones en el código para comprobar si se alcanzó el beneficio total y se cerraron todas las posiciones... Me he hecho un lío... :)
Hice una plantilla para crear un EA - cuando se coloca una orden, la bandera de tal orden se establece inmediatamente y después, antes de abrir una nueva orden de este tipo, siempre compruebo la bandera - si la orden existe, pero estoy escribiendo EAs con una sola orden
Hace tiempo que hice una plantilla para crear un EA - cuando pongo una orden, inmediatamente pongo una señal (bandera) de que tal orden existe, y luego antes de abrir una nueva orden de este tipo siempre compruebo la bandera - si tal orden existe, pero escribo EAs con una sola orden
Sí, obtuve "0", pero ¿qué debo hacer? No puedo hacerlo de las dos maneras (incluso probé con períodos iguales), probé con ambos Print("NormalizeDouble(c1b_1..."), pero obtuve ceros (sólo c1b[i] muestra el valor, todos los demás incluyendo c1s[i] son ceros), ¿puede ayudarme a llevar uno de ellos a una condición de trabajo o compartir una pista, si nota algún defecto?
Nuevo:
Antiguo:
Entero:
Yuri, en el futuro, si el código se repite al menos dos veces, debería asignarse a un método, y no necesitarás montones de arrays abarrotando el código.
He aquí un método para ti:
Creo que todo está claro con los parámetros, introduce los datos y variando el parámetro ma_shift consigue el desplazamiento que necesitas. Tenga en cuenta que este método se puede utilizar como una plantilla, sólo cambiar los métodos de acceso para los indicadores i...(...) o iCustom(...). Ahora su bloque de decisiones de comercio se ve como debe ser:
En consecuencia, no hay necesidad ahora de "viejos" y "nuevos" variantes, las operaciones se abren de acuerdo a los criterios dados (por lo que he entendido que tiene un patrón de tres barras de tops / troughs suavizado iCC). Hay una variante corregida en el archivo.
Hola.
Me pueden dar el código para escribir los precios desde que se abrió el pedido en el array.
Cómo hacer que cada nuevo precio se añada a la matriz.
Hola.
Me pueden dar el código para escribir los precios desde que se abrió el pedido en el array.
Cómo hacer que cada nuevo precio se añada a la matriz.
Por favor, sea más específico en su pregunta
Si te interesa el precio actual en el momento de realizar el pedido, puedes añadir una llamada al código que se encargue de almacenar el precio actual en el array global con el cambio del contador de índices del array, que podrás ver posteriormente desde cualquier punto del código.
cómo comprobar el rendimiento de un EA - Sólo me gustaría mostrar el tiempo de ejecución del código en milisegundos
¿cuánto mejor es el rendimiento de MT5 frente a MT4?
cómo comprobar el rendimiento de un EA - Sólo me gustaría mostrar el tiempo de ejecución del código en milisegundos
¿cuánto mejor es el rendimiento de MT5 frente a MT4?
GetTickCount ayudaría https://docs.mql4.com/ru/common/GetTickCount
GetTickCount ayudará a https://docs.mql4.com/ru/common/GetTickCount
gracias si es lo que buscaba, ¿alguien ha medido la velocidad del mismo tipo de código para mt4 y mt5?