Indicators›Chart patterns›Descending Triangle
GET/indicator/triangledescending

Descending Triangle

Category: Chart patterns · Updated November 2026


The TAAPI.IO Descending Triangle API returns pattern pivot timestamps, pattern pivot prices, support level, support right timestamp values for the Descending Triangle indicator as JSON, for crypto pairs and US stocks. Send an exchange, symbol and timeframe to get real-time or historical data, with no candles to download and no calculations to maintain.

SpecValue
EndpointGET https://v2.taapi.io/indicator/triangledescending
Outputspattern_pivot_timestamps, pattern_pivot_prices, support_level, support_right_timestamp, resistance_left_timestamp, resistance_left_price and more
MarketsBinance, Binance Futures, Bybit, Gate.io, Kraken and US stocks
Timeframes1m to 1w
DeliveryREST, bulk and WebSocket

Get Descending Triangle with one API call

This request returns Descending Triangle for BTCUSDT on 1-hour Binance candles. Add your API key to run it here.

curl -G https://v2.taapi.io/indicator/triangledescending \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "exchange=binance" \
  --data-urlencode "symbol=BTCUSDT" \
  --data-urlencode "timeframe=1h"

Descending Triangle API response

This response came from the live API on 9 November 2026. Long lists are shortened here.

200 OK
{
  "pattern_pivot_timestamps": [[1793761200, 1793804400, 1793919600, 1793966400]],
  "pattern_pivot_prices": [[75736.38, 81196.01, 75208.42, 76378]],
  "support_level": [75718.02],
  "support_right_timestamp": [1793977200],
  "resistance_left_timestamp": [1793804400],
  "resistance_left_price": [81196.01],
  "resistance_right_timestamp": [1793977200],
  "resistance_right_price": [76056.79933333333],
  "breakout_occurred": [true],
  "is_confirmed": [true],
  "breakout_timestamp": [1793977200],
  "breakout_price": [75546.44],
  "breakout_support_price": [75718.02],
  "projection_price": [71140.03000000001],
  "direction": ["bearish"],
  "status": ["confirmed"],
  "status_reason": ["breakout_below_support"],
  "pattern_index": [3],
  "timestamp": [1794218400]
}
FieldTypeDescription
pattern_pivot_timestampsarrayArray of all internal pivot timestamps making up the triangle structure.
pattern_pivot_pricesarrayArray of all internal pivot body-snapped prices making up the triangle structure.
support_levelnumber[]The price level of the horizontal flat bottom support.
support_right_timestampnumber[]Timestamp denoting where the support line extends to on the right.
resistance_left_timestampnumber[]Unix timestamp of the descending resistance line start anchor (H1).
resistance_left_pricenumber[]Price level of the descending resistance line start anchor (H1).
resistance_right_timestampnumber[]Timestamp denoting where the resistance line extends to on the right.
resistance_right_pricenumber[]The price level of the resistance line at the right endpoint.
breakout_occurredboolean[]Boolean flag (true/false) indicating if price successfully broke below the support.
is_confirmedboolean[]Explicit boolean flag (true/false) indicating if the Descending Triangle pattern is fully confirmed (synonymous with breakout_occurred).
breakout_timestampnumber[]Unix timestamp of the candle that triggered the confirmation breakout.
breakout_pricenumber[]The closing price of the candle that triggered the confirmation breakout.
breakout_support_pricenumber[]The specific price of the support line at the exact moment of the breakout (same as support_level).
projection_pricenumber[]The theoretical downside price target calculated by subtracting the pattern's initial height from the breakout support price.
directionstring[]The inherent bias of the pattern. Always 'bearish' for a Descending Triangle.
statusstring[]The current state of the pattern: 'forming', 'confirmed', or 'invalidated'.
status_reasonstring[]Context detailing why the pattern holds its current status (e.g. 'awaiting_breakout').
pattern_indexnumber[]A sequential integer index uniquely identifying this specific pattern instance.
timestampinteger[]Unix time of each candle, in seconds

Descending Triangle API parameters

NameTypeRequiredDefaultDescription
exchangestringYes—binance, binancefutures, bybit, gateio, kraken or stocks
symbolstringYes—Pair or ticker, e.g. BTCUSDT or AAPL
timeframestringYes—1m 5m 15m 1h 4h 1d 1w
lookbackintegerNo5Bars left for pivot detection.
lookforwardintegerNo5Bars right for pivot detection.
deviationATRnumberNo1Minimum retracement required to form a valid structural swing, expressed as a multiple of ATR.
deviationTypestringNoatrType of deviation filter to use: 'atr' (Average True Range) or 'percent'.
sourcestringNowickWhether to use 'wick' (high/low) or 'body' (open/close) prices for pivot detection.
heikinashibooleanNoTrueSet to true to calculate pivots based on smoothed Heikin-Ashi candles rather than raw market prices.
atrPeriodintegerNo14The lookback period used for the Average True Range (ATR) calculation.
touchesintegerNo2Minimum number of high/low pairs required to form the pattern.
bottomToleranceATRnumberNo0.75Maximum allowed price difference between the bottom support touches, normalized by ATR.
minDescentATRnumberNo0Minimum required downward slope between the descending top touches, normalized by ATR.
invalidationClosesintegerNo2Number of consecutive candle closes above the descending resistance line to invalidate the pattern.
resultsintegerNo1Number of values to return, or max
backtrackintegerNo0Candles to skip from the most recent

What is Descending Triangle?

A Descending Triangle has flat support and falling resistance, which suggests sellers are growing more aggressive. The endpoint returns its pivots, both boundaries and a projected target.

Descending Triangle formula

OutputCalculation
TargetSupport − height of the triangle

How to read Descending Triangle in your code

SignalMeaningCondition
Forming or confirmedDetection statusstatus and is_confirmed
BreakoutPrice closed below supportbreakout_occurred is true
TargetMeasured-move projectionprojection_price

Limitations: Geometric pattern detection depends on pivot settings, so tune deviationATR and depth or lookback values on your own market. A confirmed pattern is not a guaranteed move. Nothing on this page is financial advice.

Read Descending Triangle from Python

Use backtrack=1 to read the result as of the last closed candle.

curl -G https://v2.taapi.io/indicator/triangledescending \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "exchange=binance" \
  --data-urlencode "symbol=BTCUSDT" \
  --data-urlencode "timeframe=1h" \
  --data-urlencode "backtrack=1"

Get historical Descending Triangle values

Add results to return a series for backtesting or charting. The last element is the most recent candle.

curl -G https://v2.taapi.io/indicator/triangledescending \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "exchange=binance" \
  --data-urlencode "symbol=BTCUSDT" \
  --data-urlencode "timeframe=1h" \
  --data-urlencode "results=100"

Get Descending Triangle for multiple symbols

Combine Descending Triangle with other indicators in one request. Each exchange, symbol and timeframe combination is one construct: Basic allows 1 per request, Pro 3 and Expert 10.

POST/bulk
curl -X POST https://v2.taapi.io/bulk \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "constructs": [
    {
      "id": "btc_1h",
      "exchange": "binance",
      "symbol": "BTCUSDT",
      "timeframe": "1h",
      "indicators": [
        {
          "id": "triangledescending",
          "indicator": "triangledescending"
        },
        {
          "id": "rsi",
          "indicator": "rsi"
        }
      ]
    }
  ]
}'

Stream Descending Triangle in real time

Subscribe over WebSocket to receive new values every 5 seconds while the candle is forming. Streaming supports 1m, 5m, 15m and 1h, and uses interval where REST uses timeframe.

WSSwss://v2.taapi.io/streaming
{
  "type": "subscribe",
  "id": "triangledescending",
  "exchange": "binance",
  "symbol": "BTCUSDT",
  "interval": "1m",
  "indicator": "triangledescending"
}

Descending Triangle API FAQ

What does the Descending Triangle API return?

It returns pattern_pivot_timestamps, pattern_pivot_prices, support_level, support_right_timestamp, resistance_left_timestamp, resistance_left_price, resistance_right_timestamp, resistance_right_price, breakout_occurred, is_confirmed, breakout_timestamp, breakout_price, breakout_support_price, projection_price, direction, status, status_reason, pattern_index, plus a timestamp for the request. Results are JSON.

Is the latest Descending Triangle value final?

No. The newest value belongs to the candle still forming and can change until it closes. Add backtrack=1 to read the last closed candle.

Which Descending Triangle settings can I change?

You can set lookback, lookforward, deviationATR, deviationType, source, heikinashi. See the parameters table above for defaults.

Can I get Descending Triangle for US stocks?

Yes. Use exchange=stocks with a ticker such as AAPL. US stocks are included on the Pro plan and above.

See the full list of indicators, or start for free.