superkit-mcp-server 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/README.md +4 -1
  2. package/agents/code-archaeologist.md +106 -0
  3. package/agents/devops-engineer.md +242 -0
  4. package/agents/orchestrator.md +420 -416
  5. package/agents/penetration-tester.md +188 -0
  6. package/agents/performance-optimizer.md +187 -0
  7. package/agents/qa-automation-engineer.md +103 -0
  8. package/agents/quant-developer.md +4 -0
  9. package/package.json +1 -1
  10. package/skills/meta/code-review/SKILL.md +7 -0
  11. package/skills/tech/alpha-vantage/SKILL.md +142 -0
  12. package/skills/tech/alpha-vantage/references/commodities.md +153 -0
  13. package/skills/tech/alpha-vantage/references/economic-indicators.md +158 -0
  14. package/skills/tech/alpha-vantage/references/forex-crypto.md +154 -0
  15. package/skills/tech/alpha-vantage/references/fundamentals.md +223 -0
  16. package/skills/tech/alpha-vantage/references/intelligence.md +138 -0
  17. package/skills/tech/alpha-vantage/references/options.md +93 -0
  18. package/skills/tech/alpha-vantage/references/technical-indicators.md +374 -0
  19. package/skills/tech/alpha-vantage/references/time-series.md +157 -0
  20. package/skills/tech/financial-modeling/SKILL.md +18 -0
  21. package/skills/tech/financial-modeling/skills/3-statements/SKILL.md +368 -0
  22. package/skills/tech/financial-modeling/skills/3-statements/references/formatting.md +118 -0
  23. package/skills/tech/financial-modeling/skills/3-statements/references/formulas.md +292 -0
  24. package/skills/tech/financial-modeling/skills/3-statements/references/sec-filings.md +125 -0
  25. package/skills/tech/financial-modeling/skills/dcf-model/SKILL.md +1211 -0
  26. package/skills/tech/financial-modeling/skills/dcf-model/TROUBLESHOOTING.md +40 -0
  27. package/skills/tech/financial-modeling/skills/dcf-model/requirements.txt +8 -0
  28. package/skills/tech/financial-modeling/skills/dcf-model/scripts/validate_dcf.py +292 -0
  29. package/skills/tech/financial-modeling/skills/lbo-model/SKILL.md +236 -0
  30. package/skills/tech/financial-modeling/skills/merger-model/SKILL.md +108 -0
  31. package/skills/tech/intelligent-routing/SKILL.md +5 -5
  32. package/workflows/kit-setup.md +8 -8
  33. package/workflows/map-codebase.md +78 -0
  34. package/workflows/plan-compound.md +6 -0
  35. package/workflows/plan_review.md +19 -3
  36. package/workflows/review-compound.md +36 -17
  37. package/workflows/specs.md +1 -1
