¿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.
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.
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 Java
solo a mi conocimiento. OS
no 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...
Kaburobo
por bloomberg
CrisW
papu
cerveza703
keshlam