Running a Simulation / Backtesting To start a simulation, you must first have data to run the simulation against. If you have not yet configured historical data, please see the Data Provider FAQ and Watchlist FAQ for configuring a data provider and assigned it to symbols in the Watchlist. Once historical data is retrieved, you must open or create a trading system. If you have not yet obtained the trading to run the simulation against, please read the Trading System FAQ. Now that the data is collected and the trading system is loaded, a system can be executed. To execute a trading system, select the symbols that are to be a part of the simulation. Do this be placing a check next to each individual symbol item in the Watchlist or by checking a folder to select all symbols within the folder. Now click the Run Simulation ( ) item to begin the simulation. Once the simulation is completed, the simulation results are displayed. For detailed text on this topic, please read the Analyzing simulation results topic. Back to the top Back to the Main FAQ Running the simulation through optimization Optimization is used to test a system with certain variables changed across simulation runs. Running the system with variable parameters or optimization parameters allows the system developer to determine which values result in the most favorable system performance. Any value in the system can be used as an optimization value. Technical indicators are usually the first candidates since many accept a number of numeric inputs. Other items such as profit targets and stop loss values are also viable candidates. To begin using optimizing your trading system in RightEdge, first, a trading system must be loaded. Once a system is loaded, look at the the Project Properties and locate the System Parameters property as shown below.  RightEdge supports any number of parameters in this list. Each value is treated as a type of double. Click the Add button to add a new empty parameter. Use the property grid on the right to name this parameter and assign a default value. Referencing Parameters Once optimization parameters have been added to the project, they may be referenced in code. Using the above parameter, stochBuyValue, we will only perform a buy if the StochK indicator is below our optimization parameter. C# if (stochKValue < SystemParameters["stochBuyValue"]) { // Perform buy here. }
Visual Basic If (stochKValue < SystemParameters.Item("stochBuyValue")) Then ' Perform buy here. End If
Running an Optimization Once the optimization parameters are set, select Optimize System from the System menu.
Optimization Parameters This is a list of the parameters set for this system. The values can be set by double clicking the value. Set the value by clicking anywhere outside of that value's space. Low Value Each system is run starting from the lowest value. Specify this value for each parameter. High Value Optimization stops once the highest value is reached. Specify this value for each parameter. Step Size This is the increment size for each optimization value. For example, if the low value is 1 and the high value is 11 with a step size of 2, the system will be run a total of six times. Number of Steps This is a calculated value based on all previous entries. This is the number of times the system will be run for this optimization run. When the optimization run is complete, the optimization results screen is displayed.
Run # Each run is sequentially numbered. That number is displayed here. Parameter Value In the sample above, there is a parameter named "adxThreshold". The parameter name is shown in the column and the value of that parameter for each run is displayed in the cell beneath. Summary Items The remaining items in the list are totals pulled from the system run. These are the values for both long and short trades. Double click any run shown to display the full System Results for the run. Analyzing simulation results The simulation results screens contain a great deal of information and also a great deal of flexibility when deciding how to utilize the information. This topic will deal with interpreting the information as well as managing it for your needs with features such as exporting and printing. This section is broken up into two main areas. The first area describes the functionality presented within the system results and the second area goes into detail about the information that is presented. - Manipulating System Results
- Interpreting System Results
a. Summary b. System Parameters c. Position List d. Trade List e. Symbol Results f. Scan g. Charts
Manipulating System Results When a simulation has completed, the system results are displayed in the document area of RightEdge. The System Results document contains multiple tabs each assessing different aspects of the simulation. Each tab contains features that are common. These features can be accessed using a combination of items on the context menus and items in the main menu. The statistics windows, which are those windows that contain textual information as opposed to graphical information, have ability to export to common formats as well as print. When a grid is displayed, right click on the grid area.
This context menu will allow for exporting. Supported formats are tab delimited, CSV (common separated) and HTML. This menu also facilitates displaying system results charts that are not displayed by default. Each of the grids can also be printed. Select the desired tab and select Print... from the File menu. The grids columns for the Trade List, Symbols Results and Scan tabs can also be manipulated and sorted. To sort, click any of the column headings. Click once to sort ascending and click the same column again to sort descending. To move a grid column into another position, click the column heading and hold the left mouse button down. Drag the column to the desired location and release the mouse button. Interpreting System Results Each tab represents the results of the simulation. The textual versions of the result breakdowns are in the first four tabs titled Summary, Trade List, Symbol Results and Scan. Click any of the areas to retrieve more information. Summary The summary tab contains a list of totals broken down horizontally into all trades (long & short combined), long only trades, short only trades and buy and hold. The vertical breakdown groups information about this simulation into manageable categories. Capital SummaryStarting Capital | The amount of capital set in the simulation to begin with. | Ending Capital | The total amount of capital that is in the account after all trades are placed. This will include the starting capital. | Net Profit ($) | The total amount of profit or loss represented as currency. | Net Profit (%) | The total amount of profit or less represented as a percentage against the starting capital. | APR | The calculated annual percentage return of the profit or loss. | Exposure | The average exposure of capital to the market. |
System TotalsNumber of Trades | The total number of trades the simulation opened. | Maximum Profit | The highest profit achieved for all trades in the group. | Maximum Loss | The largest loss encountered over all trades in the group. | Average Profit ($) | The average profit from a currency standpoint over all trades in the group. | Average Profit (%) | The average profit from a percentage standpoint over all trades in the group. | Average Bars Held | The average number of periods that a position was held over all trades in the group. | Maximum Exposure | The maximum value exposed to the market represented as currency. | Max Exposure (%) | The maximum value exposed to the market represented as a percentage. | Max Exposure Date | The date when the maximum currency exposure occurred. | Max Exposure (%) Date | The date when the maximum percentage exposure occurred. | Max Drawdown ($) | The maximum drawdown encountered during this simulation represented as currency. | Max Drawdown (%) | The maximum drawdown encountered during this simulation represented as a percentage. | Max Drawdown Date | The date when the maximum currency drawdown occurred. | Max Drawdown (%) Date | The date when the maximum percentage drawdown occurred. |
Winning TotalsWinning Trades | The number of trades where the profit is greater than 0. Trades that break even are considered losing trades. | Winning % | The percentage of trades where the profit is greater than 0. | Gross Profit | The total amount of profit represented as currency. | Average Profit ($) | The average amount of profit represented as currency. | Average Profit (%) | The average amount of profit represented as a percentage. | Average Bars Held | The average number of periods each winning position was open. | Consecutive Winners | The number of winning trades in a row. |
Losing TotalsLosing Trades | The number of trades where the profit was less than or equal to 0. Trades that break even are considered losing trades. | Losing % | The percentage of trades where the profit is than or equal to 0. | Gross Loss | The total value lost represented as currency. | Average Loss ($) | The average amount lost represented as currency. | Average Loss (%) | The average amount lost represented as a percentage. | Average Bars Held | The average number of periods each losing position was open. | Consecutive Losers | The number of losing trades in a row. |
System Parameters This tab contains information about this particular system run. Run Date | The date and time the system was run. | Run Length | The amount of time taken to complete the system execution. | System Parameters | This contains a list of all optimization parameters contained within the system and the value of those parameters for this run. |
Position List The position list contains each trade aggregated into its respective position. Positions are nothing more than a grouping of trades. This screen shows the trades grouped by position. This position list is split into two pieces. The top portion of the screen contains the list of positions established throughout the system. When a position is clicked or selected, the trades that are associated with this position are shown in the trade list below. Position List ColumnsSymbol | The tradable symbol name. | Type | The position type taken, long or short. | Shares | The maximum number of shares or contracts held throughout the lifetime of this position. | Open Date | The date the first trade was made for this position. | Close Date | The date the position was completely liquidated. | Avg Buy | The weighted average of opening trades in this position | Avg Sell | The weighted average price that the shares or contracts were closed/covered at. | Bars Held | The number of periods the position was open. | P/L Bar | The average amount gained or lost on a per bar basis. | P/L | The total amount gained or lost throughout the life of the position. | Description | The user assigned name of this position. |
Trade List The trade list contains the complete list of every trade generated by the simulation. Trade List ColumnsSymbol | The tradable symbol name. | Type | The type of transaction, either buy, short, sell or cover. | Transaction Date | The date the trade was placed. | Shares | Number of shares or contracts that were filled in this transaction. | Price | The fill price of the trade. | Commission | The cost of commissions for this trade. | Amount | The amount of capital added or deducted from the account for this trade. | Description | The user assigned name given to this trade. | Cash | The amount of cash available in the account after this transaction was completed. |
Symbol Results The symbol results tab contains an aggregated list of the trades. The trades are aggregated by symbol. This provides a way to quickly determine which symbols are performing and which are not. Symbol Results ColumnsSymbol | The tradable symbol name. | Profit | The amount gained or lost for this symbol. | Profit per Bar | The amount gained or lost averaged over the number of bars held. | Trades | Total number of trades entered with this symbol. | Winners | The number of trades with a profit greater than 0. | Losers | The number of trades with a profit less than or equal to 0. | Winning % | The number of winning trades divided by the number of losing trades. | Avg Bars Held | The average number of periods each position was open. |
Scan The scan tab is useful for determining the next action that the simulation would take. For example, if the system trades daily bars, the scan would show the next day's actions to be taken such as opening a new position or closing an existing position. Theoretically, a daily, weekly or monthly time frame trader can use the results from the scan and generate orders manually. Scan ColumnsDate | The date that the action should occur. | Order Type | The type of order to be submitted to the broker. This could be any number of the order types supported by RightEdge. | Symbol | The tradable symbol name. | Order Price | If this is a limit order, the price of the limit order will be specified here. | Winners | The number of trades with a profit greater than 0. | Losers | The number of trades with a profit less than or equal to 0. | Winning % | The number of winning trades divided by the number of losing trades. |
Charts While the grid based system results are opened after every simulation, the chart tabs can have any number of charts pull up. There are a number of potential chart tabs and the default chart tabs are configurable under the Options dialog. RightEdge ships with five charts. - Profit Distribution
The Profit Distribution chart breaks down the profit and loss values into scaled values. A sample profit distribution chart is shown below.
Use the Display dropdown to toggle between representing the chart in profit and loss percentages and currency. - System Breakdown
The system breakdown chart is a bit unique in that it is a hybrid of text and graphics. It also has some interactivity features where you can select the aggregation level of weekly, monthly or yearly. The results are calculated in real time and the chart and results areas are updated. An example of the system breakdown chart is below.
- Equity Curve
The equity curve chart represents the cash and asset value at each point during simulation. This is a visual way of assessing drawdown and exposure. The Buy and Hold account value is represent as a line displayed over the cash and asset value stacked series. - MAE / MFE
This chart is similar in look and feel to the profit distribution chart, however, this chart breaks out the MAE and MFE calculations on a percentage or currency basis. The chart is broken into two pieces. The MAE is displayed on the top half of the chart and the MFE is displayed on the bottom half. - Symbol Breakdown
The symbol breakdown chart is a simple pie chart that displays all symbols that took trades during the simulation period. This is chart allows a quick and easy way to visualize which symbols are taking trades and which symbols are not. This can help identify and prune "dead" symbols.
Back to the top Back to the Main FAQ |