Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1920
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 el consejo, Alexey! Primero esperaré una respuesta en este hilo, pero si no pasa nada, entonces pasaré al hilo de Errores, Bugs, Preguntas.
Sinceramente, Vladimir.
No obtendrás ninguna respuesta de los desarrolladores en este hilo. Si has encontrado un error, asegúrate de que es realmente un error, comunícalo a la rama que dirige Alexey. No hay que esperar que los moderadores actúen en esto, también somos humanos y a veces no tenemos tiempo.
Es poco probable que obtengas respuestas de los desarrolladores en este hilo. Si encuentras un error, asegúrate de que es realmente un error, infórmalo a la rama de Alexey. No hay que esperar acciones de los moderadores en esta ocasión, también somos personas y tampoco tenemos tiempo.
¡Hola Artem!
Todo está claro.
Sinceramente, Vladimir.
¡¡¡¡Buenas tardes!!!!
Aquí hay dos funciones para el asesor de la red la primera función es el cálculo de beneficios, teniendo en cuenta el cierre parcial de las órdenes perdedoras
La segunda función es el cierre de órdenes con cierre parcial de órdenes perdedoras
La situación es la siguiente: si cierro una parrilla de órdenes teniendo en cuenta el cierre parcial de las órdenes perdedoras, obtengo una pérdida como resultado del redondeo hacia el lado mayor de algunos lotes que deben cerrarse
La pregunta es si se pueden utilizar estas dos funciones para escribir una función para calcular las órdenes perdidas, o más bien una parte de una orden que se va a cerrar.
Si es así, por favor ayúdame a escribirlo
Gracias
¡¡¡¡Buenas tardes!!!!
Si es así, ayúdame a escribirlo.
No es un buen momento.
¿Te refieres a escribirlo para ti?
No son buenos tiempos.
¿Te refieres a escribir para ti?
No te destroces Alexander
perdido en lo elemental:
cómo organizo una pose de arrastre - codirigida, por alguna razón arrastra una pose, es decir, no arrastra... MT5
puedo utilizar una simple sección de código como enumeración de posiciones para un arrastre con posiciones de mercado HEDGE - gracias.
¡el problema está resuelto! ¡¡¡Enhorabuena una vez más a Vladimir Karputov!!!
¡con su red de arrastre!
https://www.mql5.com/ru/code/17263
¡¡¡el truco clave es mirar el índice en el bucle y modificarlo con la opción ticket!!!
Una tarea sencilla: hay que eliminar todos los elementos de la matriz J que tengan el mismo índice y valor que los elementos de la matriz I:
La cadena de claves está resaltada. Resultado:
Se espera:
ArrayJ es dinámico, parece que hay algo que no funciona... Pero tampoco necesito una estática.
Me ha roto la cabeza. ¿QUÉ PASA? ¿O es el equivalente a la vieja canción
https://www.mql5.com/ru/forum/1111/page3141#comment_27152680
и
https://www.mql5.com/ru/forum/1111/page3142#comment_27371998
sobre las constantes con nombre?
La cadena de claves está resaltada. Resultado:
Se espera:
ArrayJ es dinámico, parece que hay algo que no funciona... Pero tampoco necesito una estática.
1. ArrayResize sería mejor moverlo fuera del bucle.
2. ArrayRemove no hace que un elemento del array esté "vacío", sino que "desplaza" los elementos siguientes a su lugar. Por lo tanto, la coincidencia de elementos en los índices posteriores se rompe.
1. ArrayResize debería salir del bucle
2. ArrayRemove no hace que un elemento del array esté "vacío", sino que "desplaza" los elementos posteriores en su lugar. Por lo tanto, la coincidencia de elementos en los índices posteriores se rompe.
No hay duda sobre la 2, sólo he puesto los intervalos para que quede más claro. Además, en Help dice sobre un array estático:"Si la función se utiliza para un array de tamaño fijo, el tamaño del array en sí no cambia: la "cola" restante se copia físicamente a la posición inicial."El ejemplo de la Ayuda también utiliza un array de tamaño fijo, y yo tengo uno dinámico.
Re 1. No podemos ponerlo fuera de un bucle, ya que en una tarea real no sabemos de antemano ni el tamaño de ArrayJ ni el de ArrayI, y mucho menos el de CommonArray, ya que no coinciden todos.
También tengo un ejemplo en el que el vertido de elementos no se rompe a medias, como en este ejemplo:
El resultado es bueno:
Pero necesitas esa variante para que funcione. Al parecer, el problema se produce si hay elementos con el mismo valor (véase el post anterior) en la cola de la derecha, lo que es similar al problema al que me refería más arriba.
No hay preguntas sobre la 2, pongo los intervalos para mayor claridad. Además, en la Ayuda dice sobre el array estático:"Si la función se utiliza para un array de tamaño fijo, el tamaño del propio array no cambia: copia físicamente la "cola" restante a la posición inicial."El ejemplo de la Ayuda también utiliza un array de tamaño fijo, y yo tengo uno dinámico.
Re 1. No podemos ponerlo fuera de un bucle, ya que en una tarea real no sabemos de antemano ni el tamaño de ArrayJ ni el de ArrayI, y mucho menos el de CommonArray, ya que no coinciden todos.
También tengo un ejemplo en el que el barajado de elementos no se interrumpe a mitad de camino, como en el ejemplo anterior:
El resultado es bueno:
Pero necesito que esa variante funcione. Al parecer, el problema se produce si hay elementos con el mismo valor en la cola de la derecha (véase el post anterior), lo que es similar al problema al que me refería antes.
1. Puedes y debes sacarlo del bucle, de la manera que he mostrado. A menos que el tamaño de ArrayI cambie a lo largo del bucle.
2. Entonces algo como esto