RightEdge - The Ultimate Backtesting and Trading System Development Platform

Trading System Overview

In RightEdge, you create trading systems to implement your trading strategy.  You can backtest a system using historical symbol data to assess its performance.  When you are comfortable with your system you can run it in live mode for fully automated trade execution.

The RightEdge trading system framework is designed to be both powerful and easy to use.  You can create a fully functional trading system with the system designer, which uses a visual drag and drop interface.  For more control, you can write trading systems in C# or Visual Basic .NET.  You can access objects created using the system designer from code, so you could use the drag and drop interface to create your indicators, and then use code to make trading decisions based on those indicators.

RightEdge trading systems use an event-driven model where RightEdge calls into the system for each new bar or tick.  This means that a system can run in either backtesting or live mode with no modifications.  It also prevents systems from "looking into the future" when backtesting.  When the system is simulating a given date the prices from later dates are not available.

System Components

There are three types of objects that can be created with the system designer: series, triggers, and actions.

A series is a sequence of numerical values with a single value corresponding to each bar in the price data.  Series can be plotted on price charts.  Technical indicators are implemented as series, and the terms indicator and series are sometimes used interchangeably.  Series values may be calculated based on the bar data or by using other series as inputs.  This allows for indicator "chaining", where you can take a moving average of a Bollinger band, for example.

Triggers are used to detect when a certain condition has been filled.  They have two states, on and off.  Triggers may use series or other triggers as inputs.  For example, the crossover trigger detects when one series has crossed over another, the comparison trigger can be used to determine if one series is greater than another, and the "And" trigger is on when all of its input triggers are also on.

Actions are used to take an action such as opening a position or (potentially) sending an alert or placing a note on the price chart.  Actions can be attached to triggers, and will be executed on each bar where the trigger state is on.

RightEdge uses a plugin architecture for all of these object types.  If you need an indicator, trigger, or action that is not included with RightEdge, you can write your own in either C# or Visual Basic .NET.  You may also find that what you need has already been written and is available on the RightEdge forums or the internet.

The System Designer

The system designer provides a visual drag and drop interface to create a trading system.  Objects are shown in a tree where the properties and inputs for an object are displayed beneath that object.  Below is a simple trading system which buys when the 10-period EMA crosses over the 20-period SMA.


There are two toolboxes which list the components that can be used in the system designer.  The Indicators toolbox lists the available indicators or series, while the Components toolbox lists the available actions and triggers.  To add a copy of a component to your system, simply drag it from the toolbox and drop it onto the system designer.

The object tree has two columns.  The left column displays the component type (Indicator or Trigger), or the property or input name.  The right column displays value of the property or input, as well as the name and type of the object.  The first row of the above screenshot is the root row for a CrossOver trigger.  This trigger has two series inputs, the Signal Series and the Base Series.  Each of these inputs is shown on a seperate row below the CrossOver trigger row in the tree, with the names of the inputs in the left column.  The right columns for these rows show the values of the series inputs.  An Exponential Moving Average series with the name "EMA" is being used as the Signal Series input for the CrossOver trigger.  Below this row are the properties for the EMA series, which include the number of periods and the input series for which the moving average should be calculated.

Inputs and properties can be modified by double-clicking on the value of an input, by right-clicking on the value and selecting an item from the "Set Input Value" submenu, or by dragging an object on the design surface to where it should be used as an input.  Double-clicking on an input value will bring up a combo box.  A new input can be selected from the dropdown, or the current object can be renamed by typing a new name into the combo box.  If an object is dragged onto an input row of the corresponding type, the dragged object will be used for the input where it was dropped.  If the object is already being used as an input elsewhere in the tree, it will be displayed in both locations.


Selecting a series in the system designer will display its properties in the properties toolbox.  This toolbox can be used to modify these properties.  The visual settings control how the series will be displayed on charts.  Set the ShowInChart setting to False to prevent the series from being drawn on the chart at all.  To draw the series in a different pane, simply type a new pane name for the ChartName setting.