Discusión sobre el artículo "Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte XXIII): Clase comercial principal - control de parámetros permitidos"
Bien, gracias. Para MQL4 esto es realmente un hallazgo. Gracias por su arduo trabajo y el tiempo dedicado en beneficio de la comunidad.
Vamos a empezar a escribir la documentación ya.
Bien, gracias. Para MQL4 esto es realmente un hallazgo. Gracias por su arduo trabajo y el tiempo dedicado en beneficio de la comunidad.
Vamos a empezar a escribir la documentación ya.
Tengo curiosidad - ¿alguien utiliza estas bibliotecas? Son realmente enormes hojas de código y tomará más tiempo para entenderlos que para estudiar MQL sí mismo. Es muy posible que la biblioteca es útil para su uso. Pero en mi opinión, hay menos operadores en mql5 que métodos y clases en esta enorme biblioteca.
En mi opinión, la POO debería reducir el código y hacerlo más legible. Pero usando todas estas librerías, no he notado ninguna comodidad. Si usted toma la biblioteca estándar, allí para abrir una posición se utiliza un simple contsrution : Obligado objeto del tipo:
Ctrade tr;
tr.OpenBuy();
¡eso es todo!
Pero con esta biblioteca sólo OnInit se rellena con un montón de cosas. Se usan tantas variables globales. Es problemático encontrar algo, por decirlo suavemente.
Tengo curiosidad - ¿alguien utiliza estas bibliotecas? Son realmente enormes hojas de código y tomará más tiempo para entenderlos que para estudiar MQL sí mismo. Es muy posible que la biblioteca es útil para su uso. Pero en mi opinión, hay menos operadores en mql5 que métodos y clases en esta enorme biblioteca.
En mi opinión, la POO debería reducir el código y hacerlo más legible. Pero usando todas estas librerías, no he notado ninguna comodidad. Si usted toma la biblioteca estándar, allí para abrir una posición se utiliza un simple contsruktion : Obligado tipo de objeto:
Ctrade tr;
tr.OpenBuy();
¡eso es todo!
Y con esta librería, sólo OnInit está lleno de un montón de cosas. También se usan muchas variables globales. Es, por decirlo suavemente, problemático encontrar algo.
Sí, es cierto.
No necesitas analizar el código de la librería. Los artículos describen el proceso de creación y sirven de tutorial detallado para los interesados.
Cada artículo va acompañado de un asesor de prueba, que muestra cómo utilizar tal o cual funcionalidad de la biblioteca. Si la funcionalidad no es necesaria, no hace falta inicializarla.
La biblioteca no está terminada, sólo se está desarrollando. Habrá funciones simples y convenientes para acceder a los datos y para abrir una posición. Por cierto, has descrito la apertura de una posición con valores por defecto. Y te has saltado (¿a propósito?) la inicialización del objeto comercial.
Si no hay ningún método simple Buy(), Sell() en la biblioteca en este momento, no significa que no habrá ninguno en el futuro. Los habrá, y no sólo ellos.
Y ahora, por favor, muéstrame, por ejemplo, cómo puedes identificar fácilmente una posición cerrada en MQL4, la anterior, con magik 123 y no el símbolo actual - si se abrió cuando se disparó una orden pendiente. Y qué tipo de orden.
si se abrió cuando se activó la orden pendiente. Y qué tipo de orden.
MQL4 no almacena el historial de las órdenes pendientes disparadas, sólo se puede determinar en el historial de órdenes:
- si la orden cerrada era de tipo OP_BUY u OP_SELL - significa que se cerró una orden de mercado.
- si la orden cerrada era del tipo OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT o OP_SELLSTOP - significa que la orden pendiente fue cancelada.
La hora de cierre de la orden corresponde a la hora de cierre de la orden de mercado o a la hora de cancelación de la orden pendiente.
La hora de apertura de la orden pendiente corresponde a la hora de colocación de la orden pendiente, pero esta hora será sustituida en el momento de activación de la orden pendiente por la hora de apertura de la orden de mercado.
El número de ticket y magick de la orden no cambia durante todo el tiempo (excepto en el caso de cierre contrario o parcial de la orden - hay una situación diferente, pero el magick no cambia).
Es decir, el hecho de la activación de la orden pendiente no está presente en la historia de las órdenes MQL4, sólo existe el hecho de la cancelación de la orden pendiente. Ni siquiera recuerdo lo necesario de esta información, tal vez no sé todas las tareas involucradas.
Cuánto de esto es información necesaria - ni siquiera recuerdo, tal vez las tareas no son todo lo que sé
Estimación del valor de deslizamiento. En MT5 hay OrderOpenPriceRequest y OrderClosePriceRequest para este propósito.
MQL4 no almacena el historial de órdenes pendientes activadas, sólo se puede definir en el historial de órdenes:
- si la orden cerrada era de tipo OP_BUY u OP_SELL - significa que se cerró una orden de mercado
- si la orden cerrada era de tipo OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT o OP_SELLSTOP - significa que la orden pendiente fue cancelada.
La hora de cierre de la orden corresponde a la hora de cierre de la orden de mercado o a la hora de cancelación de la orden pendiente.
La hora de apertura de la orden pendiente corresponde a la hora de colocación de la orden pendiente, pero esta hora será sustituida en el momento de activación de la orden pendiente por la hora de apertura de la orden de mercado.
El numero de ticket y magick de la orden no cambia durante todo el tiempo (excepto en el caso de contra cierre o cierre parcial de la orden - hay una situacion diferente, pero el magick no cambia).
Es decir, el hecho de la activación de la orden pendiente no está presente en la historia de las órdenes MQL4, sólo existe el hecho de la cancelación de la orden pendiente. Ni siquiera recuerdo lo necesario de esta información, tal vez no sé todas las tareas involucradas.
Así que le pedí a una persona que no entiende las capacidades de la biblioteca que escribiera cómo la reconoce "fácil y sencillamente".
Y la biblioteca puede. Y el usuario ni siquiera tiene que pensar en ello: sólo tiene que pedirlo.
Inmediatamente lo tiene claro: "No lo he leído, pero lo condeno".
Estimación del valor de deslizamiento. MT5 tiene OrderOpenPriceRequest y OrderClosePriceRequest para este propósito.
No lo he evaluado todavía, porque estoy atascado en la creación de la perfección ... reescrito reescrito - reescrito ((((
pero imho, tales cosas (evaluación del trabajo del corredor) debe hacerse en paralelo con el trabajo del Asesor Experto principal y registrado, tales datos no tienen sentido en el probador?
-------------------
Así que le pedí a una persona que no entiende las capacidades de la biblioteca para escribir cómo "fácil y simplemente" lo reconoce.
Y la biblioteca puede. Y el usuario ni siquiera tiene que pensar en ello: sólo tiene que pedirlo.
Inmediatamente queda claro: "No lo he leído, pero lo condeno".
sobre los materiales del artículo, hojeo selectivamente, la cantidad de información es demasiado grande, por lo que es más fácil preguntar:
¿Es posible guardar el estado de la ST en los ejemplos de prueba? - No estoy interesado en "recoger" las órdenes en mi propio magik, estoy interesado en la realización de guardar el estado del Asesor Experto en caso de recarga terminal.
¿esos datos no tienen sentido en un probador?
Tiene mucho sentido en un probador. Puedes ser muy engañado si no estimas el deslizamiento.
Por ejemplo, me di cuenta de esta situación de inmediato
Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading.
Probador de estrategias de MetaTrader 5: errores, fallos, sugerencias para mejorar su trabajo
fxsaber, 2019.10.13 16:58
En los símbolos personalizados de acciones, los take-outs se aceptan al último precio y se ejecutan al bid/ask.
Por ejemplo, la toma para una posición de COMPRA está en 1,09801. El precio de compra/venta/último tick = 1,09799/1,09802/1,09801. Se dispara porque se ha tocado el último precio, pero se dispara al precio de oferta, que es peor que el último.
Resulta que las tomas se disparan siempre con deslizamiento negativo.
...
sobre los materiales del artículo, que hojeo selectivamente, el volumen de información, así, sólo grande, por lo que es más fácil preguntar:
¿Los ejemplos de prueba prevé la posibilidad de guardar el estado de la TC ? - No estoy interesado en "recoger" órdenes en mi propio magik, Estoy interesado en la realización de guardar el estado del Asesor de Expertos en caso de recarga terminal.
Los ejemplos de prueba proporcionan sólo para comprobar lo que se describe en este artículo en particular. Como prueba de operatividad.
Los ejemplos de uso de la funcionalidad junto con su descripción estarán en artículos separados después de la finalización de la funcionalidad principal de la biblioteca y la creación de funciones de usuario para el acceso rápido a todas las características de la biblioteca.
----------------------
¿Qué se entiende por "estado experto"?
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Artículo publicado Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte XXIII): Clase comercial principal - control de parámetros permitidos:
En el presente artículo, continuaremos el desarrollo de la clase comercial, organizando esta vez el control de los valores incorrectos de los parámetros de la orden comercial e implementando la notificación sonora de los eventos comerciales.
Compilamos el asesor y lo iniciamos en el simulador, estableciendo preliminarmente en los parámetros un valor Lots igual 10,
mientras que para los valores StopLoss in points y TakeProfit in points establecemos un valor igual a 1 punto:
De esta manera, intentaremos abrir una posición con un lote no permitido, para que no haya fondos suficientes para su apertura, y trataremos de infringir el requisito sobre la distancia mínima de establecimiento de órdenes stop reglamentada por el parámetro StopLevel del símbolo:
El asesor ha mostrado en el diario dos errores "no hay fondos suficientes para realizar la operación comercial", y "el valor de StopLoss infringe los requisitos del parámetro StopLevel del símbolo". Pero nosotros también hemos establecido para el TakeProfit un valor igual a un punto. ¿Por qué no hemos obtenido error? Porque aquí no hay error: el establecimiento de los niveles de TakeProfit y StopLoss dentro del nivel mínimo de SYMBOL_TRADE_STOPS_LEVEL se realiza según las normas
los niveles de TakeProfit y StopLoss se deben comparar con el precio actual al que se puede realizar la operación en dirección contraria
Autor: Artyom Trishkin