Cómo escribir un robot comercial: herramientas para principiantes



El tema de los sistemas automatizados para el comercio en bolsa es bastante popular en RuNet en los últimos años. Sin embargo, puede ser difícil para los inversores novatos crear su propio robot comercial. Hoy hablaremos sobre cómo se puede hacer esto sin costos innecesarios.

Nota : cualquier actividad de inversión en el intercambio está asociada con un cierto riesgo, esto debe tenerse en cuenta. Además, para lanzar su robot comercial necesitará una cuenta de corretaje, puede abrirla en línea . Puede depurar su estrategia utilizando el acceso de prueba con dinero virtual .

Opciones para crear robots


Hay varias opciones para crear software robótico para operar en el intercambio:

  • Creación de robots para trabajar en una conexión directa: tales sistemas funcionan sin pasar por el sistema de negociación del corredor, enviando aplicaciones directamente al "motor" del sistema de negociación de la bolsa. Esta opción ya es utilizada por operadores experimentados que están dispuestos a pagar, incluso por dicho método de conexión .
  • Conexión al sistema de intermediación por API. Algunos corredores le permiten conectar software comercial externo a sus sistemas comerciales mediante interfaces especiales. Los clientes de ITI Capital pueden hacer esto usando la API SMARTcom . En este caso, los robots pueden ser bastante complejos.
  • Automatización de operaciones directamente en el terminal comercial. La forma más sencilla, adecuada para principiantes, es automatizar el comercio directamente en el programa básico de cualquier operador: el terminal.

Hoy consideraremos la tercera opción, ya que es la más simple.

Cómo funcionaba antes


Los terminales comerciales de generaciones anteriores podrían integrarse con varias herramientas de automatización. Uno de los más populares, por extraño que parezca, fue Excel en ese momento. Con su ayuda, los operadores pueden configurar la exportación de datos desde el terminal de operaciones, así como recibir órdenes de negociación.



Menú para conectar Excel en uno de los terminales comerciales de la generación anterior

También era una práctica común entre los comerciantes conectar potentes análisis técnicos y sistemas de desarrollo de robots como WealthLab y MetaStock a sus terminales. En tales casos, la integración generalmente se realiza mediante bibliotecas adicionales.

En estos casos, el comerciante tuvo la oportunidad de automatizar y, en el caso de MetaStock y WealthLab, la creación de sistemas comerciales bastante complejos, pero los enlaces a programas externos a menudo no eran confiables. Con el tiempo, este problema se resolvió: en algunos terminales comerciales aparecieron lenguajes de programación integrados.

Cómo funciona ahora: aprender TradeScript


Hoy en día, la forma más fácil de crear un robot comercial simple que trabaje con un sistema de corredores en el mercado ruso es usar el terminal SMARTx.

Tiene un complemento especial con el diseñador de robots comerciales TradeScript. Utilizando un lenguaje de script simple pero bastante potente, los comerciantes pueden crear sistemas mecánicos de varios niveles de complejidad. El lenguaje fue creado originalmente para el desarrollo de robots comerciales, es bastante fácil de aprender y muchos algoritmos son similares en escritura a Metastock, lo que facilita a los usuarios familiarizados con este paquete de software.



La ventaja de TradeScript en comparación con Wealth-Lab y el mismo Metastock es la ausencia de la necesidad de crear diseños complejos y usar varios conectores para transferir órdenes al terminal comercial. El diseñador de robots está integrado en SMARTx, lo que permite lograr una fiabilidad y velocidad significativamente mayores.

Aquí hay un ejemplo de una estrategia comercial escrita en TradeScript:

Buy Signals # ,        TREND(EMA(CLOSE, 20), 15) = UP AND TREND(MACD(13, 26, 9, SIMPLE), 5) = UP Sell Signals # ,        TREND(EMA(CLOSE, 20), 15) = DOWN AND TREND(MACD(13, 26, 9, SIMPLE), 5) = DOWN Exit Long Signal # ,         TREND(EMA(CLOSE, 20), 15) = DOWN OR TREND(MACD(13, 26, 9, SIMPLE), 5) = DOWN Exit Short Signal # ,         TREND(EMA(CLOSE, 20), 15) = UP OR TREND(MACD(13, 26, 9, SIMPLE), 5) = UP 

En un paquete con TradeScript, también proporciona un módulo de backtesting que le permite evaluar el rendimiento de la estrategia descrita en datos históricos. Entre otras cosas, el sistema implementa la función de probar el sistema de negociación "sobre la marcha" utilizando los datos de intercambio actuales, pero sin realizar un pedido en el intercambio: el tiempo de la transacción virtual, el precio y la "rentabilidad" resultante se mostrarán en una ventana separada.



Además, el usuario puede ejecutar tantos algoritmos de ejecución simultánea como lo permitan la velocidad del reloj del procesador y la memoria de la computadora. Dada la gran cantidad de palabras y operandos del lenguaje de secuencias de comandos, esto significa la capacidad de crear estrategias comerciales arbitrariamente complejas.

Qué más: depuración en el acceso de prueba


El uso de la funcionalidad incorporada para desarrollar robots comerciales en el terminal comercial es una forma conveniente y confiable de automatizar el comercio. Sin embargo, a pesar de las funciones existentes para probar estrategias, no debe descuidar las capacidades de depuración adicionales.

Por lo tanto, recomendamos que antes de lanzar una estrategia para operar con dinero real, "ejecutarla" en el acceso de prueba . Este paso le permitirá depurar todos los aspectos, incluida la reacción del programa a las transacciones completadas, sin el riesgo de pérdidas financieras reales. El uso del análisis utilizando datos históricos, la verificación sobre la marcha y el uso del acceso de prueba le permitirán depurar completamente su estrategia.

Enlaces útiles sobre el tema de la inversión y el comercio de acciones:


Source: https://habr.com/ru/post/470233/


All Articles