Skip to content

Benefits of using Algodab

Fully integrated IDE

AlgoDab is a complete integrated development environment (IDE) dedicated to creating and running trading algos. There server runs independently of the UI. Once up and running, you edit, test, and run your strategies in one user interface (GUI).

Self-hosted

There is a number of reasons why a self-hosted system may make sense.

  1. Privacy. Third-party hosted platforms already out there require uploading your secret sauce to third party servers. Yes, chances are the companies are not out to get my secret recipe, but it is about being in my own comfort zone, being in control, and not worrying about that other company’s pro-verbial rogue employee might or might not do.

  2. More importantly: limited resources. There could be limits on resources made available to you by host providers. Memory usage, disk space , or even bandwidth - increasing needs mean increasing provider costs. Algodab trading platform stack can run on your own machine. It is fully configurable, enables you to give your hardware as much or as little power as you want - a;; the while keeping your secrets safe.

Multiple data streams

Algodab is capable of ingesting and aggregating data from any number of data providers simultaneously. Such architecture offers redundancy in case of outages, delays, or gaps in providers' feeds. Incoming data is aggregated across all providers to provide normalized data views, i.e.: candle bars.

---
config:
  flowchart:
    htmlLabels: true
---
flowchart LR
    aggregator["`Aggregator`"]
    newLines["`Algodab Engine`"]

    CB@{ shape: cloud, label: "Coinbase" }
    CB e1@-- quotes -->aggregator

    Alpaca@{ shape: cloud, label: "Alpaca" }
    Alpaca e2@-- quotes -->aggregator

    Other@{ shape: cloud, label: "other..." }
    Other e4@-- quotes -->aggregator

    aggregator e3@--candles, bars, ...---> newLines

    e1@{ animate: true }
    e2@{ animate: true }
    e3@{ animate: true }
    e4@{ animate: true }

Supported providers: Coinbase and Alpaca.

Multiple Brokers

Brokers handle accounts. Algodab can support mutliple brokers, which allows spreading complex trades across multiple brokerage accounts.

Coinbase and Alpaca only a this time.

Run multiple strategies off of a single data feed

Many providers put restriction on how their streams may be consumed. Alpaca dor example, allows only one websocket connection per account. This often means that you could be limited to a single strategy at any given time. Algodab abstracts that stream of data, allowing any number of Algodab servers to run on a single websocket connection.

flowchart LR
    ad1["`Algodab Instance 1`"]
    ad2["`Algodab Instance 2`"]
    ad3["`Algodab Instance 3`"]
    Alpaca@{ shape: rect, label: "Data Provider
    (Alpaca)" }
    aggregator@{ shape: st-rect, label: "Algodab 
    Aggregator" }
    Alpaca e0@ -- ws:// --> aggregator
    aggregator e1@ -- candles, bars, ... ---> ad1
    aggregator e2@ -- candles, bars, ... ---> ad2
    aggregator e3@ -- candles, bars, ... ---> ad3
    e0@{ animate: true }
    e1@{ animate: true }
    e2@{ animate: true }
    e3@{ animate: true }

Build for extensibility and redundancy

You can simultaneously connect to multiple data providers (i.e. Alpaca, Etrade, IEX, etc.) and aggregate their data into a single feed powering all your algos. Such architecture allows for a good degree of fail-over redundancy should one of the providers go off line. Also, it provides a way to go around limits imposed by any single data provider. Algodab seperates the concepts of a brokers and a data providers, so you can work with data from one provider and place your trades elsewhere.

Run Python and JavaScript simultaneously

Your strategies can be a mixure of Python and Javascript code. Are you all about Javascript but found a neat Python code? No worries, just drop it in and run it along side your Javascript code. Additional languages are being considered - your feedback pending :)

Web based UI

The client is a web app. Edit your code and monitor your server from anywhere.

Extensible architecture

Multiple brokers, multiple data providers, muliple algorigthms - all running simultaneously providing aggregated views of your data.

Automated live or paper trading

The system is fully capable of running on autopilot with as much or as little supervision as required by your comfort levels.

Fully Automated or manual trades

Your choice, do fire-and-forget strategies or simply use Algodab server as a support tool for your manual trading decisions.

Real-time metrics

Throughout its operations, the server will continuously collect a series of metrics allowing you to monitor the health status of the server: from simple things such as CPU load, to messaging or task execution durations. All metrics can be visually monitored with a Grafana dashboard (default choice here), however technically, there isn’t a reason why you couldn’t use a graphing package of your choice.

Algo trading IDE real-time dashboard

Monitor your server's health and algorithm performance with variety of real-time metrics: cpu usage, task execution times, holding durations, etc. Additionally, your algorithms can maintain their own metrics and measurements via Stats.push() method, which can then be displayed on the dashboard.

Source available on GitHub

GitHub repo coming soon. I plan on making the source available once MVP (minimaly viable product) is ready and some maintenance chores are finished: remove some dead code, some interface fixes, etc etc