Escribir un artículo sobre "Cómo escribir un TOR para un robot de trading" - página 7

 
Andrey F. Zelinsky:

El diagrama de flujo es la parte más inútil, lenta y prácticamente irrealizable de los TdR.

Para entender esto - se puede llevar a cabo un pequeño y muy simple experimento - Los desarrolladores de servicios freelance deben recibir una tarea: "Hacer un diagrama de flujo para dibujar el indicador MA" - y luego evaluar por dos criterios: 1) la corrección y 2) la comprensibilidad.

Una vez me ayudó mucho - cuando no podía manejarlo en mi cabeza...

 
Artyom Trishkin:

Amí me ayudó mucho una vez, cuando no me cabía en la cabeza...

Acabas de decir algo así: "Mi diagrama de flujo me ha ayudado mucho como desarrollador". Tenga en cuenta que, para su organigrama, no estaba prevista una tercera persona que leyera y trabajara con su organigrama.

En este hilo estamos discutiendo "Cómo crear un TOR para un robot de comercio".

No me queda claro para quién y con qué metas y objetivos está escrito este artículo.

Porque hay diferentes grados de detalle y de este detalle se derivan: metas/objetivos/resultados -- es decir, para hablar de TOR -- primero hay que entender a) lo que el cliente espera y requiere del desarrollador y b) lo que se espera y requiere del cliente.

Cuando hablamos de un diagrama de flujo, significa que el cliente entiende claramente el modelo de eventos, comprende y es capaz no sólo de mostrar la organización requerida del programa, sino también de comprobar si todo está implementado como debe ser en términos de código. En este caso, el cliente necesita más un codificador. Y en este caso, es el cliente quien es plenamente responsable de todo, incluida la corrección de su estructura.

Este es un esquema. ¿Qué porcentaje de pedidos se encuentra en este escenario?

Lea el diseño del artículo:

Rashid Umarov:

Una redacción deficiente de los términos de referencia o su ausencia real suele indicar que las normas del sistema de comercio no están formuladas, simplemente no existen. Lo que el cliente llama sistema de comercio, de hecho, es sólo una idea. No se puede empezar a trabajar en tales condiciones, porque muy pronto en el proceso de programación del algoritmo surgirán algunos matices no registrados o simplemente la falta de un algoritmo para ciertas situaciones en el mercado. En este caso , el programador realmente comienza a pensar en las opciones en lugar del Cliente.

Correctamente redactado, salvo por una cosa: la gran mayoría de las tareas se inician, se ejecutan y se completan, en un enunciado de problema difuso. El índice de fracaso debido a los términos de referencia difusos... es fácil de comprobar con los acuerdos de arbitraje. Creo que no es más del 5-10%.

¿Y si hablamos de las recomendaciones para los TdR para la gran mayoría de los clientes -- en tales TdR -- la recomendación de hacer un diagrama de flujo es razonable?

 

Versión actual del artículo.

Lo que necesita para ordenar un robot comercial

Los robots comerciales son programas que ejecutan los algoritmos integrados en ellos. Los algoritmos son un conjunto de acciones que deben realizarse en caso de que ocurra un evento. Por ejemplo, la tarea más común en el comercio algorítmico es la definición del evento "Nueva barra" , tras su aparición, el robot verifica la aparición de señales comerciales y realiza las acciones necesarias sobre ellas.

Pero antes de escribir u ordenar un robot comercial, es necesario tener un sistema comercial con reglas claras para determinar los momentos favorables para realizar transacciones. El desarrollo de cualquier sistema comercial, incluso el más complejo, siempre comienza con cosas básicas, es decir, con el desarrollo de señales comerciales para comprar y vender. A continuación, puede agregarle varias opciones de seguimiento y cierre.

No necesita pasar años detrás del monitor de la terminal comercial para desarrollar su estrategia comercial. Ahora hay cientos de ideas comprobadas publicadas en Internet y en libros que puede probar. E incluso si no está completamente seguro de sus habilidades de programación, esto no es un obstáculo. El servicio Freelance lo ayudará a encontrar el desarrollador adecuado y pagar de forma segura por el trabajo realizado.

Pero antes de saltar al fascinante elemento del comercio algorítmico, le recomendamos que lea artículos útiles sobre el tema:

¿Por qué es importante tener unos buenos Términos de Referencia?

Al solicitar o desarrollar un Asesor Experto, es necesario formular requisitos técnicos para él: qué tareas debe resolver, en qué condiciones se operará, qué sucederá en situaciones de emergencia, qué tipo de control necesita. Los robots comerciales son programas y deben funcionar claramente de acuerdo con la lógica subyacente. Pero antes de programar el algoritmo de acciones necesario, también debe describirse claramente.

La descripción de la estrategia comercial debe emitirse en forma de Términos de referencia. Y cuanto mejor y más claro sea, menos malentendidos habrá entre usted, como cliente, y el programador, como ejecutor de su Orden.

Lo más importante en los Términos de Referencia es la presencia de Reglas de Negociación formales e inequívocas. Incluso si no va a contratar a un experto, pero quiere escribirlo usted mismo, comience por desarrollar estas reglas usted mismo. Elabore unos términos de referencia y asegúrese de incluir elementos sobre la prueba/optimización del asesor experto. También agregue hipótesis para probar la calidad de su estrategia comercial: qué criterios utilizará para seleccionar los parámetros óptimos, por qué considera que estos criterios son importantes.

Incluya todos los pasos para crear un robot comercial en los Términos de referencia; esto ayudará a comprender la esencia del algoritmo no solo para el ejecutante, sino también para usted después de semanas, meses o años. Recuerde, el comercio algorítmico no es un pasatiempo, sino el mismo camino de investigación monótono, durante el cual es necesario documentar las etapas superadas. Para mí, más que para un programador que escribirá un robot para ti.

Desarrolle las habilidades de un burócrata al que le gusta arreglar las cosas. Definitivamente necesitarás esto. Sí, y a los programadores les encantan las órdenes claras.

Lo que debe estar en los términos de referencia

idea comercial

