{
  "slug": "rsi-calculator",
  "name": "gizza-ai/rsi-calculator",
  "version": "0.1.0",
  "title": "RSI Calculator — Relative Strength Index from prices — gizza.ai",
  "description": "Calculate Wilder's Relative Strength Index (RSI) from pasted closing prices with configurable period and overbought/oversold thresholds. Runs locally in your browser.",
  "tags": [
    "rsi calculator",
    "relative strength index",
    "technical analysis",
    "wilder rsi",
    "momentum indicator",
    "trading"
  ],
  "category": "math",
  "urls": {
    "page": "https://gizza.ai/tools/rsi-calculator/",
    "markdown": "https://gizza.ai/tools/rsi-calculator/index.md",
    "descriptor": "https://gizza.ai/tools/rsi-calculator/tool.json",
    "deep_link_example": "https://gizza.ai/tools/rsi-calculator/?prices=44.34%2C44.09%2C44.15%2C43.61%2C44.33%2C44.83%2C45.10%2C45.42%2C45.84%2C46.08%2C45.89%2C46.03%2C45.61%2C46.28%2C46.28&period=14&overbought=70&oversold=30"
  },
  "cli": "gizza tool rsi-calculator 'prices=44.34,44.09,44.15,43.61,44.33,44.83,45.10,45.42,45.84,46.08,45.89,46.03,45.61,46.28,46.28'",
  "tool": {
    "description": "Compute the Relative Strength Index (RSI) — Wilder's momentum oscillator — over a numeric price series (separated by spaces, commas, semicolons, or newlines, oldest first). For each look-back window (default period 14) it splits the period-over-period price changes into average gains and average losses using Wilder's smoothing, then reports RSI = 100 - 100/(1 + avgGain/avgLoss) on a 0-100 scale. RSI is 100 when the window has no losses and 0 when it has no gains. Returns the count, the period and overbought/oversold thresholds used, the RSI value and Wilder-smoothed average gain/loss at each point (null during the warm-up before period+1 points are available), the latest RSI, and a latest-signal classification (overbought/oversold/neutral). The period (1-10000) and the overbought (default 70) and oversold (default 30) thresholds are configurable. Runs locally — the data never leaves the device.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "input": {
          "type": "string"
        }
      },
      "required": [
        "input"
      ],
      "type": "object"
    }
  }
}