Double Top/Bottom

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.
Notes de version:
  • Simplied array related code
  • Added horizontal dashed line for double top/bottom confirmation candle
  • Added alert condition for double top/bottom
Notes de version: Add filterPivots logic back
Notes de version:
  • Improved filtering pivots
  • Improved absolute peak detection
Notes de version:
  • 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,
Script open-source

Dans le plus pur esprit de TradingView, l'auteur de ce texte l'a publié en open-source, afin que les traders puissent le comprendre et le vérifier. Bravo à l'auteur ! Vous pouvez l'utiliser gratuitement, mais la réutilisation de ce code dans une publication est régie par les règles internes. Vous pouvez le mettre en favori pour l'utiliser sur un graphique.

Vous voulez utiliser ce script sur un graphique ?
Please PM me if you need access to any invite only scripts.

Join tradingview: https://www.tradingview.com/gopro/?share_your_love=sudh

Idées en relation


Thank you! Q - Is there an alert function to let me know when double tops/bottoms are formed?
+2 Répondre
HeWhoMustNotBeNamed zeynebozkan0901
@zeynebozkan0901, I will add that in the next release.
Thanks for all wonderful efforts
+1 Répondre
as always great done,,,thanks
+1 Répondre
Nice work . thanks
+1 Répondre
What is the reason for the forward pivot setting? Can you eleborate?
@idsme, you mean filter pivots?

Sometimes multiple pivot highs or lows formed without forming other direction pivots. This happens if pivot length R is lesser than pivot length L. The setting will ignore intermediate ones of same direction.

Also explained in one of the attached pic in description.