- Customizable with over 100 parameters
- The basic strategy is martingale
- For the forward test with good results, you can obtain the set file from the members forum and copy the settings.
FLEX EA Basic Information
Name | Flex EA |
Price | During campaign($349) Normal$1059 |
Currency Pair | GBPUSD, USDJPY, USDCAD, USDCHF, EURUSD, AUDUSD, EURJPY, EURCHF, EURGBP, NZDUSD |
Real account licenses | 1 |
Demo account license | Unlimited |
Time Flame | 1H / 4H Chart |
Trading method | Basic is martingale (customizable) |
Minimum deposit | $1,000 |
Terminal | MT4/MT5 |
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. (Reference article: Martingale EA risks and benefits)
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)
- Stochastic
- TDI(Traders Dynamic Index)
- RSI
- Momentum
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.
Virtual Trade
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.
News Filter
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”.
2.Stop trading before and after a moderately important news event
3.Stop trading only before and after major news events
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.
GLOBAL DE TDI SLOPE H1 Setting
Trading Method Analysis (Flex GLOBAL DE TDI SLOPE H1)
Martingale method is used.
The trading history chart below shows that if the price moves significantly against your position, you will have an additional position.
■USDJPY White=BUY Red=SELL
It operates not with a single currency pair, but with a variety of pairs such as AUDCAD, AUDUSD, EURCHF, EURGBP, EURUSD, GBPCHF, GBPUSD, NZDUSD, USDCHF, USDJPY.
The initial entry is performed by trend following, not contrarian. In the trading history chart below, you can see that we are entering in the direction of the trend.
■USDJPY White=BUY Red=SELL
Flex SRV1/SRV2 Setting
This setting is currently closed for trading.
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.
No1 | No2 | No3 | No4 | No5 | No6 | |
Lot Size | 0.02 | 0.03 | 0.05 | 0.08 | 0.12 | 0.18 |
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
Default Acct4 is the result on demo account.
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.
No1 | No2 | No3 | No4 | No5 | |
Lot Size | 0.1lot | 0.17lot | 0.29lot | 0.49lot | 0.84lot |
Lot size Size increase rate (Current position ÷ Previous position) |
- | ×1.70 | ×1.70 | ×1.70 | ×1.70 |
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 rely only on backtest results and operate with a real account. It is just for reference.
Flex EA does not disclose detailed information on backtest results for any setting. The reason is that Flex EA has the concept of conducting trades according to market conditions by utilizing virtual trading and news filter functions.
Their argument is that backtesting does not allow him to measure the performance of the Flex EA.
However, backtesting is not completely useless. How a stock performs in the past is important.
A good EA condition is that it is proven in past market prices and also shows good results in forward tests.
The main strategy of FLEX EA is martingale. Martingale shows good results in the short term, but often results in large losses in the long term.
The backtest may not be made public because it will reduce the reputation of FLEX EA.
Summary of FLEX EA
FLEX EA has many configuration options.
In addition to customizing your own trades, you can download and use configuration files for successful forward tests from the members forum, which you can access after purchase.
It is also possible to delete the martingale setting and set it with a single position like a normal trend following or contrarian EA. However, if you do that, the logic is too simple, so you need to recognize it as a Martingale EA.
The basic strategy is the martingale method, so we will operate while allowing a certain amount of fluctuation loss, such as 30% of the balance.
(You can specify the maximum balance drawdown with a parameter. If you are risk-averse and set it to less than 10%, a stop-out will occur frequently. It is presumed that it is better to set it to 30% or more.)
It doesn’t matter whether you have small frequent drawdowns or relatively large drawdowns all at once. What matters is winning in the long run.
Once again, the martingale method must be operated with the risk of relatively large drawdowns occurring at once.
Recommended Broker for FLEX EA
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.
Parameter Settings
■General settings
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 Buy 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 |
UseStochastic | Use Stochastic |
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 1.Stop trading before and after all news events 2.Stop trading before and after a moderately important news event 3.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. |