System Tester

System Tester

Why Do Equity Curves Differ Between a Points-Only Test and an Equity Test?
The difference lies in how returns are calculated:
A Points-Only Test tracks the raw point gains or losses from each trade. It does not factor in account size or reinvestment.
An Equity Test, on the other hand, reinvests profits. This means that it can lead to significantly larger returns later in the test.
In short, equity tests reflect compounding effects, while points-only tests show fixed-value outcomes.

Why Don’t the Buy and Sell Arrows Show the Actual Trade Price?
The buy and sell arrows are not tied to the actual execution price. They simply indicate that a buy or sell condition was met on that specific bar. Their purpose is to show signal timing—not the exact price at which a trade was made.

Does a System Test Tell Me When to Buy or Sell?
The System Test was not designed to tell you when to buy or sell, only what happens when you buy or sell using your rules. System Testing is designed to help you identify a set of buy and sell rules that work best for you.
Once you identify a set of rules that work best for you, you can then program those rules into an Exploration. You could then use this Exploration to quickly search all of your securities and display a report of which securities you should Buy Today.
You can also create an Expert Advisor using your Buy and Sell rules. Once you attach this Expert to your charts, you will receive a notice that would tell you to buy or sell, when you display this security’s chart.

 Does the Enhanced System Tester account for the Uptick rule when executing orders for Short positions?
No. When a Sell Short condition is evaluated it looks at an entire bar. There is no way for it to know if it could have made the trade at a specified price during the day because of the Uptick rule.
For example, if you specify to Sell Short on the Open, it cannot know if there was an Uptick at the Open or around the Open. There might have been, there might not have been.

 What is the difference between 'Opened' and 'Placed' on the Orders report in the Enhanced System Tester?
A 'Placed' order is an order that has moved from the 'Considered' stage and is waiting for a Strategic Delay to pass. Once the Strategic Delay has passed, the order moves to the
'Opened' stage and is waiting to be executed.

 How to determine the price in which a trade entered at in the Enhanced System Tester?
The following formulas only work in the 8.x system tester:
In the Sell Order tab, enter the following formula to determine the entry price:
Close - ( Simulation.CurrentPositionProfit / Simulation.CurrentPositionSize )
In the Buy to Cover Order tab, enter the following formula to determine the entry price:
Close + ( Simulation.CurrentPositionProfit / Simulation.CurrentPositionSize )

 Can I have the system tester only test certain dates?
A system test only calculates on the dates that are loaded into the chart. If you want to test a certain date range make sure you load only those dates into the chart.
You do this as follows:
Click File | Open.
Click the Options button.
Select Load Options
Select Prompt for dates and click OK.
Double-click a chart to open it.
A date range menu will appear to ask what dates you want to load. Enter the first date and last date you want to use in the test and click OK to display these dates in the chart.
Run the test on this chart and the test will only test the dates loaded in the chart.
If the chart is already open, you can adjust the First and Last Date Loaded in the X Axis properties

 What is the difference between a Stop Order and Stop Limit Order?
A stop order turns into a market order when the stock reaches the stop price. A stop limit order turns into a limit order when the stock reaches the stop price. Another way to differentiate the two, is to remember that stop orders guarantee an execution (if the stock reaches or moves past the stop price), but not the price; stop limit orders guarantee the price, but not the execution.

 How can I find the current trade entry price in a simulation?
The current trade entry price can be found by using the following formula:
C - (Simulation.CurrentPositionProfit/Simulation.CurrentPositionSize)

How are the Enhanced System Tester’s index values calculated?
Note: These formulas assume you are running a points-only test and the buy/hold results and system test results are positive.
Profit/Loss index:

Divide the total points gained by the larger of the points gained on the winning trades or points lost on losing trades. Multiply the result by 100
Buy/Hold index:

Subtract the buy/hold profit from the total points gained and divide the result by the buy/hold profit. Multiply the result by 100
Risk/Reward index:

Divide the total points gained by the larger value of either the points gained or the lowest value of points gained over the life of the system. Multiply the results by 100.

 What Enhanced System Tester options are global settings?
The only global settings (settings which automatically affect all system tests and simulations) are the colors of the symbols that represent trade entry and exit points, how the equity line is plotted, and the settings for deleting old simulation reports. All other options are set for each individual system test, or for the individual simulations.

 What are the different types of Events shown in the Orders tab of a simulation report from the Enhanced System Tester?
