Cómo crear una Tarea Técnica al encargar un indicador

15 marzo 2018, 11:45
MetaQuotes Software Corp.
0
2 476

Contenido


¿Cómo ayuda el trading algorítmico a los tráders?

Los tráders buscan leyes en el comportamiento del mercado que ayuden a elegir los momentos adecuados para realizar transacciones comerciales. En este caso, es deseable además excluir del comercio los componentes de naturaleza aleatoria y la influencia de factores externos: rumores, noticias, fatiga, etcétera.

Como resultado de la observación de los gráficos de precios, el tráder dispone de una serie de reglas formales que permiten realizar un análisis objetivo de los gráficos de precio o ticks. Para facilitar este análisis, se escriben los indicadores técnicos.

El siguiente paso es desarrollar una serie de normas que permitan al tráder comerciar de una forma estrictamente mecánica según un cierto sistema, sin dejar pasar ni una sola entrada, incluso si le parece que una señal concreta no conviene para la situación en curso. Si bien las señales del sistema comercial se someten a una descripción formal, será mejor que un robot comercial se encargue de operar por nosotros.

Los robots comerciales funcionan las 24 horas del día y no conocen la fatiga, ni la duda. Pero no todos pueden escribir uno. En este caso, solo queda una solución: encargárselo a un programador especializado en trading algorítmico. Para ello, es imprescindible componer una Tarea Técnica en la que se describan los requisitos del programa deseado, ya sea un indicador o un robot comercial. En este artículo vamos a analizar las preguntas a las que debe responder un cliente que quiera recurrir al servicio Freelance.

Complemente el texto con imágenes y vídeos

Техническое задание должно быть написано строго, структурировано и содержать всё необходимое для понимания — формулы, логические условия, куски кода, описание алгоритма.

Todos los problemas de nuestra sociedad están relacionados con la falta de entendimiento entre personas. El encargo de un programa en Freelance no es una excepción. Pregunte a cualquier desarrollador, y seguro que le dirá que la parte más laboriosa del encargo es aclarar "qué quiere el cliente". Incluso si ambas partes hablan el mismo idioma, normalmente se debe aclarar si el uno entiende al otro. Es una pena detectar este hecho al entregar un trabajo ya ejecutado. La molestia la experimentan ambas partes, tanto el Cliente, como el Ejecutor. En ocasiones, el problema llega incluso a manos del Arbitraje.

Y resulta que precisamente entonces, cuando el trabajo se encuentra en el Arbitraje, las partes al fin comienzan a comprenderse mutuamente. A usted le parecerá que pensamos y que expresamos nuestra ideas con palabras. En realidad, pensamos con imágenes. Por eso, para que su Tarea Técnica sea lo más comprensible posible, no solo para usted, sino también para los potenciales ejecutores, no repare en componer dibujos para la tarea.

La norma es sencilla: en cada situación de mercado, cada patrón incluido en el encargo debe ir acompañado por un dibujo explicativo en su Tarea Técnica. Al mismo tiempo, el propio dibujo o diagrama debe contener solo la información más necesaria, y no contradecir el texto. Elimine de la imagen toda la información innecesaria, anote los lugares importantes e indique con flechas los niveles, patrones, etcétera.

Algunos Clientes crean gigantescas descripciones textuales, pensando que lo han hecho de forma minuciosa y comprensible. Pero en realidad, con frecuencia resulta complicado abrirse paso a través de un texto a secas. Mientras que el Ciente y el Ejecutor pueden tratar de forma diferente un término determinado, la imagen aclara esta diferencia de inmediato: una flecha y un círculo se percibirán como una flecha y un círculo, y no de otra forma. Invirtiendo 5 - 10 minutos en la creación de ilustraciones comprensibles para el desarrollador, usted no solo estará comunicando sus ideas, sino que también recibirá con mayor rapidez un programa plenamente funcional.

Y por supuesto, los dibujos se deben colocar directamente en el texto del mensaje, no se deben adjuntar en forma de archivos. Hay muchos desarrolladores que no van a descargar el archivo para verlo, y por lo tanto pueden malinterpretar la tarea o incluso omitirla.

Vea cómo se puede utilizar el editor para formalizar el texto:


Y en último lugar: con frecuencia, los Clientes escriben "Explicaré los detalles por Skype, así resultará más rápido y comprensible". ¡Pues no, no lo será! Será más comprensible si usted crea un vídeo con la descripción, y además trata de hacerlo de manera profesional: de forma clara, sin pausas ni titubeos. Pero para ello, hay que crear un plan del vídeo, y para crear el plan, deberá escribir un guión y un texto, al que usted tendrá que poner voz. Si intenta hacer esto en una única toma, verá que es imposible que le salga. Por Skype sucederá lo mismo. Por eso, tenemos que prepararnos y grabar el vídeo hasta que resulte claro y comprensible. Lo colgamos en Youtube, y después de ello, lo insertamos en el texto de la Tarea Técnica en el Encargo.

Ahora, vamos al grano: comenzaremos analizando un par de ejemplos de Tarea Técnica para el desarrollo de un indicador.

Programas útiles para crear una TT

Para crear y publicar rápidamente capturas de pantalla, recomendamos el programa ScreenPresso. Permite añadir fácilmente a una captura de pantalla textos, flechas, figuras y efectos visuales. En el programa existen multitud de ajustes, y permite grabar vídeos con facilidad. Las imágenes creadas se pueden colgar en el chat de su encargo en Freelance con solo arrastrarlas o copiarlas.

Si necesita más herramientas para editar la captura de pantalla, entonces puede recurrir a otro editor gráfico: PicPick. Ambos programas son gratuitos y de uso particular. Podrá combinarlos, pues son complementarios. Claro está que en internet podrá encontrar una gran cantidad de programas para editar capturas de pantalla.

Para crear proptotipos de paneles gráficos, pruebe el programa Pencil. Permite bosquejar en 5 - 10 minutos un croquis para la interfaz necesaria. En él se puede crear un bloque-esquema para explicar visualmente algoritmos complejos. Si usted necesita más información, lea otros análisis en la Red, por ejemplo Seis programas para crear diagramas.

La composición del bloques-esquema es un procedimiento excelente para visualizar la lógica del programa, en ellos podrá crear las transacciones según las condiciones, los ciclos, etcétera. Si usted tiene buenos conocimientos de matemáticas, podrá describir las fórmulas y cálculos con la ayuda de Microsoft Excel. Además, en ese mismo programa podrá crear gráficos, diagramas, paneles y bloques-esquema con la ayuda de SmartArt

Vamos a resumir. No importa qué programa use para describir la idea de su indicador. Lo importante, es que la presentación sea comprensible para el Ejecutor. Use sin falta imágenes, bloques-esquema y gráficos para complementar la descripción textual. Al crear el encargo en Freelance, todo esto ayudará a la comprensión mutua y ahorrará tiempo.

Formulación de la Tarea Técnica en forma de Algoritmo

Cada indicador representa una cierta idea. Por eso, primero es necesario describir la idea con palabras e imágenes, si esto es posible. Sin dicha descripción, será muy complicado entender qué quiere precisamente el Cliente.

Ahora podemos proceder a la descripción del propio algoritmo de trabajo/cálculo/representación del indicador. Describa secuencialmente las operaciones, en forma de algoritmo. Y es que solo en el que caso de que exista un algoritmo, el Desarrollador podrá escribir un código para este. Si en la descripción de la idea o el algoritmo existen términos, descríbalos con precisión, para que haya seguridad de que ambas partes comprendan de la misma forma su significado.

De ser posible, enumere y ordene escrupulosamente las etapas del algoritmo en el orden en que van a funcionar. No salte de una parte de la TT a otra sin describir por completo el bloque/módulo/etapa finalizado de la Tarea técnica.

Para describir los términos, será mejor usar listas, por ejemplo:

  1. rango diario: distancia entre el precio máximo y mínimo durante el día;
  2. rango medio: valor medio del rango diario en N días;
  3. segmento plano: rango de precios durante el día, donde han tenido lugar los mayores volúmenes de transacciones;
  4. ...

Para designar las etapas se pueden usar cifras, listas y fuentes en negrita.

Intente hacer la descripción de la TT en forma de secuencia de acciones que fluyan una tras otra, en el mismo orden en el que se ejecutarán en el programa que implemente su indicador. Más abajo se muestran ejemplos de TT.

