¿Les ha pasado que su experto funciona bien y de repente empieza a meter 1000 posiciones en segundos?

 

Durante más de 6 meses mi asesor experto estaba funcionando correctamente, hasta hace una semana, puesto que abrió una posición de compra a la apertura del lunes (cuando no debió de hacerlo a menos de que se hubieran "reseteado" las variables estaticas). Posterior a ello, en lugar de cerrar la posición como se tenía programado, decidió meter una venta. 


A partir de ese momento se desató la locura, en cada tick estaba realizando una venta con el mismo lotaje hasta que el margen disponible llegó a cero y no le permitió al robot meter más posiciones. Posterior a estro procedí a quitar el experto y cerrar las posiciones manualmente. Estuvo a nada de secarse la cuenta.


Procedí a correr el experto con el histórico del broker de ese día para ver si pasaba lo mismo (en ese caso el problema sería del experto) pero funcionó a la perfección: No abriá la posición de compra el día lunes y cerraba la posición correctamente en lugar de meter una venta. Yo mismo construí el experto y es "imposible" (entre comillas porque no puedo descartar que sea el EA) que haya funcuonado así.

¿Ha alguien le ha pasado algo similar? ¿Cabe la posibilildad de que el responsable haya sido el VPS o el broker? Si intentaron resolverlo ¿Qué conluyeron?


El VPS que uso es el de Metatrader y el broker es ICMarkets


De antemano muchas gracias por sus aportaciones, espero que este hilo le sea de ayuda a las personas que lleguen a pasar lo mismo. 

 
Braulio Buendia Martinez:

¿Que modelado usa en el probador? Por curiosidad.

 
Miguel Angel Vico Alba #:

¿Que modelado usa en el probador? Por curiosidad.

Every tick sin optimizándoles 

 
Braulio Buendia Martinez #Every tick sin optimizándoles 

Revise el código o en su defecto use un limitador del número de operaciones.

 
Braulio Buendia Martinez:

Durante más de 6 meses mi asesor experto estaba funcionando correctamente, hasta hace una semana, puesto que abrió una posición de compra a la apertura del lunes (cuando no debió de hacerlo a menos de que se hubieran "reseteado" las variables estaticas). Posterior a ello, en lugar de cerrar la posición como se tenía programado, decidió meter una venta. 


A partir de ese momento se desató la locura, en cada tick estaba realizando una venta con el mismo lotaje hasta que el margen disponible llegó a cero y no le permitió al robot meter más posiciones. Posterior a estro procedí a quitar el experto y cerrar las posiciones manualmente. Estuvo a nada de secarse la cuenta.


Procedí a correr el experto con el histórico del broker de ese día para ver si pasaba lo mismo (en ese caso el problema sería del experto) pero funcionó a la perfección: No abriá la posición de compra el día lunes y cerraba la posición correctamente en lugar de meter una venta. Yo mismo construí el experto y es "imposible" (entre comillas porque no puedo descartar que sea el EA) que haya funcuonado así.

¿Ha alguien le ha pasado algo similar? ¿Cabe la posibilildad de que el responsable haya sido el VPS o el broker? Si intentaron resolverlo ¿Qué conluyeron?


El VPS que uso es el de Metatrader y el broker es ICMarkets


De antemano muchas gracias por sus aportaciones, espero que este hilo le sea de ayuda a las personas que lleguen a pasar lo mismo. 

A mi me pasó una vez, y no conseguí descubrir el motivo. Varios expertos revisaron mi código sin encontrar el por qué. De todas formas, si quieres compartir el código, podríamos echarle un ojo
 

Teóricamente era imposible que el robot metiera posiciones de venta puesto que dividimos el experto en dos partes excluyentes (una para apertura y otra para cierre) con un <<<if(CPositionInfo.Select(Symbol())) { } >>> para colocar criterios de cierre y un <<<else { } >>> para colocar criterios de apertura. Si abrió una posición por error del código, entonces se hubiera pasado a la sección de cierre y no hubiera pasado de ahí hasta que se cumpliera algún criterio. En lugar de ello, se puso a abrir ventas a lo loco.

Ha falta de una respuesta, decidimos proteger el código ante una situación similar en el futuro. Implimentamos un cierre de posiciones por ticket, un limitador explicito de posiciones a 1 posición abierta, y la impresión de datos cada que se haga una operación para rastrear si el problema es la data que proporcionó el broker.

Hasta ahora va bien, pero si alguien tiene una experiencia similar le agradeceré sus recomendaciones o alguna conclusión a la que llegaron.

Razón de la queja: