Preguntas de un "tonto" - página 100

 
220Volt:

Buenas tardes. Existe un fenómeno como la distorsión de los últimos bits en el doble, por favor, indique qué condiciones deben crearse para que se produzca dicha distorsión. ¿Es posible la distorsión en las operaciones =? ¿Es posible la distorsión cuando se almacenan enteros en doble? ¿Mientras se realizan las operaciones?

x=M_PI;
y=sqrt(x);
y=y*y;

¿Qué es una variante de la distorsión?
 

Por favor, aconséjeme. ¿Existe alguna forma de averiguar mediante programación (en la función OnTrade()) si se ha establecido, modificado o eliminado manualmente (por medio de la terminal) un Stop Loss, Take Profit o una orden pendiente? Y un breve ejemplo, si no es difícil.

En este momento las operaciones listadas se registran y se escriben en un archivo(s), que se encuentra en el directorio D:\Metatrader 5\logs\. Por lo tanto, no puedo leerlos de forma programada.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
tol64:

Por favor, avisa. ¿Existe alguna forma de averiguar mediante programación (en la función OnTrade()) si se ha establecido, modificado o eliminado manualmente (por medio de la terminal) un Stop Loss, Take Profit o una orden pendiente? Y un breve ejemplo, si no es difícil.

La función ha manejado eventos cuando ciertas listas fueron cambiadas antes, no había parámetros. Si todo es igual, resulta que los eventos de fijación, modificación o eliminación de órdenes deben ser tratados independientemente de si las órdenes fueron fijadas manualmente o no. ¿Es esto correcto? Si es correcto, podemos intentar averiguar el ticket del pedido cuando lleguen los eventos de Comercio (si el evento se refiere a un pedido), y si descubrimos que no se ha configurado dicho ticket mediante programación, podemos seguir su destino. Es algo así.
 
Yedelkin:
Anteriormente, la función manejaba eventos cuando se cambiaban ciertas listas, no había parámetros. Si todo sigue igual, resulta que los eventos de establecimiento, modificación o eliminación deben recibirse independientemente de si las órdenes se establecen manualmente o no. ¿Es esto correcto? Si es correcto, podemos intentar averiguar el ticket de cada evento de Comercio (si el evento se refiere a un pedido) y si descubrimos que no se ha configurado dicho ticket mediante programación, podemos seguir su destino en el futuro. Es algo así.
Sí, eso es correcto, pero sólo si los eventos se relacionan con las operaciones, por lo que entiendo. Necesito averiguar si los eventos de modificación de órdenes en modo manual pueden ser rastreados programáticamente.
 
tol64:
Sí, todo es correcto, pero sólo si los eventos están relacionados con los oficios, por lo que entiendo. Necesito saber si es posible seguir los eventos de modificación de pedidos en modo manual de forma programada.

No, no, lee la documentación con urgencia :) O incluso mejores artículos. La lista de ofertas es sólo una parte de todas las listas. Significa que los acontecimientos deberían ser diferentes... Sin embargo, lo leí hace mucho tiempo, puede que lo olvide.

El artículo"Handling Trade Events in the Expert Advisor with the OnTrade() Function" y el artículo"Trade Events in MetaTrader 5" de Roche.

 
Yedelkin:

No, no, lee la documentación con urgencia :) Al menos esa parte estaba más o menos clara allí. La lista de transacciones es sólo una parte de todas las listas. Así que los eventos también deben ser diferentes.

Y aún mejor: había un artículo sobre esta función, y un artículo de Roche sobre los eventos comerciales (si no me equivoco en el título).

)) En OnTrade() logro definir eventos como estos:

DEAL_ENTRY_IN, DEAL_ENTRY_OUT, DEAL_ENTRY_INOUT.

También puedo determinar si uno de estos eventos fue sólo una operación o se activó una orden pendiente y qué tipo de orden pendiente era. Y también si se trata de un nuevo puesto o de un aumento/disminución de un puesto ya existente.

---

No sé cómo detectar las modificaciones de cualquier orden. Tampoco he visto ningún ejemplo de esto en la documentación. Necesito una pista. Una simple pista de los desarrolladores. ¿Existe esa posibilidad o no? Y se implementará alguna vez esta posibilidad o no, para librarse de esta cuestión o tratar de resolverla de alguna otra forma inteligente. :)

---

También hay esta sección en la documentación: Tipos de operaciones. Pero estos eventos pueden ser identificados si se hacen de forma programada.

 
Yedelkin:

...

Artículo sobre esta función"Manejo de eventos de comercio en EAs usando la función OnTrade()".

He encontrado en este artículo lo que preguntaba. Lo he leído una vez, pero lo he olvidado por completo. :)
 
tol64:
He encontrado lo que preguntaba en este artículo. Lo leí una vez, pero lo había olvidado por completo. :)

Generalmente olvido todas las sutilezas después de un mes. Por eso todo lo que hago es releer. He leído secciones del Manual y artículos :)

Aquí hay otra frase "...el cambio de SL y TP no cambia... e incluso el evento OnTrade no se genera, sólo sobrescribimos los campos SL y TP (como para la posición abierta)" puede ser útil. Yo mismo, sin embargo, no he descubierto cómo hacerlo.

 
tol64:
Sí, eso es correcto, pero sólo si los eventos se relacionan con las operaciones, por lo que entiendo. Necesito saber si los eventos de modificación de órdenes pueden ser rastreados programáticamente en modo manual.
Por lo menos se maneja el establecimiento y la eliminación de una orden, pero sin parámetros es todo un dolor de cabeza. No puedo decir a favor del cambio, pero debería ser manejado, también, por idea.
tol64:
He encontrado lo que preguntaba en este artículo. Lo leí una vez, pero lo he olvidado por completo. :)
Lo he pensado enseguida. Tal vez las soluciones descritas en él no sean tan ideales y elegantes como nos gustaría (sobre todo teniendo en cuenta que aún faltan los parámetros), pero en principio tienen todo lo básico.
 

Me podeis decir como obtener el precio de compra y venta de otro par de divisas, no actual de momento, en mt4 había un comando marketinfo, en mt5 no hay.

Tengo la suposición de que hay que pasar aSymbolInfoDouble(Symbol(),SYMBOL_ASK) y aquí operar con el valor deSymbol(), pero no consigo averiguar cómo.