@@ -0,0 +1,138 @@
1
+ # Alpha Intelligence™ APIs
2
+
3
+ ## NEWS_SENTIMENT — Market News & Sentiment
4
+
5
+ Returns live/historical news articles with sentiment scores for tickers, sectors, and topics.
6
+
7
+ **Optional:**
8
+ - `tickers` — comma-separated ticker symbols (e.g., `IBM,AAPL`)
9
+ - `topics` — comma-separated topics: `blockchain`, `earnings`, `ipo`, `mergers_and_acquisitions`, `financial_markets`, `economy_fiscal`, `economy_monetary`, `economy_macro`, `energy_transportation`, `finance`, `life_sciences`, `manufacturing`, `real_estate`, `retail_wholesale`, `technology`
10
+ - `time_from` / `time_to` — format `YYYYMMDDTHHMM`
11
+ - `sort` — `LATEST`, `EARLIEST`, or `RELEVANCE`
12
+ - `limit` — max articles returned (default 50, max 1000)
13
+
14
+ ```python
15
+ # Get news for specific ticker
16
+ data = av_get("NEWS_SENTIMENT", tickers="AAPL", sort="LATEST", limit=10)
17
+ articles = data["feed"]
18
+
19
+ for a in articles[:3]:
20
+ print(a["title"])
21
+ print(a["url"])
22
+ print(a["time_published"])
23
+ print(a["overall_sentiment_label"]) # "Bullish", "Bearish", "Neutral", etc.
24
+ print(a["overall_sentiment_score"]) # -1.0 to 1.0
25
+ for ts in a["ticker_sentiment"]:
26
+ if ts["ticker"] == "AAPL":
27
+ print(f" AAPL sentiment: {ts['ticker_sentiment_label']} ({ts['ticker_sentiment_score']})")
28
+ print(f" Relevance: {ts['relevance_score']}")
29
+
30
+ # Article fields: "title", "url", "time_published", "authors", "summary",
31
+ # "source", "source_domain", "topics", "overall_sentiment_score",
32
+ # "overall_sentiment_label", "ticker_sentiment"
33
+ # Sentiment labels: "Bearish", "Somewhat-Bearish", "Neutral", "Somewhat-Bullish", "Bullish"
34
+
35
+ # Get news by topic
36
+ data = av_get("NEWS_SENTIMENT", topics="earnings,technology", time_from="20240101T0000", limit=50)
37
+ ```
38
+
39
+ ## EARNINGS_CALL_TRANSCRIPT — Earnings Call Transcript
40
+
41
+ Returns full earnings call transcripts (requires premium).
42
+
43
+ **Required:** `symbol`, `quarter` (format `YYYYQN`, e.g., `2023Q4`)
44
+
45
+ ```python
46
+ data = av_get("EARNINGS_CALL_TRANSCRIPT", symbol="AAPL", quarter="2023Q4")
47
+ transcript = data["transcript"]
48
+
49
+ for segment in transcript[:5]:
50
+ print(f"[{segment['speaker']}]: {segment['content'][:200]}")
51
+ # Fields: "symbol", "quarter", "transcript" (list of {speaker, title, content})
52
+ ```
53
+
54
+ ## TOP_GAINERS_LOSERS — Top Market Movers
55
+
56
+ Returns top 20 gainers, losers, and most actively traded US stocks for the current/most recent trading day.
57
+
58
+ ```python
59
+ data = av_get("TOP_GAINERS_LOSERS")
60
+
61
+ for g in data["top_gainers"][:5]:
62
+ print(g["ticker"], g["price"], g["change_amount"], g["change_percentage"], g["volume"])
63
+
64
+ for l in data["top_losers"][:5]:
65
+ print(l["ticker"], l["price"], l["change_amount"], l["change_percentage"])
66
+
67
+ # Fields: "ticker", "price", "change_amount", "change_percentage", "volume"
68
+ # Also: data["most_actively_traded"]
69
+ ```
70
+
71
+ ## INSIDER_TRANSACTIONS — Insider Trading Data
72
+
73
+ Returns insider transactions (Form 4) for a given company (requires premium).
74
+
75
+ **Required:** `symbol`
76
+
77
+ ```python
78
+ data = av_get("INSIDER_TRANSACTIONS", symbol="AAPL")
79
+ transactions = data["data"]
80
+
81
+ for t in transactions[:5]:
82
+ print(
83
+ t["transaction_date"],
84
+ t["executive"], # insider name
85
+ t["executive_title"], # e.g., "CEO"
86
+ t["action"], # "Buy" or "Sell"
87
+ t["shares"],
88
+ t["share_price"],
89
+ t["total_value"]
90
+ )
91
+ ```
92
+
93
+ ## ANALYTICS_FIXED_WINDOW — Portfolio Analytics (Fixed Window)
94
+
95
+ Returns mean return, variance, covariance, correlation, and alpha/beta for a set of tickers over a fixed historical window.
96
+
97
+ **Required:**
98
+ - `SYMBOLS` — comma-separated tickers (e.g., `AAPL,MSFT,IBM`)
99
+ - `RANGE` — date range format: `2year`, `6month`, `30day`, or `YYYY-MM-DD&YYYY-MM-DD`
100
+ - `INTERVAL` — `DAILY`, `WEEKLY`, or `MONTHLY`
101
+ - `OHLC` — `close`, `open`, `high`, or `low`
102
+ - `CALCULATIONS` — comma-separated: `MEAN`, `STDDEV`, `MAX_DRAWDOWN`, `CORRELATION`, `COVARIANCE`, `VARIANCE`, `CUMULATIVE_RETURN`, `MIN`, `MAX`, `MEDIAN`, `HISTOGRAM`
103
+
104
+ ```python
105
+ data = av_get(
106
+ "ANALYTICS_FIXED_WINDOW",
107
+ SYMBOLS="AAPL,MSFT,IBM",
108
+ RANGE="1year",
109
+ INTERVAL="DAILY",
110
+ OHLC="close",
111
+ CALCULATIONS="MEAN,STDDEV,CORRELATION,MAX_DRAWDOWN"
112
+ )
113
+ payload = data["payload"]
114
+ print(payload["MEAN"]) # {"AAPL": 0.0012, "MSFT": 0.0009, ...}
115
+ print(payload["STDDEV"])
116
+ print(payload["CORRELATION"]) # correlation matrix
117
+ print(payload["MAX_DRAWDOWN"])
118
+ ```
119
+
120
+ ## ANALYTICS_SLIDING_WINDOW — Portfolio Analytics (Sliding Window)
121
+
122
+ Same as fixed window but with rolling calculations over time.
123
+
124
+ **Required:** Same as fixed window, plus:
125
+ - `WINDOW_SIZE` — number of periods (e.g., `20` for 20-day rolling window)
126
+
127
+ ```python
128
+ data = av_get(
129
+ "ANALYTICS_SLIDING_WINDOW",
130
+ SYMBOLS="AAPL,MSFT",
131
+ RANGE="1year",
132
+ INTERVAL="DAILY",
133
+ OHLC="close",
134
+ CALCULATIONS="MEAN,STDDEV",
135
+ WINDOW_SIZE=20
136
+ )
137
+ # Returns time series of rolling calculations
138
+ ```
@@ -0,0 +1,93 @@
1
+ # Options Data APIs (Premium)
2
+
3
+ Both options endpoints require a premium Alpha Vantage subscription.
4
+
5
+ ## REALTIME_OPTIONS — Real-time Options Chain
6
+
7
+ Returns real-time options contracts for a given symbol.
8
+
9
+ **Required:** `symbol`
10
+
11
+ **Optional:**
12
+ - `contract` — specific contract ID (e.g., `AAPL240119C00150000`) to get a single contract
13
+ - `datatype` — `json` or `csv`
14
+
15
+ ```python
16
+ data = av_get("REALTIME_OPTIONS", symbol="AAPL")
17
+ options = data["data"]
18
+
19
+ for contract in options[:5]:
20
+ print(
21
+ contract["contractID"], # e.g., "AAPL240119C00150000"
22
+ contract["strike"], # "150.00"
23
+ contract["expiration"], # "2024-01-19"
24
+ contract["type"], # "call" or "put"
25
+ contract["last"], # last price
26
+ contract["bid"],
27
+ contract["ask"],
28
+ contract["volume"],
29
+ contract["open_interest"],
30
+ contract["implied_volatility"],
31
+ contract["delta"],
32
+ contract["gamma"],
33
+ contract["theta"],
34
+ contract["vega"],
35
+ contract["rho"]
36
+ )
37
+
38
+ # Get a specific contract
39
+ data = av_get("REALTIME_OPTIONS", symbol="AAPL", contract="AAPL240119C00150000")
40
+ ```
41
+
42
+ ## HISTORICAL_OPTIONS — Historical Options Chain
43
+
44
+ Returns historical end-of-day options data for a specific date.
45
+
46
+ **Required:** `symbol`
47
+
48
+ **Optional:**
49
+ - `date` — format `YYYY-MM-DD` (up to 2 years of history)
50
+ - `datatype` — `json` or `csv`
51
+
52
+ ```python
53
+ # Get options chain for a specific historical date
54
+ data = av_get("HISTORICAL_OPTIONS", symbol="AAPL", date="2023-12-15")
55
+ options = data["data"]
56
+
57
+ for contract in options[:5]:
58
+ print(
59
+ contract["contractID"],
60
+ contract["strike"],
61
+ contract["expiration"],
62
+ contract["type"], # "call" or "put"
63
+ contract["last"],
64
+ contract["mark"], # mark price
65
+ contract["bid"],
66
+ contract["ask"],
67
+ contract["volume"],
68
+ contract["open_interest"],
69
+ contract["date"], # the date of this snapshot
70
+ contract["implied_volatility"],
71
+ contract["delta"],
72
+ contract["gamma"],
73
+ contract["theta"],
74
+ contract["vega"],
75
+ contract["rho"]
76
+ )
77
+ ```
78
+
79
+ ## Filter Options by Expiration/Type
80
+
81
+ ```python
82
+ import pandas as pd
83
+
84
+ data = av_get("HISTORICAL_OPTIONS", symbol="AAPL", date="2023-12-15")
85
+ df = pd.DataFrame(data["data"])
86
+ df["strike"] = pd.to_numeric(df["strike"])
87
+ df["expiration"] = pd.to_datetime(df["expiration"])
88
+
89
+ # Filter calls expiring in January 2024
90
+ calls_jan = df[(df["type"] == "call") & (df["expiration"].dt.month == 1) & (df["expiration"].dt.year == 2024)]
91
+ calls_jan = calls_jan.sort_values("strike")
92
+ print(calls_jan[["contractID", "strike", "bid", "ask", "implied_volatility", "delta"]].head(10))
93
+ ```
@@ -0,0 +1,374 @@
1
+ # Technical Indicators APIs
2
+
3
+ All technical indicators work with equities, forex pairs, and crypto. Calculated from adjusted time series data.
4
+
5
+ ## Common Parameters
6
+
7
+ | Parameter | Required | Values |
8
+ |-----------|----------|--------|
9
+ | `symbol` | Yes | Ticker (e.g., `IBM`), forex pair (`USDEUR`), or crypto pair (`BTCUSD`) |
10
+ | `interval` | Yes | `1min`, `5min`, `15min`, `30min`, `60min`, `daily`, `weekly`, `monthly` |
11
+ | `time_period` | Most | Number of periods (e.g., `14`, `20`, `50`, `200`) |
12
+ | `series_type` | Most | `close`, `open`, `high`, `low` |
13
+ | `month` | No | `YYYY-MM` for specific historical month |
14
+ | `datatype` | No | `json` or `csv` |
15
+
16
+ ## Response Format
17
+
18
+ All indicators return a metadata object and a time series dictionary:
19
+
20
+ ```python
21
+ data = av_get("SMA", symbol="IBM", interval="daily", time_period=20, series_type="close")
22
+ ts = data["Technical Analysis: SMA"]
23
+ # Key: "2024-01-15" → {"SMA": "185.4200"}
24
+ ```
25
+
26
+ ## Moving Averages
27
+
28
+ ### SMA — Simple Moving Average
29
+
30
+ ```python
31
+ data = av_get("SMA", symbol="AAPL", interval="daily", time_period=20, series_type="close")
32
+ ts = data["Technical Analysis: SMA"]
33
+ print(sorted(ts.keys())[-1], ts[sorted(ts.keys())[-1]]["SMA"])
34
+ ```
35
+
36
+ ### EMA — Exponential Moving Average
37
+
38
+ ```python
39
+ data = av_get("EMA", symbol="AAPL", interval="daily", time_period=20, series_type="close")
40
+ ts = data["Technical Analysis: EMA"] # → {"EMA": "..."}
41
+ ```
42
+
43
+ ### WMA — Weighted Moving Average
44
+
45
+ ```python
46
+ data = av_get("WMA", symbol="IBM", interval="daily", time_period=20, series_type="close")
47
+ ts = data["Technical Analysis: WMA"] # → {"WMA": "..."}
48
+ ```
49
+
50
+ ### DEMA — Double Exponential Moving Average
51
+
52
+ ```python
53
+ data = av_get("DEMA", symbol="IBM", interval="daily", time_period=20, series_type="close")
54
+ ts = data["Technical Analysis: DEMA"]
55
+ ```
56
+
57
+ ### TEMA — Triple Exponential Moving Average
58
+
59
+ ```python
60
+ data = av_get("TEMA", symbol="IBM", interval="daily", time_period=20, series_type="close")
61
+ ts = data["Technical Analysis: TEMA"]
62
+ ```
63
+
64
+ ### KAMA — Kaufman Adaptive Moving Average
65
+
66
+ ```python
67
+ data = av_get("KAMA", symbol="IBM", interval="daily", time_period=20, series_type="close")
68
+ ts = data["Technical Analysis: KAMA"]
69
+ ```
70
+
71
+ ### T3 — Triple Smooth Exponential Moving Average
72
+
73
+ ```python
74
+ data = av_get("T3", symbol="IBM", interval="daily", time_period=5, series_type="close")
75
+ ts = data["Technical Analysis: T3"]
76
+ ```
77
+
78
+ ### VWAP — Volume Weighted Average Price (Premium, intraday only)
79
+
80
+ **Required:** `symbol`, `interval` (intraday only: `1min`–`60min`)
81
+
82
+ ```python
83
+ data = av_get("VWAP", symbol="AAPL", interval="5min")
84
+ ts = data["Technical Analysis: VWAP"] # → {"VWAP": "..."}
85
+ ```
86
+
87
+ ---
88
+
89
+ ## Momentum Indicators
90
+
91
+ ### MACD — Moving Average Convergence/Divergence (Premium)
92
+
93
+ **Optional:** `fastperiod` (default 12), `slowperiod` (default 26), `signalperiod` (default 9), `series_type`
94
+
95
+ ```python
96
+ data = av_get("MACD", symbol="AAPL", interval="daily", series_type="close",
97
+ fastperiod=12, slowperiod=26, signalperiod=9)
98
+ ts = data["Technical Analysis: MACD"]
99
+ latest_date = sorted(ts.keys())[-1]
100
+ print(ts[latest_date]) # {"MACD": "...", "MACD_Signal": "...", "MACD_Hist": "..."}
101
+ ```
102
+
103
+ ### RSI — Relative Strength Index
104
+
105
+ ```python
106
+ data = av_get("RSI", symbol="AAPL", interval="daily", time_period=14, series_type="close")
107
+ ts = data["Technical Analysis: RSI"] # → {"RSI": "..."}
108
+ # Overbought >70, Oversold <30
109
+ latest_date = sorted(ts.keys())[-1]
110
+ print(f"RSI: {ts[latest_date]['RSI']}")
111
+ ```
112
+
113
+ ### STOCH — Stochastic Oscillator
114
+
115
+ **Optional:** `fastkperiod` (default 5), `slowkperiod` (default 3), `slowdperiod` (default 3), `slowkmatype`, `slowdmatype`
116
+
117
+ ```python
118
+ data = av_get("STOCH", symbol="IBM", interval="daily")
119
+ ts = data["Technical Analysis: STOCH"] # → {"SlowK": "...", "SlowD": "..."}
120
+ ```
121
+
122
+ ### STOCHF — Stochastic Fast
123
+
124
+ ```python
125
+ data = av_get("STOCHF", symbol="IBM", interval="daily")
126
+ ts = data["Technical Analysis: STOCHF"] # → {"FastK": "...", "FastD": "..."}
127
+ ```
128
+
129
+ ### STOCHRSI — Stochastic Relative Strength Index
130
+
131
+ ```python
132
+ data = av_get("STOCHRSI", symbol="IBM", interval="daily", time_period=14, series_type="close")
133
+ ts = data["Technical Analysis: STOCHRSI"] # → {"FastK": "...", "FastD": "..."}
134
+ ```
135
+
136
+ ### WILLR — Williams %R
137
+
138
+ ```python
139
+ data = av_get("WILLR", symbol="IBM", interval="daily", time_period=14)
140
+ ts = data["Technical Analysis: WILLR"] # → {"WILLR": "..."}
141
+ ```
142
+
143
+ ### MOM — Momentum
144
+
145
+ ```python
146
+ data = av_get("MOM", symbol="IBM", interval="daily", time_period=10, series_type="close")
147
+ ts = data["Technical Analysis: MOM"]
148
+ ```
149
+
150
+ ### ROC — Rate of Change
151
+
152
+ ```python
153
+ data = av_get("ROC", symbol="IBM", interval="daily", time_period=10, series_type="close")
154
+ ts = data["Technical Analysis: ROC"]
155
+ ```
156
+
157
+ ### CCI — Commodity Channel Index
158
+
159
+ **Required:** `symbol`, `interval`, `time_period` (no `series_type`)
160
+
161
+ ```python
162
+ data = av_get("CCI", symbol="IBM", interval="daily", time_period=20)
163
+ ts = data["Technical Analysis: CCI"]
164
+ ```
165
+
166
+ ### CMO — Chande Momentum Oscillator
167
+
168
+ ```python
169
+ data = av_get("CMO", symbol="IBM", interval="daily", time_period=14, series_type="close")
170
+ ts = data["Technical Analysis: CMO"]
171
+ ```
172
+
173
+ ### PPO — Percentage Price Oscillator
174
+
175
+ **Optional:** `fastperiod`, `slowperiod`, `matype`
176
+
177
+ ```python
178
+ data = av_get("PPO", symbol="IBM", interval="daily", series_type="close")
179
+ ts = data["Technical Analysis: PPO"]
180
+ ```
181
+
182
+ ### BOP — Balance of Power
183
+
184
+ **Required:** `symbol`, `interval` (no `time_period` or `series_type`)
185
+
186
+ ```python
187
+ data = av_get("BOP", symbol="IBM", interval="daily")
188
+ ts = data["Technical Analysis: BOP"]
189
+ ```
190
+
191
+ ---
192
+
193
+ ## Trend Indicators
194
+
195
+ ### ADX — Average Directional Movement Index
196
+
197
+ **Required:** `symbol`, `interval`, `time_period` (no `series_type`)
198
+
199
+ ```python
200
+ data = av_get("ADX", symbol="IBM", interval="daily", time_period=14)
201
+ ts = data["Technical Analysis: ADX"] # → {"ADX": "..."}
202
+ # ADX > 25 = strong trend
203
+ ```
204
+
205
+ ### AROON — Aroon
206
+
207
+ **Required:** `symbol`, `interval`, `time_period` (no `series_type`)
208
+
209
+ ```python
210
+ data = av_get("AROON", symbol="IBM", interval="daily", time_period=25)
211
+ ts = data["Technical Analysis: AROON"] # → {"Aroon Down": "...", "Aroon Up": "..."}
212
+ ```
213
+
214
+ ### BBANDS — Bollinger Bands
215
+
216
+ **Optional:** `nbdevup` (default 2), `nbdevdn` (default 2), `matype` (default 0=SMA)
217
+
218
+ ```python
219
+ data = av_get("BBANDS", symbol="AAPL", interval="daily", time_period=20,
220
+ series_type="close", nbdevup=2, nbdevdn=2)
221
+ ts = data["Technical Analysis: BBANDS"]
222
+ latest = ts[sorted(ts.keys())[-1]]
223
+ print(latest["Real Upper Band"], latest["Real Middle Band"], latest["Real Lower Band"])
224
+ ```
225
+
226
+ ### SAR — Parabolic SAR
227
+
228
+ **Optional:** `acceleration` (default 0.01), `maximum` (default 0.20)
229
+
230
+ ```python
231
+ data = av_get("SAR", symbol="IBM", interval="daily")
232
+ ts = data["Technical Analysis: SAR"]
233
+ ```
234
+
235
+ ---
236
+
237
+ ## Volume Indicators
238
+
239
+ ### OBV — On Balance Volume
240
+
241
+ **Required:** `symbol`, `interval` (no `time_period` or `series_type`)
242
+
243
+ ```python
244
+ data = av_get("OBV", symbol="IBM", interval="daily")
245
+ ts = data["Technical Analysis: OBV"]
246
+ ```
247
+
248
+ ### VWAP — See Moving Averages section above
249
+
250
+ ### MFI — Money Flow Index
251
+
252
+ **Required:** `symbol`, `interval`, `time_period` (no `series_type`)
253
+
254
+ ```python
255
+ data = av_get("MFI", symbol="IBM", interval="daily", time_period=14)
256
+ ts = data["Technical Analysis: MFI"]
257
+ ```
258
+
259
+ ---
260
+
261
+ ## Volatility Indicators
262
+
263
+ ### ATR — Average True Range
264
+
265
+ **Required:** `symbol`, `interval`, `time_period` (no `series_type`)
266
+
267
+ ```python
268
+ data = av_get("ATR", symbol="IBM", interval="daily", time_period=14)
269
+ ts = data["Technical Analysis: ATR"]
270
+ ```
271
+
272
+ ### NATR — Normalized Average True Range
273
+
274
+ ```python
275
+ data = av_get("NATR", symbol="IBM", interval="daily", time_period=14)
276
+ ts = data["Technical Analysis: NATR"]
277
+ ```
278
+
279
+ ### TRANGE — True Range
280
+
281
+ **Required:** `symbol`, `interval` (no `time_period` or `series_type`)
282
+
283
+ ```python
284
+ data = av_get("TRANGE", symbol="IBM", interval="daily")
285
+ ts = data["Technical Analysis: TRANGE"]
286
+ ```
287
+
288
+ ---
289
+
290
+ ## Full Indicator Reference
291
+
292
+ | Function | Description | Required Params |
293
+ |----------|-------------|-----------------|
294
+ | SMA | Simple Moving Average | symbol, interval, time_period, series_type |
295
+ | EMA | Exponential Moving Average | symbol, interval, time_period, series_type |
296
+ | WMA | Weighted Moving Average | symbol, interval, time_period, series_type |
297
+ | DEMA | Double EMA | symbol, interval, time_period, series_type |
298
+ | TEMA | Triple EMA | symbol, interval, time_period, series_type |
299
+ | TRIMA | Triangular MA | symbol, interval, time_period, series_type |
300
+ | KAMA | Kaufman Adaptive MA | symbol, interval, time_period, series_type |
301
+ | MAMA | MESA Adaptive MA | symbol, interval, series_type |
302
+ | VWAP | Vol Weighted Avg Price | symbol, interval (intraday only) |
303
+ | T3 | Triple Smooth EMA | symbol, interval, time_period, series_type |
304
+ | MACD | MACD | symbol, interval, series_type |
305
+ | MACDEXT | MACD with Controllable MA | symbol, interval, series_type |
306
+ | STOCH | Stochastic | symbol, interval |
307
+ | STOCHF | Stochastic Fast | symbol, interval |
308
+ | RSI | Relative Strength Index | symbol, interval, time_period, series_type |
309
+ | STOCHRSI | Stochastic RSI | symbol, interval, time_period, series_type |
310
+ | WILLR | Williams %R | symbol, interval, time_period |
311
+ | ADX | Avg Directional Index | symbol, interval, time_period |
312
+ | ADXR | ADX Rating | symbol, interval, time_period |
313
+ | APO | Absolute Price Oscillator | symbol, interval, series_type |
314
+ | PPO | Percentage Price Oscillator | symbol, interval, series_type |
315
+ | MOM | Momentum | symbol, interval, time_period, series_type |
316
+ | BOP | Balance of Power | symbol, interval |
317
+ | CCI | Commodity Channel Index | symbol, interval, time_period |
318
+ | CMO | Chande Momentum Oscillator | symbol, interval, time_period, series_type |
319
+ | ROC | Rate of Change | symbol, interval, time_period, series_type |
320
+ | ROCR | Rate of Change Ratio | symbol, interval, time_period, series_type |
321
+ | AROON | Aroon | symbol, interval, time_period |
322
+ | AROONOSC | Aroon Oscillator | symbol, interval, time_period |
323
+ | MFI | Money Flow Index | symbol, interval, time_period |
324
+ | TRIX | 1-day Rate of Change of Triple EMA | symbol, interval, time_period, series_type |
325
+ | ULTOSC | Ultimate Oscillator | symbol, interval |
326
+ | DX | Directional Movement Index | symbol, interval, time_period |
327
+ | MINUS_DI | Minus Directional Indicator | symbol, interval, time_period |
328
+ | PLUS_DI | Plus Directional Indicator | symbol, interval, time_period |
329
+ | MINUS_DM | Minus Directional Movement | symbol, interval, time_period |
330
+ | PLUS_DM | Plus Directional Movement | symbol, interval, time_period |
331
+ | BBANDS | Bollinger Bands | symbol, interval, time_period, series_type |
332
+ | MIDPOINT | MidPoint | symbol, interval, time_period, series_type |
333
+ | MIDPRICE | MidPoint Price | symbol, interval, time_period |
334
+ | SAR | Parabolic SAR | symbol, interval |
335
+ | TRANGE | True Range | symbol, interval |
336
+ | ATR | Average True Range | symbol, interval, time_period |
337
+ | NATR | Normalized ATR | symbol, interval, time_period |
338
+ | AD | Chaikin A/D Line | symbol, interval |
339
+ | ADOSC | Chaikin A/D Oscillator | symbol, interval |
340
+ | OBV | On Balance Volume | symbol, interval |
341
+ | HT_TRENDLINE | Hilbert Transform - Trendline | symbol, interval, series_type |
342
+ | HT_SINE | Hilbert Transform - SineWave | symbol, interval, series_type |
343
+ | HT_TRENDMODE | Hilbert Transform - Trend vs Cycle | symbol, interval, series_type |
344
+ | HT_DCPERIOD | Hilbert Transform - DC Period | symbol, interval, series_type |
345
+ | HT_DCPHASE | Hilbert Transform - DC Phase | symbol, interval, series_type |
346
+ | HT_PHASOR | Hilbert Transform - Phasor Components | symbol, interval, series_type |
347
+
348
+ ## Multi-Indicator Analysis Example
349
+
350
+ ```python
351
+ import pandas as pd
352
+
353
+ def get_indicator_series(function, symbol, interval="daily", **kwargs):
354
+ data = av_get(function, symbol=symbol, interval=interval, **kwargs)
355
+ key = f"Technical Analysis: {function}"
356
+ ts = data[key]
357
+ rows = []
358
+ for date, values in ts.items():
359
+ row = {"date": date}
360
+ row.update(values)
361
+ rows.append(row)
362
+ df = pd.DataFrame(rows)
363
+ df["date"] = pd.to_datetime(df["date"])
364
+ df = df.set_index("date").sort_index()
365
+ return df.astype(float)
366
+
367
+ # Get RSI and BBANDS for signal generation
368
+ rsi = get_indicator_series("RSI", "AAPL", time_period=14, series_type="close")
369
+ bbands = get_indicator_series("BBANDS", "AAPL", time_period=20, series_type="close")
370
+
371
+ # Oversold condition: RSI < 30 AND price near lower band
372
+ print("Recent RSI values:")
373
+ print(rsi["RSI"].tail(5))
374
+ ```