Para una rápida introducción a la esencia de una estrategia comercial, dedique el primer párrafo de su Orden Técnica a la idea/hipótesis que contiene. Por ejemplo: "Si el precio se acerca dos veces al nivel de resistencia y retrocede cada vez, entonces la tercera vez, por regla general, lo supera". Aquí puede adjuntar un gráfico con líneas de resistencia/soporte trazadas, indicadores superpuestos y firmas que ilustran la situación. Para describir la idea, no se requiere dar números específicos o algoritmos de cálculo; en esta etapa, no se requiere explicar cómo determinamos:

  • nivel de resistencia,
  • desglose de nivel,
  • el concepto de "generalmente".

Un pequeño nivel de abstracción en la etapa inicial le permitirá concentrarse en la idea en sí y no en los detalles técnicos. Este método le permite generar posteriormente muchas más variedades de su estrategia comercial: simplemente reemplazará un bloque de estrategia con otro, un indicador con otro, agregará o reemplazará filtros. Al mismo tiempo, la idea en sí no cambiará, solo cambiarán los nombres y valores de los parámetros de entrada de su robot comercial.

Además, es necesario dar una descripción de todos los términos que se utilizan en la descripción de la idea. Si la tendencia es importante para la estrategia, proporcione una descripción clara de cómo se determinará: sobre la base de qué indicador, cómo se determinará la dirección y la fuerza de la tendencia. Las características numéricas de estas definiciones formarán la base de los parámetros de entrada del Asesor Experto, y son ellos los que luego optimizará en el probador de estrategias. Así que nombre la primera sección de sus Términos de referencia - Idea comercial.

Términos

Para describir los términos, recomendamos crear una sección separada de los Términos de referencia - Términos. En él, se escribe un párrafo separado para cada término, los términos mismos están escritos en negrita para resaltar el concepto clave de su estrategia comercial. Si es necesario, agregue una ilustración a la descripción del término, en la que debe mostrar lo más necesario para la comprensión.

Señales comerciales

A continuación, está listo para compilar la tercera sección más importante, Señales comerciales, que describe bajo qué condiciones, condiciones de mercado y lecturas de indicadores, se produce una compra. Para describir cada condición necesaria para generar una señal de compra, es necesario señalar un parámetro numérico, del cual depende la aparición de la señal. Por ejemplo, para una media móvil , este sería el tipo y período de suavizado. Estos parámetros importantes se toman en los parámetros de entrada del futuro Asesor Experto. Describa por separado las condiciones de venta, incluso si son simplemente opuestas a las condiciones de compra; a veces surgen sutilezas que el programador puede entender de manera diferente a usted. Por ejemplo, para una compra, se establece la condición "Indicador> 0": ¿qué escribir para una venta? ¿"Puntuación<0" o "Puntuación<=0"?

Incluso la idea comercial más simple comienza a adquirir rápidamente condiciones y filtros adicionales que confirman la presencia de una señal comercial o viceversa: prohíben un trato. Por lo tanto, es importante realizar capturas de pantalla explicativas para cada situación del mercado, que muestren visualmente los indicadores y configuraciones necesarios. Esto le permitirá lidiar rápidamente con la situación en la que su asesor no vio una señal comercial aparentemente obvia o de repente hizo un trato en el momento equivocado.

Capturas de pantalla y diagramas de flujo

Hay muchos programas gratuitos y útiles en Internet para crear capturas de pantalla y diagramas de flujo. Una pequeña selección de consejos para trabajar con ellos se da en el artículo Cómo redactar un Términos de Referencia al ordenar un indicador . Allí también encontrará consejos sobre cómo ordenar un indicador que muestra con flechas en el gráfico los momentos en que aparecen las señales de compra y venta. Dicho indicador, que funciona por separado del asesor, facilita la verificación y el control del funcionamiento del robot comercial tanto en línea como durante las pruebas visuales.

Duración de las señales/órdenes/posiciones

La segunda parte importante de la estrategia comercial es salir de una posición abierta y eliminar las órdenes pendientes. Además, las propias señales comerciales también pueden cancelarse por tiempo o por la ocurrencia de algunos eventos. También es necesario describir claramente, en cuanto a las señales comerciales, bajo qué condiciones se cerrará la compra / venta, se cancelará la orden realizada, cuándo se cancelará la señal en sí.

Mantenimiento de posiciones abiertas y órdenes pendientes

Si su estrategia comercial requiere establecer niveles StopLoss y TakeProfit, proporcione un algoritmo de cálculo. Si es necesario levantar/mover estos niveles de manera flexible, también es necesario describir las condiciones para tales operaciones. Los niveles de SL/TP se pueden modificar tanto en la apertura de una nueva barra como en cada tick. Es necesario indicar explícitamente este momento en los Términos de referencia y comprender la diferencia en los modos de probar las estrategias comerciales. Le recomendamos que lea el artículo Prueba de estrategias comerciales en ticks reales .

¿Dónde puedo obtener los términos de referencia si no puede redactarlos usted mismo?

Un mandato mal redactado o su ausencia real suele indicar que las reglas del sistema de comercio no están formuladas, simplemente no existen. Lo que en este caso el Cliente llama un sistema comercial, de hecho, por regla general, es solo una idea. Es imposible comenzar a trabajar en tales condiciones, porque muy pronto surgirán matices no explicados o simplemente la ausencia de un algoritmo en ciertas situaciones del mercado en el proceso de programación del algoritmo. En este caso, el programador en realidad comienza a presentar opciones en lugar del Cliente.

Como resultado, el Contratista puede, bajo su propio riesgo y riesgo, completar el trabajo y entregar un robot comercial al Cliente. Pero en este caso, además de perder el tiempo discutiendo cada tema nuevo en un TOR poco claro, también existe la posibilidad de que el trabajo entre en Arbitraje. Porque al aceptar y comprobar dicho trabajo, el Cliente descubre repentinamente que las transacciones no se están realizando como esperaba, pero no podía describir. Y claro, en este caso culpará al Contratista por violar ciertos puntos de los Términos de Referencia y programar incorrectamente el robot. El arbitraje en tales casos comprende rápidamente la diferencia en la competencia de ambas partes y toma su decisión con base en los Términos de Referencia adjuntos a la orden. De acuerdo con las Reglas Freelance , no se tiene en cuenta ninguna correspondencia por el lado antes y durante la ejecución de la Orden:

Al considerar el tema de la disputa en el Arbitraje, solo los Términos de Referencia sirven como base para tomar una decisión.

En la vida, esta opción también es posible: tiene reglas comerciales estrictas, pero por alguna razón no puede redactar los Términos de referencia usted mismo. Por ejemplo, no están seguros de cómo describir ciertas cosas correctamente o necesitan la ayuda de un especialista en matemáticas, redes neuronales, aprendizaje automático, programación, etc. En este caso, puede ordenar la creación de los Términos de referencia también en Freelance, para eso, las categorías "Consultoría de programación" u "Otro" son adecuadas.

Elija una de estas dos categorías, asígnele el nombre "Creación de un TOR para ordenar un robot comercial" e indique el costo inicial del trabajo, como imagina. Un desarrollador de sistemas de comercio experimentado lo ayudará a formular correctamente las Reglas de su estrategia para que sean comprensibles para otro programador. Al mismo tiempo, debería poder trabajar con gráficos, indicadores y objetos gráficos para mostrar las configuraciones de sus señales comerciales mediante capturas de pantalla.

El programador comprenderá su sistema comercial y lo ayudará a escribir una descripción del algoritmo comercial, si es posible. Si no puede formular algunos conceptos por su cuenta (por ejemplo, "impulso" o "rebote del nivel"), puede darle ideas preparadas basadas en su experiencia. Como regla general, cualquier situación en el mercado puede describirse lógicamente (y luego programáticamente) con cierta libertad de interpretación. Y esta variación siempre puede expresarse mediante un determinado parámetro, que luego optimizará en su Asesor Experto.

No hay patrones ideales, ya que el mercado, por un lado, no se repite y, por otro lado, siempre se pueden encontrar situaciones similares en la historia. El resultado de su trabajo conjunto debe ser un Términos de referencia listo para ordenar un robot comercial de acuerdo con su estrategia.

Qué términos usar

Por regla general, en un sistema de comercio existen varios conceptos o términos básicos importantes que describen el estado del mercado o la naturaleza del movimiento de precios. Incluso si le parece que está utilizando un concepto simple y generalmente aceptado, es mejor describirlo claramente. Para cada término, haga un párrafo de descripción.

Por ejemplo, según Bill Williams, una tendencia alcista es cuando las tres líneas de cocodrilo están dispuestas en este orden de abajo hacia arriba: azul, rojo, verde.


Otra definición clásica de una tendencia alcista, de Larry Williams , cuando cada nuevo pico es más alto que el anterior y cada nuevo mínimo no es más bajo que el anterior.


En la descripción de los términos, puede usar capturas de pantalla de los gráficos, no interferirán. En los términos de referencia en sí, resalte los términos en negrita; deje que el artista les preste atención y haga una pregunta si algo no está claro.

Cuando se utiliza un determinado término en la descripción de una estrategia, es imposible referir al Contratista a otras fuentes (sitios web, libros, foros, etc.), argumentando que esto ya es bien conocido. Todo debe ser descrito aquí y ahora, no se permite "lo explicaré más tarde en Skype". No le tomará más de media hora escribir todos los términos en los TOR, pero luego le ahorrará tiempo que gastará en corregir errores debido a malentendidos.

Qué escribir en una descripción de trabajo en Freelance

Al crear un trabajo, describa en unos pocos párrafos la esencia general de su idea comercial para que los posibles artistas entiendan lo que necesita. La descripción del trabajo no necesita revelar las reglas del sistema comercial ni proporcionar detalles sobre los indicadores utilizados.

La descripción podría verse así:

Escriba un asesor experto para operar en inversiones de tendencia. Las señales de inversión serán patrones de acción del precio. Para determinar la tendencia, se utilizarán los indicadores ADX, Alligator y MACD; la elección del indicador se establece mediante los parámetros de entrada del asesor.

Idea general de una estrategia comercial

Aquí puede especificar en qué instrumentos operará el robot, si operará con la tendencia, cómo se determina y en qué período de tiempo. Si operamos con la tendencia, entonces, ¿cómo ocurre la entrada: en un retroceso, en la ruptura de nuevos extremos, etc.

En general, solo hay dos estrategias comerciales en los mercados financieros: continuar moviéndose y volver al promedio. Su idea debe relacionarse con una de estas dos estrategias y explicar cómo abrirá operaciones: en el mercado, después de la confirmación o a un mejor precio.

Descripción de la configuración para esperar una Señal

... es necesario formar un piso con una ruptura posterior / o esperar el final de la sesión europea y recibir señales solo en la dirección de su movimiento

Descripción de la señal

... Parámetros técnicos de la descripción - tendencia / retroceso / ruptura - todo está estrictamente formalizado

Es mejor depurar primero las señales de compra y venta por separado

Sería mejor si el asesor pone etiquetas / objetos de señal en el gráfico

Es mejor si los indicadores de señal se hacen por separado.

Vida útil de la señal

... cuánto tiempo es válida la señal - en barras / horas / hasta el final de la sesión / día

Realización de órdenes y apertura de posiciones

... hay alguna característica, por ejemplo, no configuramos SL / TP de inmediato,

o cuántos intentos hacemos para entrar en el mercado,

o configurando diferentes oredermagic/ordercomment dependiendo del tiempo/configuración/patrón

algo más

Mantenimiento de una posición comercial/orden

... hay una parada final o no

cuando enciende TS

¿Movemos las órdenes pendientes detrás/contra el precio?

rastrear la ganancia/pérdida actual en una posición abierta

algo más

Cancelación de una orden y cierre de una posición

... eliminar órdenes por tiempo/número de barras/fin de período/aparición de señal opuesta/pérdida de configuración

... cerrar la posición por tiempo/número de barras/final del período/beneficio acumulado/aparición de la señal opuesta/setup

algo más

Cálculo de lote para hacer un pedido

.... del saldo

reparado

de la ganancia acumulada

basado en los resultados de las últimas N operaciones

del riesgo (distancia SL)

algo más

Manejo de errores comerciales y estado del entorno

... registros detallados al enviar órdenes comerciales

Procesamiento de reinicio de terminal/conexión/servidor

comentarios a través de mensajeros/correo electrónico

La diferencia entre operar en la apertura de la barra y dentro de la barra

... las señales pueden desaparecer y aparecer durante la vida útil de la barra

Estrategias de garrapatas/scalping

... necesita tener una buena idea de lo que es, cuanto menos TakeProfit/StopLoss en puntos, más crítica es la estrategia para spreads/comisiones/retrasos en la red/calidad del historial disponible/velocidad del propio robot.

Cualquier deterioro de las condiciones puede acabar con la estrategia.

Cuadrículas, martingalas, promedios y las desventajas de estas mejoras

... Qué son, por qué son populares y cuánto pueden ayudar a estirar temporalmente la estrategia. El riesgo aumenta, aunque puede alargar la vida de una mala estrategia

Qué buscar al elegir un contratista

... cuestiones de fondo

No pretende impresionar

Da plazos claros

Indica lugares poco claros en los TOR inmediatamente, y no después de 2 meses de discusión

Un buen programador valora su tiempo y el tuyo, por eso ama un TOR consistente y bien desarrollado.

Lo que un programador no puede hacer por ti

Convierte una estrategia perdedora en un robot rentable

Optimizar e identificar cualquier deficiencia

Escriba un programa sin errores; seguirán siéndolo. Encontrarlos y describirlos de forma comprensible es tu tarea.


 

La versión actual del artículo, la sección Descripción de la configuración para esperar una Señal continuó y más

Lo que necesita para ordenar un robot comercial

Los robots comerciales son programas que ejecutan los algoritmos integrados en ellos. Los algoritmos son un conjunto de acciones que deben realizarse en caso de que ocurra un evento. Por ejemplo, la tarea más común en el comercio algorítmico es la definición del evento "Nueva barra" , tras cuya aparición el robot verifica la aparición de señales comerciales y realiza las acciones necesarias sobre ellas.

Pero antes de escribir u ordenar un robot comercial, es necesario tener un sistema comercial con reglas claras para determinar los momentos favorables para realizar transacciones. El desarrollo de cualquier sistema comercial, incluso el más complejo, siempre comienza con cosas básicas, es decir, con el desarrollo de señales comerciales para comprar y vender. A continuación, puede agregarle varias opciones de seguimiento y cierre.

No necesita pasar años detrás del monitor de la terminal comercial para desarrollar su estrategia comercial. Ahora hay cientos de ideas comprobadas publicadas en Internet y en libros que puede probar. E incluso si no está completamente seguro de sus habilidades de programación, esto no es un obstáculo. El servicio Freelance lo ayudará a encontrar el desarrollador adecuado y pagar de forma segura por el trabajo realizado.

Pero antes de saltar al fascinante elemento del comercio algorítmico, le recomendamos que lea artículos útiles sobre el tema:

¿Por qué es importante tener unos buenos Términos de Referencia?

Al solicitar o desarrollar un Asesor Experto, es necesario formular requisitos técnicos para él: qué tareas debe resolver, en qué condiciones se operará, qué sucederá en situaciones de emergencia, qué tipo de control necesita. Los robots comerciales son programas y deben funcionar claramente de acuerdo con la lógica subyacente. Pero antes de programar el algoritmo de acciones necesario, también debe describirse claramente.

La descripción de la estrategia comercial debe emitirse en forma de Términos de referencia. Y cuanto más detallado sea, menos malentendidos habrá entre usted, como cliente, y el programador, como ejecutor de su Orden.

Lo más importante en los Términos de Referencia es la existencia de Reglas de Negociación formales inequívocas. Incluso si no va a contratar a un experto, pero quiere escribirlo usted mismo, comience por desarrollar estas reglas usted mismo. Elabore unos términos de referencia y asegúrese de incluir elementos sobre la prueba/optimización del asesor experto. También agregue hipótesis, sobre la base de las cuales verificará la calidad y la estabilidad de su estrategia comercial: qué criterios utilizará para seleccionar los parámetros óptimos, por qué considera que estos criterios son importantes.

Incluya todos los pasos para crear un robot comercial en los Términos de referencia; esto ayudará a comprender la esencia del algoritmo no solo para el ejecutante, sino también para usted después de semanas, meses o años. Recuerde, el comercio algorítmico no es un pasatiempo, sino el mismo camino de investigación monótono, durante el cual es necesario documentar las etapas superadas. Y necesita esto incluso más que para un programador que escribirá un robot para usted.

Desarrolle las habilidades de un burócrata al que le gusta arreglar las cosas. Un diario de desarrollo de cada sistema comercial seguramente será útil cuando desee probar una nueva idea. Sí, y a los programadores les encantan las órdenes claras.

Ejemplos de términos de referencia

Pongamos ejemplos de cómo se podrían diseñar las Especificaciones Técnicas para Expert Advisors incluidas en la entrega del terminal MetaTrader 5.


Lo que debe estar en los términos de referencia

idea comercial

En la primera sección de sus Términos de referencia, describa la idea general detrás de su estrategia comercial. Por ejemplo: "Si el precio se acerca dos veces al nivel de resistencia y retrocede cada vez, entonces la tercera vez, por regla general, lo supera". Aquí puede adjuntar un gráfico con líneas de resistencia/soporte trazadas, indicadores y leyendas explicativas. Para describir la idea, no necesita entrar en números específicos o algoritmos de cálculo; en este ejemplo, no necesita explicar de inmediato cómo determinamos:

  • nivel de resistencia,
  • desglose de nivel,
  • el concepto de "generalmente".

Un pequeño nivel de abstracción en la etapa inicial le permitirá concentrarse en la idea en sí y no en los detalles técnicos. Este método le permite generar posteriormente muchas más variedades de su estrategia comercial: simplemente reemplazará un bloque de estrategia con otro, un indicador con otro, agregará o reemplazará filtros. Al mismo tiempo, la idea en sí no cambiará, solo cambiarán los nombres y valores de los parámetros de entrada de su robot comercial.

