Martingale Bone Crusher Expert Advisor For MT4
WE IMPROVED THIS EXPERT ADVISOR FOR YOU!!!
PLEASE NOTE: This expert advisor was publicly available for free usage on other websites and is not programmed by us. We explain the functionality and possible improvements of the EA. Furthermore, we are convinced that fully automatic Expert Advisors will fail in the long run. On the other hand, our semi-automatic approach with detecting the best setups and then activating our Expert Advisors (e.g. V-Power EA, EdgeZone EA) produced many successful traders and some of them even got prop traders at prop trading firms. Therefore, we added a similar semi-automatic trading feature (to allow only buy or only sell trades) to the free Expert Advisors. You can download the modified version here and enjoy!
Table Of Contents:
- Martingale Bone Crusher Expert Advisor For MT4
- The Martingale Bone Crusher Expert Advisor For MT4 – Entry Criteria
- The Martingale Bone Crusher Expert Advisor For MT4 – Exit Criteria
- The Martingale Bone Crusher Expert Advisor For MT4 – Room for Improvement
The Martingale Bone Crusher Expert Advisor For MT4 uses the martingale trade management approach in an attempt to capture profits from the financial markets. Due to the heavy reliance on this money management approach, the trade entry strategy was not given much thought. The expert advisor only considers the result of the previous trade to define the trade direction of the next trade and determine the position size.
While the expert advisor accepts losses when price hits the stop loss of any trade, scoring a winning trade with twice the lot size of the previous trade is not enough to recover the losses and make money. The testing result showed a bleak future for the trading system with the default settings. This behooves traders who are fond of using martingale systems to exercise extreme caution when using this expert advisor.
The Martingale Bone Crusher Expert Advisor For MT4 – Entry Criteria

The Martingale Bone Crusher Expert Advisor looks for trade entry only when a new candle has formed. If there are more than 100 candles on the chart and if automated trading is allowed, the expert advisor will proceed to trade hunting right away.
The user is presented with the following parameters in Inputs that he can adjust at will to control how the expert advisor works:
- Strategy = Martingale2 – The user can choose between two strategies. The default strategy is Martingale 2, but the user can set the other strategy (Martingale1).
- USEMOVETOBREAKEVEN = true – By default, winning trades will be secured by shifting their stop losses to breakeven when they have gained a certain number of pips.
- WHENTOMOVETOBE = 10 – When a trade has earned 10 pips, its stop loss will be shifted to breakeven.
- Multiply = 2.0 – With this value, the trade volume of the subsequent trade is equal to two times the trade volume of the previous trade. This makes the trading system a full martingale strategy.
- Lotsize = 0.01 – The first trade in a set of trades will have a lot size of 0.01.
- Double_Lotsize = false – If this parameter is set to true, the lot size is doubled on the next trade.
- Lot_Size_Increment = 0.01 – If the user does not want to double the lot size on the next trade, the parameter above should be false. Then the next lot size is incremented by this value (0.01).
- TrailingStop = 30 – The stop loss of winning trades will be trailed when the trades gain 30 pips or more.
- Stop_Loss = 5 – The distance between entry price and stop loss price is five pips.
- Take_Profit = 5 – The distance between entry price and take profit price is five pips.
- MA_PERIOD = 1 – A fast-moving average with a period of one is used in this trading system.
- MA_PERIOD1 = 50 – A slow-moving average with a period of 50 is utilized in this trading system.
- MagicNumber = 562148 – This unique number is associated to each trade opened by this expert advisor to make way for trade manipulation.
- Start = 0 – This value means that trading starts at the open of the market on each trading day.
- End = 24 – This value means that trading ends at the close of the market on each trading day. However, this is a little incorrect. Since the hour counting starts at zero, the last hour is only 23.
The trading system uses a pair of moving averages to generate a signal for entry. Such an entry is generated if a crossover occurs on the current timeframe. The indicator, its settings and manner of signal generation are explained further below:
- Moving averages (period 1 and 50, simple average, price close) – The values of the moving averages used in computation are derived from the previous bar of the current period and symbol. If 1 SMA is less than 50 SMA, the trade signal is long. If 1 SMA is above the 50 SMA, the trade signal is short. In most other trading systems, the trade signals are normally reversed.
When the expert advisor is first run on the chart, it will use the signal provided by the moving averages to define the direction of the first trade. Thereafter, the robot will use the result of the last trade to determine the direction of the next trade and its position size. For the first trade, its lot size will be the amount declared in Inputs (0.01). This trade comes with a stop loss of five pips and a take profit of five pips, striking a risk-reward ratio of one.
If the previous trade resulted in a win, the lot size for the next trade is reset to the initial lot size of 0.01. In case the previous trade was a loss, the next trade will have a lot size two times the lot size of the previous trade. There will only be one trade open at any point in time. Each trade will have the same nominal stop loss and take profit values set in Inputs. However, the actual take profit is reduced by the spread during entry, and the actual stop loss is increased by the amount of spread during execution. The balance between reward and risk mentioned in the foregoing paragraph has been disturbed to the detriment of the trader.
The Martingale Bone Crusher Expert Advisor For MT4 – Exit Criteria
While the Martingale Bone Crusher Expert Advisor allows the use of breakeven and trailing functions, these functions are not used at all because their trigger points are set beyond the default stop loss and take profit. As seen in testing, no trades were modified even once and all trades were closed either by the stop loss or take profit.
The Martingale Bone Crusher Expert Advisor For MT4 – Room for Improvement
The Martingale Bone Crusher Expert Advisor, as fancy as it might sound, fails as an algorithmic trading system on various respects. Programmatically, it is found wanting. In the strategy tester, it failed miserably. The equity curve was continuously falling from beginning to end in almost a straight line. That is why using it in live trading at present with the default settings is extremely dangerous.
The external variables in the global area could use some cleaning. At least four variables are not used in the algorithm. These include the Start, End, Maximum_loss and WaitTime. In one part of the code, the lot size is normalized using the Digits constant, which is downright erroneous. Normalizing the lot size in this manner would surely lead to errors when opening trades. The lot size should be normalized by the number of decimals for the minimum lot size allowed for the trading account.
Another area for improvement is the default values for stop loss and take profit. The default stop loss of five pips and take profit of five pips rendered the breakeven and trail functions useless. This is because the breakeven gets triggered when a trade has won 10 pips and the trailing stop is activated when a trade has gained 30 pips. The thresholds for these two functions cannot be possibly reached.
The main cause for the bad performance in testing is the balance between risk and reward. Because the expert advisor adjusts the stop loss and take profit during trade execution, the balance has been severely affected. As a result, a trade loses more pips when it loses and gains fewer pips when it wins. The martingale lot sizing did not offer any help at all. Therefore, the default values for stop loss and take profit should be changed in the code. If not, the burden is left on the user to find the best values.