Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1099

 
Igor Makanu:

Gracias.

Sí, eso es lo que buscaba, si no podía escribir en "cinco líneas" con SB.

Pero cuanto entendí, que un SB CTrade no será capaz de resolver mi problema? Y tuve que usar CPositionInfo también? - ¿Si quiero acompañar 9 posiciones por varios TFs al mismo tiempo?

ZS: Estoy sentado en la ayuda MQL5 con la televisión inteligente - bastante bien descrito funciones comerciales, el uso de SatB está bajo una pregunta .... creo que tiene sentido usar SB para estrategias primitivas, un poco más complicadas - la funcionalidad es insuficiente o no es obvio el uso, tal vez necesito más práctica - voy a tratar de "torcer" el SB


Gracias de nuevo.

Está bien para "abrir y cerrar una posición" en el probador, o para los códigos de formación como un sustituto. De lo contrario, debería hacer su propio código o heredar de CTrade para crear su propia clase completa para las operaciones de comercio teniendo en cuenta varios matices.
Hay cosas mucho más bonitas en SB: las conoces y las utilizas.

 
fxsaber:

No hay ningún error, ya que la lista se genera a través de HistorySelectByPosition.

Sí, he pasado por alto que no es una lista completa.

 
Artyom Trishkin:

SB tiene cosas mucho más bonitas, las conoce y las utiliza.

¡así que estas son las cosas bonitas que son engañosas! - Tenía la esperanza de que después de tantos años los desarrolladores hubieran hecho limpieza y la funcionalidad esperada, y yo sólo fuera un usuario que no pudo usar 2 clics de SB, pero resulta que no soy el usuario - ¡tristeza, tristeza en general!

SZY: La ayuda de MQL5 está escrita con mucha habilidad, llena de órdenes ... Pero dicen que hasta que no olvidas el orden de las palabras, no tienes remedio.

 
Igor Makanu:

¡así que estas son las cosas bonitas que son engañosas! - Tenía la esperanza de que durante tantos años los desarrolladores de SB hayan pulido y hecho la funcionalidad esperada, y yo sólo sea un usuario que no fue capaz de usar SB en 2 clics, pero resultó que no soy el usuario - ¡¡¡tristeza en general!!!

SZY: La ayuda de MQL5 está escrita con mucha habilidad, llena de órdenes ... Pero dicen que hasta que no olvidas el orden de las palabras, no tienes remedio.

Esto es muy sencillo. Orden -> operación -> posición. En MQL5 tampoco podemos evitar las órdenes: están ahí, y son el principio de todo. Enviamos una solicitud de comercio al servidor (es una orden), el servidor la acepta/recibe y devuelve el código. A veces, si la solicitud es incorrecta, la orden no se envía al servidor en absoluto - su envío se bloquea a nivel de terminal. Una vez que la orden ha sido enviada con éxito al servidor y puesta en cola para su ejecución, se espera a que esta orden se active (su ejecución, en otras palabras - una operación) y como resultado de esta transacción (ya sea una orden de mercado o pendiente), se forma una posición (no siempre - en la compensación, y si hay una posición en la misma dirección, simplemente se añade volumen a la posición existente, si la dirección opuesta, entonces, dependiendo del volumen de la operación comprometida, la posición actual se cierra parcialmente o se invierte).

Los pedidos también tienen su propia entrada. También lo hacen las operaciones y las posiciones. Pero un puesto también tiene un identificador. El identificador de una posición siempre será igual al ticket de su primera orden, la orden de apertura de esta posición.

Una orden de mercado sólo tiene una entrada. Y su propiedad de identificador de posición no se llena hasta que la orden se activa. Es decir, sólo una orden histórica tiene un identificador de posición - se rellena en el momento de la operación - en el momento de la activación de esa orden. Si se trata de unaorden pendiente eliminada, su identificador de posición tampoco se llena - no hubo operación ni posición respectivamente.

La operación tiene un ticket (su ticket), hay un identificador de la orden - como resultado de la cual se ejecutó esta operación, y hay un identificador de la posición - la posición que apareció como resultado de la ejecución de esta operación o la posición que se cambió como resultado de la ejecución de esta operación

La posición tiene un ticket, que se le asigna cuando se abre o se modifica. Si la posición sólo se abre, su ticket será igual a su identificador: un número de posición único, que no cambia a lo largo de la vida de la posición. Mientras que el ticket de una posición puede cambiar repetidamente y se corresponde con el ticket de una orden -como resultado de la activación de esa orden, aparece una nueva operación que cambia esa posición- el ticket de esa orden se asigna al ticket de la posición.

Si seguimos de cerca todas estas metamorfosis en una posición, podemos ver fácilmente el comportamiento de la posición en mql4 durante su cierre parcial - su entrada cambia allí también.

 
Artyom Trishkin:

Si observas con atención todas estas metamorfosis en la posición

Gracias. Lo estoy viendo por segundo día, pero todo es cuestión de práctica, hoy tengo el SB resuelto... bueno, resuelto ;)

P.D.: te explicas bien, ¡talento seguro!

 
Igor Makanu:

Gracias. Lo estoy viendo por segundo día, pero todo lo que se necesita es práctica, así que hoy he solucionado el SB... bueno, lo he solucionado ;)

P.D.: bien explicado, ¡sin duda un talento!

Encantado de ayudar ;)

 
Artyom Trishkin:

..................

Un pedido también tiene su propio billete. También lo hacen las operaciones y las posiciones. Pero un puesto también tiene un identificador. El identificador de la posición siempre será igual a la entrada de su primera orden, la orden de apertura de esta posición.

Una orden de mercado sólo tiene una entrada. Y su propiedad de identificador de posición no se llena hasta que la orden se activa. Es decir, sólo una orden histórica tiene un identificador de posición - se rellena en el momento de ejecutar la operación - en el momento de la activación de esa orden. Si se trata de una orden pendiente eliminada, su identificador de posición tampoco se llena - no hubo operación ni posición respectivamente.

La operación tiene un ticket (su ticket), hay un identificador de la orden - como resultado de la cual se ejecutó esta operación, y hay un identificador de la posición - la posición que apareció como resultado de la ejecución de esta operación o la posición que se cambió como resultado de la ejecución de esta operación

La posición tiene un ticket, que se le asigna cuando se abre o se modifica. Si la posición sólo se abre, su ticket será igual a su identificador: un número de posición único, que no cambia a lo largo de la vida de la posición. Mientras que el ticket de una posición se puede cambiar repetidamente y se corresponde con el ticket de la orden - como resultado de la activación de esa orden aparece una nueva operación que cambia esa posición - el ticket de esa orden se asigna al ticket de la posición.

Si seguimos de cerca todas estas metamorfosis en una posición, podemos ver fácilmente el comportamiento de la posición en mql4 durante su cierre parcial - su entrada cambia allí también.

Así que resulta que el desajuste se ha obtenido por el retraso en convertir la orden en una operación - ¿posición? ¿Incluso en el probador...? Es increíble.

Por lo tanto, después de colocar la orden, todavía tenemos que asegurarnos de que la posición se abra... ¿Cuánto tiempo hay que esperar? ¿Es para colgar el búho hasta que se confirmen todas las conversiones? ¿O cómo es en general?

 
Сергей Таболин:

Resulta que el desajuste se debió al retraso en convertir la orden en una operación -¿posición? ¿Incluso en el probador...? Menuda chorrada.

Por lo tanto, después de colocar la orden todavía tenemos que asegurarnos de que la posición se abra... ¿Cuánto tiempo hay que esperar? ¿Es para colgar el búho hasta que se confirmen todas las conversiones? ¿O cómo es en general?

Hemos colocado una orden de comercio (hemos recordado el ticket de comercio) y levantado la bandera de espera - tan pronto como obtuvimos un disparador garantizado en OnTradeTransaction - tipo de transacción TRADE_TRANSACTION_DEAL_ADD - comprobamos el ticket de comercio. Si todo funcionara junto - bien.

Esto es la vida real - los eventos pueden venir con un intervalo diferente, las fallas de conexión ... Pueden pasar muchas cosas. Esta es la realidad: no hay una cadena rígida.

 
Vladimir Karputov:

Hemos colocado una orden de negociación (recordamos el ticket de la transacción) y fijamos la bandera de pendiente - tan pronto como OnTradeTransaction recibió un trigger garantizado - tipo de transacción TRADE_TRANSACTION_DEAL_ADD - comprobamos el ticket de la transacción. Si todo funcionara junto - bien.

Esto es la vida real - los eventos pueden venir con un intervalo diferente, las fallas de conexión ... Pueden pasar muchas cosas. Esta es la realidad: no hay una cadena rígida.

Bueno, eso es esencialmente colgar al concejal... A la espera de que se confirme si viene o no viene... Estoy perdido aquí... ¿Cómo se hace esta espera? Utilizar while() ?

 
Сергей Таболин:

Bueno, es esencialmente colgar al asesor... A la espera de que se confirme si viene o no viene... Estoy perdido. ¿Cómo se hace esta espera? Utilizar while() ?

No. Dormir y mientras están categóricamente prohibidos.