An Expert Advisor based on Moving Averages and Fair Value Gaps

Job finished

Execution time 18 days
Feedback from customer
This developer was very patient. We had several times of discussing the EA back and forth and he helped me get it doing what I wanted it to do. I highly recommend this developer.
Feedback from employee
He is one of thegood customers I have worked with here, his communucation skills is very okay and patient enough to explain all requirements. Nice working with you. Thanks

Specification

Requirements Specification

Forex Trending, April 2025, MT4

 

OVERVIEW OF THE STRATEGY

·      This EA is for the purpose of running the optimization feature in MT4 to find the best settings for the strategy. It will have many parameters.  It is to be used on Forex pairs.

·      Not all of the parameters will be used all of the time. If a value of “111” is entered into the parameter, that parameter will not be used. Zero “0” will be a valid parameter number. All parameters should have the option of being turned off by entering “111.”

·      Moving Averages will be used to determine when price is trending.

·      Moving Averages will also be used to determine whether to buy or sell.

·      When price is trending, the EA will enter trades based on Fair Value Gaps.

 

MOVING AVERAGES

·      Three Moving Averages will be used. A parameter will determine whether the Moving Averages are Simple Moving Averages or Exponential Moving Averages.

·      A parameter determines if the moving averages are displayed on the MT4 screen:

       -   Show MA1 on the screen

       -   Show MA2 on the screen

       -   Show MA3 on the screen

·      The first and second moving averages (MA1 and MA2) will have the following parameters:

       -   If MA1 is above MA2, only enter buy positions.

       -   If MA1 is below MA2, only enter sell positions.

       -   Number of bars to average for MA1

       -   Number of bars to average for MA2

       -   Number of bars to average for MA3

       -   MA1 is a [Simple Moving Average, or, Exponential Moving Average]

       -   MA2 is a [Simple Moving Average, or, Exponential Moving Average]

       -   MA3 is a [Simple Moving Average, or, Exponential Moving Average]

·      The third moving average (MA3) will be used to determine if price is in a trend. It will determine this by the percent change of the moving average from one bar to another (this is the same idea as determining the slope on a graph). When price is moving sharply in one direction, the MA will recognize it by the percent change in the MA.

       -   The “Percent Change” will be calculated this way:

               -  The latest Moving Average reading will be “x.”

                The previous Moving Average reading (from the previous bar) will be “y.” (see diagram below)

A graph with green and purple arrows

Description automatically generated

                The Moving Average value “x” will have “y” subtracted from it.

                That number will then be divided by the Moving Average value “x”.

                Then, the number will multiplied by 10000 (ten thousand).

                This will give the Percent Change number. (Side note: to get the actual percent change, we would only multiply by 100, but that would produce a very small decimal value and I want the number larger so it’s easier to work with).

                The formula looks like this: (x-y) / x * 10000

                An example:

A graph with a line and arrow pointing to the top

Description automatically generated with medium confidence

(1.08458 – 1.08435) = 0.00023

0.00023 / 1.08458 = 0.00021206

0.00021206 * 10000 = 2.12063

Percent Change = 2.12063

 

An example where price is descending:

(it always produces a negative number when descending)

(1.42602 - 1.42636) = -0.00034 / 1.42602 = -0.00023842 * 10000 = -2.38423

Percent Change = -2.38423

 

A graph with arrows pointing to a bar

Description automatically generated

 

                (A parameter, a decimal value) If Percent Change is greater than _____, enter buy positions. (That is, do not enter buy positions unless Percent Change is higher than that number.)

                (A parameter, a decimal value) If Percent Change is less than _____, enter sell positions. (That is, do not enter sell positions unless Percent Change is below that number.) (This will be a negative number.)

                (A parameter) Show Percent Change on the screen.


IDENTIFYING FAIR VALUE GAPS (FVG)

·      A Fair Value Gap is a three-candle setup. The FVG exists where the first and third candles do not overlap.

A graph of a candle stick graph

Description automatically generated

·      (A parameter) Show FVGs on the MT4 screen.

·      Bullish FVGs will be green.

·      Bearish FVGs will be red.

·      A FVG will only be considered after the third candle is formed. The FVG will not be considered while the third candle is forming.

 

OPENING A TRADE

·      I will not be using bracket trades. No Stop Loss or Take Profit will be entered. Rather, the EA will open or close trades according to rules that will simulate Stop Loss and Take Profit. This is because some brokers don’t allow bracket orders.

·      The EA is to open only one trade at a time. If a trade is currently open, the EA will not open another trade until after the first one is closed.

·      When a bullish FVG is formed and price comes back and retouches the top of it, enter a buy trade. Price must come back and retouch the FVG within [a parameter: a whole number] bars.

·      When a bearish FVG is formed and price comes back and retouches the bottom of it, enter a sell trade. Price must come back and retouch the FVG within [a parameter: a whole number] bars.

A graph with arrows and candles

Description automatically generated

·      Only open trades between the hours of [a parameter: a time] and [a parameter: a time]. I would like to have three of these to allow for trading at specific times of day.

·      Only open trades between the hours of [a parameter: a time] and [a parameter: a time].

·      Only open trades between the hours of [a parameter: a time] and [a parameter: a time].

·      All orders will be market orders.

·      If an order, or part of an order, is not filled within [a parameter: a whole number, a number of seconds], cancel the part of the order that is not filled.

·      Only open a trade if the spread is equal to or less than [a parameter: a decimal number] pips.

 

CLOSING A TRADE

·      Close the trade if price moves against the position the distance of the FVG plus[a parameter: a decimal number]pips.

A screen shot of a graph

Description automatically generated

       -   The green bar in the diagram is a bullish FVG. It formed and price came back and retouched it. Price then extended out the bottom of the FVG by 3 pips. The trade would close if this parameter was set to 1, 2, or 3.

       -   For example, if the FVG is 3 pips wide and this setting is set to 2, the trade would close when price went against the opening price by 5 pips.

       -   Another example, if the FVG is 4 pips wide and this setting is set to 3, the trade would close went price went against the opening price by 7 pips.

·      This number of pips is called the “Risk.” The Risk is the width of the FVG plus the number of pips in this parameter.

       -   An example:

A graph with arrows pointing to a graph

Description automatically generated

       -   The minimum Risk to take is [a parameter: a decimal number] pips.

       -   The maximum Risk will be[a parameter: a decimal number] pips. The Risk will be limited to this number of pips even if the FVG calls for more.

       -   If the Risk is over [a parameter: a decimal value], do not open the trade.

·      Close the trade if price moves profitably [a parameter: a decimal number] times (multiplied by) the Risk. This is the Risk-to-Reward ratio.

·      For example, if the Risk is 5 pips and the value entered in the parameter is 2, close the trade at 10 pips profit.

·      Another example, if the Risk is 4 pips and the value entered in the parameter is 1.5, close the trade at 6 pips profit.

·      Another example, if the Risk is 5 pips and the value entered in the parameter is .9, the EA will multiply 5 by .9 which is 4.5. The trade will be closed when the trade is in profit by 4.5 pips.

·      [A parameter] If price reaches 1/2 way in profit but moves back to the entry price, close the trade. (This is simulating moving the Stop Loss to the entry point when price is 1/2 toward the Take Profit.)

·      OTHER WAYS TO CLOSE THE TRADE:

       -   Close the trade when in profit [a parameter: a decimal number] pips. (I may enter “111” in the parameters above and close the trade after a set number of pips instead.)

       -   Close the trade when in loss [a parameter: a decimal number] pips.

       -   Close the trade if price goes against its highest point by [a parameter: a decimal number] pips. (This is simulating a trailing Stop Loss.)

·      If the account balance drops below [a parameter: a dollar amount], close all trades and open no more trades.

 

OTHER CONSIDERATIONS

·      The number of lots to buy is [a parameter: a decimal number].

·      I would like a copy of the source code file, the mq4 file.

 

I WOULD LIKE THE PARAMETERS TO BE LABELLED THIS WAY:

·      MA1 is a [Simple Moving Average, or, Exponential Moving Average]

·      MA2 is a [Simple Moving Average, or, Exponential Moving Average]

·      MA3 is a [Simple Moving Average, or, Exponential Moving Average]

·      Show MA1 on the screen

·      Show MA2 on the screen

·      Show MA3 on the screen

·      If MA1 is above MA2, only enter buy positions.

·      If MA2 is below MA2, only enter sell positions.

·      Number of bars to average for MA1

·      Number of bars to average for MA2

·      Number of bars to average for MA3

·      Show Percent Change on the screen

·      (A parameter, a decimal value) If Percent Change is greater than _____, enter buy positions. (That is, do not enter buy positions unless Percent Change is over that number.)

·      (A parameter, a decimal value) If Percent Change is less than _____, enter sell positions. (That is, do not enter sell positions unless Percent Change is below that number.) (This will be a negative number.)

·      Show FVGs on the MT4 screen.

·      Price must come back and retouch a FVG within [a parameter: a whole number] bars.

·      Only open trades between the hours of [a parameter: a time] and [a parameter: a time]. I would like to have three of these to allow for trading at specific times of day.

       -   Only open trades between the hours of [a parameter: a time] and [a parameter: a time].

       -   Only open trades between the hours of [a parameter: a time] and [a parameter: a time].

·      If an order, or part of an order, is not filled within [a parameter: a whole number, a number of seconds], cancel the part of the order that is not filled.

·      Only open a trade if the spread is equal to or less than [a parameter: a decimal number] pips.

·      Close the trade if price moves against the position the distance of the FVG plus [a parameter: a decimal number] pips.

·      The minimum Risk to take is [a parameter: a decimal number] pips.

·      The maximum Risk to take is [a parameter: a decimal number] pips.

·      If the Risk is over [a parameter: a decimal value], do not open the trade.

·      Close the trade if price moves profitably [a parameter: a decimal number] times the Risk. 

·      If price reaches 1/2 way in profit but moves back to the entry price, close the trade.

·      Close the trade when in profit [a parameter: a decimal number] pips.

·      Close the trade when in loss [a parameter: a decimal number] pips.

·      Close the trade if price goes against its highest point by [a parameter: a decimal number] pips. (This is simulating a trailing Stop Loss.)

·      If the account balance drops below [a parameter: a dollar amount], close all trades and open no more trades.

·      The number of lots to buy is [a parameter: a decimal number].


Responded

