The testing environment within the network hierarchy organizes your strategy-testing resources, grouping tasks, and associated backtesting and paper trading sessions.
The testing environment node organizes trading sessions involving testing of trading systems.

A thorough and comprehensive testing of strategies is at the core of successful trading. Superalgos strives to put you in control of the testing process providing you with flexible tools to fit your criteria.

Depending on how you use the system, how many markets and exchanges you work with, the number of trading systems you use, or the way you choose to test your strategies, you may find yourself with a large number of testing sessions. It is recommended you organize all of your testing sessions below the testing environment node.


Testing Environment

Task Manager

Task

Trading Bot Instance

Trading Process Instance

Market Reference

Backtesting Session
—or—
Paper Trading Session

Parameters

Task Manager

A task manager is a device used to organize and control any number of tasks, which, in turn, control bot instances. You use a task manager to start or stop several tasks at the same time.

A task manager facilitates the organization of tasks. For example, you may wish to set up a task manager to handle tasks related to a particular set of indicators you use with a certain strategy. Or, for example, to organize multiple backtesting sessions.

Click to learn more about task managers

Adding a Task Manager Node

To add a task manager, select Add Task Manager on the My Computer network node menu. A task manager is added along with a task.

Starting a Task Manager

Select Run All Tasks or Stop All Tasks on the menu to start and stop all tasks respectively.

Task

A task is the device used to control bot instances, that is, to start and stop bots, including sensors, indicators and the trading bot.

Each task controls a single bot. A bot instance running on its own task is independent from other bots at the operating system level, thus, may not be affected by errors ocurring on those other bots.

Click to learn more about tasks

Adding a Task Node

To add a task, select Add Task on the task manager node menu.

Starting a Task

Select Run on the menu to start a task. When a task is started, the process instance of the bot instance attached to the task is started. Also, a visual indication that both the task and the process instance are running appear surrounding the corresponding nodes, in the form of a progress ring.

To stop a task, select Stop on the menu.

Trading Bot Instance
A trading bot instance is a reference to the trading bot as defined in the Masters data mine. The instance of the bot runs the defined processes and generates the defined data products.

Based on datasets exposed as products by other bots (counting sensors, indicators and even other trading bots), a trading bot applies the trading logic defined on a trading system to, on one side, generate a complete trading simulation (outputting datasets that include trades, the action of strategies, validation of conditions, etc.), and on the other side, manage the execution of orders when on a forward testing or live trading session.

The trading bot instance holds no definitions as to what the bot does. Instead, its process instance references the process definition in the Masters data mine. That is how the indicator bot instance obtains the information of what it needs to do once it is run.

Click to learn more about trading bot instances

Adding a Trading Bot Instance Node

To add a trading bot instance, select Add Trading Bot Instance on the task node menu. When a trading bot instance is added, it is created with one trading process instance, and a market reference.

Starting a Trading Bot Instance

You do not start or stop a trading bot instance directly. Instead, you start or stop the corresponding task.

Trading Process Instance
A trading process instance is a reference to the process definition of the trading bot, as defined in the Masters data mine.

The trading process instance must reference the Multi-Period process definition of the Jason trading bot in the Masters data mine.

Click to learn more about trading process instances

Adding a Trading Process Instance Node

To add a trading process instance, select Add Trading Process Instance on the trading bot instance node menu. When a trading process instance is added, it is created with a market reference.

Starting a Trading Process Instance

You do not start or stop a trading process instance directly. Instead, you start or stop the corresponding task.

Market Reference
A market reference is a reference to a specific market in a specific exchange, as defined in the Crypto Ecosystem hierarchy. The reference dictates which market the process works with.

In other words, a market reference is the piece of information that lets the process instance know which market of which exchange it needs to process.

Click to learn more about market references

Adding a Market Reference Node

To add a market reference, select Add Market Reference on the sensor, indicator or trading process instance node menu.

Backtesting Session
A backtesting session is a trading mode by which the trading bot instance reads historic market data in a user-defined datetime range, applies the rules defined in the associated trading system, and generates a trading simulation.

A backtesting session node must reference a trading system to gain access to the trading logic to be applied during the session. Other considerations framing the session come from the set of parameters attached to it.

Click to learn more about backtesting sessions

Adding a Backtesting Session Node

To add a backtesting session, select Add Backtesting Session on the trading process instance node menu. When a session is added, it is created with the full set of parameters.

Configuring the Backtesting Session

Select Configure Session on the menu to access the configuration.

{
"folderName": "Session-Name"
}
  • folderName allows you to set a significant name to the folder in which the data products—and logs—generated by the session are stored. If left blank, the system names the folders with the session id. This may be handy when you intend to consult the raw data generated by the session, as, otherwise, the folder would be hard to identify.
Starting a Backtesting Session

Before you start a backtesting session, the corresponding task needs to be running, as it is the task that puts the trading bot instance to run. Once the trading bot instance is running, select Run on the menu to start the session.

After a few seconds, a literal indication of the progress of the calculations appears below the session node, displaying the date that is currently being processed. Once the calculation is finished, the session stops and the date below the session node dissapears.

To stop a backtesting session, select Stop on the menu.

Paper Trading Session
A paper trading session is a trading mode by which the trading bot instance reads a live market data feed, applies the rules defined in the associated trading system, and generates a trading simulation.

A paper trading session node must reference a trading system to gain access to the trading logic to be applied during the session. Other considerations framing the session come from the set of parameters attached to it.

Click to learn more about paper trading sessions

Adding a Paper Trading Session Node

To add a paper trading session, select Add Paper Trading Session on the trading process instance node menu. When a session is added, it is created with the full set of parameters.

Configuring the Paper Trading Session

Select Configure Session on the menu to access the configuration.

{
"folderName": "Session-Name"
}
  • folderName allows you to set a significant name to the folder in which the data products—and logs—generated by the session are stored. If left blank, the system names the folders with the session id. This may be handy when you intend to consult the raw data generated by the session, as, otherwise, the folder would be hard to identify.
Starting a Paper Trading Session

Before you start a paper trading session, the corresponding task needs to be running, as it is the task that puts the trading bot instance to run. Once the trading bot instance is running, select Run on the menu to start the session.

To stop a backtesting session, select Stop on the menu.

Parameters
Parameters are properties of trading sessions, defined by users, to determine their behavior and improve the quality of simulations.

The behavior of parameters may vary depending on the type of session.

Each testing session has its own set of parameters. This allows you to configure different trading sessions with different parameters, and go back and forth between them as required. For instance, you may have different backtesting sessions with different date ranges, different exchange fees or different slippage settings to account for different possible scenarios.

Click to learn more about parameters

Adding a Parameters Node

To add a parameters node, select Add Parameters on the session or the trading system menu, depending on the context. When a parameters node is added, the full set of parameters are created with it.

If you already have a parameters node but are missing some of the parameters, then select Add Missing Params on the menu.