Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1208
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
No hay ninguna diferencia. Tenía la sospecha de que existía una diferencia porque cuando ponía órdenes y posiciones les asignaba "comentarios" para las posiciones, para las órdenes les asignaba mis propios comentarios. Como resultado, cuando una orden se mueve a una posición, hereda el comentario de la orden.
Luego, cuando comprobamos las posiciones a través de los comentarios, hubo un lío... los comentarios eran diferentes. Lo arreglé.
En su código, no he encontrado o entendido en absoluto cómo se cierran las posiciones para la condición SELL_LIMIT ha disparado . La equidad.
Parece que hemos comprobado si todas las posiciones pueden ser cerradas, y la bandera está fijada para ello
pero en elCloseAllPositions();
hay algo que falta.
No hay comprobación de cierre de todas las posiciones para el caso - SELL_LIMIT se ha disparado
¿Quizás este mismom_account.Equity()>= m_account.Balance()+15está implementado de alguna otra manera?
O tal vez sea porque he explicado mal lo que significa promediar en mi contexto.
Ya lo he mencionado anteriormente: las órdenes pendientes no tienen nada que ver. No puede ser una orden pendiente que tenga un beneficio. De la palabra "en absoluto". Hasta que no lo dejes claro, no podrás seguir adelante.
Añadido: He mostrado un ejemplo de solución para dos casos:
Ya lo he señalado más arriba: las órdenes pendientes no tienen nada que ver. Una orden pendiente no puede tener beneficios. De la palabra "en absoluto". Hasta que no aclare esto, no podrá avanzar.
Vladimir. Por supuesto, una orden pendiente no puede tener beneficios. Estamos hablando del beneficio, por supuesto, de las posiciones abiertas.
La única diferencia está en cómo se abrieron estas posiciones. Necesitamos un método de cierre diferente para ellas.
Si la segunda posición se abre a partir de una orden SELL_STOP inteligente, entonces hay que cerrar una de ellas, la que tiene un mayor beneficio de la posición. Esto le ha funcionado y funciona.
Si la segunda posición se abrió a partir de una orden SELL_LIMIT, entonces ambas deben cerrarse por Equidad(m_account.Equity()>= m_account.Balance()+15) A menos que el SL de una de ellas se active primero.
Añadido.
He mostrado un ejemplo de solución para dos casos:
Todo parece estar bien con la segunda condición. Pero por alguna razón tengo la segunda condición abre la segunda posición y la cierra inmediatamente cerca de 0 -1,2.
¿Tal vez especifique el beneficio total en un lugar equivocado?
InpProfitTarget = 15; Si aquí, no funciona.
Vladimir. Por supuesto, una orden pendiente no puede tener beneficios. Hablamos de beneficios, por supuesto, de posiciones abiertas.
Sólo que hay una diferencia en cómo se abrieron estas posiciones. Necesitamos un método de cierre diferente para ellas.
Si la segunda posición se abre a partir de una orden SELL_STOP inteligente, entonces hay que cerrar una de ellas, la que tiene un mayor beneficio de la posición. Esto le ha funcionado y funciona.
Si la segunda posición se abrió a partir de una orden SELL_LIMIT, entonces ambas deberían cerrarse por Equity(m_account.Equity()>= m_account.Balance()+15) A menos que el SL de una de ellas se active primero.
Lo siento:
He mostrado un ejemplo de solución para dos casos:
A continuación, por favor, haz algo tú mismo.
Lo siento:
He mostrado un ejemplo de solución para dos casos:
A partir de aquí, por favor, haz algo tú mismo.
Gracias por tu ayuda Vladimir, lo estoy intentando.
2. tenemos más de dos posiciones - si su beneficio total es mayor que el especificado, cerramos todas las posiciones.
Pero no lo necesitaba, necesitaba dos o más posiciones donde la segunda se abriera con la activación de SELL_LIMIT.
Gracias de todos modos por su paciencia y esfuerzo. Por supuesto, lo resolveré a mi manera, sufriré y lo resolveré))
Buenas noches chicos, para no multiplicar los hilos, aquí va una pregunta - el script puso una orden de stop pendiente con una toma y un stop bastante específicos, no se ejecuta, y en los comentarios está escrito [iliquidez] - ¿cómo lidiar con ello - bucle de la secuencia de comandos antes de la ejecución, establecer un mayor deslizamiento, o especificar el número de retoma o qué? O dame una pista de dónde cavar.
Siempre hay que buscar en la documentación
ORDER_TIME_GTC
El pedido permanecerá en la cola hasta que sea retirado
Siempre hay que buscar en la documentación
ORDER_TIME_GTC
El pedido permanecerá en la cola hasta que sea retirado
Gracias, debe ser eso
¡Buenas noches!
Hay 1 puesto vacante.
El Asesor Experto cierra una posición utilizando el método PositionClose();
El resultado se imprime ResultRetcode= 10009. Descripción del código: hecho a 0,00
Debajo del código, hay una comprobación if(PositionSelect(_Symbol)), que tiene éxito.
Es decir, pasa un tiempo entre la ejecución de PositionClose() y la desaparición de la posición abierta, durante el cual el programa consigue realizar una salida errónea.
¿Cómo resolver esta situación correctamente?
¿Por qué tengo que reiniciar el terminal cada vez después de una prueba para ejecutar una nueva prueba?
Borro todos los objetos. Cierro los archivos. Aquí está el registro cuando dejo de probar:
Pero la próxima vez no arranca, tengo que cerrar el terminal y volver a abrirlo. Construye 2361.