Ejemplos de Tarea Técnica

Ejemplo №1

Necesitamos un indicador ZigZag que se construya con osciladores

Idea del indicador

Necesitamos construir un indicador ZigZag cuyos extremos definiremos con la ayuda de un oscilador. Servirá cualquier oscilador normativo clásico para el que exista el concepto de zonas de sobrecompra y sobreventa. En primer lugar, procesamos el algoritmo con el indicador WPR, luego añadimos de forma análoga la posibilidad de construir el Zigzag con otros indicadores como:

  • CCI
  • Chaikin
  • RSI
  • Stochastic Oscillator

Algoritmo y Términos

La primera etapa abarca la construcción del Zigzag:

  1. Se llaman zonas de sobrecompra a las velas en las que el valor del indicador es mayor que Value > Lmax (Lmax=-20).
  2. Se llaman zonas de sobreventa a las velas en las que el valor del indicador es menor que Value < Lmin (Lmin=-80).
  3. Los valores Lmax y Lmin se muestran en los parámetros del indicador.
  4. En las velas de la zona de sobrecompra en el punto High ponemos un punto amarillo: los puntos H.
  5. En las velas de la zona de sobreventa en el punto Low ponemos un punto verde: los puntos L.
  6. Si entre los puntos H existe aunque sea un punto L, comenzamos a buscar en el intervalo entre ellos el punto LL, la vela con el precio Low mínimo y que será el punto LL. En caso general, el punto LL no es obligatoriamente un punto L. A nosotros nos interesan las velas con el precio Low mínimo.
  7. Si entre los puntos L existe aunque sea un punto H, comenzamos a buscar en el intervalo entre ellos el punto HH, la vela con el precio High mínimo y que será el punto HH. En caso general, el punto HH no es obligatoriamente un punto H. A nosotros nos interesan las velas con el precio Low mínimo.
  8. Combinamos los puntos LL y HH entre sí para conseguir el indicador ZigZag. El color por defecto será el amarillo. La primera etapa ha finalizado.




La segunda etapa implica el color del Zigzag:

  1. Buscamos tres puntos HH seguidos, de forma que se cumpla la condición: cada punto HH consecutivo ha de estar por encima del anterior.
  2. Si para dos puntos LL que se encuentren entre ellos se cumple la condición de que el segundo LL se halle por encima del primero, el segmento del Zigzag entre los cinco puntos lo colorearemos de rojo.
  3. Si después de un grupo de cinco extremos localizado en el Zigzag se encuentra un punto HH y otro LL más, hallados por encima de los puntos HH y LL precedentes, entonces colorearemos de forma adicional 2 segmentos del Zigzag en azul.
  4. Continuamos hasta que no se infrinja la condición. Así marcamos la tendencia ascendente.
  5. De forma análoga buscamos puntos LL descendentes consecutivos y llevamos a cabo todas las acciones como en los puntos 1- 4. Coloreamos los segmentos en rojo: así marcamos la tendencia descendente.



En la tercera etapa añadimos la posibilidad de indicar el tipo necesario de indicador, conforme al cual se construirá el Zigzag: CCI, Chaikin, RSI, Stochastic Oscillator.

  1. Añadimos el primer parámetro del tipo, que se indicará con una lista. El valor por defecto será WPR.
  2. Para cada tipo añadimos nuestros parámetros Lmax y Lmin con los valores por defecto.
  3. Los nombres de los parámetros máximos y mínimos deberán contener el nombre del indicador, es decir, del tipo WPRmax, CCImax, STOmax, etcétera.

La cuarta etapa consiste en añadir un panel gráfico para gestionar los parámetros del indicador.

  1. En el panel deben existir casillas de verificación con todos los tipos de osciladores, para cambiar rápidamente de tipo.
  2. El panel debe ser capaz de minimizarse y expandirse con un click del ratón.
  3. El panel se puede desplazar por el gráfico.
  4. El indicador se puede quitar del gráfico a través del panel.


Cálculos: El indicador se usará tanto para trabajar con los gráficos, como para realizar la optimización. Por eso, el algoritmo debe ser rápido y económico en cuanto al gasto de tiempo.

