Welcome to RoboForex blog! Today, we will review, analyze, and test an interesting scalping expert advisor called BF Scalper. The name itself reveals that its main trading function is scalping. This is a trading style characterized by a high frequency of trades, a short length of holding positions, and relatively small size of positions and Take Profits.

How does BF Scalper work?

The main problem of scalping is the difficulty of distinguishing between false and true signals. Curiously, to filter signals, many take to intricate and absolutely useless algorithms that do nothing but make the system more complicated. In fact, the answer is on the surface: you just need to look for and find price momentum only, ignoring empty market movements.

BF Scalper realizes the strategy with the help of several technical indicators. At the first stage, the robot defines the global or dominating trend based on the analysis of the Moving Averages. Then we wait for the price goes a set number of points behind one of the borders of the Bollinger Bands indicator. Finally, the signal is analyzed by the indicator assessing the momentum strength, and only then a trade is opened.

The logic of exiting the market is also based on Bollinger Bands. The position is closed when price nears the opposite Bollinger Band or breaks it out - even if such closing entails a loss.

BF Scalper peculiarities

According to the creator, the expert advisor works equally well on any timeframe; however, M15 was recommended as the best one.

As for timeframes, the robot suits for GBP/USD, EUR/USD, EUR/CHF, EUR/AUD, GBP/CAD, USD/CAD, USD/CHF, and USD/JPY; by default, it is set up for GBP/USD.

Parameters and settings

  • MaxSpread sets up the largest possible spread.
  • Slippage sets up the largest possible slippage.
  • TicksTrade sets up the algorithm mode. If it is set as False, the algorithm triggers at the beginning of an M1 candlestick; if it is set as True, it triggers at a new peak.
  • StealthMode true/false switches on and off virtual Stop Loss and Take Profit levels.
  • EmergencyStopDist is the second protection level for the use of StealthMode. If it is above zero, there appears an "emergency" Stop Loss level at a larger distance compared to the initial "hidden" SL. The emergency Stop Loss equals to the sum EmergencyStopDist and the hidden SL.
  • MinEquity is the minimal equity.
  • StopLoss
  • TakeProfit
  • MarketExitProfit is exiting by the market.
  • BandPeriod sets the calculation period for Bollinger Bands.
  • BandBreakEntry is the range that should be broken away on a Bollinger Band for an opposite trade to be opened (may be negative).
  • BandBreakExit is the range that should be broken away on an opposite Bollinger Band for a trade to be closed (may be negative).
  • UseTrendFilter: if set up as True, the expert advisor trades only the trend defined by the MAs.
  • MA_Fast_Period is the period of the fast MA.
  • MA_Slow_Period is the period of the slow MA.
  • MA_Trend_TF is the timeframe of both MAs.
  • TimeRestriction: if True, the expert advisor trades only during the hours set up below. If False, the function is off.
  • CTHour1-6 - six variants of the trading hours available. May be set as any number from 0 to 23, a larger number, such as 55, to switch odd this or that value. I have reached the best results with the values of 21 and 22 (GMT). The time must be adapted. By default, the values are GMT +2 (winter time).
  • WednesdaySwapFilter true/false: on Wednesday night, this swap filter cancels all trades with a negative swap, if the latter is worse than MaxNegSwapPips.
  • MaxNegSwapPips sets the maximal negative swap in pips; the most reasonable value here will be -0.5.
  • RolloverTimeFilter true/false switches the rollover time filter on and off.
  • MinutesBefore is the period before midnight during which all trades are canceled.
  • MinutesAfter is the period after midnight during which all trades are canceled.
  • x_MaxSpreadFilter switches on and off an additional rollover filter.
  • x_MaxSpread multiplies the initial maximal spread allowed before all trades are canceled. For example, if the MaxSpread value is 6, and the x_MaxSpread value is 2, all trades are canceled when the spread is more than 6x2=12 pips.
  • RecoveryMode activates the recovery of a drawdown. It works when AutoMM>0.
  • FixedLots works when AutoMM = 0.
  • AutoMM: if above zero, it activates proportional money management; for example, if AutoMM is 5, it means 0.05 lot at an account of 1000.
  • AutoMM_Max is the maximal valueof the proportional money management is the RecoveryMode is used.
  • MMTrades is the number of trades based on which the maximal drawdown for the RecoveryMode is calculated.
  • RecoveryFactor is the positive compensation of the drawdown in the percents of the drawdown.
  • RecoveryMultiplier is the multiplier of the trade value in the RecoveryMode.
  • LossPausePips is the algorithm of a pause after a loss in pips.
  • LossPauseHours is the algorithm of a pause in hours after a loss larger than the loss in pips.

Note that some time ago the developer started promoting a paid version of the expert advisor so that some parameters may not be changed since then, and trading is, by default, carried out with a lot of 0.01.

Testing BF Scalper

The author recommends testing the robot on M5 at the opening prices. I used their advice and tested the expert advisor on GBP/USD with the default settings:

  • MaxSpread - 3
  • Slippage - 2
  • TicksTrade - true
  • StopLoss - 55
  • TakeProfit - 15
  • MarketExitProfit - 50
  • BandPeriod - 8
  • BandBreakEntry - 0
  • BandBreakExit - -1
  • UseTrendFilter - false
  • MA_Fast_Period - 15
  • MA_Slow_Period - 30
  • MA_Trend_TF - 15
  • TimeRestriction - true (23:55)

The period of testing was January 31st, 2018 till January 31st, 2020. The result was as follows:

BF Scalper testing - GBP/USD - M5
BF Scalper testing - GBP/USD - M5

It cannot be called astonishing but remember that the lot was 0.01 only. Anyway, we must agree that the ascending curve is quite stable.

Optimizing the settings

Optimization of the settings led to minimal changes in the work of the robot.

Note that as long as trading was carried out with 0.01 lot, the active capital was 100 USD. The test with GPB/USD and optimized settings gave the following results:

BF Scalper testing - GBP/USD - Optimizing settings
BF Scalper testing - GBP/USD - Optimizing settings

The result on H1 was similar.

Also, I tested it on EUR/USD M15 and H1. The result was more modest due to lower volatility in the dynamics of the instrument.

BF Scalper testing - EUR/USD - M15
BF Scalper testing - EUR/USD - M15
BF Scalper testing - EUR/USD - H1
BF Scalper testing - EUR/USD - H1

Closing thoughts

First of all, note that I tested the free version of the expert advisor, so I could not test the system of automatic money management. I presume that with the progressive system of capital management the efficacy of work and profit may increase.

The key advantage of the expert advisor is its simplicity. However, I have questions about the analytical module that assesses the strength of future momentums. The creator did not reveal this detail, and this is their right, but the detail is intriguing.

All in all, the simplicity and stability of the expert advisor makes it very promising in real trading. The results of the test were not amazing but this is rather an advantage than vice versa as it lets us exclude another Holy Grail.

We wish successful trading to everyone!

Download BF Scalper

Material is prepared by

He used to be the head o the laboratory of technical and fundamental analysis of financial markets in the Research Institute of Applied System Analysis. Now works as the head of RoboForex analytical department and gives daily Fibonacci analyses for the company’s clients.