1
Developer 1
Rating
(224)
Projects
278
27%
Arbitration
14
50% / 36%
Overdue
9
3%
Busy
2
Developer 2
Rating
(4)
Projects
2
0%
Arbitration
1
0% / 0%
Overdue
1
50%
Working
3
Developer 3
Rating
(64)
Projects
83
28%
Arbitration
9
33% / 56%
Overdue
9
11%
Free
Published: 1 code
4
Developer 4
Rating
(254)
Projects
372
24%
Arbitration
21
62% / 24%
Overdue
1
0%
Busy
5
Developer 5
Rating
Projects
0
0%
Arbitration
0
Overdue
0
Free
6
Developer 6
Rating
(81)
Projects
152
41%
Arbitration
2
100% / 0%
Overdue
4
3%
Working
7
Developer 7
Rating
(70)
Projects
90
26%
Arbitration
24
21% / 50%
Overdue
24
27%
Free
8
Developer 8
Rating
(267)
Projects
318
50%
Arbitration
12
42% / 0%
Overdue
17
5%
Busy
9
Developer 9
Rating
Projects
0
0%
Arbitration
0
Overdue
0
Working
10
Developer 10
Rating
(11)
Projects
12
25%
Arbitration
3
0% / 100%
Overdue
2
17%
Working
11
Developer 11
Rating
(5)
Projects
5
60%
Arbitration
1
0% / 0%
Overdue
2
40%
Free
Published: 1 code
12
Developer 12
Rating
(156)
Projects
280
35%
Arbitration
14
29% / 50%
Overdue
42
15%
Free
13
Developer 13
Rating
(49)
Projects
71
21%
Arbitration
11
18% / 27%
Overdue
6
8%
Loaded
14
Developer 14
Rating
(64)
Projects
144
46%
Arbitration
19
42% / 16%
Overdue
32
22%
Free
15
Developer 15
Rating
(284)
Projects
459
39%
Arbitration
95
43% / 18%
Overdue
73
16%
Working
Published: 2 codes
16
Developer 16
Rating
(287)
Projects
516
36%
Arbitration
62
34% / 35%
Overdue
187
36%
Free
17
Developer 17
Rating
(11)
Projects
15
33%
Arbitration
3
33% / 0%
Overdue
0
Working
18
Developer 18
Rating
(1)
Projects
1
0%
Arbitration
0
Overdue
0
Free
19
Developer 19
Rating
(75)
Projects
230
73%
Arbitration
6
100% / 0%
Overdue
1
0%
Free
Similar orders
program ussd zar cad adsafafaefefefqfeqfeqfqefqefesaddqdqDDF FAEWF FA RWFWEF ERWF WE FAEW FRE FA EWRF EF EW FAEW F EWF EW FEW F EWF SADASDW WDA WD AWDW DWA DEAW DEAE D ADADEA DAEDE D EDEADAEDADEDEA D ED AED AED AD
I’m looking for an experienced and reliable MT4 developer or strategy optimizer to generate profitable, robust, and forward-testable set files for my existing EA. This EA is designed for trading XAUUSD (Gold) on MT4. 🔧 What I Provide: The compiled EA (.ex4 file) Instructions on the EA’s inputs and logic Broker specifications: spread, leverage, account type Desired timeframe(s) to optimize for (e.g., M15, H1)
hello great developer i want to fix this script This arrow shouldn’t of printed because the renko brick ended red{ check the image} One other guy said this ‘okay I am seeing, arrow sticks because your code plots it conditionally but never deletes it later. This is expected behavior unless you add cleanup logic like -- Chart.RemoveObject(...) for outdated arrows... not sure if you understand the technical parts
im looking for a developer to build a fully automated trading robot Expert Advisor for Metatrader 5. The EA must do the following open buy sell orders based on a custom strategy details below place take profit and stop loss automatically Lot size should be adjustable Should avoid overtrading e.g. max 3 trades per day Close trades automatically based on criteria Work on multiple pairs if possible News filler optional
I need an Expert advisor (EA) for metatrader 5 (MT5), coded in MQL5. The EA should open and close trades based on the RSI indicator. A buy trade is triggered when RSI crosses below 30 and then moves back above it. A sell trade when RSI crosses above 70 and then drops below. The EA must include customizable input settings such as RSI period, lot size, stop loss, take profit, maximum number of trades, and trading time
I'm looking for a professional MQL developer to convert an Indicator codes (Pine Script) from TradingView to MQL5 and modifying it , It's based on FVG and OB indicator in tradingview
Fix script 40+ USD
hello great developer i want to fix this script This arrow shouldn’t of printed because the renko brick ended red{ check the image} One other guy said this ‘okay I am seeing, arrow sticks because your code plots it conditionally but never deletes it later. This is expected behavior unless you add cleanup logic like -- Chart.RemoveObject(...) for outdated arrows... not sure if you understand the technical parts
hello coders , i want you to create a trading bot in mt5. i have the pinescript code for the strategy. the trading bot is a type of scalping bot hence the entry and exit would be very fast typically in the same candle and within 20 seconds. so if anyone can help me in creating i would be very muh happy
I’m looking for an experienced MQL5 developer to build a fully custom Expert Advisor (EA) for MT5. The EA should combine two integrated strategies: Session-Based Breakout System, using the opening range of a defined market session to detect and trade breakout-retest setups on lower timeframes. Multi-Timeframe Reversal Strategy, incorporating RSI-based exhaustion signals, candlestick confirmations, and automated
This Expert Advisor (EA) is based on the 'Liquidity Sweep + Momentum Shift' scalping strategy, built for EURUSD, XAUUSD (Gold), and NAS100 (NASDAQ). It is designed to trade on the 5-minute (M5) timeframe, identifying high-probability reversals following liquidity grabs. The EA must scan for trades continuously and may execute up to 10 trades per symbol per day, depending on conditions met. 2. Symbols and Timeframes -

Project information

Budget
150 - 200 USD
For the developer
135 - 180 USD
Deadline
from 1 to 3 day(s)