FLEX EA – Review＆Examination
FLEX EA Basic Information
|Flex EA||Flex EA x2|
|Currency Pair||GBPUSD, USDJPY, USDCAD, USDCHF, EURUSD, AUDUSD, EURJPY, EURCHF, EURGBP, NZDUSD|
|Real account licenses||1||2|
|Demo account license||Unlimited||Unlimited|
|Other||With special edition Correlated Hedge EA|
|Trading method||Basic is martingale (customizable)|
|Time frame||1H or 4H|
|Money back guarantee||There is a money back guarantee. Up to 30 days with no special refund conditions.|
However, the result of “Headge EA” is not so good, so the main difference is that the number of licenses is 1 or 2.
The basic logic of FLEX EA is martingale. There is a wide range of settings that can be customized by the user, and there are many options.
The number of parameter items of FLEX EA is more than 130, which shows that it is an EA with outstanding customization.
On the other hand, there are so many choices that you may not know how to set it.
However, it is possible to use the settings that gave good results in the forward test as they are.
Since FLEX EA has many setting items, the number of published forward tests exceeds 100.
Specifically, it is not a difficult task because you just download the SET file from the members forum of FLEX EA (accessible after purchase) and import it from the “Load” button on the parameter input screen of EA with MT4.
There are many settings that have achieved good results in the forward test. On the other hand, there are also settings with bad results and broken accounts.
In other words, since there are many setting options, the result depends largely on how you set them.
However, the common point is that the basic strategy is martingale, so it is better to be aware of the possibility of large losses at once.
This EA can control the maximum loss by parameter setting, so it can prevent from losing as much as account broken. Even if big stop loss occurs, it is good if the profit is generated in the long term. What matters is the long-term profit / loss ratio.
FLEX EA Features of Entry & Exit
Use of Indicators
You can customize your entry or exit with the various indicators below.
- ADR（Average Day Range）
- SR (Support & Resistance Line)
- Moving average (EMA / Exponential Moving Average)
- TDI（Traders Dynamic Index）
Various Stop Loss Settings
- Stop loss in pips to individual positions
- Stop Loss as percentage of balance (Specified by drawdown% of Balance)
- Trailing stop
- Stop loss as specified in dollar amount
Virtual Trade & News Filter
FLEX EA is “Martingale EA with highly customizable entry and exit”.
Other characteristic setting items are introduced below.
It is a function that makes a virtual trade in the background and determines the entry point based on the result of the virtual trade.
(This is virtual trades inside the EA. Since it is not actually trade, there is no change in profit or loss.)
Based on the assumption that market conditions and price movements will always change, FLEX EA will automatically adjust the entry while monitoring the market condition by virtual trading.
Specifically, you can select a numerical value with the parameter of “Virtual Trades”. The larger the value, the safer the entry based on the result of virtual trading
Conversely, the smaller the “Virtual Trades” parameter value, the more aggressive the trade.
The FLEX EA has a news filter function. Market prices will move significantly when major economic indexes are announced.
Therefore, after the news or index is released, there is a possibility that large amount of profit can be obtained, but there is also risk of large loss.
Especially for Martingale EA, large price movement is risk of large loss. Therefore, the news filter function is useful in reducing the risk of loss.
Specifically, you can set three levels as below by setting the parameter of “News Impact”.
In addition, it is possible to select how long the trading should be stopped before and after the news and whether to close the existing positions with other news filter parameters.
Profitability / Drawdown ＆ Method Analysis
Since the results vary greatly depending on the parameter settings, it is not possible to comprehensively evaluate the profitability and risks of FLEX EA itself.
For reference only, let’s analyze the settings that are performing well.
Flex SRV1/SRV2 Setting
Broker：Trader’s Way（Real account）
|(Information as of 2019-10-10)||Date||Balance|
|Lot Size||(Adjust according to balance)|
|Total rate of return||+194.1%|
|Monthly rate of return (compound)||+7.5%|
|Monthly rate of return (single)||(Adjust according to balance)|
|Profit trades (% of total)||65.0%|
|Currency Pair||The main is EURUSD|
From July 2018 to October 2019, in real accounts, the average monthly rate of return (compound interest) was 7.2% and the maximum drawdown was 7.3%.
With a deposit of $ 1619, the final balance is $ 4761. It is about 3 times.
A drawdown of less than 10% and tripled balance in just over a year is a very good result.
This setting is a typical setting introduced on the official Flex EA website.
Trading Method Analysis (Flex SRV1/SRV2）
The basic strategy of Flex SRV1 / SRV2 is martingale by hedging position.
In the MT4 transaction history chart below, you can see that holding both SELL and BUY positions together and martingale.
■EURUSD 15M White＝BUY Red＝SELL
Having either Sell or a Buy position can result in losses when prices continue to move in either direction. Having either a sell or a buy position can result in losses when prices continue to move in either direction.
So having both positions has the effect of avoiding risk.
However, it does not always hold positions in both side(Hedging). Sometimes only one side.
■EURUSD 15M White＝BUY Red＝SELL
It seems that it depends on the situation whether to hedge.
The pips distance of the additional entry is set to about 20-30 pips. In other words, each time the price moves 20 to 30 pips backwards from the entry direction, It will open additional positions with an increased lot size.
An example of increasing lot size is shown below.
|Lot size size increase||+0.01||+0.02||+0.03||+0.04||+0.05|
Summary of Flex SRV1/SRV2
It is unique setting of martingale while holding the positions of both sides.
It is a result of the limited period of more than one year, and would like to get the result for a little longer, but in the real account, the drawdown is small and the profit rate is high.
Since it holds positions of both sides, even if the market moves significantly to one side, profits will come out on either position. The advantage is that it can trade while increasing the barance of account.
However, we should be aware of the risk that losses will occur if the market moves in one direction when it does not hold positions of both sides.
Flex EA Default Acct4
|(Information as of 2020-05-09)||Date||Balance|
|Lot Size||(Adjust according to balance)|
|Total rate of return||+9924.7%|
|Monthly rate of return (compound)||+6.1%|
|Monthly rate of return (single)||(Adjust according to balance)|
|Profit trades (% of total)||61.0%|
|Currency Pair||AUDUSD, EURNZD, EURUSD, GBPUSD, USDCAD, USDCHF, USDJPY, XAUUSD|
The forward test started in October 2013, and it is the setting that has been the longest forward test among Flex EA.
There have been several large drawdowns since 2019, and the results look bad, but the maximum drawdown is about 36% and the average monthly rate of return is 6% (compound interest). This is good enough.
Starting from $ 3000, the current balance has grown to over $ 300,000. That’s over 100 times.
Trading Method Analysis（Default Acct4）
Default Acct4 is the orthodox type of martingale.
After contrarian entry in th.e medium or long-term time frame, additional entries are repeated each time the price moves in the opposite from the entry direction.
The pips distance to additional entries is fixed at about 20 pips, and entries are repeated at 20 pip intervals.
■EURUSD 4H White＝BUY Red＝SELL
The maximum number of positions is 5, and never be more than 5 positions.
Increase rate of additional entries lot size is as follows:
it will increase the lot size by 1.7 times from the previous position.
|Lot size Size increase rate
(Current position ÷ Previous position)
This is the biggest drawdown that happened in August 2019.
■USDJPY 30H White＝BUY Red＝SELL
The loss cut was executed at drawdown of about 270 pips from the first entry.
Summary of Default Acct4
As the setting name, “Default” Acct4 is based on the default setting, it performs orthodox martingale trading.
Looking at the profit curve, there are several big drawdowns, but in the long run it is a good result.
Losscut has prevented the bankruptcy of the account.
It should be recognized that drawdowns like the forward test will occasionally occur as it increases lot size and repeats additional entries.
Back Test Result
It is dangerous to make a belief in only the backtest result and operate it in a real account. it is only a reference.
Flex EA does not publish detailed information of backtest results in any setting. The reason is that Flex EA has the concept of trading according to market conditions by making use of virtual trading and news filter functions.
Backtesting isn’t totally meaningless, but backtesting doesn’t measure Flex EA performance.
Therefore, Flex EA can be evaluated only by judging from the results of existing public forward tests, or by customizing the settings and testing by oneself.
Summary of FLEX EA
FLEX EA has a lot of setting options.
In addition to customizing your own trades, you can download and use the setting files of the successful forward test from the Members Forum, which can access after purchasing.
It is possible to remove the martingale setting and set it like a normal trend follow or contrarian EA with a single position. However, if you do so, the logic will be too simple, so you should recognize it as a martingale EA.
Since the basic strategy is martingale, we will operate while allowing a certain amount of floating loss such as 30% of the balance.
(The parameter can specify the maximum drawdown for balance. If you dislike risk and set it below 10%, loss cuts will occur frequently. It is estimated that it is better to set it to 30% or more.）
Therefore, it is necessary to operate while preparing for the risk of relatively large drawdown at one time.
However, even if a relatively large loss cut occurs, there is no problem as long as total profit is made in the long run.
It does not matter whether it is small and frequent drawdown or relatively large drawdown at once. The important thing is to win in the long run. There is no choice but to judge based on the results of forward tests, etc.
Some accounts have shown good results in forward, so if you understand the nature and risks of FLEX EA, you may consider using it.
It may be said that it is an EA with infinite possibilities due to its customizability.
It is a perfect EA for those who want to make a martingale trade while making manual decisions according to the market conditions such as trends and ranges.
Recommended Broker for FLEX EA
FLEX EA officially recommends the following 3 brokers.
Both are excellent brokers with good reputation worldwide.
（TradersWay accept US clients）
Alternatively, some brokers offer 100% deposit bonus that doubles your balance, so you can choose a broker with good bonus conditions.
Martingale EA like FLEX EA operates with floating loss, so it is advantageous to have as many account balance as possible and it will operate stably. On the contrary, if the balance is small, the risk of large loss is high.
Therefore, the deposit bonus of Forex brokers is definitely good service to use.
Especially, the 100% bonus of “XM (XM Trading) Standard Account“ will cover the floating loss even if the equity balance reaches 0. (Other brokers only have the advantage of be able to open large position, and the bonus disappears when the equity balance reaches 0.)
With a deposit of $ 500, you can trade twice as much as $ 1000, and the maximum leverage is 888 times, which is the most advantageous operating environment for FLEX EA.
In addition to the double deposit bonus, you can also get an account opening $30 bonus at XM.
* To receive a 100% deposit bonus + $30 account opening bonus, select “Standard Account (1lot = 100,000)”. Bonus cannot be received with Zero account.
|User||Enter your FlexEA user ID|
|Strategy||8 settings currently in use（RealTakeProfit, RealStopLoss, PipStep, VirtualTrades, VirtualTakeProfit, LotMultiplier, MaxBuyTrades, MaxSellTrades）Is displayed|
|UseVirtualTrading||Virtual trading function ON / OFF setting|
|RealTakeProfit||Take profit used in the actual trade|
|AddToTP||The take profit of the additional entry in the martingale will be the “profit-determined value of the previous position” + “input value of this item”.|
|AddToSL||For stop loss, the same execution method as in “AddToTP” above is applied.|
|RealStopLoss||Stop loss used in actual trading.
If this setting is left at 0, a stop loss will occur with the setting value of “DD_StoplossPct”. In martingale trading, it is nonsense to set a stop loss for each individual position, so you can leave it at 0.
|PipStepMultiplier||For the pips width at the time of additional entry specified in “Pip Step”, “the value entered in this item” x “pips width at the time of the previous entry”.
* When “PipStep” = 20, PipStepMultiplier = 1.5, the second position has an interval of 20pips, the third position has an interval of 30pips, and the fourth position has an interval of 45pips.
|LotStepMultiplier||How many times to increase the lot size at the time of additional entry in from the previous entry|
|PipStep||Pips distance on additional entry in martingale|
|VirtualPipStep||Pips distance at the time of additional entry in virtual trading|
|VirtualTrades||The frequency of virtual trading in the background. The default setting is 6. The larger the value of this item (8-9, etc.), the less the trade frequency, but the higher the winning rate. Conversely, if the number of this item is small (2 to 3 etc.), the trade frequency is high but the probability is low.|
|VirtualTakeProfit||Take profit for virtual trading in the background. Decreasing the value of this item decreases the trade frequency, and conversely, increasing the value of this item increases the trade frequency. The default setting is recommended.|
|LotMultiplier||If you want to make a recovery trade, enter “Last lot size” x “Numerical value of this item”.|
|Accuracy||What percentage of the virtual trade signal will you follow? The default setting is 100%.|
|MaxBuyTrades||Maximum number of positions for Ｂuy entries.|
|MaxSellTrades||Maximum number of positions for Sell entries.|
|UseSameTP||Whether Take Profit is common for all positions opened by the martingale, or is set for each individual position.
In general, martingale trade closes all positions at once. On the other hand, this setting will also be closed with a fixed pips value for additional entries.
|UseSameSL||For stop loss, apply the same closing method as in “UseSameTP” above.|
|WaitForNextBar||Do not enter until the current candlestick is completely formed. Used to prevent being deceived by fake price movement due to sudden changes in market price,|
|ResetDataOnFriday||Reset virtual trade results every Friday|
|MM||Automatically set lot size according to account balance|
|Risk||Set how much risk it takes with automatic lot size adjustment. 0.1 to 0.3 is low risk, 0.4 to 0.9 is medium risk, and 1.0 is high risk.|
|Risk_Type||Whether to adjust the lot size automatically based on “Balance” or “Equity”.|
|ManualLot||When “MM” is turned off, order by the value of this item.|
|MaxSpread||Maximum spread allowed when ordering|
|RestartSlippage||Maximum slippage allowed when ordering|
|RestartSlippage||This is the standard by which the virtual trade is reset when MT4 is restarted. Price difference between closing and restarting MT4. Default is 10.|
|RestartHours||This is the standard by which the virtual trade is reset when MT4 is restarted. Time difference between closing and restarting MT4. Default is 10.|
|DD_SL_Mode||Whether to apply the stop loss set in “DD_StopLossPct” on a single chart (single currency pair) or on all charts (all currency pairs trading)|
|DD_TP_Mode||Whether to apply the same method as “DD_SL_Mode” above for take profit.|
|DD_StoplossPct||Stop loss is executed for all positions by “percentage entered in this item” x “account balance”. Be careful not to set it too low.
Depending on the balance with lot size, 20-30% is the standard setting.
|DollarSL||Stop loss value that works in dollars|
|DD_Pause||If the drawdown occurs more than the percentage specified in this item, a new entry will not be made on another chart (other currency pair).|
|FloatingTP_Pct||All positions will be closed when the profit of “percentage entered in this item” x “account balance” is generated.|
|DollarTP||Stop loss value that works in dollars|
|PauseBasketsAtDD||Do not make additional entries in this chart (corresponding currency pair) until it falls below the drawdown percentage specified in “DD_Pause”|
|PauseAfterStopout||After “DD_StoplossPct” works and the stop loss is executed, no new entry is made within the time (hour) specified by “HoursToPauseTrade”.|
|HoursToPauseTrade||“PauseAfterStopout” setting time. Default is 48 (hours / hour)|
|ChartDisplay||Whether to display information about trades on the chart|
|TrailingMode||Whether to enable the trailing function|
|TrailingStep||How close to the take profit value to activate “Trailing TP” and “Trailing SL”.|
|TrailingTP||How much to increase the “TP” pips value for the current order|
|TrailingSL||How much to reduce the “SL” pips value for the current order|
|TrendTrailTrigger||When “trendMode” is ON, the trailing function will be activated for the position of the number entered in this item.|
|EquityTrail||Balance-based trailing function|
|UseDynamicEQTP||Automatically set “Equity Trail TP” according to balance and lot size|
|EquityTrailStep||The recommended setting is 0.00, which is the default. Set how much to increase the percentage of “EquityTrail TP” when EquityTrail is activated.|
|EquityTrailTP||Percentage of profit amount against balance to activate “Equity Trail”|
|EquityTrailSL||Stop loss set by the trailing function. Specify the difference from “Equity Trail TP” as a percentage.|
|EQTP||How many martingale trade groups (a series of martingale trades) the EquityTrailTP applies to.|
|FullBasketEquityTrail||“Equity Trail” will be applied to all positions held in the account.|
|WhenToStart_FBET||The percentage at which the “FullBasketEquityTrail” is triggered. Can only be specified with a negative drawdown value. For example, if you set -5%, after the balance becomes -10%, “FullBasketEquityTrail” will be executed when it returns to – 5% negative.|
|DynamicAdditionals||Only when the conditions of both indicators and “Pip Step” are met, let the entry.|
|MaxADR||If the ADR (Average Daily Range) exceeds 200, no entry order will be made.|
|ADR Days||Setting ADR days|
|CloseTradesAtADR||If the ADR (Average Daily Range) exceeds 200, the positions will be closed.|
|PauseBasketAtADR||If the ADR (Average Daily Range) exceeds 200, additional entry by martingale is not executed.|
|UseSR||Setting to prevent new entries near support / resistance lines|
|TradeSR||It is set to buy entries on the support line and sell entries on the resistance line. To reverse this, set “Reverse Mode” to ON.|
|NumOfBars||The number of candlesticks used to index the support and resistance lines. When using “SR”, it is necessary to use 1 hour or 4 hours.|
|PipsAwayFromSR||Do not enter if the distance between the support / resistance line and the current price is the number of pips set in this item.|
|UseEMA||Use Exponential Moving Average|
|UseTDI||Enter using the trader dynamic index using three simple moving averages (short term: TDI1, medium term: TDI2, long term: TDI3). Buy entry with TDI1> TDI2> TDI3. Sell entry with TDI1 <TDI2 <TDI3.|
|TDIPeriods||Set the period of three moving average (TDI1, TDI2, TDI3)|
|UseTDICross||With TDI1 and TDI2 already above TDI3, buy entry at the timing when TDI1 crossed over TDI2.
Sell entry at the timing when TDI1 crossed below TDI2 while TDI1 and TDI2 were already in TDI3.
|UseSlopeCross||Buy entry when both TDI1 and TDI2 are above TDI3.
Sell entry when both TDI1 and TDI2 are below TDI3.
|CheckTDiSlope||Buy entry when TDI3 is continuously rising against TDISlopeBars, sell entry when TDIlopeBars is continuously falling.|
|TDISlopeBars||Number of candlesticks used for “Check TDISlope”|
|TDIFarApart||Entry when the distance between TDI1 and TDI2 is larger than the pips value set in “How Far Apart”. BUY when TDI1> TDI2. Sell when TDI1 <TDI2.|
|HowFarApart||Specify pips value of TDIFarApart|
|UseRSI||Use RSI for entry|
|WaitForRSIExit||Buy only when the RSI returns from the oversold line set by “BuyBelowRSI”, and Sell entry only when the RSI returns from the overbought line set by the buy “SellAboveRSI”.|
|RSIPeriod||RSI setting period|
|BuyBelowRSI||BUY when RSI falls below the setting value of this item|
|SellAboveRSI||SELL when RSI is higher than the setting value of this item|
|CheckCandleSize||Only enter if at least one of the candlesticks specified in “NumberOfCheckedCandles” is larger than the pips specified in this item.|
|CheckCandleSizeSmaller||Only enter if all of the candlesticks specified in “NumberOfCheckedCandles” are smaller than pips specified in this item|
|CheckCandleMode||Whether to measure with the substance of the candlestick (open price-close price) or high price-low price|
|NumberOfCheckedCandles||Number of candlesticks used by “CheckCandleSize”|
|UseMomentumFlatline||Comparing the last close bar with the second last close bar and if the difference is less than the specified pips value of the “Momentum Difference”, then the trade is allowed|
|MomentumDifference||“Use Momentum Flatline” setting pips value|
|Mins_Between_Trades||No additional entry will be made during the period (minutes / minutes) specified in this item for the same currency pair. To avoid large losses due to sudden price movements|
|StartingTradeDay||First day of the week to start trading|
|EndingTradeDay||Last day of the week to close the transaction. Due to the nature and experience of FLEX EA, it seems that Friday is high risk, so Thursday is recommended.|
|StartHour||Time when FLEX EA starts trading|
|StopHour||Time when FLEX EA closes the transaction|
|CloseBasketAfterXmins||No additional entries will be made and all positions will be closed after the time specified in “Close Minutes” has elapsed since the first entry of the martingale.|
|CloseMinutes||Specified time (minutes) for “CloseBasketAfterXmins”|
|CloseTradesBeforeMarketClose||Close all positions on Friday at the time set by “Close Hour”.|
|CloseHour||Specified time of “Close Trades Before Market Close”|
|PauseAfterProfit||Allow time from the latest Take Profit time to new entries|
|HoursToPauseAfterProfit||“Pause After Profit” specified time (hours / hour)|
|TradeAustralian||Whether to make a new entry in the Australian session|
|TradeAsian||Whether to make a new entry in the Asian session|
|TradeLondon||Whether to make a new entry in the London session|
|TradeNewYork||Whether to make a new entry in the New York session|
|UseEarlyRecoveryMode||Turn off “Lot Multiplier” for entries until the specified value of “Start Recovery” is reached.|
|UseLateRecoveryMode||After reaching the specified value of “Start Recovery”, “Lot Multiplier” will be turned off. Example: If “Start Recovery” is 3, after opening positions of 0.1lot, 0.2lot and 0.3lot, the 4th and 5th positions will both be 0.3 lots.
Note that the trades are more likely to end up in losses.
|StartRecovery||UseEarlyRecoveryMode, UseLateRecoveryMode settings|
|UseHedging||Whether or not you have a position on both sides of the martingale entry at the same time. (Whether to have a hedge position)|
|HedgeOnce||Whether to have a hedge position again when the hedge position reaches “HedgeTP” or “HedgeSL”.|
|CloseTogether||Whether to close the martingale position at the same time when the hedge position reaches “HedgeTP” or “HedgeSL”|
|HedgeAfterPips||How far apart to open a hedge position for martingale entries|
|HedgeTP||take profit value of hedge position|
|HedgeSL||Stop loss value of hedge position|
|HedgeMultiplier||The lot size of the hedge position is “the setting value of this item” x “the lot size of the total position of the martingale”.|
|ECN||When trading with an ECN account that does not allow TP or SL settings when ordering|
|newMode||Loose standards for virtual trading, increasing trading frequency|
|ReverseMode||Setting to reverse BUY and SELL entries. FLEX EA is basically a contrarian targeting for retracement, but by reversing buying / selling, it becomes suitable for the trend market.|
|trendMode||Setting to make entries according to trends. When it is turned ON, the entry will be repeated in the trend direction with the lot size added at 21 pips intervals until it reaches “FloatingTP_Pct” or “FloatingSL_Pct”.|
|trendHybrid||An additional entry will be executed for both 21 pips floating profit and 21 pips floating loss.|
|TrendPipStep||The PipStep used for additional entries when “trendMode” or “trendHybrid” is turned on.|
|EA_Name||EA name displayed in the transaction history comment (FLEX EA)|
|CustomSetFile||The name of the set file to be displayed on the chart.|
|MagicNumber||Magic number. Sequential number used for the transaction|
|HideFromBroker:||Whether to display in the transaction history comment|
|ChartDisplay||Whether to display information about FLEX EA on the chart|
|ShowButtons||Whether to display the three buttons “Close, CloseAll, On / Off” on the chart|
|Font||Font of characters displayed in chart|
|Color||Text color to be displayed on the chart|
|Size||Size of characters displayed on chart|
|Max_Charts||Number of charts that can be opened simultaneously|
|Currency Pair Filters||Only trade up to 2 pairs per currency.
An important feature to protect your balance against a market situation where all pairs surge / fall simultaneously
|UseNewsFilter||Whether to stop trading before and after a news event|
|MinsBeforeNews||Time to stop EA before news event (minutes)|
|MinsAfterNews||Time to stop EA after news event (minutes)|
|NewsImpact.||Select from the following
１．Stop trading before and after all news events
２．Stop trading before and after a moderately important news event
３．Stop trading only before and after major news events
|OffsetHours||If there is a time difference in the news displayed on the forexfactory and MT4 trading charts, enter the time difference|
|ShowNewsPanel||Whether to show news events in the chart|
|ShowBG||Hides the background (box) of the news panel.|
|CloseBasketsBeforeNews||Whether to close existing positions including the target currency when entering within the time of “Mins Before News”|
|ResetVirtualDataAfterNews.||Whether to reset the virtual trade data for the pair containing the currency of interest after significant news. When turned on, the number of transactions decreases.|