La admisión del trabajo se realiza por etapas: cada etapa deber ser ejecutada por orden.


Ejemplo №2

Necesitamos un indicador NRTR con envío de mensajes al correo y al terminal móvil

1 Es necesario reescribir el indicador NRTR de MQL4 en MQL5. El código se encuentra aquí: https://www.mql5.com/es/code/7760

2. Al cambiar de color, se envía una notificación Push al email sobre el cambio de tendencia.

3. Añadimos a los parámetros las horas de trabajo en las que se permite enviar notificaciones: no se deben enviar por la noche. Deben existir dos parámetros:

  • StartHour — desde qué hora de la mañana se pueden enviar;
  • EndHour — hasta qué hora de la tarde se pueden enviar.

4. Añadir parámetros al permiso de envío de mensajes:

  • SendPush — permitir el envío de mensajes Push;
  • SendEmail — permitir el envío de emails al correo.

5. El texto del mensaje enviado tiene el formato:

NRTR en EURUSD H1 ha virado hacia arriba. Up=1.23560, Down=1.23300, Brick=260 pips

   donde:

  • El nombre y el marco temporal se toman del gráfico en el que está iniciado el indicador;
  • Up — nivel superior del canal;
  • Down — nivel inferior del canal;
  • Brick — grosor del canal en puntos (tamaño del stop al abrir la posición).



6. El email y los mensajes Push se envían solo después de cerrarse la vela que haya roto el canal.

7. Solo se permite enviar una señal por barra.

8. Para controlar el funcionamiento del indicador en un VPS, debemos escribir también el texto del mensaje enviado en el log.

9. Tenemos que obtener del indicador los valores de 3 búferes:

  • Up — límite superior;
  • Down — límite inferior;
  • Trend — dirección de la tendencia, -1 o 1.

10. El indicador debe escribirse de forma óptima desde el punto de vista de la productividad.


Ejemplo №3

Necesitamos escribir un indicador

Parámetros de entrada:
  1. Primera pareja de divisas
  2. Segunda pareja de divisas
  3. Pareja calculada
  4. Precio para el cálculo - Bid/Ask

El punto 3 no es un parámetro de entrada, se trata simplemente del resultado de la división de los cursos del p.1 y el p.2, se muestra en el gráfico para el conocimiento del usuario.

Principio de acción:
La esencia de la idea es la siguiente: si tomamos dos parejas de divisas con el mismo denominador (preferiblemente alguno popular), por ejemplo, EUR/USD y GBP/USD, y dividimos el curso de una por el curso de otra, como resultado, según las normas de división de fracciones y tras todas las reducciones, obtendremos el curso de la pareja EUR/GBP.



El indicador se dibuja en una ventana aparte. La línea vertical negra es el momento de tiempo actual, a partir del cual se dibujan hacia la izquierda dos curvas:

  • una es el curso calculado, verde en el dibujo,
  • la otra es el curso real, roja en el dibujo

Los cálculos se realizan en cada tick. Puesto que un intervalo del gráfico del indicador en horizontal ocupará mucho más espacio que en el propio gráfico, deberemos demarcar de alguna forma los segmentos temporales. Por ejemplo, si tenemos el periodo M1 en el gráfico, cada minuto en el gráfico del indicador se dibujarán líneas verticales.


Qué podemos indicar en la Tarea Técnica para la creación del indicador

Los indicadores se basan en un cierto procesamiento de los gráficos de precio o de las secuencias de ticks. El resultado y el objetivo de este procesamiento es obtener una herramienta visual para realizar el análisis técnico. Por eso, al encargar un indicador, debemos resolver varias cuestiones cuya respuesta ayudará al programador a comprender qué necesita usted precisamente.

Tipo de dibujado del indicador

  1. Líneas: son el aspecto más sencillo y comprensible del gráfico.
  2. Histogramas: se usan con mayor frecuencia en los osciladores.
  3. Flechas y símbolos: son cómodos para designar los momentos de entrada/salida. A veces con ellos se construyen incluso canales (NRTR) o sistemas Trailing Stop.
  4. Zonas y canales, por ejemplo, Envelopes.
  5. Segmentos: pueden utilizarse dentro de indicadores complejos para dibujar líneas.
  6. El estilo Zigzag, por ejemplo, el Zigzag a color.
  7. Barras y velas: para representar gráficos con símbolos ajenos o velas personalizadas basadas en los cálculos. Por ejemplo, Heiken-Ashi.
  8. Combinación de los estilos enumerados.

