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.
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.
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< ema_previous).
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.
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.
Additional filters for opening a position:
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:
Additional filters for closing a position:
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 follows:
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.
used to protect profit. Stop Loss is set if profit in points exceeds the value specified in the InpTrailingStop parameter. If the price
continues to move in the profit direction, Stop Loss should be trailed at the given distance. Stop Loss cannot be moved towards the loss
direction, i.e. the Stop Loss value cannot be increased. If none of protective orders (Take Profit or Stop Loss) triggers, the position
should be closed by an opposite signal. No other position exit methods are available.