...

Enterprise Indicators

Institutional-grade tools for precise market structure analysis.

The Enterprise Tier unlocks the most computationally intensive and specialized algorithms on the platform.


Volatility-based envelopes set above and below an exponential moving average. Similar to Bollinger Bands, but uses ATR for the width calculation, providing smoother reaction to volatility.

  • Endpoint: /api/indicators/keltner
  • Method: POST
NameTypeDefaultDescription
periodinteger20EMA Period.
multipliernumber1ATR Multiplier.
[
  {
    "middle": 50000,
    "upper": 51500,
    "lower": 48500
  }
]
  • Trend Confirmation: An uptrend is confirmed when price creates new highs above the Upper Channel.
  • Pullbacks: In an uptrend, price often pulls back to the Middle Line (EMA).
import { IndicatorsApi, CandlesApi } from "tickcatcher";
 
// 1. Get Candles
const candles = await new CandlesApi(config).basicCandles({ symbol: "XRPUSDT", timeframe: "1h", limit: 100 });
 
// 2. Calculate Keltner Channels
const values = await new IndicatorsApi(config).keltner({ 
    keltnerRequest: {
        data: candles, 
        params: { period: 20, multiplier: 2, atrPeriod: 10 }
    }
});
 
const last = values[values.length - 1];
console.log(`Upper: ${last.upper}, Middle: ${last.middle}, Lower: ${last.lower}`);

The benchmark used by institutional traders. It gives the average price a security has traded at throughout the day, based on both volume and price.

  • Endpoint: /api/indicators/vwap
  • Method: POST

None. Calculates over the provided dataset.

[ 64100.2, 64150.5, ... ]
  • Fair Value: VWAP is often considered the "fair value" for the day.
  • Execution: Institutions try to buy below VWAP and sell above VWAP.
import { IndicatorsApi, CandlesApi } from "tickcatcher";
 
// 1. Get Candles
const candles = await new CandlesApi(config).basicCandles({ symbol: "XRPUSDT", timeframe: "1h", limit: 100 });
 
// 2. Calculate VWAP
const values = await new IndicatorsApi(config).vwap({ vwapRequest: { data: candles } });
 
console.log(`Current VWAP: ${values[values.length - 1]}`);

ZigZag filters out "noise" (price movements smaller than a specific percentage). It is primarily used to identify broad market trends and structure (Highs and Lows).

  • Endpoint: /api/indicators/zigzag
  • Method: POST
NameTypeDefaultDescription
deviationnumber1Deviation percentage.

Returns an array of numbers representing pivot points. null values indicate no pivot at that index.

[
  50000,
  null,
  null,
  45000,
  ...
]
  • Structure: Highlights Higher Highs (HH) and Lower Lows (LL) clearly.
import { IndicatorsApi, CandlesApi } from "tickcatcher";
 
// 1. Get Candles
const candles = await new CandlesApi(config).basicCandles({ symbol: "XRPUSDT", timeframe: "1h", limit: 100 });
 
// 2. Calculate ZigZag
const pivots = await new IndicatorsApi(config).zigzag({ 
    zigzagRequest: { 
        data: candles,
        params: { deviation: 5 }
    } 
});
 
const lastPivot = pivots.filter(p => p !== null).pop();
console.log(`Last Pivot: ${lastPivot}`);

Automatically calculates support (S1, S2, S3) and resistance (R1, R2, R3) levels based on previous period data. Essential for day trading.

  • Endpoint: /api/indicators/pivot
  • Method: POST
[
  {
    "p": 65000,
    "r1": 65500,
    "r2": 66000,
    "r3": 66500,
    "s1": 64500,
    "s2": 64000,
    "s3": 63500
  }
]
import { IndicatorsApi, CandlesApi } from "tickcatcher";
 
// 1. Get Candles
const candles = await new CandlesApi(config).basicCandles({ symbol: "XRPUSDT", timeframe: "1h", limit: 100 });
 
// 2. Calculate Pivot Points
const levels = await new IndicatorsApi(config).pivot({ pivotRequest: { data: candles } });
 
const last = levels[levels.length - 1];
console.log(`Pivot: ${last.p}, R1: ${last.r1}, S1: ${last.s1}`);