Create a web dashboard for interactive technical analysis using Plotly Dash or Streamlit.
Arguments
Parse $ARGUMENTS as: type symbol
-
$0 = dashboard type. Default: single
-
Dash types: single , multi-symbol , multi-timeframe , scanner-dashboard
-
Streamlit types: streamlit-single , streamlit-multi , streamlit-scanner
-
$1 = symbol (e.g., SBIN, RELIANCE). Default: SBIN
If no arguments, ask the user what kind of dashboard they want and whether they prefer Dash or Streamlit.
Instructions
-
Read the indicator-expert rules, especially:
-
rules/dashboard-patterns.md — Dash app patterns
-
rules/streamlit-patterns.md — Streamlit app patterns
-
rules/plotting.md — Chart patterns
-
rules/data-fetching.md — Data loading
-
Create dashboards/{dashboard_name}/ directory (on-demand)
-
Create app.py in dashboards/{dashboard_name}/
-
Use the matching template from rules/assets/
Dashboard Requirements
All dashboards must include:
-
Dark theme: Dash uses dbc.themes.DARKLY ; Streamlit uses [theme] base = "dark" or CSS injection
-
Symbol input: Text input or dropdown for symbol selection
-
Exchange selector: NSE, BSE, NFO, NSE_INDEX
-
Interval selector: 1m, 5m, 15m, 1h, D
-
Indicator selectors: Checkboxes/multiselect for overlay and subplot indicators
-
Interactive chart: Plotly chart with template="plotly_dark" , xaxis_type="category"
-
Stats display: Key metrics (LTP, Change, Volume, indicator values)
-
Auto-refresh: Dash uses dcc.Interval ; Streamlit uses st.rerun() with time.sleep()
-
Load .env from project root via find_dotenv()
Dash Dashboard Types
single — Single Symbol Dashboard (Dash)
-
One symbol with configurable indicators
-
Overlays: EMA, SMA, Bollinger, Supertrend, Ichimoku (checkboxes)
-
Subplots: RSI, MACD, Stochastic, Volume, ADX, OBV (checkboxes)
-
Stats panel: LTP, day change, volume, selected indicator values
-
Template: rules/assets/dashboard_basic/app.py
multi-symbol — Multi-Symbol Watchlist (Dash)
-
4-6 symbols in a grid layout
-
Each cell shows candlestick + one overlay indicator
-
Bottom row: RSI comparison across all symbols
-
Symbol list editable via input
multi-timeframe — MTF Analysis (Dash)
-
4-panel grid: 5m, 15m, 1h, D for same symbol
-
Same indicators computed on each timeframe
-
Confluence summary: "3/4 timeframes bullish"
-
Template: rules/assets/dashboard_multi/app.py
scanner-dashboard — Live Scanner (Dash)
-
Watchlist of 10+ symbols
-
Table showing: Symbol, LTP, RSI, EMA trend, Signal
-
Color-coded rows (green=bullish, red=bearish)
-
Click symbol to show detailed chart
-
Auto-refresh every 30 seconds
Streamlit Dashboard Types
streamlit-single — Single Symbol Dashboard (Streamlit)
-
Sidebar: symbol, exchange, interval, overlay/subplot multiselect
-
st.plotly_chart() for interactive charts
-
st.metric() for LTP, Change, RSI, EMA stats
-
Auto-refresh via checkbox + st.rerun()
-
Template: rules/assets/streamlit_basic/app.py
streamlit-multi — MTF Analysis (Streamlit)
-
2x2 grid via st.columns(2) for 4 timeframes
-
Candlestick + EMA overlay per timeframe
-
Confluence summary with st.success() /st.error() /st.warning()
-
st.metric() cards for each timeframe trend
-
Template: rules/assets/streamlit_multi/app.py
streamlit-scanner — Scanner Dashboard (Streamlit)
-
Sidebar: scan type selector, run button
-
st.progress() during scan
-
st.dataframe() for results table
-
st.download_button() for CSV export
Running the Dashboard
After creating the app, provide instructions:
Dash:
cd dashboards/{dashboard_name} python app.py
Open http://127.0.0.1:8050 in browser
Streamlit:
cd dashboards/{dashboard_name} streamlit run app.py
Open http://localhost:8501 in browser
Example Usage
/indicator-dashboard single SBIN
/indicator-dashboard multi-timeframe RELIANCE
/indicator-dashboard scanner-dashboard
/indicator-dashboard streamlit-single SBIN
/indicator-dashboard streamlit-multi RELIANCE
/indicator-dashboard streamlit-scanner