Работа завершена
![](https://c.mql5.com/i/avatar/avatar_na2.png)
Техническое задание
The idea behind this robot is to identify and confirm the direction of the market's trend using the higher timeframe charts before switching to the lower timeframe charts to find low risk, high probability trade setups in the direction of the prevalent trend to take advantage of.
For example,
REQUIRED INDICATORS:
- Multiple Moving Averages: For the purpose of identifying and confirming the direction of the trend based on the rules of my Mechanical Trend-Following Forex Trading Strategy.
- The Fractal Indicator: For the purpose of identifying low risk high probability trade entry levels based on the rules of my Mechanical Trend-Following Forex Trading Strategy.
- Average Directional Movement Index (ADX): For the purpose of filtering out low probability trend trading setups based on the rules of my Mechanical Trend-Following Forex Trading Strategy.
TREND DIRECTION DETERMINATION RULES
When Price Crosses & Closes Above the Trend Direction Determination Moving Averages 1, 2 and 3 on the Trend Direction Determination Timeframe, then the direction of the Long Term Trend is 'BULLISH'.
On the on other hand,
When Price Crosses & Closes Below the Trend Direction Determination Moving Averages 1, 2 and 3 on the Trend Direction Determination Timeframe, then the direction of the Long Term Trend is 'BEARISH'.TREND DIRECTION DETERMINATION MOVING AVERAGES INPUT PROPERTIES
Trend Direction Determination Moving Average 1 'Period' = 60
Trend Direction Determination Moving Average 1 'Type' = Simple / Exponential / Smoothed / Linear Weighted
Trend Direction Determination Moving Average 1 'Apply To' = Close / Open / High / Low / Median Price (HL/2) / Typical Price (HLC/3) / Weighted Close (HLCC/4) / Previous Indicator's Data
Trend Direction Determination Moving Average 2 'Period' = 60
Trend Direction Determination Moving Average 2 'Type' = Simple / Exponential / Smoothed / Linear Weighted
Trend Direction Determination Moving Average 2 'Apply To' = Close / Open / High / Low / Median Price (HL/2) / Typical Price (HLC/3) / Weighted Close (HLCC/4) / Previous Indicator's Data
Trend Direction Determination Moving Average 3 'Period' = 60
Trend Direction Determination Moving Average 3 'Type' = Simple / Exponential / Smoothed / Linear Weighted
Trend Direction Determination Moving Average 3 'Apply To' = Close / Open / High / Low / Median Price (HL/2) / Typical Price (HLC/3) / Weighted Close (HLCC/4) / Previous Indicator's Data
Trend Direction Determination Timeframe = M1 / M5 / M15 / M30 / H1 / H4 / D1 / W1 / MN1
________________________________________________________________________________
TREND DIRECTION CONFIRMINATION RULES
When Price Crosses & Closes Above the Trend Direction Confirmation Moving Averages 1, 2 and 3 on the Trend Direction Confirmation Timeframe, then the direction of the Medium Term Trend is 'BULLISH'.
On the on other hand,
When Price Crosses & Closes Below the Trend Direction Confirmation Moving Averages 1, 2 and 3 on the Trend Direction Confirmation Timeframe, then the direction of the Medium Term Trend is 'BEARISH'.TREND DIRECTION CONFIRMATION MOVING AVERAGES INPUT PROPERTIES
Trend Direction Confirmation Moving Average 1 'Period' = 60
Trend Direction Confirmation Moving Average 1 'Type' = Simple / Exponential / Smoothed / Linear Weighted
Trend Direction Confirmation Moving Average 1 'Apply To' = Close / Open / High / Low / Median Price (HL/2) / Typical Price (HLC/3) / Weighted Close (HLCC/4) / Previous Indicator's Data
Trend Direction Confirmation Moving Average 2 'Period' = 60
Trend Direction Confirmation Moving Average 2 'Type' = Simple / Exponential / Smoothed / Linear Weighted
Trend Direction Confirmation Moving Average 2 'Apply To' = Close / Open / High / Low / Median Price (HL/2) / Typical Price (HLC/3) / Weighted Close (HLCC/4) / Previous Indicator's Data
Trend Direction Confirmation Moving Average 3 'Period' = 60
Trend Direction Confirmation Moving Average 3 'Type' = Simple / Exponential / Smoothed / Linear Weighted
Trend Direction Confirmation Moving Average 3 'Apply To' = Close / Open / High / Low / Median Price (HL/2) / Typical Price (HLC/3) / Weighted Close (HLCC/4) / Previous Indicator's Data
Trend Direction Confirmation Timeframe = M1 / M5 / M15 / M30 / H1 / H4 / D1 / W1 / MN1
________________________________________________________________________________
TRADE SETUP IDENTIFICATION RULES
When Price Crosses & Closes Above the Trade Setup Identification Moving Averages 1, 2 and 3 on the Trade Setup Identification Timeframe, then the direction of the Short Term Trend is 'BULLISH'.
On the on other hand,
When Price Crosses & Closes Below the Trade Setup Identification Moving Averages 1, 2 and 3 on the Trade Setup Identification Timeframe, then the direction of the Short Term Trend is 'BEARISH'.
TRADE SETUP IDENTIFICATION MOVING AVERAGES INPUT PROPERTIES
Trade Setup Identification Moving Average 1 'Period' = 60
Trade Setup Identification Moving Average 1 'Type' = Simple / Exponential / Smoothed / Linear Weighted
Trade Setup Identification Moving Average 1 'Apply To' = Close / Open / High / Low / Median Price (HL/2) / Typical Price (HLC/3) / Weighted Close (HLCC/4) / Previous Indicator's Data
Trade Setup Identification Moving Average 2 'Period' = 60
Trade Setup Identification Moving Average 2 'Type' = Simple / Exponential / Smoothed / Linear Weighted
Trade Setup Identification Moving Average 2 'Apply To' = Close / Open / High / Low / Median Price (HL/2) / Typical Price (HLC/3) / Weighted Close (HLCC/4) / Previous Indicator's Data
Trade Setup Identification Moving Average 3 'Period' = 60
Trade Setup Identification Moving Average 3 'Type' = Simple / Exponential / Smoothed / Linear Weighted
Trade Setup Identification Moving Average 3 'Apply To' = Close / Open / High / Low / Median Price (HL/2) / Typical Price (HLC/3) / Weighted Close (HLCC/4) / Previous Indicator's Data
Trade Setup Identification Timeframe = M1 / M5 / M15 / M30 / H1 / H4 / D1 / W1 / MN1
When the direction of the 'Long Term Trend', 'Medium Term Trend' and 'Short Term Trend' are all Bullish, the EA should look for only 'Long Trade Setups' on the Trade Setup Identification Timeframe following the strategy's trade entry rules.
AND
When the direction of the 'Long Term Trend', 'Medium Term Trend' and 'Short Term Trend' are all Bearish, the EA should look for only 'Short Trade Setups' on the Trade Setup Identification Timeframe following the strategy's trade entry rules.
TRADE ENTRY RULES
LONG TRADE ENTRY PRICE LEVEL DETERMINATION
When the direction of the 'Long Term Trend', 'Medium Term Trend' and 'Short Term Trend' are all Bullish, the EA should place a BUY STOP PENDING ORDER at the highest price of the candle that had a confirmed 'UP FRACTAL' printed above it (i.e., 2 candles have closed to the right of the candle which had an up fractal printed above it which means the fractal isn't going to repaint when price moves above the high of the candle which had the 'UP FRACTAL' printed above it) on the Trade Setup Identification Timeframe.
BUY STOP PENDING ORDER STOP LOSS PRICE LEVEL DETERMINATION
When the setup for a BUY STOP PENDING ORDER has been identified by the EA, it should place the stop loss for that BUY STOP PENDING ORDER at the price level where the 'Trade Setup Identification Moving Average 3' is currently at on the Trade Setup Identification Timeframe.
SHORT TRADE ENTRY PRICE LEVEL DETERMINATION
When the direction of the 'Long Term Trend', 'Medium Term Trend' and 'Short Term Trend' are all Bearish, the EA should place a SELL STOP PENDING ORDER at the highest price of the candle that had a confirmed 'DOWN FRACTAL' printed below it (i.e., 2 candles have closed to the right of the candle which had the down fractal printed below it which means the fractal isn't going to repaint when price moves below the low of the candle which had the 'DOWN FRACTAL' printed below it) on the Trade Setup Identification Timeframe.
SELL STOP PENDING ORDER STOP LOSS PRICE LEVEL DETERMINATION
When the setup for a SELL STOP PENDING ORDER has been identified by the EA, it should place the stop loss for that SELL STOP PENDING ORDER at the price level where the 'Trade Setup Identification Moving Average 1' is currently at on the Trade Setup Identification Timeframe.
________________________________________________________________________________
TRADE EXIT RULES
There are 4 conditions which will cause an open trading position to get closed according to the trade exit rules of the Trend Following, Mechanical Trading Strategy which I would like this EA to be created from.
1. Price Hitting A Trade's Stop Loss Level
2. Price Hitting A Trade's Take Profit Level.
3. Price Crossing and Closing either Above/Below the Trade Setup Moving Averages 1 or 2 on the Trade Setup Timeframe depending on the direction of the trade.
For example, If the EA placed a long trade and price crossed and closed below Trade Setup Moving Average 3 on the Trade Setup timeframe, then that long trade is going to be closed by the EA, if the 'Close All Trades with Magic Number After Price Crossover' setting input is set to True in the EA's input settings.
On the contrary, If the EA placed a short trade and price crossed and closed above Trade Setup Moving Average 1 on the Trade Setup timeframe then that short trade is going to be closed by the EA if the 'Close All Trades with Magic Number After Price Crossover' setting input is set to True in the EA's input settings.
4. Price coming back to hit a trade's trailing stop after the EA must have trailed the trade's stop loss from it's initial position to the level where the price level where the ' Trailing Stop Moving Average 1' is on the chosen 'Trailing Stop Loss Timeframe' if the 'Use Trailing Stops' setting is set to True in the EA's input settings.
The EA should be coded to move the stop loss of an open trade from it's initial position to breakeven when price moves by the number of pips from the trade's entry level to it's stop loss multiplied by the value which was set in the EA's input for that particular trade's 'Minimum Risk To Reward Required To Move SL To BE'. So for example, if the distance between a trade's entry level and its stop loss level is 100 Pips, and the ' Minimum Risk To Reward Required To Move SL To BE' which was entered into that particular trade's setting was 2, then the EA should move that trade's stop loss from its original price level to breakeven when price moves 200 pips away from that trade's entry level.
The EA should be coded to trail the stop loss of a pending order or an open trade from it's initial position to the price level where the Trailing Stop Moving Average 1 or 3 is depending on the direction of the trade. For example, if the EA places a long trade or buy stop pending order and the trailing stop option is set to True, then it should move the trailing stop of that long pending order or open trading position to the price level where the Trailing Stop Moving Average 3 is and vice versa for short trading positions or sell stop pending orders.
________________________________________________________________________________
RISK MANAGEMENT RULES
The EA is going to be designed to have 2 types of Risk Management Profiles. They are;
1. The Conservative Mode
2. The Aggressive
THE CONSERVATIVE MODE
Under the conservative Risk Management Profile, there are 3 types of method which the EA will use to arrive at the lot size which it will use to place trades based on the rules of my trend following trading strategy.
- Balance Percentage
- Money
- Fixed Lot Size
BALANCE PERCENTAGE
If the 'Balance Percentage' lot size calculation mode is selected, then the EA is going to calculate the lot size it will use for placing a trade based on the percentage of the account's balance which was typed into it's input parameter. So for example, if 5% is typed into the 'Maximum Risk Per Trade Balance Percentage (%)' input field then the EA will calculate the lot size to place the trade with such that it won't end up risking more than 5% of the account's balance on each trade it takes.
MONEY
If the 'Money' lot size calculation mode is selected, then the EA is going to calculate the lot size it will use for placing a trade based on the amount of money which was typed into it's input parameter. So for example, if 1000 is typed into the 'Maximum Risk Per Trade Money ($)' input field then the EA will calculate the lot size to place the trade with such that it won't end up risking more than $1000 of the account's balance on each trade it takes.
FIXED LOT SIZE
If the 'Fixed Lot Size' calculation mode is selected, then the EA is going to place trades using the lot size which was typed into it's input parameter. So for example, if 0.5 is typed into the 'Maximum Risk Per Trade (Fixed Lot Size Value)' input field then the EA will place each and ever trade with that 0.5 lot size.
THE AGGRESSIVE MODE
Under the Aggressive Risk Management Profile, the EA is going to place trade(s) using a fixed lot size value which will be entered into the 'Fixed Lot Size Value' field in the input parameters under the ' Aggressive Risk Management Settings' section of the EA's input field. However, Once the EA places a pending order which gets triggered by the market's price action, then it is going to keep opening a trade or number of trades with the 'Fixed Lot Size Value' which was entered into input parameters under the 'Aggressive Risk Management Settings' section of the EA's input field whenever a bullish/bearish candle closes on the ' Scaling-In Timeframe' which was selected in the 'Aggressive Risk Management Settings' section of the EA's input field.
So for example,
If the EA identifies a long trade setup and places a Buy Stop Pending Order using the Fixed Lot Size value which was entered into the 'Aggressive Risk Management Settings' section of the EA's input field, and that Buy Stop Pending Order gets triggered, then whenever a bullish candlestick closes on the ' Scaling-In Timeframe' which was selected in the 'Aggressive Risk Management Settings' section of the EA's input field another long trade will be opened with the same SL and TP as the current open trade using the Fixed Lot Size value which was entered into the 'Aggressive Risk Management Settings' section of the EA's input field.
On the other hand,
If the EA identifies a short trade setup and places a Sell Stop Pending Order using the Fixed Lot Size value which was entered into the 'Aggressive Risk Management Settings' section of the EA's input field, and that Sell Stop Pending Order gets triggered, then whenever a bearish candlestick closes on the ' Scaling-In Timeframe' which was selected in the 'Aggressive Risk Management Settings' section of the EA's input field another short trade will be opened with the same SL and TP as the current open trade using the Fixed Lot Size value which was entered into the 'Aggressive Risk Management Settings' section of the EA's input field.
Here's the link to the Google Docs table which has all the input parameters which I would like the EA to be created with;
https://docs.google.com/document/d/12BZX7S1GFIpZ2Ld8pEkstd1Hc5xEMM_MCVQhDpYXOWs/edit?usp=sharing
Here are videos which will help you gain a much better understanding of how the strategy works.
IMPORTANT NOTES:
- If price does NOT trigger the BUY/SELL STOP PENDING ORDER which the EA placed and a NEW candle closes on the 'Trade Setup Identification Timeframe', the EA should delete those pending order(s) and place new PENDING ORDER(s) using the current/updated high/low price of the most recent candlestick which had a confirmed UP/DOWN fractal printed either above/below it (i.e. two candlestick closing on the 'Trade Setup Identification Timeframe', after the candlestick which had the UP/DOWN Fractal printed above/below it) for trade entry levels and the updated prices of 'Moving Average 1' or 'Moving Average 2' on the 'Trade Setup Identification Timeframe', for stop loss levels depending on the direction of the trade setup (i.e., either long or short) following the strategy's trade setup identification rules.
- If the BUY STOP PENDING ORDER(s) which the EA placed does NOT get triggered when price crosses and closes below the 'Trade Setup Identification Moving Average 3' on the 'Trade Setup Identification Timeframe', the EA should delete the BUY STOP PENDING ORDER(S) which it placed because the direction of the 'Short Term Trend' would no longer be the same as the direction of the 'Long Term Trend' and 'Medium Term Trend' nullifying the strategy's rule of ONLY taking trades in the direction of the 'Long Term', 'Medium Term' and 'Short Term' trends when they're all moving in the same direction and vice versa.
- Add Long Term, Medium Term and Short-Term Trend Direction in the display panel
- Add the ability to turn ON/OFF the display panel on a price chart
- Add Risk Management Profile to the list of parameters to be displayed in the panel
- Add Max Potential Risk ($ amount to be lost if all open trades/pending orders were to hit SL) to the parameters to be displayed in the panel
- Add Max Potential Reward ($ amount to be gained if all open trades/pending orders were to hit TP) to the parameters to be displayed in the panel
P.S. I have added the source code to an earlier version of the EA which was created for this trading strategy on the MT4 platform for you to have a look and also get a deeper insight into how the strategy works.
P.P.S. Let me know if you're interested in working on this project and then I'll tell you the Exit, Risk Management & other things which you'll need to complete the creation of the EA for this project.