Además, es necesario dar una descripción de todos los términos que se utilizan en la descripción de la idea. Si la tendencia es importante para la estrategia, proporcione una definición clara, sobre la base de qué indicador se determinará la dirección y la fuerza de la tendencia. Las características numéricas de estas definiciones formarán la base de los parámetros de entrada del Asesor Experto, y son ellos los que luego optimizará en el probador de estrategias. Así que nombre la primera sección de sus Términos de referencia - Idea comercial.

Términos

Para describir los términos, recomendamos crear una sección separada de los Términos de referencia - Términos. En él, se escribe un párrafo separado para cada término, los términos mismos están escritos en negrita para resaltar el concepto clave de su estrategia comercial. Si es necesario, agregue una ilustración a la descripción del término, en la que debe mostrar lo más necesario para la comprensión. Los parámetros de entrada del futuro Asesor Experto pueden estar en cursiva.

Señales comerciales

La siguiente sección de los Términos de referencia es la tercera sección más importante, Señales comerciales, que describe bajo qué condiciones, condiciones de mercado y lecturas de indicadores, se produce una compra. Para describir cada condición necesaria para generar una señal de compra, es necesario señalar un parámetro numérico, del cual depende la aparición de una señal. Por ejemplo, para una media móvil , este sería el tipo y período de suavizado. Estos parámetros importantes se toman en los parámetros de entrada del futuro Asesor Experto. Los parámetros de entrada del futuro Asesor Experto pueden estar en cursiva.

Describa por separado las condiciones de venta, incluso si son simplemente opuestas a las condiciones de compra; a veces surgen sutilezas que el programador puede entender de manera diferente a usted. Por ejemplo, para una compra, se establece la condición "Indicador> 0": ¿qué escribir para una venta? ¿"Puntuación<0" o "Puntuación<=0"?

Incluso la idea comercial más simple comienza a adquirir rápidamente condiciones y filtros adicionales que confirman la señal comercial o, por el contrario, la cancelan. Por ello, es importante realizar capturas de pantalla explicativas de cada situación del mercado, en las que se muestren visualmente los indicadores y setups utilizados. Esto le permitirá lidiar rápidamente con la situación en la que su asesor no vio una señal comercial aparentemente obvia o de repente hizo un trato en el momento equivocado.

Capturas de pantalla y diagramas de flujo

Hay muchos programas gratuitos y útiles en Internet para crear capturas de pantalla y diagramas de flujo. Una pequeña selección de consejos para trabajar con ellos se da en el artículo Cómo redactar un Términos de Referencia al ordenar un indicador . Allí también encontrará consejos sobre cómo ordenar un indicador que muestra con flechas en el gráfico los momentos en que aparecen las señales de compra y venta. Dicho indicador, que funciona por separado del asesor, facilita la verificación y el control del funcionamiento del robot comercial tanto en línea como durante las pruebas visuales.

Duración de las señales/órdenes/posiciones

La segunda parte importante de la estrategia comercial es salir de una posición abierta y eliminar las órdenes pendientes. Además, las señales comerciales en sí mismas también pueden cancelarse a tiempo o cuando ocurren algunos eventos. Es necesario, en cuanto a las señales comerciales, describir: bajo qué condiciones se cerrará la compra / venta, se eliminará el pedido realizado, cuándo se cancelará la señal en sí.

Mantenimiento de posiciones abiertas y órdenes pendientes

Si su estrategia comercial utiliza el cierre por niveles StopLoss y TakeProfit, proporcione el algoritmo de cálculo. Para una extracción/movimiento flexible de estos niveles, describa las condiciones y el algoritmo de seguimiento. Los niveles de SL/TP se pueden modificar tanto en la apertura de una nueva barra como en cada tick. Es necesario indicar explícitamente este punto en los Términos de Referencia y comprender la diferencia entre los modos de probar las estrategias comerciales. Asegúrese de leer el artículo Prueba de estrategias comerciales en ticks reales .

¿Dónde puedo obtener los términos de referencia si no puede redactarlos usted mismo?

Un mandato mal redactado o su ausencia real suele indicar que las reglas del sistema de comercio no están formuladas, simplemente no existen. Lo que en este caso el Cliente llama un sistema comercial es en realidad solo una idea. Es imposible comenzar a trabajar en tales condiciones, porque muy pronto surgirán matices no contabilizados o la ausencia de un algoritmo para situaciones imprevistas en el mercado en el proceso de escritura del código. En este caso, el programador en realidad comienza a presentar opciones en lugar del Cliente.

Como resultado, el Contratista puede, bajo su propio riesgo y riesgo, completar el trabajo y entregar un robot comercial al Cliente. Pero esto va acompañado de una pérdida de tiempo para discutir cada nuevo tema, y aumenta la probabilidad de llevar el trabajo a Arbitraje. Porque al aceptar y comprobar el trabajo realizado, el Cliente de repente descubre que las transacciones no se están realizando como esperaba, simplemente no podría describirlo correctamente. Y por supuesto, el Cliente culpará al Contratista en este caso por violar ciertos puntos de los Términos de Referencia y programar incorrectamente el robot. El arbitraje en tales casos comprende rápidamente la diferencia en la competencia de ambas partes y toma su decisión con base en los Términos de Referencia adjuntos a la orden. De acuerdo con las Reglas Freelance , no se tiene en cuenta ninguna correspondencia por parte al considerar situaciones discutibles:

Al considerar el tema de la disputa en el Arbitraje, solo los Términos de Referencia sirven como base para tomar una decisión.

En la vida, esta opción también es posible: tiene reglas comerciales estrictas, pero por alguna razón no puede redactar los Términos de referencia usted mismo. Por ejemplo, no estás seguro de cómo describir ciertas cosas correctamente, o necesitas la ayuda de un especialista en matemáticas, redes neuronales, aprendizaje automático, programación, etc. En este caso, también puede ordenar la creación de Términos de referencia, en Freelance existen categorías como "Consultoría de programación" y "Otros" para esto.

Elija una de estas dos categorías, nombre el trabajo "Creación de un TOR para ordenar un robot comercial" e indique el costo inicial del trabajo, como imagina. Un desarrollador de sistemas de comercio experimentado lo ayudará a formular correctamente las Reglas de su estrategia para que sean comprensibles para otro programador. Al mismo tiempo, debería poder trabajar con gráficos, indicadores y objetos gráficos para mostrar las configuraciones de sus señales comerciales mediante capturas de pantalla.

El programador comprenderá su sistema comercial y lo ayudará a escribir una descripción del algoritmo comercial, si es posible. Si no puede formular algunos conceptos por su cuenta (por ejemplo, "impulso" o "rebote del nivel"), puede darle ideas preparadas basadas en su experiencia. Como regla general, cualquier situación de mercado se puede describir lógicamente (y luego programáticamente) con algún modelo simple con parámetros de variación. Y esta variación puede expresarse mediante un determinado parámetro, que luego optimizará en su Asesor Experto.

No hay patrones ideales, ya que el mercado, por un lado, no se repite y, por otro lado, siempre se pueden encontrar situaciones similares en la historia. El resultado de su trabajo conjunto debe ser un Términos de referencia listo para ordenar un robot comercial de acuerdo con su estrategia.

Qué términos usar

Por regla general, en un sistema de comercio existen varios conceptos o términos básicos importantes que describen el estado del mercado o la naturaleza del movimiento de precios. Incluso si le parece que está utilizando un concepto simple y generalmente aceptado en los Términos de referencia, es mejor describirlo claramente. Para cada término, haga un párrafo de descripción.

Por ejemplo, según Bill Williams, una tendencia alcista es cuando las tres líneas de cocodrilo están dispuestas en este orden de abajo hacia arriba: azul, rojo, verde.


Otra definición clásica de una tendencia alcista, de Larry Williams , cuando cada nuevo pico es más alto que el anterior y cada nuevo mínimo no es más bajo que el anterior.


En la descripción de los términos, puede usar capturas de pantalla de los gráficos, no interferirán. En los Términos de Referencia en sí, recomendamos resaltar los términos que ingrese en negrita, para que luego el Contratista pueda encontrarlos inmediatamente en el texto en caso de duda.

Al describir el término, no se puede hacer referencia al Titular a otras fuentes (sitios web, libros, foros, etc.), justificando que éste ya es notorio. Todo debe describirse aquí y ahora, no se permiten muletas en forma de "Lo explicaré más tarde en Skype" en los TOR. No le tomará más de media hora escribir todos los términos de los Términos de referencia, pero le ahorrará el tiempo que dedica a corregir errores debido a malentendidos.

Qué escribir en una descripción de trabajo en Freelance

Al crear un trabajo, describa en unos pocos párrafos la esencia general de su idea comercial para que los posibles artistas entiendan lo que necesita. La descripción del trabajo no necesita revelar las reglas del sistema comercial ni proporcionar detalles sobre los indicadores utilizados.

La descripción podría verse así:

Escriba un asesor experto para operar en inversiones de tendencia. Las señales de inversión serán patrones de acción del precio. Para determinar la tendencia, se utilizarán los indicadores ADX, Alligator y MACD; la elección del indicador se establece mediante los parámetros de entrada del asesor.

Idea general de una estrategia comercial

Aquí puede especificar en qué instrumentos operará el robot, si operará con la tendencia, cómo se determina y en qué período de tiempo. Si operamos con la tendencia, de alguna manera se produce la entrada: en un retroceso, en una ruptura del nivel, etc.

En general, solo hay dos estrategias comerciales en los mercados financieros: continuar moviéndose y volver al promedio. Su idea comercial debe relacionarse con una de estas dos estrategias y debe explicar cómo se abrirán las operaciones: en el mercado, después de la confirmación de una ruptura/retroceso, o a un mejor precio.

Descripción de la configuración para esperar una Señal

Las señales en sí mismas pueden ser simples y pueden describirse fácilmente mediante algoritmos. Por ejemplo, patrones como "Absorción" y "Pin bar" son bien conocidos y populares. Pero, como regla, es imposible construir una estrategia rentable solo con cifras tan bien formalizadas; tales patrones se utilizan para determinar un cambio de tendencia. Esto significa que la configuración para esperar el patrón "envolvente bajista" será la presencia de una tendencia alcista.

Por lo tanto, en los Términos de Referencia es necesario describir no solo la Señal de Negociación en sí, sino también formalizar la configuración requerida para ello.

Descripción de la señal

Aparece una señal para comprar o vender cuando se cumple una determinada condición. Por ejemplo, una señal de compra clásica es cuando el precio cruza la media móvil desde abajo. Al describir dicha señal, debe especificar los siguientes parámetros:

  • tipo de media móvil: SMA, EMA, VIDYA , etc.
  • período promedio móvil
  • parámetros adicionales para algunos promedios, por ejemplo, para AMA .

Además, también debe aclararse el concepto de "precio que cruza el promedio". La señal puede aparecer inmediatamente en el momento de cruzar el promedio, o todavía es necesario esperar a que la vela no solo rompa el nivel promedio, sino que también cierre por encima de él. De esto depende no solo cómo se escribirá el código, sino también el modo de generación de ticks , que debe usarse al probar el Asesor experto en el Probador de estrategias.

Por lo tanto, es necesario describir claramente conceptos como "Tendencia", "Nivel", "Ruptura", "Retroceso" e "Intersección", ya sea que se trate de trabajar con ticks, barras y precios de cierre. Todos estos conceptos deben tener una descripción formal con parámetros numéricos, que luego optimizarás en el probador de estrategias. Por ejemplo, la fuerza de una tendencia se puede medir con el indicador ADX , mientras que el indicador Ichimoku Kinko Hyo no es adecuado para esto.

Cuantas más condiciones y filtros se utilicen en un sistema comercial, más complejo se vuelve el programa comercial. Sin mencionar el hecho de que tales estrategias tienen muchos parámetros de entrada, que luego requieren una gran cantidad de pasos de optimización. Y aunque el probador de estrategias en MetaTrader 5 le permite acelerar el tiempo de optimización de parámetros en decenas y miles de veces debido al algoritmo genético y la red en la nube MQL5 , la cantidad de datos recibidos en este caso crece como una avalancha.

Por lo tanto, recomendamos seguir algunas reglas al desarrollar y depurar un robot comercial:

  • Para depurar y verificar las señales visualmente, el Asesor Experto debe colocar etiquetas/objetos en el gráfico en el momento en que ocurre la Señal. Esto permitirá no solo depurar el historial , sino también observar visualmente las señales en el gráfico. A menudo, el algoritmo se vuelve tan complejo que se vuelve difícil entender su trabajo incluso para el comerciante que formuló las Reglas del sistema. Y con la visualización de Signals, puede ver inmediatamente los momentos para abrir tratos en el gráfico.
  • Es posible que una solución aún más correcta sea crear primero un indicador que marque las señales de compra/venta en el gráfico mediante flechas . Esto simplificará la redacción de un Asesor Experto, ya que es más fácil crear y depurar dos programas por separado que uno complejo. Deje que el robot solo comercie y que el indicador solo dibuje. En este caso, el código del asesor no tendrá funciones innecesarias. Además, puede haber muchas más señales que operaciones realizadas en ellas. Por ejemplo, cuando se recibe una señal de compra, generalmente se ingresa al mercado y, además, según el algoritmo, ya no se verifican las señales de compra. Y si hay un indicador separado, mostrará todas las señales de compra, porque tiene la lógica de mostrar TODAS las señales, independientemente de la presencia de una posición abierta.
  • Las señales de compra y venta no solo deben describirse por separado en los Términos de referencia, sino que también es deseable depurarlas por separado en el probador de estrategias. A menudo, la compra y la venta están interconectadas, es decir, siempre que haya una posición de compra abierta, se ignoran todas las señales de venta (por supuesto, si la posición larga no se cierra con una señal de venta). Si primero prueba las señales de compra por separado y luego las señales de venta, podrá verificar la corrección de la lógica subyacente en su forma más pura.

Incluso puede optimizar los parámetros de la estrategia por separado para comprar y por separado para vender, de modo que luego pueda combinar los algoritmos en un solo robot comercial. Por lo tanto, dedica menos tiempo a buscar parámetros óptimos y comete menos errores. Aunque en este caso tendrás que pagar extra por la creación del indicador/indicadores y Expert Advisors intermedios. Pero una buena idea comercial vale la pena. ¿No lo es?

Vida útil de la señal

En algunos sistemas comerciales, la aparición de una señal no significa la apertura inmediata de una posición. Como regla general, en tales estrategias se requiere la confirmación/permiso de una señal adicional. Por ejemplo, después de una ruptura de un nivel de resistencia, es necesario esperar a que el precio retroceda al nivel roto para poder ingresar en las mejores condiciones. En este caso, surge el factor tiempo: cuánto tiempo o cuántas barras es válida la señal "El nivel está roto y esperando una reversión". Tal vez tenga sentido esperar un retroceso dentro de las 5 barras o hasta el final de la sesión de negociación, y luego se cancela la señal.

Agregar el parámetro "Tiempo de vida" le permite introducir filtros adicionales que pueden mejorar la calidad de las señales comerciales.

Realización de órdenes y apertura de posiciones

Al escribir funciones responsables de enviar órdenes comerciales, tiene sentido pensar en la funcionalidad adicional de antemano. Por ejemplo, puede especificar diferentes MagicNumbers y comentarios en su robot comercial para un análisis más detallado de los resultados comerciales y los resultados de optimización. En MagicNumber, puede ingresar la hora y el día de entrada, el número del patrón comercial y otra información importante que le permitirá realizar análisis adicionales en el contexto de los datos incluidos en MagicNumber. Por lo tanto, puede implementar varias estrategias comerciales en el Asesor Experto y realizar una optimización para todas a la vez. Para luego eliminar un tiempo de entrada fallido o un patrón/señal perdedor. Si desea obtener dicha funcionalidad en un asesor experto, debe definir claramente el algoritmo de cálculo de MagicNumber para cada patrón/configuración/señal.

Además, una orden comercial no siempre se ejecuta con éxito la primera vez. Es necesario prever situaciones en las que no fue posible abrir/cerrar una posición la primera vez. ¿Qué debe hacer el asesor en este caso: hacer una pausa o esperar a que llegue un nuevo tick? ¿Cuántos intentos se permiten para completar una operación comercial? ¿Qué información debe registrar el EA en estos casos? ¿En qué formato debe estar la entrada? ¿Es necesario enviar un mensaje sobre problemas a un comerciante y cómo hacerlo para no crear un ataque DDoS?

Para analizar rápidamente el historial comercial en el terminal, use comentarios que se pueden escribir en solicitudes comerciales. Pero no olvide que en algunos casos el servidor comercial escribe su propia información en este campo. Por lo tanto, no será superfluo si su robot escribe su propio registro diario de transacciones, lo que lo ayudará a resolver situaciones incomprensibles.

Si su estrategia comercial utiliza niveles de protección StopLoss y TakeProfit, proporcione el algoritmo para su cálculo y el procedimiento para configurarlos. Por ejemplo, puede resultar que StopLoss deba establecerse solo cuando el precio se mueve en una dirección favorable por un número determinado de puntos. Si los niveles de SL y TP se establecen solo después de una apertura exitosa de una posición, especifique cómo se verificará la apertura de una posición: inmediatamente después de enviar una solicitud comercial o en el siguiente tick.

Mantenimiento de una posición comercial/orden

La regla clásica es "Deje que fluyan las ganancias y reduzca las pérdidas". Traducido al comercio algorítmico, esto significa "Establecer un StopLoss de protección para cada posición abierta y limitar el beneficio potencial utilizando órdenes TakeProfit".