Algunos tipos de indicadores necesitan para el dibujado varias series de datos (se llaman con los búferes de indicador). Para cada búfer es necesario indicar un nombre, de manera que luego sea más fácil aclararse con los valores del indicador en la Ventana de datos.

Colores de dibujado

¿Debemos dibujar con un color, o utilizamos varios? Si comprendemos bien el asunto, no habrá dudas. Pero si debemos cambiar dinámicamente el color, dependiendo de la situación actual, entonces necesitaremos un algoritmo claro para describir las condiciones.

Dónde se dibuja el indicador

  1. En la ventana principal del gráfico
  2. En la subventana del gráfico

Marcos temporales y símbolos para el cálculo y la muestra

  1. ¿El indicador utilizará para los cálculos solo su pareja símbolo/marco temporal o recurrirá a los datos de otros símbolos/marcos temporales?
  2. ¿Debemos prohibir la muestra del indicador en algunos símbolos/marcos temporales?
  3. ¿Qué hacemos si para los cálculos no hay barras suficientes de un símbolo/marco temporal ajeno?

Qué precios, volúmenes e indicadores se usan para los cálculos

Los indicadores clásicos siempre han trabajado solo con los precios Open, High, Low y Close del marco temporal propio. Pero, en nuestro tiempo, las posibilidades del análisis técnico y los lenguajes de programación MQL5/MQL4 permiten usar las series temporales de datos más diferentes, incluyendo los volúmenes y valores de otros indicadores.

  • ¿Necesitamos la posibilidad en los parámetros del indicador de establecer el tipo de precio conforme al que se realizan los cálculos?
  • ¿Debe el indicador saber trabajar con los datos de otro indicador? Por ejemplo, podemos superponer una media móvil al gráfico RSI. No todos los tráders conocen esta posibilidad, es posible que les resulte útil.
  • ¿Debemos mostrar/dibujar los niveles en los indicadores que se construyen en una subventana aparte del gráfico? Por ejemplo, como los niveles 30 y 70 para Stochastic Oscillator.

Si para los cálculos se usan los datos de otros indicadores, será mejor mostrar el código fuente de estos indicadores. Está claro que el desarrollador puede explicar cómo sacar los valores de un indicador adicional, pero la presencia del código fuente puede ayudar a comprender mejor lo que podemos esperar de él.

Componentes y nombres de los parámetros de entrada

Mejor presentar al desarrollador una lista con los parámetros y sus nombres, de la forma que aparecerán en el terminal. Normalmente, el programador da a las variables de entrada un nombre, para que el código sea más cómodo de leer. Al tráder, como usuario del programa, le serán necesarios los nombres de los parámetros que descubren su esencia y objetivos. Por ejemplo, en el indicador Chaikin Volatility (CHV) existen tales parámetros, que le serán familiares al tráder:

  1. Periodo de suavizado: cuántos valores se toman para la promediación de la matriz auxiliar.
  2. Periodo CHV: cuántas barras se toman para obtener la matriz auxiliar según el método de Chaikin.
  3. Tipo de suavizado: qué tipo de suavizado se usará para el oscilador.

El desarrollador, basándose en ello, escribe en el código:

//--- enumeración de los tipos de suavizado
enum SmoothMethod
  {
   SMA=0,// Media sencilla
   EMA=1 // Exponencial 
  };
//--- parámetros de entrada 
input int          InpSmoothPeriod=10;  // Periodo de suavizado
input int          InpCHVPeriod=10;     // periodo de cálculo de CHV 
input SmoothMethod InpSmoothType=EMA;   // Método de suavizado

Los comentarios después de los valores se mostrarán como nombres en la ventana de parámetros para el tráder:


Inicio de los cálculos en cada tick

Con cada cambio de precio en el indicador se inicia una función-procesador especial del evento Calculate, en la que tienen lugar todos los cálculos necesarios. Es posible que su indicador no tenga necesidad de procesar cada tick, bastará con iniciar los cálculos con la aparición de una nueva barra.

Si actualizamos los cálculos solo al aparecer una nueva barra, la velocidad de la simulación del asesor, llamada por su indicador, crecerá exponencialmente. Por eso, deberá resolver esta cuestión y describir este punto claramente en la Tarea Técnica.

Además, un algoritmo de cálculos ineficaz en el indicador también puede provocar que el tiempo de simulación del asesor aumente. Pídale al desarrollador que perfile el código para descubir las funciones lentas y acelerar el código. Y por supuesto, no debemos olvidarnos de la optimización analítica del código, cuando podemos reducir significativamente el número de cálculos gracias a las transformaciones matemáticas. Esto es actual para muchos indicadores basados en los métodos de promediación de series temporales.

Redibujado del indicador

El redibujado del indicador con la historia es uno de los errores desagradables que se dan al crear un sistema comercial. Entendemos por redibujado el comportamiento del indicador en el que los cálculos dependen de su tiempo de inicio. Por ejemplo, si iniciamos un indicador así en el gráfico EURUSD M5 y dejamos el terminal conectado durtante 24 horas, y al día siguiente lo iniciamos con exactamente los mismos parámetros de entrada en otro gráfico EURUSD M5, podemos observar que los valores y el aspecto de los indicadores se diferencian.

Con mayor frecuencia, el motivo del efecto radica en el propio algortimo. Y un desarrollador con experiencia, normalmente, puede de forma autónoma reconocer este comportamiento y advertir al cliente sobre los potenciales problemas que pueden darse al utilizar ese indicador en el comercio.

Alertas, mensajes Push, envío de emails, informes, capturas

Si le resulta imprescindible que el indicador le notifique en determinados momentos la situación actual del mercado, el desarrollador puede añadir al código el envío de notificaciones Pushy correos electrónicos. Además, para llamar la atención del tráder, se pueden añadir al indicador las funciones PlaySound(), Alert() y MessageBox(). Si usted tiene su propia página web o blog, quizá le sea necesario SendFTP().

En el artículo de Andrey Voytenko Cómo crear un bot para Telegram en el lenguaje MQL5 se muestran otras posibilidades de la automatización del comercio manual. Posiblemente, usted querrá tomar ciertas ideas de este.

Panel gráfico de control

Si usted quiere hacer el control del gráfico más flexible, considere añadir un panel gráfico de control. El artículo"Control de eventos en MQL5: cambiar el periodo de la media móvil sobre la marcha" salió hace mucho tiempo, en este, se muestra la misma idea. Desde entonces, las posibilidades del lenguaje MQL5 se han hecho práctiamente ilimitadas. Eche un vistazo a los ejemplos en los artículos Oscilador universal con interfaz gráfica y Cómo añadir rápidamente un panel de control a un indicador o asesor. Y, por supuesto, recomendamos leer la serie de artículosInterfaces gráficas de Anatoli Kazharski.

Si lo que usted necesita es, no solo un indicador que dibuje varias líneas, sino un complejo de análisis completo y preparado, añadirle un panel gráfico hará su trabajao bastante más cómodo. Además, en este caso, deberá pensar en los eventos a los que reacciona y qué funcionalidad deberá implementar dicho panel:

  • expandir/minimizar el panel con un click del ratón en una esquina;
  • arrastrar el panel por el gráfico;
  • cambiar el tamaño del panel;
  • evento del ratón: click del botón izquierdo/derecho, desplazamiento;
  • evento de teclado: pulsar, mantener la tecla, combinación de teclas;
  • evento de temporizador;
  • eventos personalizados que gestionan unos programas con otro distinto, etcétera.

Familiarícese con el apartado Tipos de eventos del gráfico para conocer todas las posibilidades disponibles.

Capturas de pantalla aclaratorias

Es bien conocido el refrán "Mejor verlo una vez, que oírlo cien veces". Por eso, si su indicador debe dibujar/visualizar en el gráfico situaciones concretas de una forma completamente definida, necesitará hacer ilustraciones bien comprensibles. Recomendamos mostrar en ellas solo lo imprescindible, el tamaño de las imágenes no debe ser grande, no tiene sentido hacer capturas gigantescas. Podrá encontrar algunos consejos útiles en el artículo ¿Cómo presentar correctamente un Producto a la venta en el Mercado?

Por ejemplo, si usted publica un programa para reconocer patrones, muestre varios patrones que han sido encontrados en el gráfico. Tome varias capturas grandes y de buena calidad y acompáñelas de inscripciones explicativas. 


No merece la pena intentar introducir en una sola captura multitud de pequeños detalles. Aquí tenemos un ejemplo de lo que no hay que hacer:


Y es que se podría haber hecho una serie de 2-3 capturas en lugar de una sola. En dichas capturas se podrían haber mostrado todos los patrones de reconociemiento a mayor tamaño, y conseguir además que el texto fuese legible. Esto también concierne a los gráficos de precio, intente no usar escalas demasiado pequeñas, dele a los usuarios la posibilidad de percibir los detalles. Y no utilice, a no ser que sea imprescindible, esquemas de color no estándar, no muestre en los comentarios texto (mensajes de la función Comment) que tape el gráfico. Destaque en los colores habituales las señales de compra y venta (azul y rojo). Una captura así no sería adecuada:


Si nos esforzamos un poco, entonces podremos convertirlo en una variante mejor.


Aquí se ha elegido una escala de gráfico mayor, mostrada en un esquema de colores estándar "Black & White", se ha quitado una inscripción que estorbaba, el nombre del patrón se ha plasmado con otro tipo de fuente y color, los lugares de ruptura del triángulo se han marcado adicionalmente con contorno rojo. Las propias flechas de la ruptura están también dibujadas en los colores habituales para la mayoría de los tráders. Una captura así no contiene detalles sobrantes y muestra solo la idea más esencial.

Logs y registros para la depuración

Es prácticamente imposible escribir un programa libre de errores. Y cuanto más complejo sea el programa, más situaciones imprevistas aparecerán en él. Por eso, esté preparado para que el comportamiento del indicador se diferencie de lo que usted espera. Esto puede estar provocado por los motivos que describimos más abajo.

  • Error del programador: simplemente, el código se ha escrito de forma incorrecta en algún lugar y se ha omitido algún momento de la Tarea Técnica.
  • Una situación imprevista en el gráfico, para la cual su TT no contiene una opción preparada de acción. Es decir, el programa funciona correctamente, pero hay una cierta variante de desarrollo de eventos que usted no ha incluido en el algoritmo, y acaba obteniendo otro resultado del esperado. Hay que resolver con el programador qué hacer en este caso.
  • Usted mismo ha hecho algo incorrecto: ha indicado parámetros externos no permitidos, ha implementado una historia del instrumento insuficientemente profunda, no ha adjuntado algunos archivos para el funcionamiento correcto).
  • O algo más.

Si aparece un error, es necesario comprender la causa del mismo. Y esto significa que tenemos que tratar de obtener toda la información para la investigación. En este caso, necesitaremos no solo mostrar la situación con la ayuda de capturas y vídeos, sino también presentar al desarrollador los logs del programa y del propio terminal. Por eso, usted deberá no solo saber dónde se encuentra el Registro de la plataforma, sino también definir de antemano en la Tarea Técnica qué deberá mostrar precisamente el programa y en qué formato deberán estar los mensajes sobre su funcionamiento.

Además, al surgir una situación imprevista, deberá presentar al desarrollador datos adicionales, como se muestra en el artículo de Andrey Khatimlianskii Cómo solicitar un EA y obtener el resultado deseado:

  • Adjunte el archivo set con los parámetros del programa (botón "Guardar" en la ventana de parámetros del asesor)
  • Indique la pareja de divisas y el marco temporal del gráfico
  • Indique la dirección del servidor al que ha sido conectado el terminal y el tipo de cuenta (demo, real, de concurso u otra)
  • Indique la versión del terminal (menú "Ayuda" - "Sobre el programa")
  • Si la comprobación se realiza en el simulador, indique adicionalmente los ajustes del simulador (intervalo de fechas, modo de modelado, modo comercial, depósito inicial, apalancamiento crediticio)

