Skip to main content

Project Update

Update for: Summer 2024

Algodab platform is still under heavy development. Technically, it is not ready for prime time yet and as such I am not announcing Algodab anywhere yet, but, hey, if you're here and you are interested and want to find out more about this project shoot me an email at maciej@algodab.com

Milestones completed#

So far we have:

  • Streaming real-time data. Alpaca only for now, but architecture allows for multiple feeds. Data redundancy will be built-in from get go.
  • Fully functioning code editor More work is needed but we can write code, check syntax, be alerted about run time errors, so all basics are there.
  • Charts We can display linear graphs or bars. Bars size is configured by the user and can track any number bars at a time.
  • Task management. Tasks are the code that makes up our algos. Tasks always have a real-time view into the data.
  • Broker support. Only Alpaca.markets broker supported at the time straight out of the box. They built their API precisely for something like this. However, a distinction is being made between data provider and broker services. At this moment Alpaca provides real-time data feed as well as broker services, but architecture supports seperation of the two concepts.
  • The platfrom can submit orders manually or programmatically via Buy/Sell API calls.
  • Annotations: We have most basic visual annotations, as well as audio via Say and Play API.
  • Metrics: There are several key metrics that the platform tracks out of the box: cpu usage, memory, task running times, data latencies, etc. but we also have support for user defined metrics. All metrics can be displayed on dashboards such as Grafana.
  • Crypto support we can now track real-time crypto and apply strategies to crypto assets. Coinbase module for now, more to come.

Work yet to be done#

  • Order flow still needs work. I would like to be able to track individual purchase lots. Right now orders to buy(200) and buy(400) are not individually differentiated. They would show as an open position of 600 with whatever the average cost basis is.

  • Ability to cancel pending orders. A very basic ask but it is tied into handling of individual order lots.

  • Handling of "locked" shares. If holding 600 shares and then putting in a sell order for 500 shares, we only have 100 left to work with. This can definitely be handled by a script but feels like it should be enforced by the platform. It will help with preventing erroneous orders sent to brokers.

  • Finmath module This will be a module for calculating various indicators. It needs to be independent from the actual trading platform and should act on real-time data that is currently streaming on the data bus.

  • More charting tools. Generally, the more charting tools the better. This one will be an open ticket for a while.

Release schedule#

No promises just yet. This is a spare time project.