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.
-
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.
-
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.

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