Por eso es deseable indicar en la Tarea Técnica estos datos en un punto aparte para el desarrollador.

Admisión y comprobación del indicador

Podemos comprobar el funcionamiento del indicador no solo en los gráficos online, sino también en el simulador de estrategias en el modo simulación visual. Esto permitirá ahorrar tiempo sustancialmente, y también ver el comportamiento del indicador en diferentes fases del mercado. Además, pida al desarrollador que perfile el código y analice aquellos lugares del programa donde tiene lugar una pequeña pérdida de tiempo. Para las funciones llamadas con mayor frecuencia o cuyo uso de tiempo es más importante, podemos añadir al código temporizadores que recopilen el número de llamadas y el tiempo invertido.

Al detectar un error, es necesario proporcionar al desarrollador todas las situaciones imprescindibles para la descripción y la reproducción del mismo: capturas de pantalla, logs, datos sobre el símbolo/marco temporal, cuenta comercial. Todo ello le ayudará a resolver con mayor rapidez el problema.

Si para el funcionamiento del indicador se necesitan otros indicadores o archivos, asegúrese de que se encuentran en las carpetas necesarias del catálogo de datos de su terminal.

¡Invente, describa, encargue!

Esperamos que este artículo le haya resultado útil, y ahora pueda hacerse una mejor idea de cómo componer una Tarea Técnica de forma clara y comprensible para el programador. También hemos intentado mostrar todas las posibilidades del lenguaje MQL, en el que los desarrolladores escribirán para usted un indicador de cualquier complejidad y belleza.

Si usted nunca ha encargado un programa en Freelnace porque no sabía por dónde comenzar a escribir, intente aprovechar los consejos contenidos en este artículo. Y, por supuesto, procure relacionarse con los desarrolladores en Freelance antes de elegir el Ejecutor. Los programadores conocen perfectamente su materia y le ayudarán a formular los aspectos más complejos en su encargo.

Traducción del ruso hecha por MetaQuotes Software Corp.
Artículo original: https://www.mql5.com/ru/articles/4304

Visualizando la optimización de una estrategia comercial en MetaTrader 5 Visualizando la optimización de una estrategia comercial en MetaTrader 5

En el artículo se ha implementado una aplicación MQL con interfaz gráfica para la visualización ampliada del proceso de optimización. La interfaz gráfica ha sido creada con la ayuda de la última versión de la biblioteca EasyAndFast. En ocasiones, a muchos usarios les surge la siguiente pregunta: ¿para qué necesitamos las interfaces gráficas en las aplicaciones MQL? En este artículo se muestra uno de los numerosos casos en los que pueden resultar útiles para los tráders.

ZUP - zigzag universal con patrones Pesavento. Búsqueda de patrones ZUP - zigzag universal con patrones Pesavento. Búsqueda de patrones

La plataforma de indicador ZUP permite buscar multitud de patrones conocidos, cuyos parámetros ya se han indicado. Pero también podemos ajustar estos parámetros de acuerdo con nuestras exigencias. Asimismo, existe la posibilidad de crear nuevos patrones con la ayuda de la interfaz gráfica ZUP y guardar sus parámetros en un archivo. Después de ello, podremos comprobar rápidamente si se encuentran nuevos patrones en los gráficos.

Comparamos la velocidad de los indicadores de almacenamiento automático en la caché Comparamos la velocidad de los indicadores de almacenamiento automático en la caché

En el artículo se compara el acceso MQL5 clásico a los indicadores con los métodos alternativos del estilo MQL4. Se analizan diversas variantes de estilo MQL4 para el acceso a los indicadores: con almacenamiento de manejadores en la caché y sin él. Se analiza el registro de los manejadores de los indicadores dentro del núcleo MQL5.

Optimización controlable: el método del recocido Optimización controlable: el método del recocido

En el simulador de estrategias de la plataforma comercial MetaTrader 5 solo existen dos variantes de optimización: la iteración completa de parámetros y el algoritmo genético. En este artículo se propone una nueva variante de optimización de estrategias comerciales: el método del recocido. Se muestra el algoritmo del método, su implementación y su método de inclusión en cualquier asesor. El algoritmo desarrollado se ha puesto a prueba con el asesor Moving Average.