![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
La función CrossPointOfSections().
Esta función calcula las coordenadas del punto de intersección de dos segmentos. Cada segmento está definido por un par de sus coordenadas puntuales. Se pasan tres matrices a la función como parámetros:
El script es para probarlo.
Buenas tardes. Pregunta sobre las funciones que devuelven una bandera para cerrar la última posición en una toma o stop loss.
'Funciones útiles de KimIV'.
Función isCloseLastPosByTake().
Esta función devuelve la bandera para cerrar la última posición de la toma. La bandera está levantada - Verdadero - El TakeProfit se ha activado. Bandera bajada - Falso - la posición se cerró debido a otra razón
//---------------------------------------------------------------
Ayer hice esta pregunta en el foro general. Pero hasta ahora no hay respuesta.
Mi Asesor Experto tiene una martingala de 3 pasos. Cada paso (posición) tiene su propio magik (1,2,3).
Las posiciones se cierran mediante señales y/o stops.
Este tipo de cierre también se aplica:
¡Resulta que mi Asesor Experto funciona bien hasta que la última posición (la más grande) de un marginal se cierra en el Take Profit!
¡Entonces, cuando se abre la siguiente primera posición (mágica 1), se cierra inmediatamente, porque la bandera de la función isCloseLastPosByTake() se queda en uno (1) !
Y así hasta el infinito. Se abre y se cierra.
Además. El terminal recuerda esta bandera e incluso una nueva eliminación/instalación del EA no ayuda (hasta que se cambie de magiks).
Necesito alguna forma de restablecer la función isCloseLastPosByTake() después de que se hayan cerrado todas las posiciones.
Ya me he retorcido el cerebro al revés. No funcionará.
Igor !, O quien sea (que pueda), por favor dígame como hacerlo y si puede hacerlo del todo ?
Parece que se ha encontrado la respuesta a mi pregunta. Si te interesa, está aquí.
Una pregunta para los entendidos".
Ejemplos de cómo utilizar la función ModifyOrder().
Decidí dar los primeros ejemplos que me han preguntado muchas veces. Se trata de la apertura de posiciones en términos de ejecución de órdenes de mercado Market Watch. Es cuando no podemos dar simultáneamente una orden de apertura de posición a precio de mercado y adjuntarle una orden pendiente. Dicha apertura en Market Watch debe realizarse en dos etapas: primero, abrimos una posición, y luego le adjuntamos una orden pendiente, es decir, establecemos los niveles de precio StopLoss y TakeProfit.
1. Compre 0,1 lotes del símbolo actual y fije un stop de 30 puntos
2. Vender 0.15 lotes del símbolo actual y establecer SL=45, TP=99
En el tráiler se incluye un guión de trabajo con ejemplos.
¡Mientras no ponga en mi EA un magik !
Todas las posiciones se modifican normalmente. Sin embargo...
No entiendo por qué pero la función OpenPosition() no ve al mago y sigue abriendo posiciones una a una en cada barra. Ya he eliminado todo lo innecesario (pensé que era un error mío en el código).
Y pon el número de puestos en el comentario. Es inútil. Cuando hay posiciones obvias - el comentario imprime cero:
¡No puedo entender por qué la función no puede ver al mago! Aquí está el código:
Se adjunta el archivo fuente de este código. ¿Puedes decirme dónde me he equivocado y por qué EA no ve el magik?
Sí, ¡gracias a todos(tmp.0 y Roger)! Lo he arreglado y todo funciona como debería.
La culpa la tiene mi falta de atención. No la función OpenPosition() en absoluto.
Jugador, ¡una pista!
Cuando se utiliza OrderCloseBuy - OrderCloseSell, el lenguaje MKueL incorporado y el compilador requieren dos parámetros de función(entradas de orden - compra y venta). Tenemos un billete para un pedido abierto, pero ¿cómo podemos fijar el segundo? O tal vez no entendí algo - el auto-estudio del lenguaje no ha escrito nada sobre esta función y no tiene ningún ejemplo.
Gracias de antemano.
Y aquí hay otra pregunta para Igor.
¿Ha creado una función personalizada separada (u otra) para invertir la posición de compra-venta y viceversa, sin el habitual OrderClose-OrderSend?