smart forex tester suite (c)...strategy tester is a tool to develop and evaluate an automated...
TRANSCRIPT
CONTENTS
Overview
Products
Terms and Definitions
Licenses
Software update
Quick Start
How to use the Trading Simulator
How to use the Strategy Tester
GUI
Toolbar
Simulation - tab
Zoom In - tab
History - tab
Real Time - tab
Data - tab
Manager - tab
Settings - tab
Help - tab
License - tab
Strategy - tab
Tester - tab
Analyzer - tab
Optimizer - tab
Products - tab
Bonus - tab
Settings
Test Data
Offline (Back testing on historical data)
Online (Streaming real-time prices)
Trading Simulation (Manual trading)
Data Speed Control
Order operations
Time shifting (pausing the live data feed)
Orders history and log
Trade Analysis
Strategy Tester (Automated trading)
Batch Testing
Strategy Editor
Favorite Strategies
Interfaces between a strategy and the Tester
Tester dashboard
Orders history and log
Pivot Points Analyzer
Optimizing the Analyzer parameters
Data Manager
Tick Data Recorder
Semi-Automated Testing
Real Trading
OVERVIEW
Smart Forex Tester Suite is a set of advanced tools for developing and testing your Forex trading
strategy, both in real-time on live market and offline on historical price data. You can use the Suite
to practice manual trading, and also automate your trading strategy with the standard C++ language
and test it on the variety of market data. You can record price quotes from the live data feed to use
them later for back testing.
The Suite includes a unique generator of market timing signals, tick-by-tick graphical trade analyzer
and test data preparation tool.
The Suite can seamlessly switch a running trading strategy between testing and real trading. Trading
operations are performed via a Metatrader client terminal with a help of a special connector. The
Suite receives live market data from Metatrader and sends the signals and trading operations back at
the same tick.
Products
The Suite functionality is divided into multiple independent products that are accessible from the
same GUI. All products use the same functional modules in different combinations, which are
enabled by a software license.
Online Simulator streams live real prices to practice manual trading when the Forex markets are
open.
Offline Simulator renders locally stored historical data to practice manual trading at any time, even
when the markets are closed.
Strategy Tester is a tool to develop and evaluate an automated trading strategy. You can test both
on historical prices and on live data feed.
Smart Simulator includes Online and Offline Simulators with the Time Shift feature and MT
connector.
Smart Forex Tester Suite is the top of the line product that includes all the features listed above
(with more to come).
Back to Table of Contents
Terms and Definitions
Simulation - modeling the Forex market with the purpose of testing a strategy. Can use the market
data from a file or live data streaming.
Offline - a synonym for back testing, i.e. using the historical data for the simulation.
Online - a synonym for forward testing, i.e. using the real-time data from a live stream for the
simulation.
Time Shifting - a technology that enables pausing and resuming the live data feed for the online
simulation.
Back to Table of Contents
Licenses
To use any product of the Suite, you need to install a software license.
Free licenses are obtained and switched directly in the software GUI, on the Products tab. Free
licenses only require a subscription, which is also free. The license key is locked to the email
address you subscribed with. Free licenses never expire - as long as you stay subscribed.
Premium licenses are emailed after the purchase. To install a premium license, on the License tab
enter your license code and the email address that was used for payment, then click the Validate
button. The license status will change to installed and the license type will also be shown, as in the
below figure.
You can uninstall a license of each type by using the Deactivate license button. Uninstalling is
needed when you are upgrading from a free license to a premium one, or upgrading a premium
license.
Back to Table of Contents
Software Updates
The software is checking for the updates automatically at every start-up. If a new version is
available, a dialog window will open with the link to the download page. Also, the Update button
on the toolbar becomes active; clicking the button will open the same dialog window.
Alternatively, at any time you can check for the updates manually using the Check now button on
the Settings tab.
To install a newer version of the software, follow exactly the same procedure you used to perform
the initial installation. Installing updates doesn't affect your installed license - unless you uninstall
the software before updating. In this case, you'll need to install the license again.
NOTE: remember to stop the currently installed software before updating! Otherwise the
installation will fail.
Back to Table of Contents
QUICK START
On start-up, the software will show the Products tab, where it displays all the available products. If
you have any license installed, the products included in your license will have the Use button. Click
it to select a product you want to work with from the list of enabled ones.
If you don't have any license or want to switch to a different product, use the buttons to acquire a
proper license and restart the software when prompted.
The software can be used for different combinations of data source type (live feed or file) and
trading type (manual or automated).
Manual trading is done with Simulator. Online Simulator works on a live data feed, which is not
available when the markets are closed on weekends. On the contrary, Offline Simulator can be used
any time, anywhere - because it doesn't need an Internet connection.
Trading operations are performed on the Simulation tab.
Automated trading always requires Tester. The Strategy tab provides a full-fledged C++
environment to develop your trading algorithm. Then you can run the strategy on both live data feed
and offline.
Most frequently used functions related to the data feed (e.g. as pause or stop) are located on the
Toolbar. So they can be accessed at any time - from any tab.
Back to Table of Contents
How to use the Trading Simulator
The first step is selecting the market data to test on. The Simulator supports both live data feed (if
the Forex market is open), or historical prices from a .csv file.
For the simulation on live market prices (i.e. online), the software provides an inbuilt data feed
(from TrueFX) and ticks import from a Metatrader client terminal (via a special proxy EA).
To use the inbuilt feed, click the Online button on the Toolbar, and select a currency pair from the
drop-down list. Adjust the account currency if prompted. Account currency is the one used in the
reports to calculate your profit/loss.
To receive ticks from Metatrader, click the MT button on the Toolbar, and deploy the proxy EA on
the Metatrader chart. The detailed instructions and the link for EA download are available on the
Real time tab (click the ? button in the bottom to view).
For the Offline Simulation on historical data, click the Offline button on the Toolbar, then click the
File button and select a file with historical market data. In addition, the software provides an inbuilt
test data file. Click the Load sample data button, and select the date and time when to start the test.
Once the test data is ready, click the green Play button on the Toolbar to start the Simulation. The
software will switch to the Simulation tab where you can monitor the market and perform the
trading operations.
Back to Table of Contents
How to use the Strategy Tester
Go to the Strategy tab and prepare your C++ trading algorithm: either load it from a .cpp file or
type it in the editor. You can use our sample 3-RSI based strategy available on the software
download page as a template to develop your own strategies.
Now prepare the test data. For testing on a single data file, follow the same process as described
above for the Simulator. For batch testing, load multiple data files.
When all is ready, navigate to the Tester tab and click the green Play button to start the test at
maximum speed. When started from any other tab, the test will initially be run at normal speed. You
can adjust the speed manually.
NOTE: avoid switching to the Simulation tab when an automated test is running. Plotting graphs
during a running test will considerably increase the total testing time.
Back to Table of Contents
GUI
The GUI consists of the Toolbar and a number of Tabs, dedicated to certain functionality or a
product. Some controls on each tab can be disabled if not allowed by the installed license.
Toolbar makes the mose important controls accessible instantly from any tab.
The controls (left to right) are: currency selector for online simulation, speed selector and open file
button for offline simulator, Metatrader connector selector, data fee manipulation buttons (play,
pause, skip, stop), trader GUI button, automated strategy activation button, favorite strategies'
buttons. You can also find help and feed back buttons, release information and update buttons, and
settings button.
Simulation is the main tab, which is a combination of the dashboard and the control panel. Here you
can monitor the markets, place or close orders and stops. All market charts and indicators are
resizable.
Zoom In tab is designed to facilitate analysis of the market action and your trades. You can analyze
the price quotes and your orders with an absolute (tick-by-tick) accuracy.
History tab shows full trading logs. In addition, internal software logs are available, which can be
used e.g. for debugging your automated trading strategy. You can resize the internal log window.
Real Time tab provides live market data for 10 main currency pairs - without any account. There is
a real-time latency graph to monitor the quality of the data server connection. In addition, you can
import live prices from your Metartader terminal via our MT Connector. Live prices can be
recorded and saved locally to use them later for back testing.
Data tab is used for offline simulation and back testing. You can load tick data to run a market
simulation and practice trading manually. You can also specify a set of tick data files for automated
batch testing, and select the speed for the Fast Test Mode.
Manager tab provides a powerful tool to work with historical price data for back testing. You can
load a large data file, view and zoom it, and save a selected fragment as a file. This is especially
handy when preparing the data files for the batch testing.
Settings tab provides controls to change all global parameters, e.g. graphics mode or account
currency. You can also check for software updates.
Help tab contains this guide and a set of How to... quick links.
License tab is used to install, validate and upgrade your software license.
Strategy tab provides all you need to develop your automated trading strategy. There is a C++ code
editor and the controls for the inbuilt C++ compiler.
Tester tab provides the information about the running test batch and the strategy testing results, in
both graphical and table formats - as well as the test report.
Analyzer tab provides our unique tool that detects the market extremes in real-time using our
proprietary algorithm.
Optimizer tab provides the tool to tune the Analyzer parameters to the current market situation.
Products tab is a starting tab for all free products. Here you can obtain or change all free licenses.
Premium products start from the last used tab.
Bonus tab provides the tools for you to share our free software with friends - and get rewarded with
a premium products!
Back to Table of Contents
SETTINGS
On this tab, you can adjust the graphics parameters, select which indicators to show, check for
software updates, etc.
For the tick graphs, you can select the size of the data window. For the close-up graph, the default
value is 10 seconds, and the max is 120 seconds. For the other tick graph, the range is 120-7200
seconds.
For the average graph, you can set the data window size and the averaging interval
(M1/M5/M15/M30/H1). You can also select the plotting mode: line or candlesticks. If the Scale to
orders flag is set, the vertical scale is adjusted to make visible all the orders placed during currently
running simulation.
With Plotting accuracy parameter you can adjust the scale of all the price graphs. The parameter
value defines how many digits after decimal point are used. The default value is 4 digits.
The Indicator graph can plot RSI, ATR or MACD. On the average graph, you can plot the
moving averages - (SMA and EMA); the number of periods used in their calculation can be set in
the Aver. window control.
For all graphs, you can activate the offset view. In this mode, the graphs will be plotted with a gap
between the latest value and the right border of the graph area. You might find viewing graphs in
this mode more comfortable.
For the Trading server, you can set the min and max values of the response delay. The Simulator
generates a random delay value for each request. This setting is only available for Offline (back
testing) mode.
Stoplevel (measured in pips, default 5) is a minimum allowed distance to the market when placing
Stop-loss or Take profit orders. The same value is used for both. Order fill will fail if you try to
place the order closer to the market than the minimum distance.
The default Lot size is Mini (10,000). It can be changed between the simulation runs. The deal size
is measured in selected lots. The maximum deal size is 100 lots.
Check for updates is performed automatically at every start-up. You can also do it manually using
the Check now button. If a new software version is available, the following dialog window will
open:
Clicking OK will open the download page with the software update in your browser.
The release notes are shown in the scrollable info window. During every software update check the
release notes are also updated if needed.
Back to Table of Contents
TEST DATA
Smart Forex Tester supports both Back testing on historical market prices and Forward testing on
streaming real-time prices. Live prices provided by TrueFX are available via an inbuilt data feed. In
addition, you can import ticks from your Metatrader client terminal via a special connector - a proxy
Expert Advisor.
Back to Table of Contents
Back testing (Offline)
This mode is designed to test on the historical market data. Smart Forex Tester only works on the
tick-by-tick data, which is loaded as a .csv file.
We recommend using the historical tick-by-tick data from www.truefx.com. The data is free and
high quality; you can get the quotes for 15 main currency pairs since 2009. The price data is
available in monthly files. You need to download them to your computer and unzip before using in
the Tester.
To start the back testing, click on the Offline button on the Toolbar. Then use the File button to pick
a tick data file from your computer. Alternatively, you can use the Add Test File button on the Data
tab.
You can add multiple data files (the software will restore this list on the next start-up). However,
you can only use one at a time for the simulation. Select a file in the list and click the Load Selected
button.
For your convenience, the software also provides an inbuilt test data file. To use it, click the Load
sample data button on the Data tab.
NOTE: make sure the Run Tests in Batches box is not checked. This option is used for automated
testing. See the STRATEGY TESTER section.
When the data file loading is complete, the calendar will show the first tick's date highlighted in
blue. For the data file on the screenshot below, it is March 19. The rest of the data interval will be
light colored (March 20 on the screenshot).
For the trading days with lots of market action, tick data files can be very big. Note on the
screenshot there were over 250K ticks in less than 24 hours!
NOTE: monthly tick data files are large, so their loading might take a while. You can monitor the
progress of loading in the status bar in the bottom. In the case of any loading errors, they will be
logged on the History tab.
You can select the desired simulation start date by clicking on it in the calendar. You can also
specify the start time. The options available include standard opening times of the trading sessions -
Asian, European and North American, as well as manual time select.
If you don't explicitly select date and time, the simulation will automatically start from the first tick
in the data file.
When the test data is ready, click on the green Play button on the Toolbar to start the simulation.
The focus will switch to the Simulation tab, where you can monitor the markets and place your
orders.
NOTE: While the tab shows the calendar for one month only, it doesn't set a month limit to the size
of the test data file. The calendar always shows the first month, thus only limiting the test start date.
The data file size is only limited by the available RAM. Keep in mind though, that even one month
of ticks requires hundreds of MB.
Back to Table of Contents
Forward testing (Online)
This mode enables you to practice in the real-time when the Forex market is open. The streaming
price quotes (provided by www.truefx.com) are readily available for 10 main currency pairs -
without any account. In addition, using our MT Connector, you can import live price data from
your Metatrader client terminal running on the same computer.
Live prices from TrueFX. To start the live data feed, click the Online button on the Toolbar, select
a currency pair from the drop-down list, and press the green Play button.
NOTE: before each online simulation, the Tester will download the latest price data (3000 ticks or
about 4 hours). So, the price graphs will be plotted with a delay, whose value depends on the quality
of your Internet connection (normally, less than 1 min). While the data is plotted in real-time during
download, the order operations are not possible.
To change the currency pair, stop the running simulation by pressing the Stop button on the
Toolbar, select a new pair as described above and press the green Play button.
Internet access
The real-time simulation requires a low-latency Internet connection, as the software is fetching the
prices quotes from the server over the Internet.
To monitor the quality of your connection, Smart Forex Tester constantly measures the round trip
time (RTT) and displays its last minute real-time graph as well as longer term averages.
RTT is the time needed to request and receive one tick from the trading server over the Internet. The
smaller the RTT value, the better you can simulate the real market. We recommend you to pay
attention to the RTT measurements and make sure the average value doesn't exceed 500 ms.
If the Internet connection is lost while in real-time mode, the simulation will be paused. Connection
loss will be logged on the History tab and the market charts will show the DATA LOSS warning.
As soon as the Internet connection is restored, the simulation will resume automatically, but there
will be gaps in the graphs. On the candlestick graph, the gaps may be indicated by thin gray vertical
lines. Connection restoration will also be logged.
NOTE: The real-time simulation result can only be reliable with an uninterrupted Internet
connection. While the Smart Forex Tester does its best in handling the connectivity issues, this is
only done to improve user experience.
Live prices via MT Connector. To use the data from your Metartader client terminal, it needs to be
running on the same computer and receive the data from your broker. To establish the connection
between Metatrader and Smart Forex Tester, you need to use a special proxy EA that you can
download from the link provided on the Data tab. See more details in the Real Trading section.
To use the MT connector, first click the MT button on the Toolbar to make the Tester waiting for a
connection. Then go to your Metatrader terminal and deploy the proxy EA on a chart. The EA will
try to connect to the Simulator, and will report the status via Alerts. You should see the following
sequence of messages (software versions may be different).
Connection establishment only takes a fraction of a second. If the EA fails to connect, try restarting
Metatrader and Simulator and repeat. Once the connection is established, the Simulator will report
the status as CONNECTED and you will see the ticks flowing into the Simulator.
Now, you can start the simulation by pressing the green Play button on the Toolbar.
Back to Table of Contents
TRADING SIMULATOR (Manual trading)
Is used to practice trading and test your trading strategy by placing all orders manually. Can be used
offline as well as on live price data when the market is open.
Trading practice with the Simulator is much more efficient than on a conventional demo account -
thanks to the variable data feed speed and Time Shifting. These features let you fully concentrate on
the market action, forget the interruptions and as a result spend much less time compared to any
demo.
Time Shifting enables you to put the live data feed on hold in Online mode.
In the top left corner of the control area, you can see the start date/time of the running simulation,
followed by the current time (for the Online simulation). For the Offline simulation, the time is
taken from the historical data. The number in brackets is the current tick count.
Trading controls are located on the bottom left of the Simulation tab.
To help you make trading decisions, this tab provides you a number of price charts and indicators. 2
graphs on the left show ticks in real-time. The upper graph can display from 2 min to 2 hrs. The
other graph is a close-up, with a minimum window size of 10 s. You can configure the window sizes
for both graphs on the Settings tab.
NOTE you can resize all the graphs. Place the cursor on the border between any two graphs, and
when the slider sign appears, click and drag the slider to resize the graphs, then release. The
software will remember the sizes after restart.
The top right graph displays averaged quotes, starting from M1. The light horizontal bar shows the
value range of the close-up tick graph. The dashed horizontal line shows the current market price.
The dashed vertical line marks the date change. The middle graph also shows the SMA or EMA
indicators, whose periods you can change on the Settings tab.
Right-click on the middle graph activates the context menu, where you can select the indicator to
plot, adjust the visible data window size, and select the averaging interval.
You can select the plotting style (line or candlesticks) on the Settings tab. By default, the
candlesticks are used.
NOTE: Left click on the middle graph will switch to the Zoom In tab. Double click there will bring
you back to the main view.
The bottom graph is reserved for the indicators. Currently supported are RSI, ATR, and MACD.
Right-click on the bottom graph will activate the context menu to select the indicator to view, adjust
the visible data window size, and select the averaging interval.
During the Offline simulation, you can put the current simulation on hold with the green Pause
button. To unhold the simulation, press the button again.
During the Live simulation, you can put the current simulation on hold with the red Record button.
To unhold the simulation, press the blue Play button.
To end the Simulation of any type, use the Stop button.
NOTE: When you start a new simulation, the previous trading history will be deleted.
Back to Table of Contents
Data Feed options
It is possible to vary the speed of the data feed during Offline simulation and when Timeshift is
used.
By default, the data feed is always started in Normal mode. It means that ticks are sourced at
exactly the same intervals as they appeared on the market.
In the 2X (4X) mode, the ticks are sourced twice (4 times) faster compared to the Normal mode.
These modes are useful to save time when practicing trading in quiet markets. E.g. in Asian sessions
the time intervals between ticks can sometimes exceed 1 min.
The Max mode doesn't limit the time intervals between ticks anyhow, so the feed speed depends
solely on your hardware. This option is used mainly for debugging and demonstrations.
In the 1/2X (1/4X) mode, the ticks are sourced twice (4 times) slower compared to the Normal
mode. These modes can be used during fast-paced markets, e.g. to practice news trading.
Back to Table of Contents
Working with orders
Currently, Smart Forex Tester supports one active market order, with linked Stop-loss and Take
profit orders. Pending orders and multiple orders will be supported in later releases.
You can place a market order in one click using the BUY and SELL buttons.
On the graph, the orders are marked with a green triangle pointing up (BUY) and a black triangle
pointing down (SELL). The active order is also marked with a horizontal dashed line drawn at the
price the order was opened. The line is colored green if the position is profitable and red in the
opposite case. The profit (loss) value is written on the line.
You can place the Take profit and Stop Loss orders simultaneously with the market order. For that,
before you press the order button, check the Take Profit or/and Stop Loss boxes located just above
the Buy button. Set the desired price using arrow buttons or by entering it manually. The solid
horizontal line is drawn at the price level entered in the control.
Stop orders can also be placed at any time after the market order using Stop Limit and Stop Loss
buttons. Clicking a button opens a dialog window where you can select the desired price level using
arrow buttons or by entering it manually and press the OK button. The solid horizontal line on the
graph helps you adjust the price. When the price is set, press the OK button to place the order.
The same buttons can be used to move active stop orders. With the X Stop Limit and X Stop Loss
buttons, you can cancel stops.
NOTE: Every time you try to place or move a stop order, its distance to the market is checked first.
If the price you entered is too close to the current market price, the order fill error will be returned
by the trading server. The minimum distance to the market is configured by the Stoplevel parameter
on the Settings tab.
If you use a dialog box to add or move the stops for the active market order, the Simulator
automatically calculates the minimum distance to the currently effective market price and doesn't
accept incorrect values. For your convenience, the arrow buttons are also colored. A red button
indicates that the price is too close and order placing command won't be accepted.
NOTE: It is still possible for a stop order to be declined after the command was accepted - if the
price changed unfavorably before the server receives the command.
All your trading activity is presented on the History tab.
Back to Table of Contents
Time shifting
Timeshift feature makes it possible to pause/resume the live data feed during the Online simulation.
It is very helpful when your real-time practice is interrupted, e.g. by an important phone call. Using
the time shift feature, you can put the running simulation on hold and resume it later at any time.
As long as your Internet connection stays active, Smart Forex Tester will continue receiving the
market data and storing it in the memory. The recorded data can be also used offline later.
Timeshift both saves your time and helps you use your time very effectively.
To pause the Online simulation, press the red Record button on the Toolbar. The Simulator will
start storing streaming prices internally. The LHS tick graph will show the red recording symbol and
also show its duration.
NOTE: Order operations are not possible during recording.
To resume the simulation, press the blue Play button on the Toolbar. The simulation will continue
from the next tick after the last one shown before the pause. The playback symbol will be displayed,
along with the current record duration (i.e. the delay from the current time).
As prompted by the feature name - time shifting - all the recorded ticks will be rendered with the
same delay.
During the playback, you can fast forward the recorded data by selecting the 2X or 4X speed from
the drop-down menu on the Toolbar. In this case, the delay will be decreasing, and eventually, the
data feed will become real-time again.
Alternatively, you can slow down the playback of the recorded data: available are 1/2X or 1/4X
speeds. In this case, the delay to the real-time will be increasing.
All order operations are possible during both fast forward and slow-motion playback, which makes
the combination of time shifting and variable data speed an extremely effective practice tool.
If the markets were slow moving during the time of recording, fast forwarding lets you catch up
with the real-time without losing anything significant. This saves time because you can only
concentrate on essential market action - instead of waiting for it.
In turn, slow-motion playback can be very helpful for practicing trading fast market action that
happens e.g. around the time of major news releases.
To switch to the real-time immediately, press the Live button or select the Max speed on the
Toolbar.
You can also pause the playback at any time and at any speed. To pause, click the red Record
button on the Toolbar.
NOTE: If you want to use the recorded data offline, leave the Record button pressed before
switching off the network (e.g. before enabling the Airplane mode).
Back to Table of Contents
Orders history and log
The History tab has a table showing all the orders for the current simulation. For each order, its size,
open/close time/price, and profit are shown. For the active order, SL and TP values are shown as
well. The profit is shown both in pips and the account currency.
The bottom part of the tab is reserved for the simulation log. Each log record starts with a time
stamp, which in the case of Online simulation corresponds to the current time. In the back testing
mode, the timestamps are taken from the ticks in the historical data file.
The time stamp is followed by the log level (e.g. INF or ERR), or the ID of the product that printed
the message. E.g. on the screenshot below you can see the log lines with the ID PPA - these are the
signals reported by the Pivot Points Analyzer.
In addition to the PPA signals, standard log messages are written during the software start-up, test
data download, trading operations, etc.
NOTE: the trading history will be rewritten when you start a new simulation.
Back to Table of Contents
TRADE ANALYSIS
To investigate your trades and study the market price action, you can use the zooming functionality.
To go to the zooming mode, left click on any graph on the Simulation tab.
Alternatively, you can select an area to zoom into by clicking and holding the left mouse button on
the one side and releasing it on the opposite side.
The selected area will be shown on the Zoom In tab as a tick graph, so you can see all the details
with a 100% accuracy.
Once on this tab, you can continue zooming in by selecting a smaller area with the mouse as
described above. To zoom out, use the left click. Double click will return you to the Simulation tab.
You can also move the graph as a whole by clicking and holding the right button.
The vertical and horizontal lines drawn from the cursor help you find the price quotes and trades.
All the information is shown in the status line in the bottom.
On the above example screenshot, the cursor is positioned on the BUY order symbol. The status line
below the graph shows the tick # when the trade happened (14872), its timestamp with a millisecond
precision (18:20:03.754), bid (1.106795) and ask (1.06817). Other numbers in square brackets show
the ticks interval that is currently plotted (14848 thru 15101). The date of the test is also shown
(2020 Mar 19).
Back to Table of Contents
STRATEGY TESTER (Automated trading)
It is an advanced tool for automating your trading strategy by programming all the decisions and
trading operations in powerful C++ language. Smart Forex Tester provides a strategy editor and an
inbuilt C++ compiler. You can also run tests in batches. Consequently, automated strategies can be
tested much faster and with much better accuracy - compared to manual testing.
Back to Table of Contents
BATCH TESTING
Go to the Data tab and prepare the tick test data as described in the Back testing (Offline) section.
If you want to automatically run tests on multiple data files, check the Run Tests in Batches box. In
this case, all the test data files in the list will be executed one after another when you start the test
with the green Play button.
During Batch testing, the Fast Test mode is available. Fast Test mode can speed up your testing
tenfold, by running the tests only on a part of the ticks from the original test data file. Of course, the
more ticks you skip, the less reliable will be the test result. So, you might want to run the tests
multiple times with decreasing speed and monitor the consistency of the results.
Back to Table of Contents
STRATEGY
Smart Forex Tester supports standard C++ language and provides a development environment to
automate your trading strategy.
You have a number of interfaces to the Tester engine to get relevant market data and also send
trading commands to the market simulator.
You can load a strategy from a *.cpp file, or type it in the edit window. Once ready, click Check
strategy button. This starts the inbuilt C++ compiler. The Compiler messages are shown in the
resizable window in the bottom.
Compiled trading strategy will be used when you start manual simulation or automated test. You can
temporarily disable and re-enable the active strategy by toggling the Strategy button on the Toolbar.
You can edit and recompile your strategy even if a simulation is running. If the Reload on the fly
flag is set, the currently running strategy will be immediately updated with the recompiled version.
NOTE: the Tester doesn't save the source file automatically before compilation - but it does that on
exit.
Back to Table of Contents
Favorite Strategies
You can save up to 5 of your trading strategies as Favorites. This enables you to switch strategies on
the fly - both during testing and real trading.
To save a strategy: after successful compilation, click on Add to Favorites... button. In the dialog
window that opens, select a favorite button to save to. You can also store the strategy details as a
comment. When you hover the mouse over a favorite button, your saved comment will be shown as
a tooltip.
Switching between the favorite strategies happens when you press a favorite button on the toolbar.
This will load the strategy's source code into the strategy editor and the strategy itself into the Tester
ready for execution. If you press a favorite button when a simulation is running, the strategy will be
reloaded on the fly and it will be effective already from the next tick.
Back to Table of Contents
Interfaces between the strategy and the Tester
To program the logic of your strategy, you can use the standard C++ language. But to get the market
data from the Strategy Tester and work with the orders, you need to use the internal interfaces.
Currently, the following interfaces are supported. We are going to add others on need basis.
extern double Ask, Bid;
extern int Bars;
extern const char *Symb;
extern void LogPrint(const char *fmt, ...);
extern void PausePrint(const char *fmt, ...);
enum {
M1 = 60,
M5 = 300,
M15 = 900,
M30 = 1800,
H1 = 3600
H4 = 14400
D1 = 86400};
enum {
OP_BUY = 1,
OP_SELL = 2
};
enum {
SIG_PPA_MAX = 1,
SIG_PPA_MIN = 2
};
extern int PlaceOrder(int Operation, int Lots, double Price, double slip, double sl, double tp);
extern int CloseOrder(int ticket);
extern int Ticket;
extern int OrderType();
extern double OrderPrice();
extern int OrderLots();
extern double RSI(int period, int Idx);
extern double StopLevel();
extern int GetTickCnt();
extern void RefreshRates();
extern double GetVar(const char *v);
extern int Report(const char *v);
Back to Table of Contents
Tester Dashboard
The Tester tab is a dashboard for testing automated trading strategies. You can see all the test
parameters and monitor the test results.
NOTE: The Tester can be activated on both offline data and the live data feed. You can use the
Online testing mode to generate live Forex signals.
To run the test, you need to select a data source and define your trading strategy.
Strategy control shows the file name of the selected strategy. The procedure of strategy compilation
is described in the Strategy section.
Offline data control is used in the backtesting mode: you can see the tick data file name, the
currency pair and the time interval for testing. The data selection procedure is described in the
Batch Testing section.
Test Progress control lets you monitor the percentage of the test completion, the time elapsed in the
historical file, the physical test run time, and the test speed as the ratio of the two. If the Online
(Forward) testing is in progress, it is indicated by the Live sign and the current time is displayed.
Test Batch Progress control shows the number of the currently run test in the butch, as well as the
current total test results for the whole butch.
Profit graph shows the results of each trade (blue line) and cumulative profit (red line) as a function
of time. The graph covers the time interval between the closure of the 1st and the last trades. The
cursor on the graph allows you to check the time and profit of every single trade - they are shown in
the status bar below the graph.
A summary of the closed trades is given in the table. The full version is available on the History tab.
The test report control shows the test statistics (profit, trades, etc). If you run multiple tests as a
batch, the numbers for each test file are displayed.
NOTE: The test report only shows already closed trades. The active order is not counted.
Back to Table of Contents
Orders history and log
The History tab has a table showing all the orders for the current simulation. For each order, its size,
open/close time/price, and profit are shown. For the active order, SL and TP values are shown as
well. The profit is shown both in pips and the account currency.
The bottom part of the tab is reserved for the simulation log. Each log record starts with a time
stamp, which in the case of Online simulation corresponds to the current time. In the back testing
mode, time stamps are taken from the ticks in the historical data file.
The time stamp is followed by the log level (e.g. INF or ERR), or the ID of the product that printed
the message. E.g. on the screenshot below you can see the log lines with the ID PPA - these are the
signals reported by the Pivot Points Analyzer.
In addition to the PPA signals, standard log messages are written during the software start-up, test
data download, trading operations, etc.
You can also print your own messages from the C++ strategy. See the interface details in the
Strategy section.
NOTE: the trading history will be rewritten when you start a new simulation.
Back to Table of Contents
PIVOT POINTS ANALYZER
Pivot Points Analyzer (PPA) uses an original algorithm to detect market extremes in real-time. Its
main purpose is to help you better time your market entry and exit.
The PPA signals can be used independently, which is especially useful in day trading (e.g. for
scalping). In addition, you can use them as part of the complex trading strategies, where you can
benefit from combining fast PPA with lagging indicators.
The PPA will plot the detected market extremes as dots. The red dots correspond to market tops, and
the blue dots - to the bottoms.
The PPA signals are duplicated on the Simulation tab.
You can tune the detector sensitivity with the 3 sliders. Increasing the parameters' values will result
in detecting fewer peaks.
You can pause the analysis clicking the Pause button and investigate the detection results using
zooming features the same way as described in the TRADE ANALYSIS section.
You can also access the PPA signals in the C++ environments to use them in your automated trading
strategy. The signals are calculated on every tick and are accessible as follows:
bool isSigMax() { return Signals & SIG_PPA_MAX; }
bool isSigMin() { return Signals & SIG_PPA_MIN; }
The isSigMax() is triggered when a market top is identified, and the isSigMin() signals about a
market bottom.
NOTE: Currently, the PPA signals in an automated trading strategy use the peak detector values
that are set on the Analyzer tab. Later on, it will be possible to change the values from the strategy.
Back to Table of Contents
PPA OPTIMIZER
Optimizing Pivot Point Analyzer parameters makes the detection of the market extremes more
accurate, because now you can adjust the detector parameters to best fit the recent market price
action.
A convenient way to get the recent market data to optimize on is to save the latest ticks acquired
when you run a simulation on the real-time data feed. For that, go to the Real time tab and use the
Save ticks button to store the ticks to a file.
Then on the Data tab, load this file and go to the Optimizer tab. There select the ranges for the
parameters to optimize, and the accuracy you want (number of iterations). Then click on the
Optimize parameters button and the Optimizer window will open.
The upper table shows the results of the optimization, and you can also monitor the process on 2
inbuilt graphs. To speed up the calculations, you can turn off graphs plotting by unchecking the
Enabled (slowest) box. When the software completes the calculations, you can plot the graphs for
each set of the parameters - just select a single row in the table and click the Plot selected button.
When you finish, click the Close button. The Optimizer window closes but the software will copy
the results into the table on the Optimizer tab. There you can select the best parameter set and make
your strategy use it by clicking the Apply parameters button.
For each price extreme, the optimizer calculates its quality. The algorithm evaluates the extent and
speed of the price change after the signal. Maximum quality corresponds to the situation when the
price immediately goes in the direction opposite to the signal, e.g. decreases for a market top signal.
The Quality parameter in the result table is an average of all the extremes detected in the single test.
DATA MANAGER
It is a handy tool for back testing data preparation. The most important use case for the Data
Manager is splitting a large tick data file into smaller files that you can add to your test batches.
Start with opening a market data file using the Load Tick Data button. After loading, the price
graph and selected indicators will be shown.
You can zoom in with the mouse to review the price action and select the data interval you want to
test on. Press the left button on one border of the fragment being selected and release it on the other.
The graphs will be refreshed and show the selected fragment.
Now, use the Save Data Selection button to store the currently visible data interval as a file.
At any time, you can return to view the whole loaded data using the Restore Original button or
mouse double click.
Back to Table of Contents
TICK DATA RECORDER
At any time during a running simulation, you can store its price data on your computer using the
Save ticks button on the Real Time tab. This feature is especially handy when testing on the live
market.
When the button is pressed, a file save dialog will open. After you specify a file name, all the ticks
acquired from the start of the simulation until the current moment will be saved as a .csv file.
Ticks are saved in the format that Offline simulator supports. So, you can keep Online simulation
running for some time, record and save the tick data and use it later for the Offline testing.
NOTE: After you stop the simulation, you can still save all its ticks - until you start a new
simulation.
Back to Table of Contents
SEMI-AUTOMATED TESTING
This is the most efficient testing mode when you are developing your automated trading strategy.
The benefit of this approach is convenience and time savings. You don't have to have all the
elements in place to start testing. You can always place an order manually and let the algorithm to
continue, or vice versa.
For a ready strategy, the same mode can be used in trading. It is analogous to flying a modern
aircraft: the autopilot is used in standard predictable situations but is manually overridden by the
pilot when more complicated decisions are required.
You can allow an automated strategy to operate on stable markets, and take breaks or just relax from
staring at the monitor. You can always regain controls once things get complicated. You can also
place a trade yourself but let the algorithm follow it up and take the profit or cut the losses.
Back to Table of Contents
REAL TRADING
One of the most powerful features of the Smart Forex Tester suite is that you can use it in real
trading.
The tool is designed so that the trading strategy execution is made independent of the data source.
Which means that you can not only test on any data but also use the same strategy to trade. In
addition, the Pivot Point Analyzer signals can be sent to the trading terminal.
Real trading functionality is based on the inbuilt MT Connector. It receives the ticks from the MT
Terminal installed on the same computer, via a specially developed proxy EA. The communication
between the MT and the Smart Forex Tester suite is two-way. The Suite can respond to each tick it
receives with the PPA signal or a trading command.
Let's explain the automated trading flow in more detail. The proxy EA is deployed on a chart in the
MT Terminal, and it forwards every tick it receives from MT to the MT Connector enabled in the
Suite. The Connector passes the tick to the automated trading strategy running in the Tester. If this
tick triggers a trading decision (e.g. to plase a BUY order at this price), the Tester responds to the
Connector with the corresponding command. And the Connector forwards the command to the EA.
Which, in turn, sends it to the MT trading server.
The communication between the MT EA and the Suite is very fast. The delay normally doesn't
exceed 10 ms, so in most cases, the MT EA has enough time to send a trading command to the
trading server in reply to the tick when the trading decision is made. This is virtually impossible to
accomplish when trading manually.
When the MT Connector is active, you can temporarily disable responses from the Suite by
unchecking the Enable trading box on the Real Time tab.
Back to Table of Contents