Double Top/Bottom

Trendoscope Wizard Updated   
Here is an attempt to identify double top/bottom based on pivot high/lows.

Logic is simple.

Double Bottom:
  • Last two pivot High Lows make W shape
  • Last Pivot Low is higher than previous Last Pivot Low.
  • Last Pivot High is lower than previous last Pivot High.
  • Price has not gone below Last Pivot Low
  • Price breaks out of last Pivot High to complete W shape

Double Top:
  • Last two pivot High Lows make M shape
  • Last Pivot Low is higher than previous Last Pivot Low.
  • Last Pivot High is lower than previous last Pivot High.
  • Price has not gone above Last Pivot High
  • Price breaks out of last Pivot Low to complete M shape


  • Parameters PvtLenL, PvtLenR and waitforclose determines pivot points.
  • FilterPivots clears repetitive pivots formed in same direction before calculating the possible double top/bottom.

    For example:

  • CheckForAbsolutePeaks and AbsolutePeakLoopback works together. When CheckForAbsolutePeaks is enabled, script only generates double bottom or top signal if previous last pivot is absolute high or low for AbsolutePeakLoopback periods.

  • ConsiderMovingAverage does two things. First, it makes sure that fast moving average and slow moving averages are aligned with the direction we are going to forecast. Second, it makes sure that the crossover happend recently and with last BarCrossoverLimit bars. For example, to call it double bottom, Fast MA should be higher than Slow MA and crossover of FastMA above SlowMA should have happened in last 10 bars (BarCrossoverLimit)

  • PivotDisplayMode can be Actual, Filtered or None. Actual will display all pivot high low generated. Filtered will only display last 5 pivot high and pivot lows which are filtered. That means, it will remove the repetitive pivots formed without making pivots on the other side.

    Welcome and suggestions and feedbacks.
Release Notes:
  • Simplied array related code
  • Added horizontal dashed line for double top/bottom confirmation candle
  • Added alert condition for double top/bottom
Release Notes:
Add filterPivots logic back
Release Notes:
  • Improved filtering pivots
  • Improved absolute peak detection
Release Notes:
  • Using HMA 20/100 as default for moving average check
  • Removed barCrossLimit. Instead check if moving average crossover happened after last high/last low peaks.
  • Added condition to check distance between High and Low pivots of double top/bottom before considering them. For example,
    Without pivot distance check, chart would look like this:
    With pivot distance check,

Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in a publication is governed by House Rules. You can favorite it to use it on a chart.


The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this script on a chart?

Related Ideas