indicator-expert

OpenAlgo indicator expert. Use when user asks about technical indicators, charting, plotting indicators, creating custom indicators, building dashboards, real-time feeds, scanning stocks, indicator combinations, or using openalgo.ta. Also triggers for indicator functions (sma, ema, rsi, macd, supert

By marketcalls · 577 installs

npx skills add marketcalls/openalgo-indicator-skills --skill indicator-expert

Source repository · Upstream listing

OpenAlgo Indicator Expert Skill Environment Python 3.12+ (required by openalgo 2.x) with openalgo, pandas, numpy, plotly, dash, streamlit Data sources: OpenAlgo (Indian markets via client.history() , client.quotes() , client.depth() ), yfinance (US/Global) Real time: OpenAlgo WebSocket ( client.connect() , subscribe ltp , subscribe quote , subscribe depth ) Indicators: openalgo.ta (ALWAYS — 100+ indicators computed by a compiled Rust core, full speed from the first call) Charts: Plotly with template="plotly dark" Dashboards: Plotly Dash with dash bootstrap components (default) OR Streamlit with st.plotly chart() — use Streamlit only when the user explicitly asks for it Custom indicators: vectorized NumPy composed from openalgo.ta primitives (Rust core — no JIT, no warmup) API keys loaded from single root .env via python dotenv + find dotenv() — never hardcode keys Scripts go in appropriate directories (charts/, dashboards/, custom indicators/, scanners/) created on demand Never use icons/emojis in code or logger output Critical Rules 1. ALWAYS use openalgo.ta for ALL technical indicators. Never reimplement what already exists in the library. 2. Data normalization : Always convert DataFrame index to datetime, sort, and strip timezone after fetching. 3. Signal cleaning : Always use ta.exrem() after generating raw buy/sell signals. Always .fillna(False) before exrem. 4. Plotly dark theme : All charts use template="plotly dark" with xaxis type="category" for candlesticks. 5. Custom indicators : Compose from openalgo.ta primitives ( ta.sma , ta.stdev , ta.bbands , ...) plus vectorized NumPy. Never reimplement built ins; no JIT or warmup is needed. 6. Input flexibility : openalgo.ta accepts numpy arrays, pandas Series, or lists. Output matches input type. 7. WebSocket feeds : Use client.connect() , client.subscribe ltp() / subscribe quote() / subscribe depth() for real time data. 8. Environment : Load .env from project root via find dotenv() — never hardcode API keys. 9. Market detection : If symbol looks Indian (SBIN, RELIANCE, NIFTY), use OpenAlgo. If US (AAPL, MSFT), use yfinance. 10. Always explain chart outputs in plain language so traders understand what the indicator shows. Data Source Priority Market Data Source Method Example Symbols India (equity) OpenAlgo client.history() SBIN, RELIANCE, INFY India (index) OpenAlgo client.history(exchange="NSE INDEX") NIFTY, BANKNIFTY India (F&O) OpenAlgo client.history(exchange="NFO") NIFTY30DEC25FUT US/Global yfinance yf.download() AAPL, MSFT, SPY OpenAlgo API Methods for Data Method Purpose Returns client.history(symbol, exchange, interval, start date, end date) OHLCV candles DataFrame (timestamp, open, high, low, close, volume) client.quotes(symbol, exchange) Real time snapshot Dict (open, high, low, ltp, bid, ask, prev close, volume) client.multiquotes(symbols=[...]) Multi symbol quotes List of quote dicts client.depth(symbol, exchange) Market depth (L5) Dict (bids, asks, ohlc, volume, oi) client.intervals() Available intervals Dict (minutes, hours, days, weeks, months) client.optionchain(underlying, exchange, expiry date, strike count) Option chain around ATM Dict (underlying ltp, atm strike, chain with ce/pe per strike) client.optiongreeks(symbol, exchange, interest rate, ...) Option greeks + IV Dict (greeks: delta/gamma/theta/vega/rho, implied volatility, days to expiry) client.expiry(symbol, exchange, instrumenttype) Expiry dates list Dict (data: list of expiry dates) client.connect() WebSocket connect None (sets up WS connection) client.subscribe ltp(instruments, callback) Live LTP stream Callback with {symbol, exchange, ltp} client.subscribe quote(instruments, callback) Live quote stream Callback with {symbol, exchange, ohlc, ltp, volume} client.subscribe depth(instruments, callback) Live depth stream Callback with {symbol, exchange, bids, asks} Indicator Library Reference All indicators accessed via from openalgo import ta : Trend (20) ta.sma , ta.ema , ta.wma , ta.dema , ta.tema , ta.hma , ta.vwma , ta.alma , ta.kama , ta.zlema , ta.t3 , ta.frama , ta.supertrend , ta.ichimoku , ta.chande kroll stop , ta.trima , ta.mcginley , ta.vidya , ta.alligator , ta.ma envelopes Momentum (9) ta.rsi , ta.macd , ta.stochastic , ta.cci , ta.williams r , ta.bop , ta.elder ray , ta.fisher , ta.crsi Volatility (16) ta.atr , ta.bbands , ta.keltner , ta.donchian , ta.chaikin volatility , ta.natr , ta.rvi , ta.ultimate oscillator , ta.true range , ta.massindex , ta.bb percent , ta.bb width , ta.chandelier exit , ta.historical volatility , ta.ulcer index , ta.starc Volume (15) ta.obv , ta.obv smoothed , ta.vwap , ta.mfi , ta.adl , ta.cmf , ta.emv , ta.force index , ta.nvi , ta.pvi , ta.volosc , ta.vroc , ta.kvo , ta.pvt , ta.rvol Oscillators (20+) ta.cmo , ta.trix , ta.uo oscillator , ta.awesome oscillator , ta.accelerator oscillator , ta.ppo , ta.po , ta.dpo , ta.aroon oscillator , ta.stoch rsi , ta.rvi oscillator , ta.cho , ta.chop , ta.kst , ta.tsi , ta.vortex , ta.gator oscillator , ta.stc , ta.coppock , ta.roc Statistical (9) ta.linreg , ta.lrslope , ta.correlation , ta.beta , ta.variance , ta.tsf , ta.median , ta.mode , ta.median bands Hybrid (6+) ta.adx , ta.dmi , ta.aroon , ta.pivot points , ta.sar , ta.williams fractals , ta.rwi TA Lib Compatible (18, new in openalgo 2.0) ta.mom , ta.rocp , ta.rocr , ta.rocr100 , ta.apo , ta.midpoint , ta.midprice , ta.avgprice , ta.medprice , ta.typprice , ta.wclprice , ta.plus dm , ta.minus dm , ta.dx , ta.adxr , ta.stochf , ta.linregangle , ta.linregintercept Utilities ta.crossover , ta.crossunder , ta.cross , ta.highest , ta.lowest , ta.change , ta.roc , ta.stdev , ta.exrem , ta.flip , ta.valuewhen , ta.rising , ta.falling Modular Rule Files Detailed reference for each topic is in rules/ : Rule File Topic [indicator catalog](rules/indicator catalog.md) Complete 100+ indicator reference with signatures and parameters [data fetching](rules/data fetching.md) OpenAlgo history/quotes/depth, yfinance, data normalization [plotting](rules/plotting.md) Plotly candlestick, overlay, subplot, multi panel charts [custom indicators](rules/custom indicators.md) Building custom indicators with vectorized NumPy + ta primitives [websocket feeds](rules/websocket feeds.md) Real time LTP/Quote/Depth streaming via WebSocket [performance](rules/performance.md) Rust core performance, O(n) guarantees, benchmarking [dashboard patterns](rules/dashboard patterns.md) Plotly Dash web applications with callbacks [streamlit patterns](rules/streamlit patterns.md) Streamlit web applications with sidebar, metrics, plotly charts [multi timeframe](rules/multi timeframe.md) Multi timeframe indicator analysis [signal generation](rules/signal generation.md) Signal generation, cleaning, crossover/crossunder [indicator combinations](rules/indicator combinations.md) Combining indicators for confluence analysis [symbol format](rules/symbol format.md) OpenAlgo symbol format, exchange codes, index symbols Chart Templates (in rules/assets/) Template Path Description EMA Chart assets/ema chart/chart.py EMA overlay on candlestick RSI Chart assets/rsi chart/chart.py RSI with overbought/oversold zones MACD Chart assets/macd chart/chart.py MACD line, signal, histogram Supertrend assets/supertrend chart/chart.py Supertrend overlay with direction coloring Bollinger assets/bollinger chart/chart.py Bollinger Bands with squeeze detection Multi Indicator assets/multi indicator/chart.py Candlestick + EMA + RSI + MACD + Volume Basic Dashboard assets/dashboard basic/app.py Single symbol Plotly Dash app Multi Dashboard assets/dashboard multi/app.py Multi symbol multi timeframe dashboard Streamlit Basic assets/streamlit basic/app.py Single symbol Streamlit app Streamlit Multi assets/streamlit multi/app.py Multi timeframe Streamlit app Custom Indicator assets/custom indicator/template.py NumPy custom indicator template (composes ta primitives) Live Feed assets/live feed/template.py WebSocket real time indicator Scanner assets/scanner/template.py Multi symbol indicator scanner Quick Template: Standard Indicator Chart Script