Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1282
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
El problema está en el EA. Por cierto, las normas del alojamiento compartido prohíben las dlls.
Solía funcionar bien. Debería haberlo probado en el alojamiento gratuito. De todos modos le dio a methaquotes 15 libras ))))
Gracias por la respuesta.
El EA abre órdenes de mercado y luego las modifica, establece TP y SL. Comprobando en el probador. La primera orden se modifica utilizando los parámetros requeridos. La segunda orden se abre en la misma dirección que la primera, pero la primera orden se modifica en función de los parámetros de la segunda y ésta queda con SL y TP nulos. En este caso la condición es: si SL == 0 y TP == 0, la otra orden se modifica porque tiene parámetros distintos de cero. ¿Por qué? Cambiar la búsqueda de la primera a la última no cambia nada.
Una cosa más. En el probador, si se abren dos órdenes, el beneficio de la orden se muestra en la columna beneficio, es decir, el beneficio de la segunda orden se muestra en la primera orden abierta y viceversa. ¿Por qué?
Hay más. Tenemos que trazar una línea de tendencia siguiendo dos extremos. La línea está trazada pero es un trozo de barra a barra. No es una línea de tendencia, sino sólo un segmento, mientras que nos gustaría ver una línea.
El EA abre órdenes de mercado y luego las modifica, establece TP y SL. Comprobando en el probador. La primera orden se modifica utilizando los parámetros requeridos. La segunda orden se abre en la misma dirección que la primera, pero la primera orden se modifica en función de los parámetros de la segunda y ésta queda con SL y TP nulos. En este caso la condición es: si SL == 0 y TP == 0, la otra orden se modifica porque tiene parámetros distintos de cero. ¿Por qué? Cambiar la búsqueda de la primera a la última no cambia nada.
Una cosa más. En el probador, si se abren dos órdenes, el beneficio de la orden se muestra en la columna beneficio, es decir, el beneficio de la segunda orden se muestra en la primera orden abierta y viceversa. ¿Por qué?
Hay más. Tenemos que trazar una línea de tendencia siguiendo dos extremos. La línea está trazada pero es un trozo de barra a barra. No es una línea de tendencia, sólo un segmento mientras que nos gustaría ver una línea.
1. No son órdenes, sino posiciones.
2. Formule su pregunta: hasta ahora he visto una narración, y no he visto una pregunta o un algoritmo de "cómo le gustaría que funcionara".
1. No se trata de PEDIDOS, sino de PUESTOS
2. Formule su pregunta - hasta ahora he visto una narración, y no he visto la pregunta y el algoritmo "cómo quiere que funcione".
Sabes que son posiciones, ya que está en mql5. Y hay una posición en el código. La pregunta es por qué se modifica la primera posición y no la última, aunque esté especificada en la condición:
Está claro que las posiciones están ahí, ya que está en mql5. Y en el código es la posición. La pregunta es por qué se modifica la primera posición y no la última, aunque esté especificada en la condición:
La cuestión es dónde. Describe el algoritmo "Quiero que el algoritmo sea esto...".
La pregunta es ¿dónde? Describe el algoritmo "Quiero que el algoritmo sea así...".
Cuando la línea de tendencia se rompe y la barra cierra por encima/por debajo de ella, abrimos una posición con SL y TP cero. Inmediatamente después de la apertura, se fijan los TP y SL necesarios (se modifica la posición). Porque no es la última posición la que se modifica, sino la anterior, mientras se viola la condición:
¿Está claro ahora? Aunque introduzcamos en la condición la hora de apertura de una posición, nada cambia. No hay límite en el número de puestos.
Cuando se rompe la línea de tendencia y la barra cierra por encima/por debajo de ella, se abre una posición con SL y TP cero. Inmediatamente después de la apertura, se fijan los TP y SL necesarios (se modifica la posición). Porque no es la última posición la que se modifica, sino la anterior, mientras se viola la condición:
¿Está claro ahora? Aunque introduzcamos en la condición la hora de apertura de una posición, nada cambia. No hay límite en el número de puestos.
¿Está seguro de que en el momento de la modificación ya existe una nueva posición? (El envío de una orden de negociación no garantiza que la posición exista).
Al introducir la condición (SL == 0,0 y TP == 0,0) imprime el ticket de posición.
¿Está seguro de que el nuevo puesto ya está disponible en el momento de la modificación? (El envío de una orden de negociación no garantiza que exista una posición).
Cuando se introduce la condición (SL == 0,0 y TP == 0,0) se imprime el ticket de posición.
Sí, la segunda posición ya está ahí. Estoy leyendo el registro. El método de venta fue exitoso, código 10009. (Billete nº 3). Y luego sigue una modificación, sólo de la posición con el ticket #2, que también se ejecuta con éxito (modificación, aunque, subrayo, según las condiciones no debería ocurrir, ¡el SL ya no es 0!).
Ya escribí, probé tanto por hora de apertura, como por ticket, no hubo suerte, modifica la posición anterior. Por ejemplo:
Sí, la segunda posición ya está ahí. Estoy leyendo el registro. El método de venta fue exitoso, código 10009. (Billete nº 3). Y luego sigue la modificación, sólo la posición con el billete #2, que también se hace con éxito.
Ya escribí, probé tanto por la hora de apertura como por el ticket, no hay manera, modifica la posición anterior. Por ejemplo:
Es decir: no compruebas el resultado de la posición y ni siquiera quieres imprimir el ticket. Si es así, adjunte el código completo (adjúntelo con el botón )
Es decir: no se comprueba el resultado de la posición y ni siquiera se quiere imprimir el ticket. En ese caso, adjunte el código completo (adjúntelo con el botón )
Ni siquiera quieres imprimir el billete: no lo entiendo. Aquí está el extracto del registro.
2021.02.01 12:54:55.338 2018.01.02 17:00:00 mercado vender 0.01 EURUSD (1.20384 / 1.20402)
2021.02.01 12:54:55.338 2018.01.02 17:00:00 deal #2 sell 0.01 EURUSD at 1.20384 done (based on order #2)
2021.02.01 12:54:55.338 2018.01.02 17:00:00 trato hecho [#2 vender 0.01 EURUSD a 1.20384]
2021.02.01 12:54:55.338 2018.01.02 17:00:00 orden realizada vender 0.01 a 1.20384 [#2 vender 0.01 EURUSD a 1.20384]
2021.02.01 12:54:55.344 2018.01.02 17:00:00 CTrade::OrderSend: market sell 0.01 EURUSD [hecho a 1.20384]
2021.02.01 12:54:55.344 2018.01.02 17:00:00 Método Sell() completado con éxito. Código de retorno = 10009 (hecho a 1,20384)
2021.02.01 12:54:55.344 2018.01.02 17:00:00 posición modificada [#2 vender 0.01 EURUSD 1.20384 sl: 1.20813 tp: 1.20013]
2021.02.01 12:54:55.346 2018.01.02 17:00:00 CTrade::OrderSend: modify position #2 EURUSD (sl: 1.20813, tp: 1.20013) [done]
2021.02.01 12:54:55.346 2018.01.02 17:00:00 Método PositionModify() ejecutado con éxito. Código de retorno = 10009 (hecho).
============================================================================================================== разделил, появление второй позиции
2021.02.01 12:55:48.819 2018.01.03 09:00:00 mercado vender 0.01 EURUSD (1.20442 / 1.20460)
2021.02.01 12:55:48.819 2018.01.03 09:00:00 deal #3 sell 0.01 EURUSD at 1.20442 done (based on order #3)
2021.02.01 12:55:48.819 2018.01.03 09:00:00 trato hecho [#3 vender 0.01 EURUSD a 1.20442]
2021.02.01 12:55:48.819 2018.01.03 09:00:00 orden realizada vender 0.01 a 1.20442 [#3 vender 0.01 EURUSD a 1.20442]
2021.02.01 12:55:48.821 2018.01.03 09:00:00 CTrade::OrderSend: market sell 0.01 EURUSD [hecho a 1.20442]
2021.02.01 12:55:48.821 2018.01.03 09:00:00 Método Sell() ejecutado con éxito. Código de retorno = 10009 (hecho a 1,20442)
====================================================================================================================== después de abrir con éxito la posición, la modificación, pero la orden anterior
2021.02.01 12:55:48.821 2018.01.03 09:00:00 posición modificada [#2 sell 0.01 EURUSD 1.20384 sl: 1.20663 tp: 1.20154]
2021.02.01 12:55:48.823 2018.01.03 09:00:00 CTrade::OrderSend: modify position #2 EURUSD (sl: 1.20663, tp: 1.20154) [done]
2021.02.01 12:55:48.823 2018.01.03 09:00:00 Método PositionModify() ejecutado con éxito. Código de retorno = 10009 (hecho)
He publicado el código completo de modificación de posición en Sell, con opciones.