Cómo crear la primera aplicación para operar en el intercambio: 3 pasos iniciales



Los intercambios modernos son muy tecnológicos y atraen la atención de los especialistas de TI (por ejemplo, las discusiones activas de mis artículos sobre el tema lo indican). Muchos están interesados ​​en el tema de escribir robots comerciales: alguien quiere intentar ganar dinero en el intercambio por su cuenta, a alguien no le importa hacerlo por encargo. Hoy hablaremos sobre cómo abordar la creación del primer producto de este tipo; discutiremos una posible pila de tecnología, reduciendo el umbral de entrada y formas de minimizar las posibles pérdidas.

Descargo de responsabilidad : una publicación para aquellos que ya al menos aproximadamente imaginan el dispositivo del intercambio, la presencia de riesgos, tiene la oportunidad de experimentar no por el último dinero y, en general, tiene sentido común.

Explore una posible pila de tecnología


Como en cualquier proyecto de TI, cuando se desarrollan aplicaciones para operar en la bolsa de valores, la elección de herramientas específicas dicta el objetivo final. Antes de comenzar a desarrollar un robot comercial, debe diseñar todo el sistema, comprender qué módulos habrá en él y cómo interactuarán.

¿Escribes un robot de alta frecuencia, para el cual cada milisegundo es importante? ¿En qué mercados de qué países operará el sistema de comercio? ¿Habrá solo un motor de negociación o todavía es necesario agregar un módulo de gestión de riesgos?

En cada uno de estos casos, el conjunto de tecnologías puede variar. Un buen enfoque para la selección se describe en un artículo sobre el recurso de perfil QuantStart (por supuesto, en inglés; es mejor dominar este idioma para desarrollar aplicaciones financieras).

En general, lo más probable es que tenga que elegir entre una lista de tecnologías de este tipo:

  • La mayoría de las API de corretaje y no solo (aquí está mi selección de tales herramientas ) tienen interfaces en C ++ y / o Java. Tal vez pueda encontrar módulos listos para conectar escritos en C #, Python, R, Excel y MatLab por representantes de la comunidad / clientes de un corredor en particular. Pero puede que tenga que escribirlos usted mismo.
  • Para el análisis de datos, a menudo se usan bibliotecas como uBLAS, LAPACK y NAG para C ++; MatLab en Python, NumPy / SciPy son populares.
  • Cuando desarrolle robots de alta frecuencia utilizando una GPU (FPGA), lo más probable es que necesite familiarizarse con el marco CUDA.

Aprenda los detalles del desarrollo en el campo de las finanzas con la ayuda de lenguajes de programación incorporados


La creación de un poderoso sistema comercial es, por defecto, un proyecto a gran escala. Sin embargo, si su objetivo es, en principio, familiarizarse con el desarrollo del campo de las finanzas, estudiar varios puntos al crear robots comerciales, entonces es bastante posible hacerlo con los llamados lenguajes de programación incorporados.

Hay terminales comerciales que no solo se pueden usar para realizar transacciones en modo manual, sino que también usan los lenguajes de secuencias de comandos integrados en ellos para crear robots simples.

Uno de los terminales más populares en el mercado de valores ruso es QUIK, y tiene el lenguaje algorítmico QPILE (interfaz programable QUIK y entorno lógico). Con él, puede automatizar sistemas comerciales simples . También en QUIK, está incorporado un intérprete del lenguaje de script LUA, se llama QLUA. Los scripts en él se pueden descargar en el terminal tanto en forma de código fuente como en forma de código de bytes compilado.

Ejemplo de código QPILE:

PROGRAM FirmCode = "MC0012300000" CurrentBalance = MONEY_CURRENT_BALANCE(ROWNAME, FirmCode, "EQTV", "SUR") CurrentLimit = MONEY_CURRENT_LIMIT(ROWNAME, FirmCode, "EQTV", "SUR") Locked = MONEY_LIMIT_LOCKED(ROWNAME, FirmCode, "EQTV", "SUR") AvailableMoney = MoneyCurrentBalance + MoneyCurrentLimit – MoneyLocked If AvailableMoney > 0 Status = " " Else Status = " " SET_ROW_COLOR(ROWNAME, "RGB(255,138,138)", "DEFAULT_COLOR") End If END_PROGRAM 

Ambos idiomas tienen una comunidad de usuarios bastante desarrollada, las preguntas pueden hacerse en hilos en el foro oficial.

Además de QUIK, puede comerciar en bolsas rusas a través del terminal SMARTx . Utiliza el lenguaje de script incorporado TradeScript. La sintaxis es simple, pero la cantidad de palabras y operandos disponibles se puede codificar con estrategias bastante complejas. Así es como podría verse el código de estrategia simple de 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 

El paso más importante: pruebas y depuración


El desarrollo de aplicaciones para el sector financiero, y especialmente los instrumentos para cotizar en bolsa, se complica por el hecho de que aquí hay que pagar dinero por errores en sentido literal. Esto no es escribir código para el próximo inicio web, donde una falla puede pasar desapercibida. Cualquier error en el código del robot comercial provocará una pérdida de dinero. Por lo tanto, la depuración y prueba es la etapa más importante en la creación de dicho software.

Por supuesto, debe aplicar todas las mejores prácticas, crear pruebas, realizar correctamente la aceptación del código (incluso si está desarrollando un proyecto solo). Y lo más importante: antes de comenzar las pruebas con dinero real, "maneje" el programa en las virtuales.

Hoy en día, muchos corredores rusos ofrecen un servicio de acceso de prueba gratuito (por ejemplo, la empresa desarrolladora de terminales SMARTx tiene uno) cuando le dan una cuenta que no es muy diferente de la real, pero el dinero en ella es virtual. Como regla general, cuando trabaja con una cuenta de este tipo, puede operar en los principales mercados (acciones, divisas, derivados) y trabajar con las principales acciones, futuros, etc.

En algunos casos, incluso puede probar el comercio con fondos prestados (es decir, apalancamiento), pero al crear el primer robot, la pregunta sigue siendo si es necesario agregarle tales funciones.

Recursos útiles para desarrolladores de aplicaciones para el comercio en bolsa:


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


All Articles