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

 
Aleksey Vyazmikin:

Aquí es donde salen a relucir muchos detalles y se cometen errores. Por eso es imprescindible que el EA se pruebe en cotizaciones reales.

Sólo hay que tenerlo en cuenta y acordar un plazo razonable.


La tarea técnica es una cosa cuya ejecución puede ser comprobada objetivamente por un tercero. Por lo demás, es una tarea para una redacción escolar "sobre el verano".


Sobre la bondad

 
Maxim Kuznetsov:


Una tarea técnica es algo que puede ser verificado objetivamente por un tercero. Si no, es una redacción escolar "sobre el verano".

Un sobresaliente para la redacción. Gran imaginación.

Pero, algo te has saltado en el tema, estoy diciendo que la prueba debe estar basada en datos reales y el cliente debe ser consciente de ello, y el contratista debe tenerlo en cuenta en los plazos declarados.

 
Aleksey Vyazmikin:

5 por el ensayo: ¡gran imaginación!

Pero, te has saltado el tema: digo que las pruebas son obligatorias sobre datos reales y el cliente debe ser consciente de ello, y el contratista debe tenerlo en cuenta en los plazos establecidos.

Suponga que ha escrito un EA (código y en su mayor parte depurado incluso). Lo siguiente objetivo - para comprobar el búho en la cuenta real para el cliente, se necesita un poco de tiempo y la misma cuenta real.

¿Qué fiesta de la vida es a costa de quién? ¿Y cómo se aseguran todos juntos de que la tarea se lleve a cabo?

 
Maxim Kuznetsov:

Suponga que ha escrito un EA (código y en su mayor parte incluso depurado). Luego sigue una cosa objetiva - para comprobar el búho en una cuenta real el cliente, usted, el árbitro necesita algún tiempo y la misma cuenta real.

¿Cómo van a comprobar todos ustedes si la tarea se ha cumplido?

Si no está seguro de la corrección del concurso, puede utilizar los registros de servicio del terminal y comprobar el rendimiento de la orden y la lógica del EA.

¿Cuál es el problema? Sí, de hecho me encontré con un EA que funcionaba en el probador y que no funcionaba correctamente en una cuenta real, sí el EA decía que debía serlo, el árbitro se mantuvo en silencio hasta que saqué un trozo de código y le metí la nariz al EA. He perdido mucho tiempo y nervios por la incompetencia del contratista, así que no veo ningún problema en que el contratista espere su remuneración.

O tal vez no entiendo algo, por favor, explique sus argumentos para una discusión de fondo.

 
Maxim Kuznetsov:

¿Para qué sirve todo esto?

La especificación de los requisitos la redacta el contratista (o un consultor externo especialmente formado). E incluye la metodología de verificación.
Cualquier requisito innecesario para el cliente, no está obligado a conocer toda la programación.

El cliente debe decir (por escrito, no por vídeo o Skype):

- Utilizo estos indicadores y scripts

- Me atengo a las siguientes reglas

- Haber negociado en una demo más o menos oficial durante una semana, un mes o un año, esto es lo que hay. Y en otro periodo como este. Todo ello, opcionalmente, con una copia de seguridad en una cuenta de céntimos.

- necesita automatizar

El desarrollador prepara y acuerda el TT (de forma comprensible para ambas partes), escribe un búho, y si todo en el probador converge más o menos con el período mencionado, entonces el Asesor Experto está hecho.

Variantes - deberíamos comprobarlo en la demo/centro-real/etc., ya está más allá de los límites de la autonomía

No me dedico a los autónomos por muchas razones, pero escribir la RPT cuesta dinero y a menudo mucho. Y, tal como yo lo veo, el cheque medio en el trabajo autónomo es de 50 dólares. B ¿Qué, de esta suma ya miserable aún hay que rascar para pagar al Contratista por la redacción de la RPT? ¿O va a escribir gratis?

 

Agregué un poco más al artículo: agregué la sección Qué debería estar en los Términos de referencia y escribí Dónde obtener los Términos de referencia si no puede redactarlos usted mismo

Что нужно для заказа торгового робота

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 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. 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

... es mejor describir términos que no están seguros para que se entiendan entre sí

En el TK en sí, resalte los términos en negrita: deje que el intérprete les preste atención y haga una pregunta si algo no está claro.

No puede enviar a otras fuentes (sitios web / libros, etc.) Todo debe describirse aquí y ahora, no "lo explicaré más tarde en Skype"

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

... solo se necesita una formulación general: tendencia, comercio de compensación. para romper niveles (cómo se definen los niveles en resumen), hay algún indicador/Acción de precio/uso de ticks

Idea general de una estrategia comercial

... comerciamos de acuerdo con la tendencia, definimos la tendencia de esta manera, entramos en un retroceso, definimos un retroceso de tal y tal manera, no operamos por la tarde y por la mañana

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.


 
Rashid Umarov:

...

Capturas de pantalla y diagramas de flujo

Hay muchos programas gratuitos y prácticos en Internet para crear capturas de pantalla y diagramas de flujo. ...

Los organigramas son la parte más inútil, lenta y prácticamente irrealizable de los TdR.

Para entender esto - se puede hacer 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.

 
Andrey F. Zelinsky:

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

Para entender esto - se puede hacer 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 legibilidad.

No se trata de un diagrama de flujo del algoritmo de cálculo, sino de un diagrama de flujo de la secuencia de acciones y relaciones entre los distintos bloques del programa: toma de decisiones, gestión de posiciones, filtros, etc.

 
Aleksey Vyazmikin:

No se trata de un diagrama de bloques de un algoritmo de cálculo, sino de un diagrama de flujo de la secuencia de acciones y relaciones entre los distintos bloques del programa: toma de decisiones, gestión de posiciones, filtros, etc.

¿Se imagina el nivel de un cliente que, al menos entendiendo perfectamente los eventos del terminal del cliente, será capaz de describir "secuencias de acciones y relaciones de diferentes bloques del programa - toma de decisiones, gestión de posiciones, filtros, etc." con habilidad?

Y luego compruébalo todo desde el punto de vista de la ejecución del programa; si no, ¿para qué hacer un diagrama de flujo?

Un cliente así no podrá ver el nombre del promotor no sólo antes del acuerdo, sino también después de que se haya hecho (si es que llega a suceder con un cliente de este nivel) -- "quien multiplica el conocimiento, multiplica el dolor" (Eclesiastés 1:17-18)


p.d. De nuevo. Comprobar mi tesis sobre la inutilidad práctica de hacer un diagrama de flujo (cualquiera) es muy sencillo.

Es suficiente con establecer una tarea para los desarrolladores de servicios Freelance - escribir un diagrama de flujo para el indicador MA.

Tesis № 2 - no más de 5-10% hará el trabajo.


p.s.2 Pregunta 1: en la clase de informática (en la escuela o en la universidad) ¿quién (qué porcentaje) pensó que hacer un diagrama de flujo era útil?

Pregunta 2 -- ¿Quién (qué porcentaje) ha hecho un diagrama de flujo más complicado que, por ejemplo, "buscar el máximo elemento en una matriz de N dimensiones" durante su trabajo práctico?

 
Andrey F. Zelinsky:

¿Se imagina el nivel del cliente que, como mínimo, entiende perfectamente los eventos del terminal del cliente, será capaz de describir "secuencias de acciones e interrelaciones de los diferentes bloques del programa - toma de decisiones, gestión de posiciones, filtros, etc." de forma cualificada?

Y luego compruébalo todo desde el punto de vista de la ejecución del programa; si no, ¿para qué hacer un diagrama de flujo?

A un cliente de este tipo no se le puede mostrar el nombre del promotor no sólo antes del acuerdo, sino también después de su aplicación (si es que llega a producirse con este nivel de cliente) -- "quien multiplica el conocimiento, multiplica el dolor" (Eclesiastés 1:17-18).

Un diagrama de bloques es útil, al menos para probar su lógica. Sí, hago diagramas de flujo como concepto o cuando estoy desarrollando un algoritmo complicado, casi siempre en papel.

Un EA no es un producto acabado, siempre estará sujeto a revisión, mientras el cliente se interese por su idea, por lo que más vale que éste se ocupe de las posibles revisiones, y para ello el código debe tener una cierta estructura. Una vez entendí esto después de que se pidieran probablemente 5 EAs por cuenta propia. El alto nivel de idiotez es cuando la lógica de la toma de decisiones de comercio se embala en las funciones de comercio - no es de extrañar que tal EA no está sujeto a revisión, pero tiene que ser reelaborado, especialmente si el desarrollador es otra persona.

Razón de la queja: