Forex Trading Strategy Definition Without Coding


State machines were used in the old Tester software (up to 0.9.5). New Tester 1.0 and above uses C++ for strategy definition.

Subscribe to download Smart Forex Tester 1.0. (It is still FREE!)

Any strategy testing tool must have means for the Forex trading strategy definition. It is quite natural when a programming language is used for that, like MQ4 in MetaTrader, or Visual Basic if you use MS Excel for testing.

However, programming language as such is not very convenient in the case you want to experiment with trading strategy. You can separate strategy parameters into an independent configuration file, but even a small change in the algorithm requires recompilation. Moreover, keeping track of changes in the code is not very easy for non-programmers. Usually software changes are stored in special revision control tools. But not everybody is comfortable enough with them.

We decided to use State Machines for trading strategy definition.

Forex Trading Strategy Definition as a State Machine

Any Forex trading strategy can be broken down to very limited set of states. Each state has a set of events which, once occur, result in transitions to other states.

Let’s take an example. We started trading – we are out of the market. This means an “Idle” state. Here we monitor the quotes coming from our data feed, and wait for our entry signals. When we get e.g. a BUY signal, we need to place a BUY order. In state machine terms, this equals to state change from state “Idle” to “Placing a BUY order“.

Once we got a confirmation from the trading terminal that our BUY order is filled, state changes to the “Long Unprotected“. After our stop loss order is filled, we enter a “Long protected” state.

So, each step and possible error situation in the trading strategy needs to be assigned a separate state which are changed based on predefined set of events. You can take a look into more details here: automated trading strategy as state machine.

State machines are often defined with XML. We started from this approach as well. But currently our software uses a plain text state machine for trading strategy definition. There are two main ideas behind the change.

First, we want to make the description even easier to use by an ordinary people without programming experience. And second, we would like to have means for automatic merging of multiple Forex trading strategies. This will open a way for genetic-like breeding and natural selection of trading strategies, which is a new and very interesting topic.

Want to try yourself? Download Smart Forex Strategy Tester

Forex Trading Strategy Definition without coding
Forex Trading Strategy Definition without coding – example as XML State Machine


Forex Strategies
Forex Strategy Testing Software
Forex Strategy Testing Methods

2 thoughts on “Forex Trading Strategy Definition Without Coding”

  1. Can you optimize using your software? What kind of data can you import and what form does it need to be in?

    1. Hello Robert,

      Strategy optimization is possible using our software. However, if you mean static testing of strategy parameters permutation, this is not the main direction of our approach to testing (see the articles on the site). Based on our experience, our primary focus is on forward-looking indicators, concurrent self-adjusting strategies, as well as strategies natural selection. So our tools are mainly developed with this in mind.

      However, Forex testing is so complicated, that the more ideas we have the better off we all will be. So we are very open to all ideas. Especially now when we are productizing our software, we can add functionality easily. Hence, we would be interested to hear how you think optimization needs to be done

      Regarding data input, if you are asking about the strategy description data, we are preparing a set of methods to formalize market entry and exit, and also implement advanced trailing algorithms for stops. The software is being developed with the idea to make it possible for a non-programmers to use it themselves as much as possible. The strategy data is entered as a plain text file in XML format, as in the example posted on our site.

      Here, though, we would also be interested to hear users’ opinion.

      We are also developing the interface to test compiled Metatrader EAs. There the input will obviously be controlled by the MQ4 code.

      Forex Strategy Tester Team

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.