Comercio algorítmico en linux usando python [cerrado]

¿Existe alguna plataforma de negociación en tiempo real en Linux en la que se puedan probar los scripts de negociación automatizados escritos en python ordenando a un corredor en una cuenta de prueba o demostración? ¿Es IbPy el camino a seguir? Pero IB no ofrece ninguna cuenta de prueba.

Las respuestas de las personas están nombrando proveedores de servicios específicos (negocios), que es lo que solicita el OP. Son buenas respuestas. No se trata de programación (es decir, de su software), sino de negocios (del mundo real). Estaría fuera de tema en un foro de programadores: demasiado 'específico del dominio' (el dominio en este caso es finanzas/comercio), y ni siquiera sobre el software.
Este tema se cerró en un foro de programadores indicando que estaba fuera de tema. Escuché que Marketcetera es un programa de Python que permite conectarse a cualquier corredor que admita el protocolo FIX, aunque no sé qué corredores hacen eso.
Esta es una pregunta general sobre un tema limitado. La única justificación para cerrar la pregunta es si asume que el comercio no puede ser una actividad de finanzas personales. Todo lo que necesita hacer es ver un solo segmento comercial en CNBC para ver si las plataformas comerciales buenas o malas para inversores individuales son algo real.
Las recomendaciones de productos y servicios se consideran fuera de tema en casi todas partes en Stack Exchange, porque se vuelven obsoletas rápidamente y, por lo tanto, no se ajustan al objetivo de las preguntas frecuentes de colaboración colectiva. Nuestro alcance se ha definido mejor desde 2012 y, según los estándares actuales, probablemente se votaría para cerrarlo.

Respuestas (4)

Un par de opciones que conozco:

  • Interactive Brokers ofrece un modo de "negociación en papel" a los titulares de sus cuentas que le permite comenzar con una pila de dinero ficticia y realizar transacciones simuladas para probar ideas de negociación. También proporcionan una API que le permite interactuar con su plataforma mediante programación para recuperar cotizaciones, realizar pedidos y demás. Sin embargo, como notó, no es gratis; debe tener una cuenta de corretaje financiada para calificar para acceder a su plataforma. Para mantener una cuenta, hay mínimos de capital requerido y actividad mensual (medida en dólares que gastas en comisiones), por lo que no tendrás acceso a su plataforma sin tener una cantidad decente de aspectos en el juego.

    La API nativa de IB está basada en Java; IbPy es un contenedor no oficial que hace que la interfaz esté disponible en Python. Yo mismo no he usado IB en absoluto, pero he oído cosas buenas sobre su API y su accesibilidad a través de IbPy.

    Editar: IB ahora admite Python de forma nativa a través de su API publicada, por lo que ya no es necesario usar IbPy, a menos que desee usar Python 2.x. La API admitida oficialmente se basa en Python 3.

  • TD Ameritrade también ofrece una API que pueden utilizar sus clientes de corretaje. No ofrecen ningún modo de "comercio en papel", por lo que deberá "ejecutar" transacciones basadas en cotizaciones en los momentos de negociación correspondientes y luego realizar un seguimiento de su historial de cuenta simulado. La API admite la recuperación de cotizaciones, el historial de precios y la ejecución de operaciones, entre otras funciones. TDA podría ser más atractivo que IB si está buscando un enlace de bajo costo a los datos del mercado, ya que creo que sus niveles mínimos de capital son más bajos.

    Para obtener acceso, deberá registrarse para obtener una cuenta de desarrollador de API, que creo que requiere un NDA. No creo que haya una implementación oficial de Python de la API, pero si eres un escritor de Python capaz, no deberías tener problemas para conectarte a las interfaces publicadas.

Algunas advertencias: al igual que cuando realiza una prueba retrospectiva de cualquier estrategia, querrá asegurarse de ser pesimista al hacerlo, para que su optimismo no haga que sus operaciones parezcan más exitosas de lo que serían en el mundo real. Como mínimo, querrá asegurarse de que sus simulaciones realicen transacciones a los precios de oferta/demanda publicados, no necesariamente el precio de la última operación, así como las comisiones y tarifas asociadas con la operación. Un esquema más robusto también tendría en cuenta la profundidad del libro de órdenes (también conocido como cotizaciones de nivel 2), lo que puede causar un deslizamiento adicional en los precios a los que compra/vende su valor. Un esquema aún más sólido tendría en cuenta la latencia potencial de la ejecución de la operación, observando todos los precios durante un período de tiempo que cubra la latencia máxima esperada y simulando la operación al peor precio posible.

La cuenta de operaciones en papel en Interactive Brokers no necesariamente requiere que tenga una facturación mensual mínima, si no tiene el mínimo, simplemente paga una tarifa de inactividad ( interactivebrokers.com/en/index.php?f=4969 ) y su mercado suscripciones de datos, que personalmente creo que es una buena oferta para lo que ofrece la cuenta comercial en papel.
También vale la pena señalar que, aunque TD Ameritrade no indica esto en su sitio, si solicita acceso a la API y no tiene $ 25,000 en su cuenta, su solicitud será rechazada. (Sé esto por experiencia personal).
Como individuo que realiza transacciones automatizadas, he estado operando e investigando continuamente las ofertas de API de los corredores durante bastante tiempo, e Interactive Brokers es la única opción que tiene sentido para mí; a veces, en realidad, he querido cambiar, pero realmente hay nadie más que pueda reemplazarlos. Sus comisiones son muy baratas, admiten más mercados a nivel mundial que nadie en el espacio minorista y tienen una API gratuita y bastante útil. Principalmente uso ibPy y funciona perfectamente, aunque no se actualiza activamente, por lo que a veces no hay nuevas funciones disponibles.

Puedes echar un vistazo a betabrokers . Es una plataforma de comercio de acciones simulada que está completamente basada en correo electrónico. Comienza con 10 000 $ y realiza transacciones con comandos en la línea de asunto del correo electrónico (por ejemplo, "compre 250 $ AAPL" o "cubra 20 acciones de AAPL").

Debería ser sencillo agregar una interfaz de correo electrónico a su secuencia de comandos de python.

No creo que ningún proyecto comercial de código abierto ofrezca cuentas de prueba o de demostración. De hecho, no tengo claro lo que quieres decir con esto. ¿Está buscando algunos conjuntos de datos de ejemplo para que pueda ver cómo se comportaría históricamente su algoritmo? Si se comunica con los corredores específicos con los que le gustaría interactuar, pueden proporcionar cosas como pruebas de conexión, etc., pero nadie le permitirá realizar operaciones en vivo a modo de prueba o demostración.

Para obtener más información sobre cómo configurar este tipo de cosas en casa, aquí hay un buen enlace: < http://www.stat.cmu.edu/~abrock/algotrading/index.html >. No es específico de Python, pero debería darle una buena idea de qué hacer.

En Japón, existe una competencia que dura desde 2004 donde puedes ejecutar tu propio agente de software en un mercado virtual. Los datos del mercado se actualizan desde el mundo real todos los días. Y si su agente demuestra ser bueno, el organizador lo pone en el mercado real.

Desafortunadamente, el idioma está limitado Javasolo a mi conocimiento. OSno está limitado ya que se supone que su agente se ejecuta en el entorno del organizador. Es posible que el inglés no esté bien soportado en su sitio web...