Discusión sobre el artículo "Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte XXXIV): Eliminación de órdenes y posiciones según condiciones" - página 2
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
Sí, lo harán. Porque ahí se ha cambiado la forma de almacenar los datos de la cuenta. Esto está escrito al final del artículo como advertencia:
-----
Para su información:
desde que cambiamos la estructura del objeto cuenta (cambiamos el tamaño de las matrices uchar para almacenar las propiedades de cadena de la cuenta y añadimos una propiedad entera más), todos los archivos previamente guardados de los objetos cuenta ya no se cargarán correctamente. Si se encuentran en la carpeta común de terminales en el directorio \Files\DoEasy\Accounts\, entonces todos ellos deben ser eliminados antes de iniciar este asesor de prueba - se volverán a crear al cambiar de una cuenta a otra con un nuevo tamaño de la estructura de objetos.
-----
He borrado todos los archivos BIN de la cuenta en la carpeta común para asegurarse de que su carga de código completo. se carga sin error acerca de `CAccount::Load` (pero el principal problema era incorrecto ignorar eventos y todavía existe)
Luego abrí algunas operaciones manualmente y las cerré con un script lo más rápido posible. Volví a tener este error
CEventsCollection::CreateNewEvent, Línea 768: Este evento ya está en la lista
Sabemos que esos eventos son de diferentes posiciones cerradas en MT4, pero el código del motor no puede entenderlo. ¿Es el motor capaz de entender el cierre de múltiples operaciones / eventos en un corto período de tiempo en absoluto?
Aquí están todos los mensajes de registro:
2020.08.21 21:23:50.604 mhdbzr-34 AUDCAD,H1: OnDoEasyEvent: Posición cerrada
2020.08.21 21:23:50.600 mhdbzr-34 AUDCAD,H1: - Posición cerrada: 2020.08.21 19:51:47.000 -
AUDCAD Posición cerrada Comprar #573142748 al precio 0.94405, Ganancia -0.22 USD
2020.08.21 21:23:50.368 Script CloseTradesFast4Test AUDCAD,H1: eliminado
2020.08.21 21:23:50.364 CloseTradesFast4Test AUDCAD,H1: uninit reason 0
2020.08.21 21:23:50.364 CloseTradesFast4Test AUDCAD,H1: close #573142747 buy 0.01 AUDCAD at 0.94404 at price 0.94375
2020.08.21 21:23:50.148 mhdbzr-34 AUDCAD,H1: OnDoEasyEvent: Posición cerrada
2020.08.21 21:23:50.146 mhdbzr-34 AUDCAD,H1: - Posición cerrada: 2020.08.21 19:51:47.000 -
AUDCAD Posición cerrada Comprar #573142748 al precio 0.94405, Ganancia -0.22 USD
2020.08.21 21:23:49.942 CloseTradesFast4Test AUDCAD,H1: cerrar #573142748 comprar 0.01 AUDCAD a precio 0.94405 a precio 0.94376
2020.08.21 21:23:49.725 mhdbzr-34 AUDCAD,H1: CEventsCollection::CreateNewEvent, Línea 768: Este evento ya está en la lista
2020.08.21 21:23:49.520 CloseTradesFast4Test AUDCAD,H1: close #573142752 buy 0.01 AUDCAD at 0.94406 at price 0.94376
2020.08.21 21:23:49.257 mhdbzr-34 AUDCAD,H1: OnDoEasyEvent: Posición cerrada
2020.08.21 21:23:49.255 mhdbzr-34 AUDCAD,H1: - Posición cerrada: 2020.08.21 19:51:52.000 -
AUDCAD Posición cerrada Sell #573142755 at price 0.94366, Profit -0.37 USD
2020.08.21 21:23:49.086 CloseTradesFast4Test AUDCAD,H1: cerrar #573142755 vender 0.01 AUDCAD a precio 0.94366 a precio 0.94414
2020.08.21 21:23:48.815 mhdbzr-34 AUDCAD,H1: OnDoEasyEvent: Posición cerrada
2020.08.21 21:23:48.812 mhdbzr-34 AUDCAD,H1: - Posición cerrada: 2020.08.21 19:51:53.000 -
AUDCAD Posición cerrada Sell #573142757 at price 0.94366, Profit -0.37 USD
2020.08.21 21:23:48.661 CloseTradesFast4Test AUDCAD,H1: cerrar #573142756 vender 0.01 AUDCAD a precio 0.94366 a precio 0.94415
2020.08.21 21:23:48.352 mhdbzr-34 AUDCAD,H1: OnDoEasyEvent: Posición cerrada
2020.08.21 21:23:48.350 mhdbzr-34 AUDCAD,H1: - Posición cerrada: 2020.08.21 19:51:53.000 -
AUDCAD Posición cerrada Sell #573142757 at price 0.94366, Profit -0.37 USD
2020.08.21 21:23:48.237 CloseTradesFast4Test AUDCAD,H1: cerrar #573142757 vender 0.01 AUDCAD a precio 0.94366 a precio 0.94415
2020.08.21 21:23:47.537 CloseTradesFast4Test AUDCAD,H1: inicializado
2020.08.21 21:23:47.520 Script CloseTradesFast4Test AUDCAD,H1: cargado con éxito
2020.08.21 21:23:31.762 Operaciones automáticas activadas
Elimino todos los archivos BIN de la cuenta en la carpeta común para asegurarse de que su carga de código completo. se carga sin error acerca de `CAccount::Load` (pero el principal problema era incorrecto ignorar eventos y todavía existe)
Luego abrí algunas operaciones manualmente y las cerré con un script lo más rápido posible. Tengo este error de nuevo:
CEventsCollection::CreateNewEvent, Línea 768: Este evento ya está en la lista
Sabemos que esos eventos son de diferentes cierres de posiciones en MT4, pero el código del motor no puede entenderlo. ¿Es el motor capaz de entender múltiples cierres de operaciones / eventos en un corto período de tiempo en absoluto?
Por favor, describa paso a paso lo que está haciendo para obtener este error.
Por favor, describa paso a paso lo que está haciendo para obtener este error.
He modificado el código de tu EA para que sólo reciba eventos. (Adjunté la versión modificada en mensajes anteriores, se llama `mhdbzr-34`)
He modificado tu código EA para que sólo reciba eventos. (He adjuntado la versión modificada en mensajes anteriores, se llama `mhdbzr-34`)
Dale a tu script para cerrar posiciones.
Da tu guión para cerrar posiciones.
aquí está el código:
aquí hay otra prueba; esta vez no reconoció las posiciones cerradas, las pasó por alto con las anteriores en dos casos.
2020.08.27 20:30:18.880 Expert mhdbzr-34 AUDCAD,H1: eliminado
2020.08.27 20:30:18.869 mhdbzr-34 AUDCAD,H1: uninit razón 1
2020.08.27 20:28:35.617 mhdbzr-34 AUDCAD,H1: OnDoEasyEvent: Posición cerrada
2020.08.27 20:28:35.617 mhdbzr-34 AUDCAD,H1: OnDoEasyEvent: Posición cerrada
2020.08.27 20:28:35.617 mhdbzr-34 AUDCAD,H1: - Posición cerrada: 2020.08.27 18:58:03.000 - AUDCAD Cerrado Compra #573721560 al precio 0.95218, Beneficio -2.29 USD
2020.08.27 20:28:35.614 mhdbzr-34 AUDCAD,H1: - Posición cerrada: 2020.08.27 18:58:04.000 - AUDCAD Cerrado Comprar #573721562 al precio 0.95218, Beneficio -2.29 USD
2020.08.27 20:28:35.582 Script CloseTradesFast4Test AUDCAD,H1: eliminado
2020.08.27 20:28:35.577 CloseTradesFast4Test AUDCAD,H1: uninit reason 0
2020.08.27 20:28:35.577 CloseTradesFast4Test AUDCAD,H1: close #573721560 buy 0.10 AUDCAD at 0.95218 at price 0.95188
2020.08.27 20:28:35.177 CloseTradesFast4Test AUDCAD,H1: close #573721562 buy 0.10 AUDCAD at 0.95218 at price 0.95188
2020.08.27 20:28:35.161 mhdbzr-34 AUDCAD,H1: OnDoEasyEvent: Posición cerrada
2020.08.27 20:28:35.158 mhdbzr-34 AUDCAD,H1: - Posición cerrada: 2020.08.27 18:58:06.000 - AUDCAD Cerrado Venta #573721573 al precio 0.95190, Ganancia -2.06 USD
2020.08.27 20:28:34.739 CloseTradesFast4Test AUDCAD,H1: cerrar #573721571 comprar 0.10 AUDCAD a 0.95224 al precio 0.95191
2020.08.27 20:28:34.695 mhdbzr-34 AUDCAD,H1: OnDoEasyEvent: Posición cerrada
2020.08.27 20:28:34.691 mhdbzr-34 AUDCAD,H1: - Posición cerrada: 2020.08.27 18:58:06.000 - AUDCAD Cerrado Vender #573721573 al precio 0.95190, Ganancia -2.06 USD
2020.08.27 20:28:34.306 CloseTradesFast4Test AUDCAD,H1: cerrar #573721573 vender 0.10 AUDCAD a precio 0.95190 a precio 0.95217
2020.08.27 20:28:34.180 mhdbzr-34 AUDCAD,H1: OnDoEasyEvent: Posición cerrada
2020.08.27 20:28:34.177 mhdbzr-34 AUDCAD,H1: - Posición cerrada: 2020.08.27 18:58:09.000 - AUDCAD Cerrado Venta #573721582 al precio 0.95190, Ganancia -2.14 USD
2020.08.27 20:28:33.883 CloseTradesFast4Test AUDCAD,H1: cerrar #573721577 vender 0.10 AUDCAD a precio 0.95190 a precio 0.95217
2020.08.27 20:28:33.664 mhdbzr-34 AUDCAD,H1: OnDoEasyEvent: Posición cerrada
2020.08.27 20:28:33.660 mhdbzr-34 AUDCAD,H1: - Posición cerrada: 2020.08.27 18:58:09.000 - AUDCAD Cerrado Venta #573721582 al precio 0.95190, Ganancia -2.14 USD
2020.08.27 20:28:33.440 CloseTradesFast4Test AUDCAD,H1: cerrar #573721582 vender 0.10 AUDCAD a precio 0.95190 a precio 0.95218
2020.08.27 20:28:32.946 CloseTradesFast4Test AUDCAD,H1: inicializado
2020.08.27 20:28:32.928 Script CloseTradesFast4Test AUDCAD,H1: cargado con éxito
2020.08.27 20:28:09.413 mhdbzr-34 AUDCAD,H1: OnDoEasyEvent: Posición abierta
2020.08.27 20:28:09.411 mhdbzr-34 AUDCAD,H1: - Posición abierta: 2020.08.27 18:58:09.000 - AUDCAD Abierto 0.10 Sell #573721582 [0.10 Market-order Sell #573721582] al precio 0.95190
2020.08.27 20:28:07.664 mhdbzr-34 AUDCAD,H1: OnDoEasyEvent: Posición abierta
2020.08.27 20:28:07.659 mhdbzr-34 AUDCAD,H1: - Posición abierta: 2020.08.27 18:58:07.000 - AUDCAD Abierto 0.10 Sell #573721577 [0.10 Market-order Sell #573721577] al precio 0.95190
2020.08.27 20:28:06.755 mhdbzr-34 AUDCAD,H1: OnDoEasyEvent: Posición abierta
2020.08.27 20:28:06.752 mhdbzr-34 AUDCAD,H1: - Posición abierta: 2020.08.27 18:58:06.000 - AUDCAD Abierto 0.10 Sell #573721573 [0.10 Market-order Sell #573721573] al precio 0.95190
2020.08.27 20:28:05.911 mhdbzr-34 AUDCAD,H1: OnDoEasyEvent: Posición abierta
2020.08.27 20:28:05.909 mhdbzr-34 AUDCAD,H1: - Posición abierta: 2020.08.27 18:58:05.000 - AUDCAD Abierta 0.10 Compra #573721571 [0.10 Market-order Compra #573721571] al precio 0.95224
2020.08.27 20:28:04.587 mhdbzr-34 AUDCAD,H1: OnDoEasyEvent: Posición abierta
2020.08.27 20:28:04.582 mhdbzr-34 AUDCAD,H1: - Posición abierta: 2020.08.27 18:58:04.000 - AUDCAD Abierto 0.10 Compra #573721562 [0.10 Market-order Compra #573721562] al precio 0.95218
2020.08.27 20:28:04.101 mhdbzr-34 AUDCAD,H1: OnDoEasyEvent: Posición abierta
2020.08.27 20:28:04.099 mhdbzr-34 AUDCAD,H1: - Posición abierta: 2020.08.27 18:58:03.000 - AUDCAD Abierta 0.10 Compra #573721560 [0.10 Market-order Compra #573721560] al precio 0.95218
2020.08.27 20:27:59.245 mhdbzr-34 AUDCAD,H1: inicializado
2020.08.27 20:27:59.244 mhdbzr-34 AUDCAD,H1: Cuenta 13278180: mhdbzr test (Alpari) 5537.01 USD, 1:100, Hedge, Cuenta Demo MetaTrader 4
2020.08.27 20:27:49.794 Expert TestDoEasy\Part34\mhdbzr-34 AUDCAD,H1: cargado con éxito
Abrí esas operaciones manualmente en el mercado en vivo en la cuenta demo, no utilizando el entorno de prueba. (y cerré con el script como lo hice antes)
(aquí está la captura de pantalla para asegurarse de que sucedió)
aquí hay otra prueba; esta vez no reconoció las posiciones cerradas, las erró con las anteriores en dos casos.
Abrí esas operaciones manualmente en el mercado real en la cuenta demo, no utilizando el entorno de prueba. (y cerré con el script como lo hice antes)
(aquí está la captura de pantalla para estar seguro de que sucedió)
Estoy buscando la causa del problema. No será rápido. Gracias por las pruebas.
Estoy buscando la causa del problema. No será rápido. Gracias por las pruebas.
(aquí está mi opinión)
esas posiciones cerradas estan en el mismo segundo, una de ellas es manejada en el tiempo del tick anterior, entonces en el nuevo tick, tiene `new_history_orders=1` pero dos posiciones en la `list` y ordenadas probablemente mal, porque dos items tienen el mismo tiempo de cierre en el segundo.
si la orden ya esta en la lista y arroja un mensaje de error, entonces borra el objeto de posicion y reanuda el conteo en este bucle for, pero creo que no deberia contar n, cuando la orden ha sido borrada dentro de lafuncion CreateNewEvent , para atrapar la proxima posicion valida.
tambien necesitamos entender las posiciones manejadas recientemente, para saltar ordenes mal ordenadas y no contar para `n`.
(esta es mi opinión)
esas posiciones cerradas estan en el mismo segundo, una de ellas es manejada en tiempo de tick anterior, asi que en nuevo tick, tiene `new_history_orders =1` pero dos posiciones en la `lista` y ordenadas probablemente mal, porque dos items tienen el mismo tiempo de cierre en segundo.
si la orden ya esta en la lista y arroja un mensaje de error, entonces elimina el objeto de posición y reanuda el conteo en este bucle for, pero creo que no debería contar n, cuando la orden ha sido eliminada dentro de la función CreateNewEvent , para capturar la siguiente posición válida.
Tambien necesitamos entender las posiciones manejadas recientemente, para omitir ordenes mal ordenadas y no contar para `n`.
Gracias, lo solucionaré.
Hola Artyom, recuerdo que mencionaste este futuro shell gráfico la primera vez que leí estos artículos hace algunas semanas... ¿Puedes dar más detalles sobre tu visión al respecto y lo que nos permitirá hacer en la práctica?