Create an interactive Plotly chart for a technical indicator on a symbol.
Arguments
Parse $ARGUMENTS as: indicator symbol exchange interval
-
$0 = indicator name (e.g., ema, rsi, macd, supertrend, bbands, adx, stochastic, ichimoku, obv, vwap). Default: ema
-
$1 = symbol (e.g., SBIN, RELIANCE, NIFTY, AAPL). Default: SBIN
-
$2 = exchange (e.g., NSE, BSE, NFO, NSE_INDEX). Default: NSE. For US symbols use: YFINANCE
-
$3 = interval (e.g., D, 1h, 5m). Default: D
If no arguments, ask the user which indicator and symbol they want.
Instructions
-
Read the indicator-expert skill rules for reference patterns
-
Create charts/{indicator_name}/ directory if it doesn't exist (on-demand)
-
Create a .py file in charts/{indicator_name}/ named {symbol}_{indicator}_chart.py
-
Use the matching template from rules/assets/{indicator}_chart/chart.py as starting point (if available)
-
The script must:
-
Load .env from project root using find_dotenv()
-
Fetch data via OpenAlgo client.history() (or yfinance for US symbols)
-
Normalize data: convert index to datetime, sort, strip timezone
-
Compute the indicator using openalgo.ta
-
Create a Plotly chart with template="plotly_dark" and xaxis_type="category"
-
Overlay indicators (EMA, Bollinger, Supertrend, Ichimoku) go on the candlestick panel
-
Subplot indicators (RSI, MACD, Stochastic, ADX, Volume, OBV) go below in separate panels
-
Use make_subplots for multi-panel layouts
-
Add horizontal reference lines where appropriate (RSI 30/70, Stochastic 20/80)
-
Print a plain-language explanation of the current indicator reading
-
Save chart as HTML: {symbol}_{indicator}_chart.html
-
Show chart with fig.show()
-
Never use icons/emojis in code or output
Indicator Chart Types
Overlay Indicators (on candlestick panel)
Indicator Chart Type
ema, sma, wma, dema, tema, hma Line overlay
bbands Fill-between bands + midline
supertrend Color-coded line (green=up, red=down)
ichimoku 5 lines + cloud fill
keltner, donchian Fill-between channels
sar Dot markers above/below price
ma-envelopes Upper/lower band lines
Subplot Indicators (separate panel below)
Indicator Chart Type
rsi Line + horizontal 30/70 zones
macd Line + signal + histogram bars
stochastic K% + D% lines + 20/80 zones
adx DI+, DI-, ADX lines + 25 threshold
cci Line + horizontal +100/-100 zones
williams_r Line + -20/-80 zones
obv Line (cumulative)
mfi Line + 20/80 zones
volume Bar chart (green/red by price direction)
atr Line (volatility)
Multi-Indicator Charts
If user asks for "multi" or multiple indicators, create a comprehensive multi-panel chart with:
-
Row 1: Candlestick + EMA overlays
-
Row 2: RSI(14)
-
Row 3: MACD(12,26,9)
-
Row 4: Volume bars
Signal Markers
If the indicator generates clear buy/sell signals (e.g., crossover, supertrend direction change), add triangle markers:
-
Buy: green triangle-up markers
-
Sell: red triangle-down markers
Data Periods
Interval Default Lookback
D 1 year (365 days)
1h 6 months (180 days)
15m, 30m 3 months (90 days)
5m 1 month (30 days)
1m 7 days
Plain-Language Explanation
After creating the chart, print a brief explanation:
SBIN — RSI(14) Analysis Current RSI: 42.3 Interpretation: Neutral zone (between 30-70). Neither overbought nor oversold. Trend: RSI has been declining from 65 over the past 5 bars, suggesting weakening momentum.
Example Usage
/indicator-chart ema SBIN NSE D
/indicator-chart rsi RELIANCE NSE D
/indicator-chart macd AAPL YFINANCE D
/indicator-chart supertrend NIFTY NSE_INDEX D
/indicator-chart multi SBIN NSE D
/indicator-chart bbands INFY NSE 1h