BF Scalper EA

BF Scalper EA

19 April 2018, 09:59
Lachezar Krastev
1 684

BF Scalper EA Product Page:

IMPORTANT: To all BF Scalper EA users - we strongly recommend using StealthMode=true.

The logic behind BF Scalper EA is very simple but effective - the EA uses breakouts of the Bollinger Bands for entry and exit signals. By my opinion the Bollinger Bands is the best technical indicator ever created - Thank you Mr. John Bollinger! During the years I've tried many other indicators and strategies but the Bollinger Bands has proven itself as the best indicator for scalping the market volatility.

Please, bear in mind that the performance of this kind of trading is highly limited by the brokers conditions - do not even think to try it on random brokers - only on well-known ECN brokers with tight spreads.

Reasonable stop loss levels varies between 20 and 60 pips. You can use small fixed TP between 4-8 pips, or leave the exit logic to take care of the position.

The exit logic is also based on the BB indicator and it will close the trade even on a loss when the price is near or breaks the opposite BB line. This is commanded by the "BandBreakExit" parameter which works best from minus one to plus one-two.

The EA has high spread protection - this is crucial, because if you use limit orders as example you can't control this and you will take some trades with 10 or even 20 pips spread - one such trade will erase the average profit from 10 good trade as the best average expectancy of this type of trading is 2-3 pips in the best case. This is why I am not using limit orders.

Here are some optimization advises:

  • Do not use genetic algorithm
  • Optimize 2 parameters at once at most - I optimize only one at a time and look for the most logical value
  • Optimize for at least 6 months and at least 200 trades - this is the absolute minimum to avoid curve fitting and get some reasonable parameters which will have at least some chance to be profitable in real conditions.
  • Perform at most 5 optimization cycles for all parameters.
  • Use reasonable large optimization step - as example if you optimize stop loss, reasonable step would be 5 pips not 1 pips - about 5% of the reasonable optimization range of the parameter.
  • I am using M1 open price test for all my EAs - it is good enough.
  • I am not using tick tests as they are too unreliable.

Here are the BF Scalper EA parameters

  • Magic - magic number - it is extremely important to keep this different for all robots 
  • EA_Comment - The text which will be set as trade comment.
  • MaxSpread - maximum allowed spread
  • Slippage - maximum allowed slippage
  • TicksTrade - if it is "false" the logic will be executed at the beginning of M1 bar, otherwise it will calculate and trade on a new price tick. The TicksTrade is potentially more profitable, but I prefer to use M1 open for testing and optimizations as this is the only reliable method for EA testing and tuning.
  • StealthMode true/false - a mode which conceals stoploss and takeprofit levels in program logic, making them invisible to brokers. If you use this mode, the stoploss and takeprofit orders are not located in the trading server. In this case, if your trading terminal is not connected, or the robot is not working, your orders would not be protected. However, we are strongly encouraging using the StealthMode, because in some cases the visible StopLoss levels could be attacked tendentiously by algorithms that some unethical brokers could use.
  • EmergencyStopDist - this parameter ensures a second level of protection, when StealthMode is used. At values greater than zero it activates a second level of true (Emergency) StopLoss on a greater distance then the virtual hidden StopLoss is located. In such case the value of the new emergency StopLoss will be the sum of the EmergencyStopDist value plus the value of the hidden StopLoss.
  • MinEquity - minimal equity need for trading
  • StopLoss - stop loss value in standard 4 digit pips
  • TakeProfit - take profit value in standard 4 digit pips 
  • MarketExitProfit -
  • BandPeriod - the period of the Bollinger Bands indicator
  • BandBreakEntry - breakout in 4 digit pips of the BB line to initiate an opposite trade (the value could be negative)
  • BandBreakExit - breakout in 4 digit pips of the opposite BB line to initiate closing of the existing trade (the value could be negative)
  • UseTrendFilter - change this to "true" if you want to trade only in the direction of the trend defined by the two MAs below. If you use the trend filter for Asian session scalping you will get higher profit factor, but less trades. Generally, you do not need trend filter for Asian session scalping, but if you want extra safety it will help.
  • MA_Fast_Period - period of the fast moving average
  • MA_Slow_Period - period of the slow moving average
  • MA_Trend_TF - timeframe of both MAs
  • TimeRestriction - by default this is "true" so the EA will trade only in the hours listed below. If you do not want to use the time filtration, change this parameter to "false".
  • CTHour1 - 6 - six possible slots for trading hours. Values 0 - 23 activate the slot. Enter a large value like 55 to deactivate the slot. Best results from our experience are achieved 21 and 22 GMT. You absolutely must adapt this hours to your brokers GMT shift. I am using Alpari data for all my tests, because they have the best long-term real history data in the data center. So for Alpari the trading hours are 23 and 0 as the GMT shift is +2 for Alpari.
  • FridayFilter true/false -
  • FridayEndHour -
  • WednesdaySwapFilter - true/false - The Wednesday swap filter cancels all trades in Wednesday evening in the direction of the negative swap, if the swap is worse than MaxNegSwapPips parameter.
  • MaxNegSwapPips - minus 0.5 pips seems reasonable threshold
  • RolloverTimeFilter true/false - switches on/off the rollover time filter
  • MinutesBefore - minute time interval before midnight in which all trading operations will be canceled
  • MinutesAfter - minute time interval after midnight in which all trading operations will be canceled
  • x_MaxSpreadFilter - switches on/off the rollover additional spread filter
  • x_MaxSpread - multiplies the initial MaxSpread, which will be allowed in general, before canceling all trading operations. As example if the MaxSpread is 6 and x_MaxSpread is 2, all trading operations will be canceled if the spread exceeds 6x2=12 pips.
  • RecoveryMode - this parameter activates the drawdown recovery. Works when AutoMM>0
  • FixedLots - fixed trading lots when AutoMM=0
  • AutoMM - value greater than zero activates proportional money management, as example AutoMM=5 means 0.05 lots at 1000 account.     
  • AutoMM_Max - maximum allowed value of the proportional money management when RecoveryMode is used.   
  • MMTrades - number of history trades on base of which the drawdown of the RecoveryMode function is calculated        
  • RecoveryFactor - drawdown positive compensation in percent of the drawdown
  • RecoveryMultiplier - trading volume multiplier in RecoveryMode
  • LossPausePips - pause after loss algorithm - loss in pips
  • LossPauseHours - pause after loss algorithm - pause in hours after loss greater than LossPausePips

The default settings are optimized for GBPUSD currency pairs. Set files for other supported pairs you can find attached to the post!

BF Scalper EA Backtest results

BF Scalper EA EURCHF Backtest

BF Scalper EA EURUSD Backtest

BF Scalper EA GBPCAD Backtest

BF Scalper EA GBPUSD Backtest

BF Scalper EA USDCAD Backtest

BF Scalper EA USDCHF Backtest

BF Scalper EA USDJPY Backtest

By using this EA, you acknowledge that you are familiar with all risks and that you are solely responsible for the outcomes of your decisions. I accept no liability whatsoever for any direct or consequential loss arising from the use of this product. It's to be noted carefully in this respect, that past results are not necessarily indicative of future performance.

Share it with friends: