Available translations

Trading Farms - Fundamental Concepts

Summary: How to set up a flexible and scalable crypto-trading farm running Superalgos distributed on multiple machines.
Superalgos is designed for coordinated, flexible, and scalable trading operations.
LAN Network
A Network, represented by the LAN Network Hierarchy, is just a definition that allows the system to know where Tasks need to be run, and where data is hosted. At any workspace you might define one, or even more than one, LAN Network Hierarchy. For simplicity, we will continue the explanation assuming only one Network is defined.
In its current version, the system may be deployed in multiple machines—as many as desired—and each machine may constitute a node in a network of nodes. In fact, different networks of nodes may live within the same computer network, because they are just an abstractions, not something physical.
The whole purpose of the Network definition is to let the system know where each task must run and where the data is located.
There are many different way you might want to organize the Tasks across several Clients. It is really up to you. The system doesn't care or have any preferred way for you to do so. It just need to know where each Task runs, and where the Data is located. That's it.
Each node on a Network may specialize in a single type of process or handle multiple processes of different types.
For example, you may have a set of nodes running data mining operations extracting data from multiple markets and multiple exchanges. You may have a set of nodes specializing in processing indicators and technical studies. And you may have a set of nodes specializing in running trading sessions.
You may also use different criteria to arrange the network. For example, you may have a node running combined data mining, data processing, and trading operations on a single exchange or market, and other nodes running similar combined operations on other exchanges or markets.
Or you may have a network of nodes for your testing environment and another network of nodes for your production environment.
In other words, the system allows building any arrangement of networks of nodes corresponding to the organizational logic of your preference.
Auto Tracking of Dependencies
When you define a Task, inside of it you are referencing a Process Definition, which has in turn a definition specifying which other processes it depends on (for example to start after some other process finished) and it also has Data Dependencies, which means that in order to run, it needs to read the data output from other processes.
What is unique about Superalgos is that the system keeps track of the network arrangements you create and makes sure that all processes in the system can seamlessly track dependencies across the network. This means, for example, that trading sessions running on Node X may access data in Node Y and Node Z without requiring any sort of configuration.
This is achieved by sending to a newly executed Task a snapshot of the Network Map at the instant when the Task is being run. From the Mine definition the Task can know which processes and data it depends on, and by looking into the snapshot of the Network, it can guess which Client is hosting the Data or the Tasks that the process depends on, allowing it to communicate with those Clients, and fetch the data from them, or wait for the right events signaling that the dependent process has finished.
Peer to Peer
There is no preferred node where to manage the rest of the Client s.
The operation may be managed entirely from any node on the network. In fact, it may be managed from a computer in the network not running Superalgos, by pointing the browser to any of the nodes in the network to run the UI.
The following explanations assume that you are familiar with the basic workings of Superalgos, and in particular, of the Network hierarchy. If that is not the case, then please read the Network pages before diving into building a trading farm.
Trading Farms - Set Up a Network of Nodes