Discusión sobre el artículo "Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte XXXI): Solicitudes comerciales pendientes - Apertura de posiciones según condiciones"

 

Artículo publicado Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte XXXI): Solicitudes comerciales pendientes - Apertura de posiciones según condiciones:

A partir de este artículo, vamos a crear una funcionalidad que permita comerciar con la ayuda de solicitudes comerciales según una cierta condición. Por ejemplo, al llegar o superar una determinada hora, o bien al superar el parámetro de beneficio establecido, o bien al registrarse un evento de cierre de posición por stop loss.

En resumen, ¿qué nos aportará esto? Esta funcionalidad de la biblioteca permitirá al usuario crear de forma programática y autónoma las condiciones cuyo cumplimiento provocará el envío de una orden comercial al servidor.
Por ejemplo:

  1. Abrir una posición Buy al darse o superarse una cierta hora, y con la condición de que el precio sea menor al valor establecido (dos condiciones según los valores de las propiedades del símbolo).
  2. Cerrar parte de una posición al superarse el parámetro de beneficio establecido (una condición de acuerdo con el valor de la propiedad de la cuenta).
  3. Abrir una posición opuesta al registrarse el evento de cierre de posición por stop loss (una condición de acuerdo con el valor de la propiedad de la cuenta).

Estos son tan solo tres ejemplos sencillos. Pero las condiciones y sus posibles combinaciones pueden ser muchas. En esta etapa, vamos a desarrollar el control del cambio de propiedades de la cuenta, el símbolo y los eventos que suceden en la cuenta actual. Las condiciones de estas tres listas se podrán establecer en cualquier combinación de las mismas.
Vamos a comenzar por lo más sencillo, el control de los cambios de los valores de las propiedades del símbolo y la cuenta. El control de los eventos de la cuenta y la reacción a los mismos los trataremos más tarde.

Para que un objeto de solicitud pendiente pueda funcionar como parte de la lógica comercial (enviar órdenes comerciales según una condición), deberemos añadir a este objeto datos adicionales para guardar las condiciones de activación de la solicitud pendiente y sus métodos de control y procesamiento. El portador de estos datos será una matriz bidimensional. La primera dimensión guardará el número de la condición (o condiciones, pueden ser cuantas deseemos), mientras que la segunda guardará todos los datos de la condición cuyo número se indica en la primera dimensión: el tipo de fuente de la condición (símbolo, cuenta o evento), la propia condición (crearemos una enumeración para cada una de las fuentes), el método de comparación (>,<,==,!=,>=,<=), el valor de control de la propiedad monitoreada y su valor actual.

Autor: Artyom Trishkin