Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 814
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
¿Hay alguna manera de evitar que estas casillas-noticias-objetos inerradicables llenen mi lista de objetos una y otra vez?
Aquí, en la configuración, elimina las noticias y vuelve a cargar el terminal
¿Hay alguna manera de evitar que estas casillas-noticias-objetos inerradicables llenen mi lista de objetos una y otra vez?
Aquí, en la configuración, elimine las noticias y reinicie el terminal
Kirill, muchas gracias. Por lo demás, mi experto repasa los objetos, los repasa una y otra vez.
Gracias.
Estoy intentando aprender a utilizar la función OnTradeTransaction.
Al utilizarlo en el probador, veo el siguiente problema. Se abre una orden y en consecuencia se llama a OnTradeTransaction. En este momento, obtengo el tamaño de la posición dentro de OnTradeTransaction utilizando la clase CPositionInfo. Todo está bien. Luego en la misma llamada llamo a otra función directamente desde OnTradeTransaction y allí CPositionInfo devuelve cero, es decir, no es lo que necesito. Unos minutos más tarde traté de obtener el tamaño de la posición en OnTimer, pero todo estaba bien allí, es decir, 1. Por supuesto, la posición no se ha cerrado y abierto de nuevo a lo largo de toda la historia.
Pregunta. Por qué CPositionInfo devuelve en OnTradeTransaction lo que necesita, pero en otra función llamada desde OnTradeTransaction devuelve 0 en lugar del volumen de posición.
Aquí están los registros. (Posición abierta a las 10:30:12 cerrada a las 10:48:53)
Esto desencadena una orden.
2017.09.22 10:30:12 orden [#3 límite de compra 1.00 SBRF-3.18 a 19352] activada
OnTradeTransaction se llama tres veces. CPositionInfo en cada llamada el volumen de la posición es igual a 1. En la última llamada de TRADE_TRANSACTION_HISTORY_ADD llamo a la función.
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_DEAL_ADD order=3 order_type=ORDER_TYPE_BUY state=ORDER_STATE_STARTED Price=19352.0 deal=2 deal_type=DEAL_TYPE_BUY Position direction POSITION_TYPE_BUY Volume 1.0
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_ORDER_DELETE order=3 order_type=ORDER_TYPE_BUY_LIMIT state=ORDER_STATE_FILLED Price=19352.0 deal=0 deal_type=DEAL_TYPE_BUY Position direction POSITION_TYPE_BUY Volume 1.0
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_HISTORY_ADD order=3 order_type=ORDER_TYPE_BUY_LIMIT state=ORDER_STATE_FILLED Price=19352.0 deal=0 deal_type=DEAL_TYPE_BUY Position direction POSITION_TYPE_BUY Volume 1.0
En una función llamada desde OnTradeTransaction.
2017.09.22 10:32:50 Hay una posición 0.0 en el símbolo cotizado SBRF-3.18 hacia POSITION_TYPE_BUY
Después de un tiempo tratando de obtener el volumen de nuevo en OnTimer
2017.09.22 10:40:00 En OnTimer Symbol=SBRF-3.18 Volume=1.0
Cierra la posición
2017.09.22 10:48:53 orden [#5 vender límite 1,00 SBRF-3.18 a 19435] activada
Estoy intentando aprender a utilizar la función OnTradeTransaction.
Al utilizarlo en el probador, veo el siguiente problema. Se abre una orden y en consecuencia se llama a OnTradeTransaction. En este momento, obtengo el tamaño de la posición dentro de OnTradeTransaction utilizando la clase CPositionInfo. Todo está bien. Luego en la misma llamada llamo a otra función directamente desde OnTradeTransaction y allí CPositionInfo devuelve cero, es decir, no es lo que necesito. Unos minutos más tarde traté de obtener el tamaño de la posición en OnTimer, pero todo estaba bien allí, es decir, 1. Por supuesto, la posición no se ha cerrado y abierto de nuevo a lo largo de toda la historia.
Esta es mi pregunta. Por qué CPositionInfo devuelve lo que necesito en OnTradeTransaction pero en otra función llamada desde OnTradeTransaction, devuelve 0 en lugar del volumen de la posición.
Aquí están los registros. (Posición abierta a las 10:30:12 cerrada a las 10:48:53)
Esto desencadena una orden.
2017.09.22 10:30:12 orden [#3 límite de compra 1.00 SBRF-3.18 a 19352] activada
OnTradeTransaction se llama tres veces. CPositionInfo en cada llamada el volumen de la posición es igual a 1. En la última llamada de TRADE_TRANSACTION_HISTORY_ADD llamo a la función.
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_DEAL_ADD order=3 order_type=ORDER_TYPE_BUY state=ORDER_STATE_STARTED Price=19352.0 deal=2 deal_type=DEAL_TYPE_BUY Position direction POSITION_TYPE_BUY Volume 1.0
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_ORDER_DELETE order=3 order_type=ORDER_TYPE_BUY_LIMIT state=ORDER_STATE_FILLED Price=19352.0 deal=0 deal_type=DEAL_TYPE_BUY Position direction POSITION_TYPE_BUY Volume 1.0
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_HISTORY_ADD order=3 order_type=ORDER_TYPE_BUY_LIMIT state=ORDER_STATE_FILLED Price=19352.0 deal=0 deal_type=DEAL_TYPE_BUY Position direction POSITION_TYPE_BUY Volume 1.0
En una función llamada desde OnTradeTransaction.
2017.09.22 10:32:50 Hay una posición 0.0 en el símbolo cotizado SBRF-3.18 hacia POSITION_TYPE_BUY
Después de un tiempo tratando de obtener el volumen de nuevo en OnTimer
2017.09.22 10:40:00 En OnTimer Symbol=SBRF-3.18 Volume=1.0
Cierra la posición
2017.09.22 10:48:53 orden [#5 vender límite 1,00 SBRF-3.18 a 19435] activada
¿Y por qué utilizar CPositionInfo si existe la estructura MqlTradeTransaction con toda la información sobre la orden, la operación y la posición?
Para mayor comodidad. Una pequeña función es llamada desde MqlTradeTransaction. Encuentra el elemento necesario mediante la búsqueda de elementos de la clase. Entonces, se llama a una de las funciones de la clase para este elemento y hace algo útil.
Para mayor comodidad. Una pequeña función es llamada desde MqlTradeTransaction. El elemento necesario se encuentra allí mediante la búsqueda de elementos de la clase. Una de las funciones de la clase es llamada para este elemento y hace algo útil.
Aparentemente hay que cambiar todo el algoritmo para hacerlo. El problema está muy mal descrito. Si necesitas algunas clases sin usar OnTradeTransaction, no necesitas algunas clases usando OnTradeTransaction. Esto es exactamente lo que dice
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
FAQ de principiantes MQL5 MT5 MetaTrader 5
Alexey Viktorov, 2017.12.30 09:04
¿Y por qué usar CPositionInfo cuando existe la estructura MqlTradeTransaction donde está toda la información de órdenes, operaciones y posiciones?
Durante la ejecución de esta función, se producen eventos, por ejemplo - Comercio, Temporizador, etc.
¿Es posible saber que estos eventos se produjeron sin finalizar la ejecución de la función Abc()?