Miguel Sánchez de León Peque - Developing a real-time automated trading platform with Python
Channel: EuroPython Conference
Date: 05/08/2016

Miguel Sánchez de León Peque - Developing a real-time automated trading platform with Python
[EuroPython 2016]
[18 July 2016]
[Bilbao, Euskadi, Spain]
(https://ep2016.europython.eu//conference/talks/developing-a-real-time-automated-trading-platform-with-python)

Nowadays Python is the perfect environment for developing a real-time
automated trading tool. In this talk we will discuss the development
of: a general-purpose multiagent-system module using Pyro and ZeroMQ;
a platform, based on it, for developing automated trading strategies
using Numpy, Numba, Theano, etc.; and a GUI for visualizing real-time
market data using PyQtGraph and Qt.

-----

In OpenSistemas we have developed a general-purpose multi-agent system
which is written in pure Python: *osBrain*. Agents communicate with
each other using ZeroMQ, allowing the user to define different
communication patterns based on their needs.

Based on this multi-agent system, we have also developed a broker-
independent platform for real-time automated trading: *osMarkets*.
This platform implements specialized agents:

- **Feeder** is an agent which receives real-time data from the broker.
- **Router** is an agent which receives data from feeders. It manages
the historical data and distributes updates to all the subscribed
agents in the network.
- **Brain** is the most common agent. It receives data from router or
from other brains and processes them, sending the results to other
brains or sending orders to be executed. Brains can make use of many
useful packages avilable in the Python ecosystem: NumPy, SciPy, Numba,
Theano...
- **Trader** is an agent which is designed to interact with the
broker, just as the feeder, but to execute market orders.

![system](http://i.imgur.com/A9vsWee.png)

While it is still in its earliest stages, we are developing a tool for
real-time visualization of trading strategies using PyQtGraph. This
tool acts as an agent in the multi-agent system.

![chart](http://i.imgur.com/5XS7oBQ.png)