Características del lenguaje mql5, sutilezas y técnicas - página 23

 
Artyom Trishkin:
No, no es así. Sólo necesitas saber cómo se cerró la última posición (y no necesitas profundizar mucho en el historial para ello - es suficiente para filtrar "tus" operaciones) - el conocimiento más allá de la última posición en el fondo del historial es más estadístico que operativo.
Todo esto se hace en OnTradeTransaction. Sólo en el disparador publicado por fxsaber : Yo añadiría una comprobación en el símbolo, mago y el comercio en DEAL_ENTRY_OUT
Особенности языка mql5, тонкости и приёмы работы
Особенности языка mql5, тонкости и приёмы работы
  • www.mql5.com
В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5, примеры решения тех, или иных задач...
 
Alexey Viktorov:
Todo esto se hace en OnTradeTransaction. Sólo en el trigger publicado por fxsaber : yo añadiría una comprobación en el símbolo, el mago y el comercio en DEAL_ENTRY_OUT
¿Y cómo comprobaría el probador?
 
Artyom Trishkin:
¿Cómo va a comprobar el probador?
De la misma manera. ¿Cuál es la diferencia? Lo he probado todo en tester y debugger para entender cómo funciona.
 
Alexey Viktorov:

No he mirado bien este activador, pero no he visto ninguna comprobación en el comercio para DEAL_ENTRY_OUT. Al fin y al cabo, es esta operación la que indica el cierre de la posición en las cuentas corrientes.

El cheque no es necesario. El disparador no funcionará en el probador, porque el probador no genera algunos eventos de comercio.
 
fxsaber:
El cheque no es necesario. El disparador no funcionará en el probador, porque el probador no genera algunos eventos de Comercio.

¿Cuáles, por ejemplo, de esta lista?

TRADE_TRANSACTION_ORDER_ADD

Añade una nueva orden abierta.

TRADE_TRANSACTION_ORDER_UPDATE

Modificación de una orden abierta. Estos cambios incluyen no sólo los cambios explícitos en el terminal del cliente o en el servidor de operaciones, sino también los cambios del estado de colocación de la orden (por ejemplo, de ORDER_STATE_STARTED a ORDER_STATE_PLACED o de ORDER_STATE_PLACED a ORDER_STATE_PARTIAL, etc.).

TRADE_TRANSACTION_ORDER_DELETE

Elimina la orden de la lista de órdenes abiertas. Una orden puede ser eliminada de la lista de órdenes abiertas como resultado de una solicitud de negociación o como resultado de la ejecución (fill) y la transferencia al historial.

TRADE_TRANSACTION_DEAL_ADD

Añadiendo un comercio a la historia. Se realiza como resultado de la ejecución de la orden o como resultado de las operaciones de balance de cuentas.

TRADE_TRANSACTION_DEAL_UPDATE

Cambio de trato en la historia. Es posible que se produzcan situaciones en las que se modifique en el servidor una operación previamente ejecutada. Por ejemplo, la transacción se modificó en el sistema de comercio externo (bolsa), donde fue eliminada por el corredor.

TRADE_TRANSACTION_DEAL_DELETE

Eliminación de la transacción del historial. Puede haber situaciones en las que una operación previamente ejecutada se borre en el servidor. Por ejemplo, la operación fue eliminada en el sistema de negociación externo (bolsa) donde fue eliminada por el corredor.

TRADE_TRANSACTION_HISTORY_ADD

Añadir una orden al historial como resultado de la ejecución o la cancelación.

TRADE_TRANSACTION_HISTORY_UPDATE

Modificación de un pedido realizado en el historial de pedidos. Este tipo está destinado a aumentar la funcionalidad en el lado del servidor de comercio.

TRADE_TRANSACTION_HISTORY_DELETE

Eliminación de un pedido del historial de pedidos. Este tipo está destinado a la ampliación de la funcionalidad en el lado del servidor comercial.

TRADE_TRANSACTION_POSITION

Cambio de una posición no relacionada con la ejecución de la operación. Este tipo de transacción indica que la posición ha sido modificada en el lado del servidor comercial. El volumen de la posición, el precio de apertura y los niveles de Stop Loss y Take Profit pueden ser modificados. La información sobre los cambios se pasa a la estructura MqlTradeTransaction a través del manejador OnTradeTransaction. Un cambio de posición (adición, modificación o eliminación) como resultado de una operación no provoca la aparición de la operación TRADE_TRANSACTION_POSITION.

SOLICITUD_DE_TRANSACCIÓN_COMERCIAL

Una notificación de que una solicitud de comercio ha sido procesada por el servidor y su resultado ha sido recibido. Para las transacciones de este tipo es necesario analizar sólo un campo - tipo (tipo de transacción) en la estructura MqlTradeTransaction. Los parámetros segundo y tercero de la función OnTradeTransaction (solicitud y resultado) deben ser analizados para obtener información adicional.


A menos que el evento resaltado no se genere. Entonces, ¿quién lo necesita?

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

¿Cuáles, por ejemplo, están en esta lista?

Evento comercial es mi término.

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Características del lenguaje mql5, sutilezas y trucos

fxsaber, 2017.02.28 19:30

Puede haber una posición de COMPRA abierta y una orden de COMPRA válida. Arriba se dio un ejemplo de código, pero probablemente más fácil en los dedos. ¿Cómo se activa el TP de una posición abierta?

  • El precio alcanza el TP de la posición de COMPRA.
  • El servidor de operaciones crea la correspondiente orden de VENTA activa.
  • Entonces el terminal tiene simultáneamente una posición de COMPRA y una orden de VENTA.
  • La orden de VENTA se ejecuta entrando en el historial y generando una operación allí.
  • La posición inicial de COMPRA se cierra en base a esta operación, que no se captura en ninguna parte - está presente indirectamente en el historial de operaciones.

El evento de Comercio seleccionado no se produce en el probador.
 
fxsaber:

Evento comercial es mi término.

Un evento de Comercio resaltado no ocurre en el probador.

En mi opinión, no es un acontecimiento. Son las sutilezas de la secuencia de ejecución de órdenes. ¿Por qué debo captar el momento en que una orden de VENTA para cerrar una posición de COMPRA está en el terminal simultáneamente con la propia posición?

Puede ser una desgracia que no se observe la secuencia de eventos, pero ... ¿Qué es lo principal en el comercio? ¿No es seguir el flujo de eventos y medir la velocidad? Si me abren una posición mañana al precio solicitado y la cierran ayer, pero con beneficios, no me opondré.

 
Alexey Viktorov:

En mi opinión, esto no es un evento. Son las sutilezas de la secuencia de ejecución de órdenes. ¿Por qué debo captar el momento en que una orden de VENTA para cerrar una posición de COMPRA está en el terminal al mismo tiempo que la propia posición?

Lee el título de esta rama.
 
fxsaber:
Lee el título del hilo.
¿Qué diferencia hay?
 
Alexey Viktorov:
¿Qué va a cambiar?
Nada cambiará, pero las sutilezas se describen, no hay duda.
Y la pregunta sigue siendo: ¿cómo va a captar esta función el cierre de puntos/paradas en el probador?