Discusión sobre el artículo "Experto comercial universal: Las estrategias de usuario y las clases comerciales auxiliares (Parte 3)"

 

Artículo publicado Experto comercial universal: Las estrategias de usuario y las clases comerciales auxiliares (Parte 3):

En este artículo continuamos con la descripción de los algoritmos del motor comercial CStrategy. En la tercera parte de esta serie de artículos se analizan con detalle ejemplos de escritura de estrategias comerciales específicas que utilizan este enfoque. Además, se presta gran atención a los algoritmos auxiliares: el sistema de registro y el acceso a los datos bursátiles con la ayuda de un indexador convencional (Close[1], Open[0], etc.).

En esta parte de la serie de artículos continuaremos familiarizándonos con el motor comercial CStrategy. Recordemos brevemente el contenido de sus partes anteriores. En la primera parte, "Experto comercial universal: Los modos comerciales de las estrategias" se analizaron con detalle los modos comerciales, gracias a los que se puede configurar de forma flexible la lógica de funcionamiento de un experto, dependiendo de la hora y día de la semana. En el segundo artículo "Experto comercial universal: Modelo de eventos y prototipo de estrategia comercial" analizamos con detalle un modelo de eventos que toma como base el procesamiento centralizado de eventos, así como los algoritmos principales de la clase básica CStrategy, que constituyen los cimientos del experto de usuario.

En la tercera parte de la serie, describiremos con detalle ejemplos de asesores basados en el motor comercial ​​CStrategy, así como algunos algoritmos auxiliares que pueden ser necesarios para el desarrollo del asesor. Se prestará especial atención al procedimiento de registro. En realidad, el proceso de registro, a pesar de su función profundamente auxiliar, es un elemento muy importante en cualquier sistema más o menos complejo. Con la ayuda de un buen registrador, es posible comprender de forma rápida las causas de los fallos y encontrar el sitio donde ha tenido lugar dicho fallo. Este registrador se ha escrito usando una técnica de programación especial llamada patrón de "Single" (Singleton). Su análisis será interesante para aquellos que están interesados ​​no sólo en la organización del proceso comercial, sino también en la creación de algoritmos para resolver problemas no estándar.

Además, en este artículo se describen los algoritmos que permiten acceder a los datos de mercado a través de un índice cómodo e intuitivo. De hecho, para mucha gente, trabajar con datos a través de índices como Close[1] o High[0] es su peculiaridad de funcionamiento favorita en MetaTrader 4. Entonces, ¿por qué renunciar a ella, si se la puede utilizar exactamente igual en MetaTrader 5? Este artículo explica cómo hacerlo, y describe al detalle los algoritmos que implementan dicha posibilidad.

Los métodos a redefinir por parte del experto de usuario

En el primer artículo "Experto comercial universal: Los modos comerciales de las estrategias" examinamos con detalle los modos comerciales de la estrategia y sus métodos básicos que deben ser redefinidos. Ahora es el momento de pasar a la práctica.

Cada experto creado con la ayuda del motor comercial CStrategy debe redefinir los métodos virtuales responsables de algunas propiedades y del comportamiento del propio experto. Vamos a enumerar estos métodos redefinidos con un recuadro que consta de tres columnas. En la primera de ellas se muestra el nombre del método virtual, en la segunda, el evento o acción que se debe seguir o ejecutar. En la tercera se da una descripción del uso de este método. Aquí está el recuadro:

Método virtual Evento/acción Utilidad
OnSymbolChanged Se invoca cuando cambia el nombre del instrumento comercial En caso de cambiar el instrumento comercial, los indicadores del experto deben ser reinicializados. Este evento permite llevar a cabo una reinicialización de los indicadores del experto.
OnTimeframeChanged Cambio del marco temporal de trabajo En caso de cambiar el marco temporal de trabajo, los indicadores del experto deberán ser reinicializados. Este evento permite llevar a cabo una reinicialización de los indicadores del experto.
ParseXmlParams Análisis de los parámetros de usuario de la estrategia, descargados a través de un archivo XML La estrategia debe reconocer de forma autónoma los parámetros XML pasados ​​a este método, y configurar sus ajustes en consecuencia.
ExpertNameFull Retorna el nombre completo del experto El nombre completo del experto consta del nombre de estrategia y, por regla general, del conjunto único de parámetros de la estrategia misma. El ejemplar de la estrategia debe determinar el nombre completo para sí mismo de forma independiente. Este nombre también se utiliza en el panel visual, en la lista emergente Agent.
OnTradeTransaction Surge en el caso de que aparezca un evento comercial Para funcionar, algunas estrategias necesitan analizar los eventos comerciales. Este evento permite enviar el evento comercial al experto final, así como analizarlo.
InitBuy Inicializa la compra Uno de los métodos básicos que deben ser redefinidos. En este método, se debe realizar la compra, si se forman las condiciones comerciales adecuadas para ella.
InitSell Inicializa la venta Uno de los métodos básicos que deben ser redefinidos. En este método, es necesario realizar la venta, si se forman las condiciones comerciales adecuadas para ello.
SupportBuy Acompaña una posición larga abierta previamente La posición abierta larga anteriormente debe ser acompañada. Por ejemplo, ponerle una parada defensiva Stop Loss o cerrar la posición en caso de que aparezca una señal de salida de la posición. Todas estas acciones se deben ejecutar en este método.
SupportSell Acompaña una posición corta abierta con anterioridad La posición corta abierta anteriormente debe ser acompañada. Por ejemplo, ponerle una parada defensiva Stop Loss o cerrar la posición en caso de que aparezca una señal de salida de la posición. Todas estas acciones se deben ejecutar en este método.

 Recuadro 1. Los métodos virtuales y su designación

Los métodos más importantes a redefinir son InitBuy, InitSell, SupportBuy y SupportSell. En el recuadro están destacados en negrita. Si, por ejemplo, olvidamos redefinir el método InitBuy, la estrategia de usuario no realizará compras. Si no se redefine uno de los métodos Support, entonces la posición abierta podría no poderse cerrar nunca. Por lo tanto, al crear un experto, proceda a la redefinición de estos métodos con mucho cuidado.

Autor: Vasiliy Sokolov