New article How to create Requirements Specification for ordering a trading robot has been published:
Are you trading using your own strategy? If your system rules can be formally described as software algorithms, it is better to entrust trading to an automated Expert Advisor. A robot does not need sleep or food and is not subject to human weaknesses. In this article, we show how to create Requirements Specification when ordering a trading robot in the Freelance service.
When ordering or developing a trading robot, you need to formulate
requirements: tasks to be performed by the robot, conditions under which
it will operate, response to incidents and emergency situations,
required control methods, etc. Trading robots are programs, which should
strictly follow the underlying logic. In order to program the algorithm
of actions, you should prepare its detailed description.
Description of a trading strategy is provided in the form of
Requirements Specification. The more details you provide, the less
misunderstanding will occur between you (the Customer) and the
programmer (the order Developer).
The important part of Requirements Specification for an Expert
Advisor is presentation of clear formal trading rules. Even if you are
not ordering an EA, but want to develop one yourself, you should start
with the definition of these rules. Prepare the Requirements
Specification and include the EA testing/optimization related points.
Add hypotheses, which you will use to check the quality and stability of
your trading strategy, describe criteria for selecting the optimal
parameters and explain why you consider them important.
all EA development stages to the Requirements Specification — this will
make the algorithm idea clear for the Developer, and will help you
recall the details weeks, months, or even years later. Algo trading is
not a hobby, but a thorough research path, all stages of which need to
be properly documented. A trading system development diary will be very
useful whenever you'll need to test a new idea.
Here is an example of Requirements Specification for the development of the MACD Sample Expert Advisor, which is available in the MetaTrader 5 standard package.
1. The idea of the trading system is as follows: market entries are performed when MACD's main and signal lines intersect in the current trend direction.
2. Trend is determined based on the Exponential Moving Average
with the specified period (InpMATrendPeriod). If the current EMA value
is greater than the previous one, the trend is seen as growing
(ema_current > ema_previous). Alternatively, if current EMA is below
the previous one, the trend is considered to be falling (ema_current<
3. Trading Signals:
4. Positions are closed at opposite signals: Buy positions are closed at Sell signals, and Sell positions are closed at Buy signals.
5. Positions are opened at the market price, when a new bar
emerges. The Expert Advisor is to be tested using Open prices, so there
is no need to add functions for disabling operations inside the bar.
6. Additional filters for opening a position:
The absolute value of MACD's main line will be used to filter out
weak signals: the signal is only confirmed if this value is greater than
open_level (in points). Signal confirmation conditions are as follows:
7. Additional filters for closing a position:
The absolute value of MACD's main line will also be used to confirm
position closure: the signal is confirmed if this value is greater than
close_level (in points). Close signal confirmation conditions are as
8. Close by Take Profit — during position opening, a Take
Profit level is set at a fixed distance from the open price, specified
in points. The value is set in the InpTakeProfit input parameter.
9. Position management
Author: MetaQuotes Software Corp.