Discusión sobre el artículo "Desarrollamos un Asesor Experto multidivisas (Parte 3): Revisión de la arquitectura"

 

Artículo publicado Desarrollamos un Asesor Experto multidivisas (Parte 3): Revisión de la arquitectura:

Ya hemos avanzado bastante en el desarrollo del asesor multidivisa con varias estrategias funcionando en paralelo. Basándonos en nuestra experiencia, revisaremos la arquitectura de nuestra solución y trataremos de mejorarla antes de avanzar demasiado.

Ya hemos asignado un objeto de experto (de clase CAdvisor o sus descendientes), que supone un agregador de objetos de estrategia comercial (de clase CStrategy o sus descendientes). Al inicio del funcionamiento del asesor, en el manejador OnInit() ocurre lo siguiente:

  • Se crea un objeto de experto.
  • Los objetos de estrategia comercial se crean y se añaden al asesor experto en su array de estrategias comerciales.

En el manejador de eventos OnTick() del asesor sucede lo siguiente:

  • Se llama al método CAdvisor::Tick() para el objeto de asesor.
  • Este método enumera todas las estrategias y llama a su método CStrategy::Tick().
  • Las estrategias en el marco del funcionamiento de CStrategy::Tick() realizan todas las operaciones necesarias para la apertura y el cierre de posiciones en el mercado.

Esquemáticamente, esto puede representarse del modo que sigue:



Figura 1. Esquema de funcionamiento del primer artículo

Fig. 1. Esquema de funcionamiento del primer artículo

La ventaja de tal esquema era que teniendo un código fuente de un asesor que trabaje según una estrategia comercial, podemos modificarlo para que funcionara de forma conjunta con otros ejemplares de estrategias comerciales mediante operaciones no muy complicadas.

Pero la principal desventaja no tarda en hacerse patente: al combinar varias estrategias, debemos reducir en mayor o menor medida el tamaño de las posiciones abiertas por cada ejemplar de estrategia. Y esto puede provocar la eliminación completa de algunos o incluso todos los ejemplares de estrategias comerciales. Cuantos más ejemplares de estrategias incluyamos en el trabajo paralelo o cuanto menor sea el depósito inicial elegido para negociar, más probable será este resultado, ya que el tamaño mínimo de las posiciones abiertas en el mercado es fijo.

Autor: Yuriy Bykov