3 votos

¿Cómo realizar operaciones por lotes utilizando la API de Interactive Broker?

Mi definición de comercio por lotes: Dado $N$ Pedidos de compra, $M$ Órdenes de venta y $O$ ( $O < N$ ) como el número máximo de posiciones abiertas a mantener. La negociación por lotes debe controlar las órdenes y cuando $O$ Las órdenes de COMPRA se llenan y se cancela la $N-O$ Órdenes de compra.

Para ello, a continuación se muestra el pseudocódigo:

for every PositionMessage that comes in: if number_of_filled_openpositions >= Max: // cancel is performed only ONCE, I set a "flag" to make sure // cancel is called only once during this entire process cancel_unfilled_BUY_orders_one_by_one() // OpenPositions have a TimeUpdated field, // Sell order will be generated starting from the last filled orders // Sell order is generated only after the position is fully filled Sell_excess_filled_orders()

El problema al que me enfrento ahora es que, dependiendo del día, puedo conseguir correcto número de cancelaciones y correcto número de posiciones_excedentes_vendidas. Pero otros días, a veces me encuentro con max number of messages exceeds limit.. o remote host forcibly disconnected your connection o número incorrecto de cancelación o excess_filled_sold.

He intentado introducir un time-delay en cancel_unfilled_BUY_orders_one_by_one() para que cada orden de cancelación se envíe después de un tiempo de retraso.

Me está costando depurar porque necesito que el mercado esté abierto para hacer pruebas exhaustivas, que son las 00:00 (medianoche) para mí y los fines de semana los mercados no están abiertos (este es un proyecto de hobby).

¿Qué más debo tener en cuenta? ¿Qué me falta? ¿Alguien más ha intentado hacer algo similar?

Estaré encantado de dar más detalles si es necesario.

1voto

motobói Puntos 370

Interactive Brokers publicó un webinar el 13 de diciembre de 2016 sobre el uso de IBridgePy para conectarse a la API de IB. https://www.youtube.com/watch?v=hogXB07OJ_I . Es bastante fácil resolver el problema que mencionas. Puede consultar el sitio web de IBridgePy en www.IBridgePy.com. Para aprender a utilizarlo, puede consultar su documentación.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X