Flexible EA

Flexible EA

22 April 2018, 07:03
Nicolas Zouein
6 740

Flexible EA works by loading any custom indicator that you might have to trigger Buy/Sell signals and TP/SL signals, also it has a built-in advanced grid, averaging, trailing and filtering systems. 

Many times it happened that you grabbed a nice indicator and sat watching its beautiful blue and red arrows or dots popping up on your chart indicating buy/sell signals that you only wished if you can backtest this indicator to see its performance.

Well this happened to all of us and many many times. On top we all wasted money creating EA's just to be able to backtest a heroic indicator which ends up being a total looser.

Just fill in your custom indicator's name and run a backtest, you can endlessly backtest the 10's or 100's of indicators that you have lying around, you can even auto trade with Flexible EA, it comes loaded with many features.

Update 29-Apr-2018: V4.25 is online, changes:

  • Added MA Filter (with trade options)
  • Added RSI Filter
  • Added the option to Close on opposite signal
  • Added Grid Lot Sizing Method (either lot_multiplication or lot_addition)

Update 1-May-2018: V4.40 is online, changes:

  • Added "No_Indicator" to Signal Source, the EA relies on the "Min Trade Distance" to open grid trades.
  • Removed the built-in drop down Buffer# selection so that users can input any number they want.
  • Added the option to Take Profit or Stop Loss according to the Custom_Indicator signals.
  • Option to Enable/Disable the grid trader. If disabled only a single buy or sell will happen.

Update 15-May-2018: V5.00 is online, changes:

  • Added minimum profitable TP pips from custom indicator buffer to close a trade.
  • Added maximum unprofitable SL pips from custom indicator buffer to close a trade.
  • Added a news filter
  • Added a dashboard front panel

Update 20-May-2018: V5.90 is online, changes:

  • Added the 'Trailing' functionality as per users suggestions.
  • Added a section for TP/SL to close each on their own custom_indicator, they are no more related to the main custom_indicator that opens the main trades. 
    Now you can use limitless options to close your trades like ma crossing or Bollinger Bands or whatever you might imagine as long as you find an indicator for it. 
  • Fixed Money Management (risk percent) not opening lots properly.
  • Fixed a bug in the grid trader.
  • Now the dashboard auto disables for faster backtesting.

Update 27-May-2018: V6.35 is online at mql5, changes:

  • Added a built-in Trend detection which shows (Trend Up or Trend Down) on the dashboard.
  • Added an option for TP and SL to select either a ("Split_Basket" where the Buy's basket is separated from Sell's) or a ("Joined_Basket" where Buy's and Sells are combined and calculated into 1 joined basket), this option comes as per Mark Vaines suggestion.. Thanks to him.
  • Added "All Account Money Profit" which monitors/closes all open orders of all symbols of all EA's or manual on all charts. Mark Vaines also. 
  • Added a debugging option when enabled prints many details in the journal. 
  • Fixed a bug in "Use Custom_Indicator_C as SL" which was not closing orders properly on signal.
  • Added a parameter "Min unprofitable SL pips from Buffer to close".
  • Fixed a bug in "Time Filter".

Update 16-June-2018: V6.38 is online at mql5, changes:

  • Added the option to switch On/Off the dashboard.
  • Fixed a critical bug related to the news filter preventing the EA from opening trades.

Features of Flexible EA:

  • Load your custom indicators into the EA and set which is the Buy/Sell signal buffer.
  • Either trade single orders or enable the grid trading system to follow up and average your orders.
  • Average your trades with a basket Take Profit system or enable Trailing for the entire baskets.
  • Set a minimum distance (pips) between opening same kind trades for grid trading, a distance multiplier to avoid opening many orders.
  • Built-in Filters: Start/Stop Time filter, advanced MA filter, RSI filter, News filter.

Type of indicators that work with Flexible EA:

Indicators with buffers that show buy/sell signals as arrow up/down, red/blue dot, histograms..etc.


Any Dots indicator like this one:



or IndicatorArrows indicators like this one:


or the famous Holy Grail Indicator here (Contact me for buffer numbers setup)


or my  Laser Trend Indicator (Buy Buffer: 7 , Sell Buffer: 8) ask me for a set file for Flexible EA

Laser Trend Indi

or the PipFinite Trend PRO (Buy Buffer: 8 , Sell Buffer: 9 , TP1 Buffer: 16 , TP2 Buffer: 17)

pipfinite trend pro

with Slope_Direction_Line Indicator (Buy Buffer: 0 , Sell Buffer: 1)

NickZ Grid Signals indicator (Buy Buffer: 0 , Sell Buffer: 1) download it from this blog with it's set file

NickZ Grid Signals

and many many others...


General Parameters:

Trade Comment: Your comment here.
Magic Number: 90211

Trading Parameters:

FIFO Compliance: False (enable this parameter for FIFO brokers only).
Trade Direction: BothDirections (forces the EA to trade in one direction only).
Time Filter: False (allows the EA to open the first trade according to the timer below).
Start Hour: 0 (Time Filter related).
Start Minute: 0 (Time Filter related).
Stop Hour: 0 (Time Filter related).
Stop Minute: 0 (Time Filter related).
Trade on Friday?: Yes.

Indicator Parameters:

Select your signal source --->>>: Fractals_Indicator (This is a very important part: By default we have set the EA to use the MT4's Fractals indicator to bypass the automatic validation on the MT4 site, this means that this EA is not intended to be used with the Fractals indicator in the first place, you must select as a "signal source: Custom_Indicator" to use this EA the way it is intended to be used. In v4.40 we've added the option to use the EA without any indicator, just select "No_Indicator" and the EA will rely on the "Min. Trade Distance" to open Grid trades.
Exact name of your Custom_Indicator_A: IndicatorArrows (You must write the exact name of your custom indicator for the EA to read Buy/Sell signals from. Not to mention that this Custom_indicator must be functional and already in your MT4's folder "\MQL4\Indicators". To put your downloaded indicator in the MT4's indicators folder do the following on the MT4 terminal: File>Open Data Folder>MQL4>Indicators "and copy your custom indicator there", after that in the Navigator window, right click on Indicators and click refresh. If you download an indicator from mql5.com website it goes by default into the subfolder "Market" therefore you must write the indicator name as: Market\IndicatorArrows)
Custom_Indicator's Timeframe: current (Here you can force your custom indicator to get data from a specific timeframe other than the one that Flexible EA is loaded on, ex: Flexible EA is loaded on M5, and you want your indicator to be on H1).
Custom_Indicator's Buy Buffer# : 0 (MT4 indicators come with 8 buffers "0 - 7" all the shapes that the indi draws on a chart come from those 8 buffers, if the indi is showing a "up green arrow" for buy signals, this signal is comming from one of the 8 buffers. You need to test to find which buffer is assorted with the "up green arrow". Most indicators are set to use 0 for Buy's and 1 for Sell's but this is not a rule, others might be in oposite or using the 2 & 3).
Custom_Indicator's Sell Buffer# : 1 (same explanation as above).
Indicator Shift: 1 (recommended 1 for Custom indicators and 2 for the Fractals indicator). This is a very important setting and determines the reliability of your Custom_Indicator's signal. What this setting does is that it instructs the EA to look backwards on x # of bars as specified in it's setting for a signal. It is not recommended at all to put this setting to 0 because 0 means "the current open bar" and since the bar is still open it means that the state of the bar is still unpredictable until it closes, your custom indicator might show a Buy signal on bar 0 and the EA makes a buy trade then suddenly the market condition changes and your custom indicator changes "the already shown buy signal" to a sell signal.. but it's too late the EA has already made a buy. Therefore it is strongly advised to ignore the current open bar '0' and look backwards 1 bar.
Additional Filters Parameters:
 Built-in News Filter:
Enable News Filter?: No (Enable or Disable the built-in News filter).
News GMT Offset: -3 (Set the correct GMT Time offset to match the time difference between your broker and the news on chart).
News Symbol Filter: USD,EUR (List the symbols that you're interested to monitor on your chart, comma separated. Don't forget that currencies come in pairs like EURUSD this means you want news for EUR AND USD, if your trading EURJPY then you need to enter: EUR,JPY).
High Impact Before/After pause duration (min): 20 (Pauses the EA from opening new positions 20 min before and 20 min after the news release).
Medium Impact Before/After pause duration (min): 10 (Pauses the EA from opening new positions 10 min before and 10 min after the news release).
Low Impact Before/After pause duration (min): 5 (Pauses the EA from opening new positions 5 min before and 5 min after the news release).
Update News every? (hour): 1 (Checks for news updates and downloads them every hour or so).
Note: For the news filter to work properly you need to (Allow WebRequest for listed URL: http://news.flexibleea.com) to do so, on MT4 upper menu click on: Tools > Options > Expert Advisors (check the "Allow WebRequest for listed URL" and below it double click on Add new URL like.. and enter for the new url this: http://news.flexibleea.com)

  Built-in RSI Filter:
Enable RSI Filter?: No (Enable or Disable the built-in Relative Strength Index indicator).
RSI Period: 14 (14 is the default period that comes in the RSI indicator).
(OverSold lvl) Allow Buy's below: 30 (Allows the EA to open Long trades only if the RSI line is below xx).
(OverBought lvl) Allow Sell's above: 70 (Allows the EA to open Short trades only if the RSI line is above xx).
RSI TimeFrame: current (Here you can force the RSI indicator to get data from a specific timeframe other than the one that Flexible EA is loaded on).
  Buil-in MA Filter:
Enable MA Filter?: No (Enable or Disable the built-in Moving Average indicator).
MA Period: 150 (A Moving Average built-in parameter).
MA Method: Simple (A Moving Average built-in parameter).
MA Shift: 0 (A Moving Average built-in parameter).
Apply to: Close (A Moving Average built-in parameter).
MA TimeFrame: current (Here you can force the MA indicator to get data from a specific timeframe other than the one that Flexible EA is loaded on).
Allow Buy's if price is: Above_MA_Line (You can either select Above or Below the MA line according to your strategy).
Allow Sell's if price is: Below_MA_Line (You can either select Above or Below the MA line according to your strategy).
Min distance from MA line (pips): 10 (Sometimes the price is very near to the MA line and keeps oscillating above and below the MA which gives false triggers, to avoid this case we've added a minimum distance that the price needs to be away from the MA line so a trade is allowed to happen).

Lot Sizing, Take Profit and Stop Loss Parameters:

Lot Sizing Method: FixedLot (this determines the size of the starting lot to be either a fixed lot size or a risk based % of the balance of the account).
Fixed Lot Size: 0.01 (if FixedLot is selected, here you specify the starting trade lot size).
MoneyManagement Risk Percent: 0.002 (if MoneyManagement is selected here, you specify the percentage of the balance to use for the starting trade lot size).

Select the Basket type --->>>: Split_Basket ("Split_Basket: Buy's basket separated from Sell's basket" "Joined_Basket: Buys and Sells baskets both joined into one")
Enable the Hidden Basket TP?Yes (You can disable this option to take TP from other sources like below).
Hidden Basket TP (pips): 6 (This sets the minimum Take Profit in pips of the Split_Basket or the Joined_Basket, note that this parameter is hidden from the broker).
Enable the Hidden Basket SL?: No (You can disable this option to activate SL from other sources like below).
Hidden Basket SL (pips): 100 (This sets the maximum Stop Loss in pips of the "Split_Basket" or the "Joined_Basket", note that this parameter is hidden from the broker).

Close on opposite signal: No (This option is added according to a user demand, he wanted to test closing trades when oposite signals appear. Blindly closes your trades when opposite signals appear from Custom_Indicator_A no matter the trades are in profit or loss).

Enable Trailing?: false (If enabled trails the whole baskets, it is suggested to disable the "Hidden Basket TP" when using trailing).
Trailing Distance (pips): 6 (The distance the price has to move above or below the "Trailing min Profitbefore the trailing makes a "Trailing Step" to move the SL).
Trailing Step (pips): 3 (When "Trailing Distance" is reached the "Trailing step" moves the SL xx pips as per it's setting).
Trailing min Profit (pips): 20 (This is the minimum TP in pips that has to be achieved before the Trailing takes over).

Enable Money Profit?: False (Attention: Money Profit monitors/closes all open orders of all symbols of all EA's on all charts).
Profit in money to close ALL open trades: 100

Use Custom_Indicator_B Signals for TP?No (You can choose to get your TP signals from a second custom indicator by enabling this function).
Minimum profitable TP pips from Buffer to close5 (This is the minimum TP that is required before closing a trade).
Exact Name of Custom_Indicator_B for TP: IndicatorABC (Enter the name exactly as the indicator's name with respect to caps and spaces).
TP Custom_Indicator_B Timeframe: current (Drop down selection to change the indicator's time frame).
Custom_Indicator_B LONG orders TP Buffer#3 (Input the buffer# from where to get the TP closing signal for the long trades).
Custom_Indicator_B SHORT orders TP Buffer#4 (Input the buffer# from where to get the TP closing signal for the short trades).
Custom_Indicator_B TP Shift: 1 (Recommended 1).

Use Custom_Indicator_C Signals for SL?No (Same as above).
Min unprofitable SL pips from Buffer to close: 0 (This is the minimum SL for trades to close).
Maximum unprofitable SL pips from Buffer to close100 (This is the maximum SL that is allowed before closing a trade).
Name of Custom_Indicator_C for SL: IndicatorDots (Same as above).
SL Custom_Indicator_C Timeframe: current (Same as above).
Custom_Indicator_C LONG orders SL Buffer#5 (Same as above).
Custom_Indicator_C SHORT orders SL Buffer#6 (Same as above).
Custom_Indicator_C SL Shift: 1 (Recommended 1).

Allow grid trades? Yes (Enable or disable the Grid Trading system from here).
Grid trades Lot Sizing method Lot_Multiplier (You can select how you want the grid trades to calculate the next "to open" lot size, either by multiplication or by addition. Ex: If "Lot_Multiplier" is selected and the previous lot was 0.10 the next lot sequence would be 0.15, 0.23, 0.35, 0.53..etc while if "Lot_Addition" is selected the lot sequence would come out as 0.10, 0.12, 0.14, 0.16, 0.18..etc. This is not to mention that the Buy's are seperated from the Sells).
Lot Multiplier Short: 1.50 (Lot size multiplier for the next Sell grid trade).
Lot Addition Short: 0.02 (Lot size addition for the next Sell grid trade).
Min Trade Distance Short (pips): 5 (The minimum positive pips required in price change to open the next Sell trade).
Next_Trade_Distance_Multiplier_Short: 1.0 (This parameter auto increases the "Min Trade Distance Short (pips)" by multiplying it's value each time a new grid short trade is opened to trying to leash the EA from opening so many grid trades in a short period of time. EX: (If Min_Dis = 5 and Distance_Multipler = 2.0) This is how the grid would look like: Trade-1 immediately on signal, Trade-2 at 5 pips away, Trades-3 at 5 pips x 2 = 10 pips, Trade-4 at 10 pips x 2 = 20 pips, Trade-5 at 20 pips x 2 = 40 pips ). As you can see without the Distance_Multiplier the EA would have opened 5 trades with a 5 pips distance between them totaling 25 pips between TR-1 and TR-5 but with the "Distance Multiplier" feature it would be 75 pips!
Max Short Grid Trades Allowed: 15 (The maximum number allowed of all open Sell trades)
Lot Multiplier Long: 1.50 (Lot size multiplier for the next Buy grid trade).
Lot Addition Long: 0.02 (Lot size addition for the next Buy grid trade).
Min Trade Distance Long (pips): 5 (The minimum negative pips required in price change to open the next Buy trade).
Next_Trade_Distance_Multiplier_Long: 1.0 (Already explained above, look at Next_Trade_Distance_Multiplier_Short)
Max Long Grid Trades Allowed: 15 (The maximum number allowed of all open Buy trades) 

Notification Parameters:

Send Push Notifications on DrawDawn? No (if enabled sends you push notifications on your MetaTrader 4 phone app, this option requires you to have a MetaQuotes ID which you can get for free from your account settings on mql5.com).
DrawDawn Threshold %: 50 (the threshold to trigger a push notification, once the account has a drawdawn of -50 %, a push notification is sent to you).

Debugging Parameters:

  • Enable Printing in the Journal? False (Prints out many details in the Journal, Slows down the backtesting process, disable while backtesting for faster performance).

Suggestion: Because indicators slow down EA's "which is a fact well known" Flexible EA is coded to open trades on 'new bar' or on 'new candle start' only, which is a better method than traditional blind ea's. Therefore for faster backtesting it is suggested that you select as a "Model: Open Prices Only" from within the MT4's Strategy Tester unless you are using the Trailing functionality which needs "Model: Every Tick" which is slower of course.

Download Flexible EA and give it a try, contact me for any help setting up your indicator or if your require any additional functions.

Share it with friends: