![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
Diferentes servidores, diferentes 500 pp.
¿Qué tiene que ver esto con los diferentes servidores? Son dos pruebas realizadas por la misma persona. Sólo difiere el par de divisas especificado en el probador
Tengo todo correcto, servidor de MK demo.
Entonces, por favor, explique, cuál es el valor entre paréntesis al abrir una orden y por qué en un caso es (1,29565 / 1,29654) y en el otro (1,29443 / 1,29479 / 1,29443)
(Me refiero a los resultados de sus pruebas.
Actualiza tu terminal/probador y puede que todo funcione, yo tengo una build 687 y todo funciona.
Aparece exactamente el mismo error al enviar el EA al campeonato (en sus pruebas automáticas), por lo que la actualización sólo ayudará parcialmente
Es más. Sólo aparece 1 vez (el primer intento de colocar una orden en un par de divisas que no sea "su")
¿Qué tiene que ver esto con los diferentes servidores? Son dos pruebas realizadas por la misma persona. Sólo difiere el par de divisas especificado en el probador.
Echa un vistazo a los artículos sobre el probador:
Los precios no tienen por qué ser los mismos cuando se prueban en otro par de divisas
Echa un vistazo a los artículos sobre el probador:
Los precios no tienen que coincidir cuando se prueban en otro par de divisas
Así que, hice algunas pruebas más. Realmente un problema con el "precio actual".
Código:
Tenga en cuenta que abro al precio del símbolo Ask más 1 (con un gran margen). Al mismo tiempo, antes y después, imprimo la oferta y la demanda actuales.
Resultados (al probar en GBPUSD):
El precio de 1,29241 se imprime antes y después de la orden. Mientras tanto, entre paréntesis (cuando se coloca la orden), el precio es de 1,29722. ¿CÓMO? ¿O estoy obteniendo el precio actual de forma incorrecta?
Y en segundo lugar, si hubo un error con el precio, entonces ¿por qué el error 10016 (paradas)?
Pero el error sigue existiendo en la escena de corte.
Para ser sincero, no entiendo muy bien cómo puede ser el error 10016 en caso de que no haya paradas
No sé qué y cómo lo estás haciendo, el problema probablemente esté en SL.
Mi versión funciona sin problemas. La llamada, sin embargo, lanzó en el bloque de inicialización, no molestarse con los controles (aunque la presencia de la orden antes de establecer que valdría la pena comprobar).
No sé qué o cómo lo estás haciendo, el problema probablemente sea realmente de SL.
Mi versión funciona sin problemas. La llamada es verdadera, pero tiré la llamada al bloque de inicialización, para no molestar con las comprobaciones (aunque la presencia de la orden antes de establecerla valdría la pena comprobarla).
Una pequeña petición. ¿Puedes retocar el código para que antes del OrderSend salga el precio actual del instrumento en el que abrimos?
Inténtalo de esta manera:
Pequeña petición. ¿Puede corregir el código, para que salga el precio actual en esa herramienta antes de OrderSend?
¿Un spritzer de precio? No veo la necesidad de eso, puedes añadir un mensaje sobre el éxito/fracaso de la comprobación y la configuración de la orden.
En principio puedes hacerlo tú mismo, no debería ser difícil (por la idea).
Inténtalo de esta manera:
Para la depuración servirá bastante bien, en el código de trabajo será superfluo (al menos es una solución un poco chorra)
Y es mejor hacer el pedido después de OrderCheck, para que en caso de error no vaya a OrderSend.
PS
Se me olvidó añadir, basándome en el ejemplo bar_info podría colocarse en una función sin problemas.
¿Un spritzer de precio? No veo la necesidad de eso, puedes añadir un mensaje sobre el éxito/fracaso de la comprobación y la configuración de la orden.
En principio, puedes hacerlo tú mismo, no debería ser difícil (en idea).
Puede ser lo suficientemente bueno para la depuración, pero en el código de producción será superfluo (al menos es una solución un poco torcida).
Y sería mejor hacer el pedido después de OrderCheck, para que en caso de error no lleguemos a OrderSend.
PS
Se me olvidó añadir, basándome en el ejemplo bar_info también podría colocarse en una función sin problemas.
Es divertido. En su ejemplo, he eliminado el BUYSTOP para la GBP, sólo queda el EURUSD.
Después de rellenar los campos de la solicitud, he sacado el precio de la orden pendiente.
1) Tiene variante - orden pendiente se coloca en el Inite
2012.01.01 00:00:00 precio = 1.30487000
2) Comenté el init, lo moví a OnTick. He puesto una condición para que se active sólo en el primer tick.
2012.01.02 09:00:00 precio = 1.29720000
P.D. ¿Entiendo correctamente que en mi código (y en el tuyo) bar_info[1] es el máximo de la barra actual?