El tamaño de la parada puede afectar significativamente los resultados de la negociación, y los comerciantes intentan encontrar distancias óptimas para colocar órdenes SL / TP con el fin de maximizar las ganancias. Pero una enumeración aproximada de todos los tamaños posibles de SL/TP encajará de la misma manera en la historia. Intente utilizar algoritmos de cálculo de distancia que tengan en cuenta la volatilidad del mercado, la dirección de la tendencia y la proximidad de los niveles de soporte/resistencia.

Si no tiene idea de cuál debe ser el tamaño de SL/TP, puede consultar los sistemas comerciales existentes. Muchos comerciantes algorítmicos tienen sus propias bibliotecas listas para usar que se pueden usar para crear un robot comercial de acuerdo con su idea.

Piense y describa los siguientes puntos en los Términos de Referencia:

  • usando los niveles StopLoss y TakeProfit, el algoritmo para calcular la distancia para ellos:
  • si es necesario usar Trailing Stop, cuándo está encendido, con qué paso se levanta, algoritmo de cálculo de pasos;
  • si se utilizan órdenes pendientes para ingresar a una posición, ¿es necesario reorganizarlas y mediante qué algoritmo?
  • si es necesario realizar un seguimiento de la ganancia/pérdida flotante en una posición abierta, si es necesario cerrar la posición cuando se alcanza el nivel especificado de ganancia/pérdida;
  • algo más.

Cancelación de una orden y cierre de una posición

También es posible otra forma de gestionar posiciones y órdenes: por tiempo y por la aparición de una Señal opuesta. Puede agregar opciones adicionales de eliminación y cierre a los Términos de referencia:

  • por un valor dado de ganancia o pérdida flotante en una posición abierta;
  • cuando el precio se mueve una distancia específica del nivel actual de apertura de una orden pendiente (de hecho, esto significa que el momento ya se ha perdido);
  • en el momento especificado;
  • a través de un número dado de barras;
  • al final del intervalo de tiempo especificado;
  • cuando aparece una Señal de sentido contrario;
  • cuando desaparece una configuración/patrón favorable.

Cálculo de lote para hacer un pedido

Algunos comerciantes, al crear un robot comercial, agregan inmediatamente funciones de control del tamaño de la posición. Todavía no se recomienda incluir algoritmos de administración de dinero en el EA para calcular el lote en la etapa inicial, ya que los parámetros de entrada adicionales al optimizar el EA pueden conducir al ajuste a una sección específica del historial.

Si está creando la primera versión del robot de acuerdo con su sistema comercial, entonces es mejor probarlo y optimizarlo con un lote constante. Solo después de realizar pruebas en el historial y en el comercio real durante varios meses, cuando vea las fortalezas y debilidades de su algoritmo, podemos pensar en la administración del dinero.

Aquí hay algunos enfoques para calcular el tamaño del lote al abrir una posición:

  • volumen fijo, independientemente de la ganancia o pérdida;
  • el volumen depende del tamaño del saldo o patrimonio;
  • según los resultados de las ganancias/pérdidas recibidas;
  • basado en los resultados de los últimos N intercambios (diferentes variantes de martingala y antimartingala);
  • dependiendo del % de riesgo cuando se activa una orden StopLoss de protección;
  • otras opciones de cálculo basado en riesgo, por ejemplo, según el método Vince .

En cualquier caso, antes de agregar un cálculo del tamaño del lote al EA, debe asegurarse de que su sistema de comercio tenga una ventaja sobre el comercio aleatorio. De lo contrario, solo te engañarás a ti mismo por un tiempo. Un sistema perdedor no puede convertirse en rentable solo mediante la gestión del dinero.

Manejo de errores comerciales y estado del entorno

Dado que el robot comercial es un programa autónomo que funciona las 24 horas del día, es necesario proporcionar medios para monitorear y verificar su trabajo. La "Caja Negra" de su Asesor Experto será el registro de "Expertos", donde se muestran todos los mensajes usando la función Imprimir() . En general, se recomienda registrar la apariencia de las señales, los patrones y las configuraciones, el precio de mercado actual y los parámetros de la solicitud comercial antes de enviar una orden para su ejecución.

En caso de ejecución fallida de una solicitud comercial, se deben registrar sus resultados . El análisis de los códigos de respuesta del servidor comercial le permitirá comprender la causa de un error comercial y corregirlo. Describir en los Términos de Referencia:

  • todas las situaciones en las que se realizan entradas de registro;
  • parámetros a reflejar en cada caso;
  • formato de grabación deseado, p. para indicar tiempo, datos numéricos, separadores, etc.

Los registros detallados al enviar órdenes comerciales y procesar los resultados de su ejecución le ahorrarán tiempo y dinero.

Un punto importante que los comerciantes algorítmicos novatos a menudo olvidan es la situación de reiniciar el terminal, perder Internet o conectarse al servidor comercial. En tales casos, no está de más pensar en la retroalimentación con el robot a través de mensajería instantánea o correo electrónico.

La diferencia entre operar en la apertura de la barra y dentro de la barra

... las señales pueden desaparecer y aparecer durante la vida útil de la barra

Estrategias de garrapatas/scalping

... necesita tener una buena idea de lo que es, cuanto menos TakeProfit/StopLoss en puntos, más crítica es la estrategia para spreads/comisiones/retrasos en la red/calidad del historial disponible/velocidad del propio robot.

Cualquier deterioro de las condiciones puede acabar con la estrategia.

Cuadrículas, martingalas, promedios y las desventajas de estas mejoras

... Qué son, por qué son populares y cuánto pueden ayudar a estirar temporalmente la estrategia. El riesgo aumenta, aunque puede alargar la vida de una mala estrategia

Qué buscar al elegir un contratista

... cuestiones de fondo

No pretende impresionar

Da plazos claros

Indica lugares poco claros en los TOR inmediatamente, y no después de 2 meses de discusión

Un buen programador valora su tiempo y el tuyo, por eso ama un TOR consistente y bien desarrollado.

Lo que un programador no puede hacer por ti

Convierte una estrategia perdedora en un robot rentable

Optimizar e identificar cualquier deficiencia

Escriba un programa sin errores; seguirán siéndolo. Encontrarlos y describirlos de forma comprensible es tu tarea.