Bullish Symmetrical Triangle
Category: Chart patterns · Updated November 2026
The TAAPI.IO Bullish Symmetrical Triangle API returns pattern pivot timestamps, pattern pivot prices, support left timestamp, support left price values for the Symmetrical Triangle – Bullish 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.
| Spec | Value |
|---|---|
| Endpoint | GET https://v2.taapi.io/indicator/trianglesymmetricalbullish |
| Outputs | pattern_pivot_timestamps, pattern_pivot_prices, support_left_timestamp, support_left_price, support_right_timestamp, support_right_price and more |
| Markets | Binance, Binance Futures, Bybit, Gate.io, Kraken and US stocks |
| Timeframes | 1m to 1w |
| Delivery | REST, bulk and WebSocket |
Get Bullish Symmetrical Triangle with one API call
This request returns Bullish Symmetrical Triangle for BTCUSDT on 1-hour Binance candles. Add your API key to run it here.
curl -G https://v2.taapi.io/indicator/trianglesymmetricalbullish \ -H "Authorization: Bearer YOUR_API_KEY" \ --data-urlencode "exchange=binance" \ --data-urlencode "symbol=BTCUSDT" \ --data-urlencode "timeframe=1h"
import requests
resp = requests.get(
'https://v2.taapi.io/indicator/trianglesymmetricalbullish',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
params={'exchange': 'binance', 'symbol': 'BTCUSDT', 'timeframe': '1h'},
)
print(resp.json())const params = new URLSearchParams({"exchange": "binance", "symbol": "BTCUSDT", "timeframe": "1h"});
const res = await fetch(`https://v2.taapi.io/indicator/trianglesymmetricalbullish?${params}`, {
headers: { Authorization: 'Bearer YOUR_API_KEY' },
});
console.log(await res.json());Bullish Symmetrical Triangle API response
This response came from the live API on 9 November 2026 for ETHUSDT on 4h candles. Long lists are shortened here.
{
"pattern_pivot_timestamps": [[1776441600, 1776628800, 1776715200, 1776787200, 1776859200, 1776960000, 1777248000]],
"pattern_pivot_prices": [[2464.91, 2252.72, 2346.78, 2284.19, 2423.75, 2285.42, 2404.37]],
"support_left_timestamp": [1776628800],
"support_left_price": [2252.72],
"support_right_timestamp": [1777291200],
"support_right_price": [2318.1200000000003],
"resistance_left_timestamp": [1776441600],
"resistance_left_price": [2464.91],
"resistance_right_timestamp": [1777291200],
"resistance_right_price": [2401.1267857142857],
"breakout_occurred": [true],
"is_confirmed": [true],
"breakout_timestamp": [1777291200],
"breakout_price": [2297.8425],
"projection_price": [2119.1525],
"direction": ["bullish"],
"status": ["confirmed"],
"status_reason": ["breakout_bearish"],
"pattern_index": [1],
"timestamp": [1794211200]
}| Field | Type | Description |
|---|---|---|
pattern_pivot_timestamps | array | Array of all internal pivot timestamps making up the triangle structure. |
pattern_pivot_prices | array | Array of all internal pivot body-snapped prices making up the triangle structure. |
support_left_timestamp | number[] | Unix timestamp of the ascending support line start anchor (L1). |
support_left_price | number[] | Price level of the ascending support line start anchor (L1). |
support_right_timestamp | number[] | Timestamp denoting where the support line extends to on the right. |
support_right_price | number[] | The price level of the support line at the right endpoint. |
resistance_left_timestamp | number[] | Unix timestamp of the descending resistance line start anchor (H1). |
resistance_left_price | number[] | Price level of the descending resistance line start anchor (H1). |
resistance_right_timestamp | number[] | Timestamp denoting where the resistance line extends to on the right. |
resistance_right_price | number[] | The price level of the resistance line at the right endpoint. |
breakout_occurred | boolean[] | Boolean flag (true/false) indicating if price successfully broke above the resistance. |
is_confirmed | boolean[] | Explicit boolean flag (true/false) indicating if the Symmetrical Triangle Bullish pattern is fully confirmed (synonymous with breakout_occurred). |
breakout_timestamp | number[] | Unix timestamp of the candle that triggered the confirmation breakout. |
breakout_price | number[] | The closing price of the candle that triggered the confirmation breakout. |
projection_price | number[] | The theoretical upside price target calculated by adding the pattern's initial height to the breakout price. |
direction | string[] | The inherent bias of the pattern. Always 'bullish' for a Symmetrical Triangle Bullish. |
status | string[] | The current state of the pattern: 'forming', 'confirmed', or 'invalidated'. |
status_reason | string[] | Context detailing why the pattern holds its current status (e.g. 'awaiting_breakout'). |
pattern_index | number[] | A sequential integer index uniquely identifying this specific pattern instance. |
timestamp | integer[] | Unix time of each candle, in seconds |
Bullish Symmetrical Triangle API parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
exchange | string | Yes | — | binance, binancefutures, bybit, gateio, kraken or stocks |
symbol | string | Yes | — | Pair or ticker, e.g. BTCUSDT or AAPL |
timeframe | string | Yes | — | 1m 5m 15m 1h 4h 1d 1w |
lookback | integer | No | 5 | Bars left for pivot detection. |
lookforward | integer | No | 5 | Bars right for pivot detection. |
deviationATR | number | No | 1 | Minimum retracement required to form a valid structural swing, expressed as a multiple of ATR. |
deviationType | string | No | atr | Type of deviation filter to use: 'atr' (Average True Range) or 'percent'. |
source | string | No | wick | Whether to use 'wick' (high/low) or 'body' (open/close) prices for pivot detection. |
heikinashi | boolean | No | True | Set to true to calculate pivots based on smoothed Heikin-Ashi candles rather than raw market prices. |
atrPeriod | integer | No | 14 | The lookback period used for the Average True Range (ATR) calculation. |
touches | integer | No | 3 | Minimum number of high/low pairs required to form the pattern. |
minDescentATR | number | No | 0 | Minimum required downward slope between the descending top touches, normalized by ATR. |
minAscentATR | number | No | 0 | Minimum required upward slope between the ascending bottom touches, normalized by ATR. |
results | integer | No | 1 | Number of values to return, or max |
backtrack | integer | No | 0 | Candles to skip from the most recent |
What is Bullish Symmetrical Triangle?
A Symmetrical Triangle forms from converging highs and lows. This endpoint reports the ones that break to the upside, with pivots, boundaries and a projected target.
Bullish Symmetrical Triangle formula
| Output | Calculation |
|---|---|
| Target | Breakout price + height of the triangle |
How to read Bullish Symmetrical Triangle in your code
| Signal | Meaning | Condition |
|---|---|---|
| Forming or confirmed | Detection status | status and is_confirmed |
| Breakout | Price closed above the upper boundary | breakout_occurred is true |
| Target | Measured-move projection | projection_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 Bullish Symmetrical Triangle from Python
Use backtrack=1 to read the result as of the last closed candle.
curl -G https://v2.taapi.io/indicator/trianglesymmetricalbullish \ -H "Authorization: Bearer YOUR_API_KEY" \ --data-urlencode "exchange=binance" \ --data-urlencode "symbol=BTCUSDT" \ --data-urlencode "timeframe=1h" \ --data-urlencode "backtrack=1"
import requests
resp = requests.get(
'https://v2.taapi.io/indicator/trianglesymmetricalbullish',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
params={'exchange': 'binance', 'symbol': 'BTCUSDT', 'timeframe': '1h', 'backtrack': 1},
)
data = resp.json()
print(data['pattern_pivot_timestamps'])Get historical Bullish Symmetrical 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/trianglesymmetricalbullish \ -H "Authorization: Bearer YOUR_API_KEY" \ --data-urlencode "exchange=binance" \ --data-urlencode "symbol=BTCUSDT" \ --data-urlencode "timeframe=1h" \ --data-urlencode "results=100"
Get Bullish Symmetrical Triangle for multiple symbols
Combine Bullish Symmetrical 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.
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": "trianglesymmetricalbullish",
"indicator": "trianglesymmetricalbullish"
},
{
"id": "rsi",
"indicator": "rsi"
}
]
}
]
}'Stream Bullish Symmetrical 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.
{
"type": "subscribe",
"id": "trianglesymmetricalbullish",
"exchange": "binance",
"symbol": "BTCUSDT",
"interval": "1m",
"indicator": "trianglesymmetricalbullish"
}Bullish Symmetrical Triangle API FAQ
What does the Bullish Symmetrical Triangle API return?
It returns pattern_pivot_timestamps, pattern_pivot_prices, support_left_timestamp, support_left_price, support_right_timestamp, support_right_price, resistance_left_timestamp, resistance_left_price, resistance_right_timestamp, resistance_right_price, breakout_occurred, is_confirmed, breakout_timestamp, breakout_price, projection_price, direction, status, status_reason, pattern_index, plus a timestamp for the request. Results are JSON.
Is the latest Bullish Symmetrical 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 Bullish Symmetrical Triangle settings can I change?
You can set lookback, lookforward, deviationATR, deviationType, source, heikinashi. See the parameters table above for defaults.
Can I get Bullish Symmetrical Triangle for US stocks?
Yes. Use exchange=stocks with a ticker such as AAPL. US stocks are included on the Pro plan and above.
Related indicators
See the full list of indicators, or start for free.