Deseos para MQL5 - página 59

 
diakin >> :

¿Qué tipo de eventos, por ejemplo?

Por ejemplo, desde la práctica, el cierre de una posición. Tenía una tarea así: saber cuándo se cerraba una posición para modificar otras órdenes teniendo en cuenta los fondos liberados. Tuve que supervisar el estado de la cuenta todo el tiempo. Intenté rastrear los pedidos desde el historial pero fue imposible probarlos, todo tarda mucho tiempo.

El único evento que se puede procesar ahora es un tick.

 
Gupm писал(а) >>

Por ejemplo, desde la práctica, cerrando una posición. Tenía una tarea así: saber cuándo se cerraba una posición para modificar otras órdenes teniendo en cuenta los fondos liberados. Tuve que controlar el estado de la cuenta todo el tiempo. Intenté rastrear los pedidos desde el historial pero fue imposible probarlos, todo tarda mucho tiempo.

El único evento que se puede manejar ahora es una garrapata.

Pero de todos modos, start() se lanza en cada tick. Allí se puede hacer cualquier comprobación, si algún evento ha ocurrido o no.

 
diakin писал(а) >>

Así que, de todos modos, start() se ejecuta en cada tic. Allí se puede hacer cualquier tipo de comprobación, tanto si se ha producido algún evento como si no.

Sí, lo es, lo estoy haciendo ahora, pero qué maravilla será cuando la orden sea un objeto, que tendrá, por ejemplo, un evento de cierre, al que vinculas tu manejador y todo, esta parte del código está absolutamente separada, depurada, etc.

 
Gupm писал(а) >>

Sí, así es, es lo que estoy haciendo ahora, pero qué maravilla será cuando la orden sea un objeto que tendrá, por ejemplo, un evento de cierre, al que vinculas tu manejador y ya está, esta parte del código está completamente separada, depurada, etc.

Creo que puede ser fácil de hacer en MQL5.

;)

int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, 
int magic=0, datetime expiration=0, color arrow_color=CLR_NONE, 
func OnClose) 

El último parámetro es el nombre de la función que se llamará al cerrar la orden. El compilador reconocerá las funciones en el texto de todos modos, y las reconocerá en los parámetros.

Y los eventos se gestionan internamente, ya que el mensaje sobre el cierre de la orden (o el error) se imprime en el registro.

Pero podemos esperar más eventos, que también tendrían que ser descritos en parámetros, al menos con valores vacíos, como OnCloseEmpty, OnOpenEmpty , etc.

En general, sería bueno añadir una lista de plantillas para las funciones llamadas con frecuencia, cuando se selecciona de la cual la plantilla de la función con todos los parámetros requeridos se inserta en el texto.

Ahora tenemos que ir a la ayuda, copiar la descripción de la función y editar los parámetros.

 

Me gustaría hacer una petición para MQL5.

Perdón, si lo repito, no he leído todos los posts anteriores...

Me gustaría que los bucles en new mql estuvieran marcados de alguna manera, por ejemplo, así:

 
Duke3D писал(а) >>

...

Me gustaría que los bucles en el nuevo mql estuvieran resaltados de alguna manera, por ejemplo, así:

Al menos haz un botón de formato de texto con sangría automática para las llaves.

Ahora, si se pierde un corchete, es muy difícil encontrar dónde se ha producido.

Y también añadir la numeración de las líneas. No es algo común en C. Es más cómodo que buscar el número de línea en la barra de estado.

 
diakin >> :

Creo que es fácil de hacer en MQL5.

int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, 
int magic=0, datetime expiration=0, color arrow_color=CLR_NONE, 
func OnClose) 

;)

El último parámetro es el nombre de la función que se llamará al cerrar la orden. El compilador reconoce las funciones en el texto de todos modos, y las reconocerá en los parámetros.

Y los eventos se gestionan internamente, ya que el mensaje sobre el cierre de la orden (o el error) se imprime en el registro.

Pero podemos esperar más eventos, que también tendrían que ser descritos en parámetros, al menos con valores vacíos, como OnCloseEmpty, OnOpenEmpty , etc.

En general, sería bueno añadir una lista de plantillas para las funciones llamadas con frecuencia, cuando se selecciona de la cual la plantilla de la función con todos los parámetros requeridos se inserta en el texto.

Ahora tengo que ir a la ayuda, copiar la descripción de la función y editar los parámetros.

¿Por qué sólo onClose? ¿Qué pasa con onModify, onOpen?

Tal vez si se trata de un objeto, debería ser algo así:


TOrder order = new  TOrder(symbol, cmd,  volume, price, slippage, stoploss, takeprofit, comment);
order.addEventListener( "open", myOpenHandler);
order.addEventListener( "close", myCloseHandler);
order.addEventListener( "modify", myModifyHandler);
order.send();

Ы?

 
TedBeer писал(а) >>

¿Por qué sólo onClose? ¿Qué pasa con onModify, onOpen?

Tal vez si el orden es un objeto, debería haber algo así:

Ы?

Es difícil de decir.

int ticket=OrderSend(parameters); // la función habitual de MQL4

order(ticket).addEvent ("open", myOpenHandler);

O más compacto

Order(ticket).OnOpen=myOpenHandler;

donde Order(handle) es algo estándar, un objeto o estructura a través de la cual se puede llegar a las propiedades del objeto handle dado.

double MiVolumen=Orden(ticket).Volumen;


Un montón de eventos personalizados no pueden ser atornillados. ¿O podemos?

Order(ticket).addEvent ("MyCustomEvent", MyCustomEventHandler);

¿Dónde se describe "MyCustomEvent" en este caso? (si NO es una combinación de eventos estándar y condiciones previas).

Aunque según tengo entendido MQL5 ya está escrito, así que es un deseo para el futuro ;)))

 
diakin >> :

Es difícil de decir.

int ticket=OrderSend(parameters); // función habitual de MQL4

Order(ticket).addEvent ("open", myOpenHandler);

O más compacto

Order(ticket).OnOpen=myOpenHandler;

donde Order(handle) es algo estándar, un objeto o estructura a través de la cual se puede llegar a las propiedades del objeto handle dado.

double MiVolumen=Orden(ticket).Volumen;


Un montón de eventos personalizados no pueden ser atornillados. ¿O podemos?

Order(ticket).addEvent ("MyCustomEvent", MyCustomEventHandler);

¿Dónde se describe "MyCustomEvent" en este caso? (si NO es una combinación de eventos estándar y condiciones previas).

Aunque, según tengo entendido, MQL5 ya está escrito, así que es un deseo para el futuro ;)))

Bueno, tienes una mezcla de enfoque funcional y OOP. Ideológicamente, debería ser uno u otro. Incluso si las funciones habituales se conservan para la compatibilidad con versiones anteriores, la POO también debería implementarse, de lo contrario, ¿qué sentido tiene una modernización tan profunda llamada MQL5?

Por desgracia, todas nuestras discusiones se parecen a la lectura de las hojas de té. No sirven de nada, ya que no vemos ninguna voluntad por parte de methaquotes, no sólo de dar la versión beta, sino de publicar las especificaciones del lenguaje que han implementado. Entonces podría pedir razonablemente que se haga algo con el lenguaje antes de lanzarlo como producto.