Header Ads

  • Ticker News

    Trade like a pro using Bollinger Bands strategy


    The Bollinger Bands strategy is a popular technical analysis approach in forex trading that aims to identify potential price reversal points and gauge market volatility. Developed by John Bollinger, this strategy uses a set of dynamic bands plotted around the price chart to provide insights into market conditions. 

    Here's a brief overview of the Bollinger Bands strategy:


    • Middle Band (SMA): The middle band is typically a Simple Moving Average (SMA) of the closing prices over a specific period.
    • Upper and Lower Bands (Volatility Bands): These bands are placed above and below the middle band, representing a certain number of standard deviations away from the middle band. They expand and contract based on market volatility.


    • Volatility Assessment: Bollinger Bands expand during periods of high volatility and contract during low volatility. This helps traders gauge the current market conditions.
    • Price Reversion: When prices move close to the upper band, it might indicate that the market is overbought, and a reversal could be imminent. Conversely, when prices approach the lower band, the market might be oversold, potentially signaling a price rebound.
    • Bollinger Squeeze: A period of extremely low volatility can lead to a "squeeze," where the bands come very close together. This often precedes a significant price movement, indicating a potential breakout.
    • Trend Confirmation: Bollinger Bands can also be used to confirm trends. In an uptrend, prices tend to stay closer to the upper band, while in a downtrend, prices gravitate toward the lower band.


    • Bollinger Band Width: The distance between the upper and lower bands indicates market volatility. A narrower width suggests lower volatility, while a wider width implies higher volatility.
    • Reversal Signals: Traders look for price movements that touch or penetrate the outer bands, considering them potential reversal points. Confirmation from other indicators or candlestick patterns is often sought.
    • Breakout Trading: When the bands contract significantly and a price breakout occurs, traders anticipate a strong trend continuation.


    • Bollinger Bands are versatile tools suitable for various market conditions.
    • They help traders identify potential turning points and market reversals.
    • Confirmation from other technical indicators or chart patterns can enhance trading decisions.
    • As with any trading strategy, the Bollinger Bands strategy requires practice and thorough understanding. Traders should backtest the strategy, consider risk management, and adapt it to their trading style and risk tolerance.

    Let me explain the code for the Bollinger Bands strategy.

    The code starts with the strategy() function, which sets the name of the strategy and enables overlay mode to display the indicator on the price chart.

    The source variable is set to the closing price of the current bar.

    The length and mult variables are used to define the parameters for the Bollinger Bands. length determines the number of bars to use for the moving average calculation, and mult adjusts the distance between the bands based on the standard deviation.

    The basis variable calculates the moving average using the ta.sma() function.

    The dev variable calculates the standard deviation multiplied by the mult value using the ta.stdev() function.

    The upper and lower Bollinger Bands are calculated by adding and subtracting the deviation from the basis.

    The buyEntry variable is set to true when the source crosses above the lower band.

    The sellEntry variable is set to true when the source crosses below the upper band.

    The strategy.entry() function is used to enter long positions when the buyEntry condition is true, with a stop price at the lower band. The strategy.cancel() function is used to cancel any previous entry orders with the same id.

    Similarly, the strategy.entry() function is used to enter short positions when the sellEntry condition is true, with a stop price at the upper band. The strategy.cancel() function is used to cancel any previous entry orders with the same id.

    The commented-out plot() function can be used to visualize the equity curve of the strategy.

    Copypaste code to your Tradingview Strategy Tester

    strategy("Bollinger Bands Strategy", overlay=true)
    source = close
    length = input.int(20, minval=1)
    mult = input.float(2.0, minval=0.001, maxval=50)
    basis = ta.sma(source, length)
    dev = mult * ta.stdev(source, length)
    upper = basis + dev
    lower = basis - dev
    buyEntry = ta.crossover(source, lower)
    sellEntry = ta.crossunder(source, upper)
    if (ta.crossover(source, lower))
        strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", oca_type=strategy.oca.cancel, comment="BBandLE")
    if (ta.crossunder(source, upper))
        strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", oca_type=strategy.oca.cancel, comment="BBandSE")
    //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

    That's a brief explanation of the code. Let me know if you have any further questions!

    In this script, the Bollinger Bands are calculated using the iBands function. The script checks for buy signals when the price crosses below the lower Bollinger Band and for sell signals when the price crosses above the upper Bollinger Band. Take profit and stop loss levels are set based on the user-defined pip values.

    Remember that this is a basic example to illustrate the concept. In a real trading environment, you might want to add additional features like position sizing, risk management, and error handling. Always test any trading strategy thoroughly in a demo environment before deploying it on a live account.

    Copy this code to your MT4 Editor

    //|                            BollingerBandsStrategy              |
    //|                       Copyright 2023, YourNameHere              |
    //|                         http://www.yourwebsite.com               |
    //| This script implements a Bollinger Bands strategy with          |
    //| take profit and stop loss levels.                               |
    extern int Period = 20;             // Period for calculating Bollinger Bands
    extern double Deviation = 2.0;      // Standard deviation for Bollinger Bands
    extern int TakeProfitPips = 20;     // Take profit in pips
    extern int StopLossPips = 10;       // Stop loss in pips
    void OnStart()
       double upperBand, lowerBand;
       ArraySetAsSeries(upperBand, true);
       ArraySetAsSeries(lowerBand, true);
       // Calculate Bollinger Bands
       if (!iBands(Symbol(), 0, Period, Deviation, 0, PRICE_CLOSE, upperBand, lowerBand))
          Print("Error calculating Bollinger Bands!");
       double entryPrice = 0;
       double takeProfitPrice = 0;
       double stopLossPrice = 0;
       // Check for a buy signal (price crosses below lower Bollinger Band)
       if (Close[1] > lowerBand[1] && Close[0] < lowerBand[0])
          entryPrice = Ask;
          takeProfitPrice = entryPrice + TakeProfitPips * Point;
          stopLossPrice = entryPrice - StopLossPips * Point;
          int ticket = OrderSend(Symbol(), OP_BUY, 1, entryPrice, 2, stopLossPrice, takeProfitPrice, "Bollinger Bands Buy", 0, clrNONE);
          if (ticket > 0)
             Print("Buy order opened at price:", entryPrice);
       // Check for a sell signal (price crosses above upper Bollinger Band)
       if (Close[1] < upperBand[1] && Close[0] > upperBand[0])
          entryPrice = Bid;
          takeProfitPrice = entryPrice - TakeProfitPips * Point;
          stopLossPrice = entryPrice + StopLossPips * Point;
          int ticket = OrderSend(Symbol(), OP_SELL, 1, entryPrice, 2, stopLossPrice, takeProfitPrice, "Bollinger Bands Sell", 0, clrNONE);
          if (ticket > 0)
             Print("Sell order opened at price:", entryPrice);

    No comments

    Post Bottom Ad

    Powered by Blogger.