Como he ganado $ 500K en el aprendizaje de la máquina y la negociación de alta frecuencia - Parte 1



Desde el intérprete: Uno de estos días Habré se publicó tema Cómo especialistas para mantener y aumentar su dinero, lo que ha causado un gran interés. Recientemente he estado interesado en el tema financiero, y me encontré con una interesante historia de un tipo que, usando sus habilidades tecnológicas para un año podría ganar medio millón de dólares. Creo que su experiencia puede ser de interés para muchos habrazhitelyam (a pesar de que ya tenía experiencia en la bolsa de valores), así que decidí traducir el texto (es muy voluminoso, por lo que será de dos partes). I>

En este post, he descrito en detalle cómo gané cerca de medio millón de dólares en una negociación de alta frecuencia en el período de 2009 a 2.010. Mientras trabajaba con total independencia y no uso mi programa, puedo hablar libremente acerca de todo. En su mayor parte, he participado en las operaciones de futuros sobre el índice DAX y el Russell 2000.

La clave de mi éxito, en mi opinión, no es el uso de ecuaciones financieros complejos, sino más bien la aplicación del enfoque algorítmico general de que unidos entre sí un conjunto de componentes simples, e incluyen los principios de algoritmo de aprendizaje automático para optimizar y maximizar la rentabilidad. En la lectura de este artículo, no es necesario ningún conocimiento de la terminología específica - cuando me encontré con mi programa, me baso en la intuición. (Por desgracia, la bella supuesto Andrew Ng'a (Andrew Ng) para el aprendizaje de la máquina aún no estaba disponible al público - el camino si haga clic en el enlace, se caerá en mi proyecto actual: CourseTalk, opiniones de los cursos online abiertos masivos / MOOC)
.
En primer lugar, sólo quiero demostrar que mi éxito no fue sólo una feliz coincidencia. Mi programa 1000-4000 de las transacciones llevadas a cabo a diario (como "larga" y "corta"), pero la única vez que siempre han estado abiertos sólo unos contratos. Esto significa que mis posibilidades de éxito repentino en promedio con bastante rapidez. También significa que nunca he perdido más de $ 2,000 al día y nunca vimos pérdidas en el período mensual.



(Enmienda: esta actuación, neta de comisiones) i>

Y aquí es un gráfico que muestra la variación de mis ganancias para el día. Tenga en cuenta que este gráfico no es los últimos 7 meses, ya que - tan pronto como la cantidad de parado de crecer - He perdido la motivación para entrar en ellos
.


Mi experiencia de la negociación en la bolsa de valores h4>
Antes de empezar a trabajar con mi programa de comercio automatizado, trabajé durante dos años comerciante en el modo "normal". Fue en 2001 - en los años formativos de la contratación electrónica, donde los pequeños especuladores fueron capaces de ganar un buen dinero. La forma en que estaba trabajando, era en cierto modo similar a una computadora, y los juegos de azar. Es un éxito destinado a ser rápido, disciplinado y tener buena capacidad intuitiva para reconocer patrones de comportamiento del mercado. He ganado alrededor de $ 250 mil, lo que me permitió pagar la matrícula e incluso retraso. Profit!

Durante los próximos cinco años, he tratado de criar a un par de empresas de nueva creación, de forma paralela la mejora de sus habilidades de programación. Por el comercio, casi no podía volver a 2008. Sin embargo, el juego me pareció una buena oportunidad para mejorar la situación financiera en el momento en que el dinero de la venta de la última puesta en marcha comenzó a llegar a su fin -. Una lección podría darme una oportunidad para reflexionar sobre los próximos pasos

API para el comercio h4>
En 2008, yo era un comerciante ordinario día en el mercado de futuros y el software utilizado llamada T4. Tenía muchas ganas de conseguir algunas combinaciones personalizadas de "teclas rápidas" para dar órdenes, así que aprender que la T4 tiene una API abierta, me he molestado en estudiar C # (el lenguaje de programación de API se utiliza), y luego se fue adelante y había creado la necesaria " Teclas de acceso ».

Probar suerte con la API, he decidido aumentar su apetito: Quería enseñar a un ordenador con el comercio para mí. API proporciona tanto los datos del mercado de streaming y forma fácil de enviar comandos a la bolsa de valores - y todo lo que tenía que hacer -. Para crear una lógica que conectaría los dos eventos

A continuación se muestra una captura de pantalla de la ventana de la T4 de trabajo. Especialmente bueno fue el hecho de que mediante la creación de su propio programa, tuve la oportunidad de observar las ofertas de computación desde la misma interfaz. Asegúrese de que estos dos equipos van y vienen en la ventana de trabajo (hay a sí mismos ligados a mi dinero real), y era aterrador y emocionante al mismo tiempo.



Diseñe su propio algoritmo h4>
Al principio, mi objetivo era crear un sistema sobre el que podía estar seguro razonablemente - que hace un beneficio - antes del comienzo de la verdadera juego. Para lograr esta confianza, que necesitaba para crear un marco que simula oficios que podía - la mayor precisión posible -. Recrear el comportamiento del mercado

[Esto normalmente utilizo acceso de prueba a la bolsa de valores, es posible, y en los sitios nacionales. Además, muchos comerciantes utilizan un marco ya hecho para el desarrollo de robots de comercio (para los intercambios rusos tienen varias suave / decisiones, pagado en su mayoría) - aprox. Perevi.] I>

Dado que el comercio de bienes requiere actualizaciones del mercado de procesamiento, streaming API Borne, el modo de simulación requerido para organizar unas actualizaciones del mercado de lectura del archivo de datos. Para recoger estos datos, me encontré con la primera versión de mi programa sólo para conectarse a la API y escribir actualización mercado con marcas de tiempo. Con el fin de probar y entrenar mi sistema, me tomó un total de 4 semanas para reunir información actual de los mercados.

Incluso con un marco básico, todavía tenía que encontrar la manera de crear un sistema de comercio comerciante rentable. Al final resultó que, mi algoritmo que se divide en dos componentes separados, que voy a discutir por separado:

La predicción de los movimientos de precios La organización de operaciones rentables

movimientos de precios Predecir h4>
Tal vez un componente obvio de cualquier sistema de comercio - la capacidad de predecir cómo van a cambiar los precios. Y mi sistema no es una excepción. He definido los precios actuales, ya que el precio promedio entre la demanda interna y la oferta interna, y establecer una meta para predecir cómo el precio va a cambiar en los próximos 10 segundos. Así que, mi algoritmo tendría que predecir la posición del precio justo de veces durante el día.

Creación y optimización de indicadores h4>
He creado varios indicadores por los cuales fue posible confirmar mi capacidad de predecir los movimientos de precios en el corto plazo. Cada indicador dio un valor que era positivo o negativo. El uso de tales indicadores fue que el crecimiento positivo más consistente, y el negativo -. Una gota en el mercado

Mi sistema me permite determinar rápidamente la calidad de las predicciones para cada uno de los indicadores, por lo que podría experimentar con un gran número de ellos para averiguar cuáles funcionan más de cerca. Muchos de los indicadores dados por las fórmulas que contienen las variables - a sabiendas de estas fórmulas, no pude encontrar los valores óptimos de las variables, haciendo comparaciones por pares de los resultados obtenidos utilizando diferentes valores
.
Los indicadores proporcionan el máximo beneficio, eran relativamente simple y se basa en los últimos datos del mercado, donde cambié, así como la información de otros mercados en los que cotizan valores similares.

La predicción exacta del comportamiento de los precios h4>
Sin embargo, tienen indicadores predicen un aumento o disminución de los precios no fue suficiente. Necesito saber exactamente cómo cada valor de cada indicador predice un cambio de precio específico. Yo quería una fórmula que pagar el valor del indicador en el precio exacto.

Para lograr esto, distribuí los aumentos de precios previstos de 50 grupos diferentes de la difusión de los valores de los indicadores. Se permite hacer una predicción única para cada grupo, con base en los valores de los cuales yo podría construir un gráfico en Excel. Como puede ver, la probabilidad de cambio en los aumentos de precios previstos con el valor del indicador.



Sobre la base de este horario, tuve la oportunidad de crear una fórmula que hacía juego con la curva. Al principio, yo hice esto 'caber debajo de la curva "a mano, pero pronto escribió una subrutina que automatiza este proceso.

Por cierto, no todas las curvas tienen tablas de indicador similar. Además, los grupos se distribuyeron de manera logarítmica a cada grupo era aproximadamente igual al número de valores de origen. También hay que señalar que los valores negativos de los indicadores (y las predicciones correspondientes de precios más bajos) se tomaron en el módulo y dispuestos con valores positivos (mi algoritmo trabaja con la elevación y reducción de las tasas exactamente de la misma).

El diseño de indicadores para proporcionar una clara predicción del comportamiento de los precios h4>
Es importante tener en cuenta aquí es en qué punto: todos los indicadores no eran completamente independientes. No podía volcar un montón de predicciones indicadores y elegir el valor final. Es importante resaltar el valor predictivo añadido, que cada indicador complementa el valor predicho. No era demasiado difícil de hacer, pero significa que si yo manualmente para adaptarse a la curva de los valores de varios indicadores, al mismo tiempo, tuve que tener cuidado -. Un cambio en un indicador podría causar un cambio en los otros

Con el fin de adaptarse a la curva dada todos los indicadores, al mismo tiempo puedo configurar el optimizador para que con cada predicción iteración curva me ha dado de lado sólo el 30%. Este salto en el 30% de las curvas de predicción permiten estabilizar por un pequeño número de iteraciones.

Debido al hecho de que ahora cada indicador sólo aumenta la precisión de la predicción del precio, puedo utilizar todos los indicadores a la vez para conseguir un pronóstico definitivo en cuanto a donde el mercado va a estar en los próximos 10 segundos.

¿Por qué no es suficiente sólo para predecir el precio h4>
Puede parecer que con una ventaja de dicho mercado que podía hacerse rico. Pero es importante recordar que el mercado consiste en la oferta y la demanda - y no sólo por los precios de mercado. El éxito en el trading de alta frecuencia viene a los que ofrecen los mejores precios, pero no es fácil.

Las dificultades en la creación de un sistema que permite a la conclusión de acuerdos lucrativos son los siguientes:

Con cada transacción tengo que pagar una comisión ya mi agente, y las bolsas de valores. La existencia de un diferencial (la diferencia entre los mejores precios de compra y de venta) quiere decir que si yo sólo al azar compra y se vende, se habría perdido un montón de dinero La mayor parte del mercado está ocupado por otros barcos, que concluirá conmigo el acuerdo sólo si lo consideran estadísticamente rentable Encuentra una oferta atractiva -.. no concluir tratar. En el momento en el pedido llega a la bolsa de valores, la propuesta es probable que puede llegar a ser irrelevante. Como un jugador pequeño en el mercado, no puedo sin ayuda de nadie competir sólo a expensas de la velocidad.
Continuará ... i>

Fuente: habrahabr.ru/company/itinvest/blog/208500/

Tags

Vea también

Nueva y Notable