¿Debo intentar aprender Java si quiero escribir un sistema de comercio automatizado y si Interactive Brokers carece de una API oficial de Python, y cuál es una buena manera de comenzar?

Codifique un algoritmo de negociación de Python en Quantopian y vincúlelo a su cuenta de Interactive Brokers. (Sí, trabajo para Quantopian) Permítanos manejar el backend mientras se concentra en lo que realmente importa: escribir algoritmos de generación alfa.

Codifique algoritmos en nuestro IDE interactivo, realice una prueba de respaldo en 12 años de precios mínimos y datos fundamentales, discuta estrategias en la Comunidad Quantopian e implemente su trabajo en el comercio de papel o el comercio con dinero real (actualmente se admite IB y E * Trade), todo gratis .

Use el nuevo entorno de investigación de Quantopian para analizar los resultados de su backtest, crear clasificadores de aprendizaje automático y procesar, trazar y explorar todos nuestros datos en un cuaderno de IPython.

Ingrese a nuestra competencia mensual de comercio de papel, el Quantopian Open, para tener la oportunidad de ganar $ 100,000 en respaldo durante seis meses. Después de esos seis meses de negociación, conserva todas las ganancias que genera su algoritmo.

Si sus resultados de backtest y comercio en papel se destacan, le pediremos que use su algoritmo en nuestro fondo de cobertura de fuentes múltiples. Respaldaremos su algoritmo con capital de inversores externos y le daremos una parte de las ganancias que genere.

Como siempre, incluso si decide participar en el concurso o unirse al fondo, su algoritmo sigue siendo su propiedad intelectual. Nunca miraremos su código sin su permiso.

Echa un vistazo a estos algo para comenzar:
Quantopian: estrategia de impulso rápido y sucio
Quantopian – Estrategia de valor de impulso

Aunque JAVA es una de las API oficiales que ofrece Interactive Brokers, no obstante, aún puede implementar Python en IB. Hacen uso de IBPy para esto y aquí hay un tutorial paso a paso sobre cómo implementar lo mismo en IBPy: Comercio con corredores interactivos usando Python: un tutorial de IBPy

Si trabaja con Interactive Brokers, Java es el mejor lenguaje para implementar un sistema de comercio automatizado real. Sin embargo, el uso de Java requiere más tiempo para la exploración de estrategias / ideas comerciales. Prefiero jugar con datos y probar mis ideas en R o Python, donde puede cambiar el código más rápido, y no es necesario volver a compilar y empaquetar su aplicación cada vez que realice un cambio. Luego, se implementa el comercio real en Java, lo que le brinda un mejor rendimiento en tiempo de ejecución, subprocesos múltiples con la capacidad de ejecutar múltiples estrategias y monitorear múltiples contratos en paralelo, así como acceso a la API de Java IB “oficial”, en oposición a Python menos bien mantenido envoltorios

Por cierto, si, como yo, utiliza el análisis técnico y le gusta probar nuevas ideas de estrategia, esta herramienta para obtener datos históricos de Interactive Brokers es muy útil.

Me ahorró mucho tiempo al no tener que codificar mi propia solución para lidiar con las infracciones de estimulación API API y los límites de tamaño de solicitud:

Descargador de datos históricos de Interactive Brokers

Lo he estado usando durante algunas polillas, y funciona bien para mí:

Interactive Brokers organizó un seminario web el 10 de noviembre de 2016 sobre Implementar Algo Trading codificado en Python usando la API de Interactive Brokers. El presentador dio una buena explicación sobre la aplicabilidad de IBridgePy, que es un software de código abierto que se utiliza para conectarse a Interactive Brokers C ++ API para la ejecución de códigos python en mercados en vivo.

El seminario web se grabó para que pueda escucharlo cuando lo desee. El enlace del seminario web está aquí: https: //www.interactivebrokers.c … En la página, IB clasifica sus seminarios web en varios temas: TWS, Trading, API, etc. Después de hacer clic en la pestaña “API”, verá ver todos los seminarios web sobre API. IBridgePy funciona como un quantopian independiente y es mucho más fácil que IBpy.

Puede buscar en Google IBridgePy y encontrar el sitio web de la misma.

El tutorial de IBridgePy está aquí:

Hay algunas API no oficiales como IBpy y hay una comunidad sobre eso. Pero como una persona seria en el comercio de algo, creo que es un riesgo usar API no oficial. ¿Qué sucede si un día la API de IB realiza cambios significativos y el equipo de IBPy ya no trabaja en ello?

Te sugiero que aprendas los lenguajes de programación que IB tiene API oficial. Java es una buena opción y estoy usando Java (y Scala) para mi plataforma de negociación que interactúa con la API de IB.

Java o C ++ e Interactive Brokers es la mejor opción para inversores minoristas:

Consulte este tutorial, puede ayudar:

Lecciones de Java API API

Puedes aprender R allí también. Recuerde preparar sus estrategias en R y ganar dinero con Java y C ++.

Simplemente use el algo de acumular / distribuir según este tutorial para construir su estrategia sin los requisitos de software de terceros ni la habilidad de programación.

Corredores interactivos TWS Trading Automation

Aquí hay dos publicaciones más recientes sobre el comercio automatizado en Interactive Brokers usando la programación R. Estos artículos cubren el paquete IBrokers que se puede usar para automatizar el comercio con R.

Uso del paquete IBrokers para implementar R en la API Interactive Brokers

Arquitectura de la implementación de IBrokers R en API Interactive Brokers

Espero que les sea una buena lectura.

Use cython y escriba un contenedor para la API de C que tienen.

Luego puede llamarlo fácilmente desde Python y posiblemente publicarlo (con permiso de IB) para que otros puedan usarlo yoo

WebTrader es una plataforma de negociación basada en HTML. Entonces toda la API necesaria está ahí.

Tal vez necesite escribir un programa de Python para decodificar el html recibido en una forma más utilizable, y otro programa para publicar los parámetros de sus pedidos, pero básicamente la API está ahí.

Bueno, usaría Java de todos modos, pero solo soy yo.

¿Podría hacer las cosas de la API en Java e insertarlas en el programa principal de Python utilizando algún tipo de API de paso de mensajes?

Creo que si te sientes cómodo en Python, probablemente también puedas sentirte cómodo con Java.