This trading system uses a smart back-and-forth hedging mechanism, that is continuously opening new positions according to the recent market movements. Each time a new position is opened, system tries to estimate a new Lot size, which is required to breakeven or to profit at the original TakeProfit, but ALSO at the original StopLoss level. This results in a group of open positions that eventually will always turn into a profit, when the market will go in either direction up or down. All trades are automatically closed when the overall profit reaches the pre-defined ForceTakeProfit level or pre-defined TakeProfit or StopLoss level. PipProfitOffset setting ensures that all new recovery trades are targeting slightly lower TakeProfit levels (w.r.t. the first open position). This results in slightly larger Lot sizes, than Lot sizes required to reach a breakeven condition. This additional offset allows to compensate for small losses, that are caused by spreads, slippages, swaps and commissions. See a trade recovery example below:
The system is profitable as long there is sufficient level of FreeMargin to be able to open new trade positions. To illustrate the possibilities of this recovery system the EA is programmed to trade using semi-random market entries. Each time the previous trade is closed, EA opens immediately a new trade in the direction that is dictated by the previous candle. Below the result of last 7 years of random trading (EURUSD, TF=H4, Leverage:1:500, 99% tick data modelling quality).
This system not only survived last 7 years of RANDOM trading, but also made some profit! Of course it is not the intention to trade randomly, the random test presented above is just shown as proof, that this trading technique (when setup properly), is able to recover in any market condition. To find out more about this unique trading system read the manual and get free version of the MT4 EA:
You can download the EA here:
USE IT AT YOUR OWN RISK!!!
CoensioRecoveryEA Manual
1. Introduction
Hello fellow traders! This short manual covers the basic behavior of my hedge trading tool and its parameters. This EA is based on a smart back-and-forth hedging mechanism, which has been known for years within the trading community, however until now there was no working (stable) MT4 implementation available. This strategy can be extremely profitable and give you a huge advantage, because of its ability to turn every losing position into a winning one. Of course, this type of trading is not for everyone, there is some risk involved, but from my own experience it is very difficult to lose money with this system. But for sure, it can happen to anyone. FOREX trading is always a risky business! My personal recommendations are:
- Make sure you fully understand the system and all risk involved.
- Make sure you understand all EA parameters and EA's behavior.
- Be patient and let EA finish its recovery cycle even if it will take several days.
- Avoid ranging markets! During ranging markets quit as quickly as you can, even if it means to take some small “acceptable” losses.
- Avoid volatile market events (News with high impact etc..)
- Practice on your demo account first!
- Use a broker with low spread and high liquidity.
I wish you all the best!
Chris
2. EA Installation
- To properly install the provided EA just copy the ex4 file to your MT4 experts directory, e.g.: C:\Program Files (x86)\MetaTrader - Alpari UK\MQL4\Experts\
- Do not forget to restart your MT4 terminal
- Check the MT4 terminal settings:

- Load the EA on chart and insert your personal license key in EA parameter window, which you have acquired during EA download
- Check the EA setting, under “Common” tab:

3. EA Operation
In this section the EA's operation is explained. To help you to get a general idea on what this EA does and how to trade with it, one of our members (Marlon) prepared a great explanatory review video. See below:
This trading system uses a smart back-and-forth hedging mechanism, that is continuously opening new positions according to the recent market movements. Each time a new position is opened, system tries to estimate a new Lot size, which is required to breakeven or to profit at the original TakeProfit, but ALSO at the original StopLoss level. This results in a group of open positions that eventually will always turn into a profit, when the market will go in either direction up or down. All trades are automatically closed when the overall profit reaches the pre-defined ForceTakeProfit level or pre-defined TakeProfit or StopLoss level. PipProfitOffset setting ensures that all new recovery trades are targeting slightly lower TakeProfit levels (w.r.t. the first open position). This results in slightly larger Lot sizes, than Lot sizes required to reach a breakeven condition. This additional offset allows to compensate for small losses, that are caused by spreads, slippages, swaps and commissions. The system is profitable as long there is sufficient level of FreeMargin to be able to open new trade positions. The overview below shows a theoretical recovery flow with corresponding Lot sizes and risk levels.
Ideal recovery case, no rounding errors, spreads, slippages, etc..., PipProfitOffset=0
Recovery example case 1
Note: In both cases all trades would result in a breakeven condition.
Ideal recovery case, no rounding errors, spreads, slippages, etc..., PipProfitOffset=10
Recovery example case 2
In this case each of recovery trades is targeting the original TakeProfit level - 10pips, what results in slightly larger Lot sizes, but also in faster recovery with a larger profit! In most cases this offset setting is required to cover for round-off errors, spreads and slippages or swap/commissions losses.
Note: With ForceTakeProfit parameter set to e.g.: 5, all trades would be closed much sooner, limiting the total risk and still resulting in some small profit!
4. Setting up pending orders and direct market orders
Pending orders:
New trades can be entered by drawing a trend line with "/" MT4 tool and renaming it to "gl" for a long trade and "gs" for a short trade. New trade will be opened when the price crosses trend line in desired direction. That's it!. Watch the video below to see a short entry ('gs') example.
Direct orders:
When the 'EnableTradeButtons' parameter is set, opening of direct market orders is as easy as pushing one of the 'Go Long' or 'Go Short' buttons, which are visible in the right upper corner on the selected chart.
News pending orders:
When the 'EnableNewsTrading' parameter is set, the EA will be able to set time scheduled pending orders. See the parameters description table below.
5. EA parameters
-
#Parameter
Description of Trading settings
LicKey
Your personal license key. When set to “DEMO” EA will work only on a demo account.
MagicNr
Magic Number used to place new orders.
TakeProfit
TakeProfit level (in pips), it sets also the StopLoss level which is symmetrically mirrored to the entry point.
ForceTakeProfit
Take profit level (also during recovery period) in your account currency, all trades will be closed when equity reaches
ForceTakeProfit level above the current balance level.
Lots
Lot size for the initial opening trade
BreakEvenPips
Break even level (in pips), when trade will reach this profit level the stop loss will be moved to entry point and trade will run until TakeProfit or StopLoss level is hit. Set to 0 to disable.
TrailingStep
Trailing stop loss step (in pips) after breakeven level is reached. Set to 0 to disable.
Slippage
Slippage (in pips), it should stay high to allow closing orders without re-quotes
EnableLimitOrders
When set to 'true', this parameter will enable emulation of pending "limit orders". So, e.g.: pending "gs" trendline can be placed above the current market price.
EnableTradeButtons
When set to 'true', this parameter will enable manual trade buttons that can be used to manually open and close orders.
#Parameter
Description of Recovery Settings
EnableRecovery
This parameter enables advanced automatic hedging recovery mechanism. Only for experienced users. Use with caution!
RecoveryLine
Distance from the entry point (in pips) at which EA initiates recovery mechanism. If set to 0 recovery mechanism is disabled!
PipProfitOffset
This parameter needs to be tuned according to local trading environment: spread, slippage etc. It makes sure every new trade is opened with slightly lower (virtual) TakeProfit target than real TakeProfit level that is set by the first trade. Doing so the new lot size will always be slightly larger than the required. Lot size to breakeven at TakeProfit or StopLoss target.
TrailingTarget
Enable/disable the recovery target shift mechanism. When enabled the recovery level is shifted closer to the market, each time a new recovery trade is opened.
Shift is equal to (number of open trades) * (PipProfitOffset). This increases the chances for hitting the recovery level and so minimizes the number of recovery trades needed for reaching the breakeven or ForceTakeProfit condition.
MaxTrades
Maximum allowed number of trades during recovery periods.
OneOrderPerBar
Parameter that can be used to disable/allow opening of multiple orders within same bar
#Parameter
News Trading Options
EnableNewsTrading
This parameter enables news trading timer. Make sure there are no manually pre-setup "gl" or "gs" entry trend lines on the chart when enabling this parameter.
EntryThreshold
Distance from the actual market price (before a news event) to the pending entry trend lines.
EntryExpirationBars
This parameter determines the pending entry trendline length in bars.
Day
This parameter determines the day number of the month in which a news event is expected.
Hour
This parameter determines the hour number of the day in which a news event is expected.
Minutes
This parameter determines the number of minutes of the hour in which a news event is expected. At this moment in time pending orders trendlines are activated.
AllowBuyOrders
This parameter activates/dissables pending orders in a "long" direction.
AllowSellOrders
This parameter activates/dissables pending orders in a "short" direction.
#Parameter
Description of Debugging Options
BrokerTest
Testing option flag, if set to true, additional broker information is displayed. See FAQ section below.
Debug
Debugging option flag, if set to true, additional trade information is printed, after tester will end. The EA writes a summary file into:
../tester/files/ directory.
6. How to trade this system?
It is very important to understand that this system uses account's FreeMargin for opening new trades during recovery periods. This means that your 'account size' and 'account leverage' are two main factors that will determine the maximum amount of open positions during recovery cycle. For example if you are trading EUR/USD chart (1.28576 price level) with a $10000 account where 1 Standard Lot = $100000 and with a 1:100 leverage, then each position with 1 Lot will require a $1285.76 of your account Margin. Thus the FreeMargin level (on a "USD" account) will drop to: $10000-$1285.76=$8714.24. To get better understanding of this relationship, and the influence of the EA parameters on the resulting FreeMargin drop and also on resulting DrawDown.
So following this, in order to protect our FreeMargin level we need to:
- Trade small lot sizes (0.1 is recommended)
- Trade with a broker that allows high leverages (1:500 is recommended)
- Have a sufficient account in order to be able to open at least 10 recovery positions (min. $3000 is recommended)
- Open only one active EA trade per account at a time
7. FAQ and troubleshooting
7a. The EA says "Copyright protection enabled! Visit: www.hedgingea.com"
This error will occur when the original filename of the EA has been changed. The EA has it's own copyright protection mechanism that forbids any internal or external content changes. To solve this problem rename the EA to its original name: "CoensioRecoveryEaV02.ex4" and try again.
7b. I hit "Go Long" button and EA is not opening any trades.
This can be caused by many factors but the most common mistake is trying to open a second trade within the same bar, while OneOrderPerBar setting is set to 'true'. This parameter blocks the possibility for opening more than 1 trade within the same bar. This mechanism can be used to prevent multiple unneeded recovery cycles within 1 bar, and so to protect FreeMargin level.
7c. EA is making calculation error and trades with 0.01 LotSize. This error is a common error which is caused by:
- Unfortunate choice of EA parameters that results in impossible negative LotSize (this is dictated by the mathematics and thus not an internal EA bug).
- Lost server connection, EA wasn't able to open new recovery position
- Bad broker that in not able to fill required recovery order due to reduced liquidity, during a volatile market event. See example below:

So what happened? At the major news event the broker did not filled the recovery order on time (this happened due to reduced liquidity which is never a good sign), the price went through recovery level without opening new recovery trade. The order was filled in just in 3.6 pips from the SL level, at this moment EA has only 3.6pips room for recovery and this results in an overflow and the calculated lotsize becomes negative! Since a negative lot size is smaller that the minimum allowed lot size, the EA opens new lot size with 0.01 Lot. If this happens the best recommendation is to find another broker with more liquidity.
7d. How to recognize a good broker? Forex market experiences increased volatility during news time. Some of the fx brokers, shows some unstable strange behavior during news release event. In most cases their big problem lies in reduced liquidity. At major forex news event strange things can happen: brokers can freeze your platform, delay your orders, increase spread dramatically or even ignore your predefined StopLoss levels! In order to keep our strategy profitable we should avoid those "bad" brokers at all costs. So what are the characteristics of an "ideal" broker? And most importantly how to recognize them?
- fast trading platform, fast feeds and chart updates
- fast order execution, minimum re-quotes
- instant guaranteed execution of pending orders
- instant guaranteed execution of stops
- reasonably low spreads and high leverage (1:500 or more)
- no significant spreads widening during news spikes
- allowed hedging and automatic trading
No Dealing Desk (NDD) brokers are by far the best choice, since Dealing Desk brokers may actively trade against your positions. They can profit when you lose. Alternatively, they may lose when you profit. Because of this, Dealing Desk brokers are incentivized to manipulate your orders. They may for example place restrictions on stops and limits or re-quote your orders. In contradiction under a NDD execution model your orders automatically fill from the NDD price feed, which is the best available bid and best ask prices from all of our liquidity providers. Additionally, your orders are anonymous to the liquidity providers. They cannot see your stops, limits, or entry orders, they only see market orders coming from the broker.
7e. How to test your broker?
In order to hep you to test your broker we have introduced a "BrokerTest" module into the EA. This is an additional parameter that will tell you 3 important things about your broker and your MT4 interface:
- Spread: this field will display the current and the maximum observed spread on the selected chart. Used display format is: "Spread: current spread (maximum spread) pips". If the current spread is regularly higher than 4pips and the maximum observed spread is greater than 10pips, your broker is simply trying to rip you off or it lacks liquidity. Required action: change your broker! Fixed spread brokers are recommended.
- Execution time: this field displays the execution time of opening, modifying and closing orders. Display format is: "ExecTime: last execution time (maximum execution time) ms". If the last execution time or the maximum execution time is higher than 1000ms (1s), your MT4 to broker interface is very slow, your broker is very slow. Required action: Try to speed up your internet connection (minimize broker server ping time), check if your broker has a possibility to trade via a VPS.
- Entry slippage: this field is will display the last and the maximum entry slippage value observed during opening of recovery orders. This is the distance between the resulting OpenPrice and a recovery line or entry line. Display format is: "EntrySlip: last entry slippage (maximum observed entry slippage) pips". If the observed entry slip is regularly higher than 10pips then your broker dealing desk is slow or it lacks liquidity. Required action: change your broker! NDD (No dealing desk) brokers are recommended.
So basically, a good broker can be characterized by very low maximum values of all three parameters, as mentioned above. Of course there are other important things like swap rates and commissions, so the overall trading results are dependent on many different factors. The best way is to test your broker in your own configuration.
7f. How to contact support?
THERE IS NO SUPPORT FOR THIS RISKY PROJECT!
8. Results
How can we implement this idea in StrategyQuant ?
This is an excellent idea !!!!
No it's not an excellent idea, only a smart "trick".. it can still kill your account when markets will be stagnating, but indeed it is fun to watch your account grow "without any loss" during volatile markets.