Below are the definitions of these orders. MetaStock has internally divided the System Tester into the different entities encountered when trading. The system represents the user and his system. We also have broker and an exchange doing there respective parts. These orders mark the transition from one part to the next:
Considered:
The system has generated a signal
Placed:
The order has been passed to the "broker"
Opened:
The order has been passed to the "exchange"
Executed:
The order has been processed.
When you edit a system, on all four order tabs are some fields labeled Strategic Delay. This represents a delay between you getting a signal and you passing it to your broker. It takes place between the Considered and Placed orders.
When you are starting a new simulation, on the Options page where you set the starting equity, there is a More button. Clicking this takes you to another options page where you can set the trade prices and insert a trade delay. This is the delay between you sending the order to the broker and his sending the order to the exchange. It takes place between Placed and Opened.
If you are using Limit, Stop, or Stop Limit orders, and set the order to "Good until Cancelled", then it is possible the order will not be filled on the same bar it is opened. This delay takes place between Opened and Executed.

 Why am I getting some trades using 99% of my equity and others only using 1-2%
I shall explain the way the system tester is currently designed. When your system generates a buy or sell signal, the order passes through 4 separate stages:
1) Considered - this means the system has generated the signal and you, the user are now considering whether to accept it or not. The enhanced system tester assumes you will accept all signals and passes the order on.
1a) At this point, if you marked a strategic delay (in the system tester editor), the next order will be delayed the specified amount
2) Placed - this is the stage where the order is passed to the broker.
2a) At this point, if you have marked a trade delay (in the simulation options), the next order will be delayed by the specified amount.
3) Opened - here is where the broker sends the order to the exchange.
3a) at this point, if the order was any type other than market, a delay may occur until the specified condition occurs
4) Executed - the trade is finally transacted.
The problem you are encountering, when only a fraction of your equity being used in a trade, is caused by when the trade size is calculated. At the time the order is considered, MetaStock checks the available equity and determines how many shares can be purchased. This is the amount the tester tries to buy. If you are already in a trade, your available equity is however much is not tied up in the current trade.
This is working as the developers designed it. We have had some request to change this and we have contacted our developers about it. However, it will require an update to MetaStock for this to be changed. Till then, it is possible to run the test you want, but you will need to edit the system test to do so.
The trick is to remove the delay you have built into the system. Or rather, not to remove it, but change how it is implemented. Currently, the logic of your system is:
1) Signal event occurs
2) Order generated
3) Delay is implemented
4) Order is executed

This needs to be changed to:
1) Signal event occurs
2) Delay is implemented
3) Order generated
4) Order is executed

This change is fairly easy. Your formulas end with some condition that defines the buy signal. Before this condition, you may have several lines of variable declarations. This would look like this: { Optional: one or more lines of variables . . . } Condition the formula looks for

Just change the above to:
{ Optional: one or more lines of variables . . .}
Ref( Condition the formula looks for, -1 )

With the above change, you can turn off all other delays, and you trades will be entered as if you had a delay set. Because the delay is in the formula, the trade size is calculated on the same bar the formula generates the signal, it will use all the equity.

 I thought that the value or formula for Entry Size in the System itself took precedence over the Default Size set in my System Testing Options.
It does. It is important to verify that in the Editor, if you are expressing your Default Size as a percent, the percentage must be represented by a decimal value. For example, if you want your Entry Size to be 10% of available equity: You will set your default size to % of available equity and the value must be .10 not 10.

 How can I set a different delay for different order types (Buy, Sell, Sell Short, Buy To Cover)?
First, set the desired delay in the ‘Strategic Delay’ for each order type on the System Editor. (highlight the test and hit edit.)
Then, when running the simulation, click ‘More’ on the System Testing Options and on the ‘Trade Execution’ page, uncheck ‘Realistic Market Prices’, set the delay to zero and choose the desired prices for each order type.

How to remove multiple System Tests from Favorites in MetaStock?
MetaStock v18 --> Current

Open MetaStock
Open the Power Console
Select the System Test button on the left side.
Select the Favorites tab.
Select the next the System Tests you wish to remove from the System Tests pane(top, left)check box
Right-click on Favorites
Select Remove Selected System Tests from Favorites
The System Tests will now disappear from the Favorites tab next to All System Tests
MetaStock v16 --> 17.5

Open MetaStock
Open the Power Console
Select the System Test button on the left side
Select the next the System Tests you wish to remove from the System Tests pane(top, left) check box
Right-click on Favorites
Select Remove Selected System Tests from Favorites
The System Tests will now disappear from the Favorites section between System Tests and All System Tests

How to remove a System Test from Favorites in MetaStock?
MetaStock v18 --> Current

Open MetaStock
Open the Power Console
Select the System Test button on the left side.
Select the Favorites tab.
Right-click on the System Test you wish to remove from the System Tests pane(top, left)
Select Remove from Favorites.
The System Test will now disappear from the Favorites tab next to All System Tests.
MetaStock v16 --> 17.5

Open MetaStock
Open the Power Console
Select the System Test button on the left side
Right-click on the System Test you wish to remove from the System Tests pane(top, left)
Select Remove from Favorites
The System Test will now disappear from the Favorites section between System Tests and All System Test

How to open a System Test report?
In MetaStock we added a button to make it easier to view your past System Test reports
MetaStock v18 --> Current

Open MetaStock.
From the Power Console, select the System Test
Right-click on any System Test that has a report.
Select Report... from the menu.
Select the desired report.
Click View.
MetaStock v17

Open MetaStock.
From the Power Console, select the System Test
Right-click on any System Test that has a report.
Click the Report... button.
Select the desired report.
Click View.

 How to allow more than 100 Optimized results in a System Test report?
MetaStock v17 --> Current
***WARNING*** Please be cautious when editing this file, as invalid entries can cause MetaStock to no longer open.

Close MetaStock
Open File Explorer and browse to the following folder path (AppData is a hidden folder, so a View option may need to be changed to Show hidden files):
C:\Users\{Profile Name}\AppData\Local\Refinitiv\MetaStock\17.0
Locate PowerConsoleSettings.xml
Right click on the file
Select Open with…
Select Notepad
Locate the following line
<NumMostProfitableToKeepLimit>100</NumMostProfitableToKeepLimit>
Change 100 to the desired value. Increasing this value may cause the System Tester database to reach its maximum size limit.

How to add multiple System Tests to Favorites in MetaStock?
MetaStock v18 --> Current

Open MetaStock
Open the Power Console
Select the System Test button on the left side
Select the desired System Tests in the System Tests pane(top, left)check box
Right-click on one of the selected System Tests
Select Add Selected System Tests to Favorites
The System Tests will now appear on the Favorites tab next to All System Tests
MetaStock v16 --> 17.5

Open MetaStock
Open the Power Console
Select the System Test button on the left side
Select the desired System Tests in the System Tests pane(top, left) check box
Right-click on All System Tests
Select Add Selected System Tests to Favorites
The System Tests will now appear under the Favorites section between System Tests and All System Tests

How to add a System Test to Favorites in MetaStock?
MetaStock V18 -> Current

Open MetaStock
Open the Power Console
Select the System Test button on the left side
Right-click on the desired System Test in the System Tests pane (top, left)
Select Add to Favorites
The System Test will now appear on the Favorites tab next to All System Tests.
MetaStock V16 -> 17.5

Open MetaStock
Open the Power Console
Select the System Test button on the left side
Right-click on the desired System Test in the System Tests pane (top, left)
Select Add to Favorites
The System Test will now appear under the Favorites section between System Tests and All System Tests.

 How do I view a System Test report in MetaStock?
​​​​​​​ MetaStock v16 --> Current

Open MetaStock.
From the Power Console, select the System Test button.
Right click onto the System Test that contains the report to be viewed.
Select Report.
Alternatively, select system(s) that have desired reports and select the Report... button.

MetaStock v11

Open MetaStock.
From the Tools menu, select Enhanced System Tester.
Highlight the System Test that contains the report to be viewed.
Select the Report button.

 How do I run a System Test using Custom interval in MetaStock?
MetaStock v15 --> Current

Custom interval exploring is only supported in MetaStock v15 and newer

Open MetaStock.
Open the Power Console.
Click the System Test button.
Select the desired System Test(s) in the System Tests pane.
Type a ticker symbol in the Instrument(s) field or select an instrument or multiple instruments from the Instruments pane.
Click the Interval drop-down menu.
Select Custom.
Set the desired Interval and Multiplier (for a 3-day interval, set the Interval to Day(s) and the Multiplier to 3).
Click Start System Test or press Enter.

 How do I run a System Test in MetaStock?
​​​​​​​ MetaStock v16 --> current

Open MetaStock.
From the Power Console, select System Test.
Select the desired System Test(s) in the System Tests pane (top, left).
Type a ticker symbol in the Instrument(s) field or select an instrument, or multiple instruments, from a custom online list or a public online list. (you can type multiple instruments by separating them with a space) from the Instruments pane (bottom, left). Check the box next to the list name to select an entire list or double-click to open a list and check the boxes next to the desired instruments .
Select the desired options from the right pane.
Select Start System Test or press Enter.

MetaStock v11

Open MetaStock.
From the Tools menu select Enhanced System Tester.
Highlight an System Test(s) and select New Simulation.
From the Select Securities dialog select Add Securities.
From the Add Securities dialog:
If working with local data, select the Local Data button browse to the desired folder, highlight the instruments and select Open.
If working with online data, select the DataLink button, highlight the instruments and select Open.
Select OK.

 How do I enter a custom formula into the System Tester?
MetaStock 16 - current version

Open MetaStock and the PowerConsole.
Select the "System Test" button.
Double click onto "System Tests 0 of ###".
This will display the System Editor.
Enter the desired name. {New System}
Select the desired tab. ( Buy Order, Sell Order, Sell Short Order or Buy to Cover Order)
Insert\paste custom formula in the condition box.
Click OK to create the custom system test.

MetaStock 11

Open MetaStock
From the Tools menu select, Enhanced System Tester.
Click New, this will display the System editor.
Enter the desired name. {New System}
Select the desired tab. ( Buy Order, Sell Order, Sell Short Order or Buy to Cover Order)
Insert\paste custom formula in the condition box.
Click OK to create the custom system test.

 How do I create a new System Test in MetaStock?
MetaStock 18 --> Current

Open MetaStock.
From the Power Console, select the System Test button.
Click the New System Test button.
Select the General tab and give the new system test a name.
Set the desired Order and Portfolio Bias options.
Select the Buy Order tab.
Enter the desired formula to enter a long position.
Set the appropriate Order Type options.
Repeat steps 8-9 for the other Sell\Buy tabs that may be appropriate.
Set the desired Stops (if needed).
Define optimization variables for OPT variables in formulas (if needed).
Select OK.

MetaStock 16 --> 17.5

Open MetaStock.
From the Power Console, select the System Test button.
Double click on System Tests in the top left pane, or right click on System Tests and select New System Test.
Select the General tab and give the new system test a name.
Set the desired Order and Portfolio Bias options.
Select the Buy Order tab.
Enter the desired formula to enter a long position.
Set the appropriate Order Type options.
Repeat steps 8-9 for the other Sell\Buy tabs that may be appropriate.
Set the desired Stops (if needed).
Define optimization variables for OPT variables in formulas (if needed).
Select OK.

MetaStock 11

Open MetaStock.
From the Tools menu select Enhanced System Tester.
Select the New button.
Select the General tab and give the new system test a name.
Set the desired Order and Portfolio Bias options.
Select the Buy Order tab.
Enter the desired formula to enter a long position.
Set the appropriate Order Type options.
Repeat steps 8-9 for the other Sell\Buy tabs that may be appropriate.
Set the desired Stops (if needed).
Define optimization variables for OPT variables in formulas (if needed).
Select OK.

  How to Set Commissions for FOREX Securities in the Enhanced System Tester?
While most brokers don’t charge traditional commissions for FOREX trades, there are still transaction costs—typically measured in pips.
To account for these costs in the Enhanced System Tester:
Open the System Testing Options dialog.

Go to the Broker tab and click on the Commissions section.

Set the commission type to Points per Transaction.

Enter the pip value provided by the customer (common values are 0.0005 or 0.0004).

Important: Enter the pip value for either the entry or the exit, but not both, to avoid double-counting the transaction cost.
Most FOREX traders are familiar with pip-based pricing and can provide the correct value for this setting.

  How do I delete a System Test in MetaStock?
MetaStock v16 --> Current

Open MetaStock.
From the Power Console, select the System Test button.
Right-click the System Test to be deleted, then select Delete.

MetaStock v11

Open MetaStock.
From the Tools menu, select Enhanced System Tester.
Highlight the System Test to be deleted.
Select the Delete button.


related articles