quant_data_compare |
dataType (e.g. "financials"/"daily bars") |
{ dataType, channels: [{ name, cost, covers, bestFor }] } (covering first) |
— |
quant_data_advice |
dataType + budget (free/low/institutional) + purpose (research/backtest/official) |
{ recommendations: [{ rank, name, reason }] } (decision-tree ranked) |
— |
quant_series_stats |
values: number[] |
{ count, mean, std, min, max, median, skew, kurtosis, autocorr1, annualizedVol, totalReturnPct } |
— (first step after fetching) |
quant_var_backtest |
returns + varSeries + confidence=0.95 |
{ failures, expected, lrStat, pValue, passed, periods } (Kupiec POF test) |
— (the ground truth for VaR models) |
quant_option |
spot + strike + timeToMaturity + riskFreeRate + type + exactly one of volatility/price |
{ price, impliedVolatility, delta, gamma, vega, theta, rho, … } |
— (Optiver-inspired: BS pricing + five greeks + IV solve) |
quant_volatility |
close: number[] + annualization=252 |
{ annualized, perPeriod, n, logReturns(aligned) } |
— (realized vol; the RV-vs-IV research entry) |
quant_bond |
couponRate + periodsToMaturity + paymentsPerYear? + exactly one of ytm/price |
{ price, yieldToMaturity, macaulayDuration, modifiedDuration, convexity, dv01, … } |
— (FICC link: pricing/duration/convexity/DV01, textbook discounting) |
quant_drawdown |
equity: number[] |
{ underwater(aligned), maxDrawdownPct, currentDrawdownPct, periods(peak/trough/recovery/depth/duration), ongoing } |
— (drawdown episode analysis) |
quant_resample |
candles + period (week=7 bars/month=30 bars) |
{ candles } (OHLCV aggregation, 24/7 markets) |
— |
quant_report |
strategy/metrics/risk/factor/fund (module outputs) |
{ report } (Markdown research report) |
— (R&D conclusion assembly) |
quant_repo_stats |
owner + repo |
{ stars, forks, watchers, openIssues, openPullRequests, topics, latestRelease, … } (public GitHub API, no credentials) |
— (ecosystem data) |
quant_npm_stats |
pkg |
{ latest, weeklyDownloads, monthlyDownloads, description, … } (npm registry + downloads API) |
— (ecosystem data) |
quant_oss_pulse |
stars + downloadsWeekly? + starsPrevious? + openIssues? + openPullRequests? + daysSinceRelease? |
{ score(0-100), grade(A-D), components, suggestions, summary } |
— (open-source influence score; missing inputs score neutral 50) |
quant_risk |
returns (decimal series) + benchmarkReturns? + confidence=0.95 |
{ var95, cvar95, downsideDeviation, maxDrawdownPct, beta, alpha, informationRatio, trackingError, periods } |
— (core risk module) |
quant_fund |
equityCurve + initialCapital=1e8 + managementFeeRate=0.02 + performanceFeeRate=0.2 |
{ initialCapital, finalNavNet, finalAum, peakNav, peakAum, gross/netReturnPct, fees, navNet } |
— (quant hedge-fund sim: NAV 1.00 start, daily mgmt fee, 20% high-water-mark performance fee) |
quant_metrics |
equityCurve + trades? |
{ totalReturnPct, maxDrawdownPct, sharpe, annualizedVol, calmar, sortino, winRate, profitFactor, avgPeriodReturnPct, tradeMetrics } (required trio: return/drawdown/sharpe) |
— (METRIC_CATALOG for UI pickers) |
quant_chart |
kind (candles/series/annotations) + matching data |
structured chart data (dsh-chart protocol: candles+overlays+markers / multi-series / annotation views) |
— (UI-route data plane) |
quant_execute_sim |
close + orders[{index, side, quantity?/valueFraction?}] + initialCash? + feeRate? + slippageBps? + latencyBars? |
{ fills, equityCurve, finalEquity, totalReturnPct, totalFee, totalSlippageCost, tradeCount, unfilledCount, cash, position } |
— (execution framework, no live trading) |
quant_research_pipeline |
symbol? + interval? + limit? + provider? + candles? + strategy/fund params |
{ candles, quality, stats, metrics, risk, drawdown, fund, factor, report, charts } |
— (one-call PDAT→PET research) |
quant_factor_evaluate |
factorValues + forwardReturns (factor[i] predicts ret[i+1]) + quantiles=5 + window=20 + decayHorizons=5 |
{ ic, rankIc, icDecay, icir, icSeries, quantileReturns, longShort, turnover, autocorr1, n } (alphalens set + RankIC/IC decay) |
— |
quant_factor_neutralize |
factorValues + groups? + styleFactors? + method? |
{ values(standardized), method, groupCount, styleCount, rSquared } |
— (group z-score / OLS residual neutralization) |
quant_walk_forward |
returns + features[][] + trainWindow + testWindow + step? |
{ predictions(null-aligned), oosIc, oosRankIc, oosCount, windows, trainR2Mean } |
— (rolling train / out-of-sample, no look-ahead) |
quant_linear_model |
X(samples×features) + y + lambda? + predictX? + yTest? |
{ intercept, weights, lambda, trainR2, n, predictions?, testR2?, testIc? } |
— (standalone OLS/Ridge fit & predict) |
quant_factor_combine |
factors: number[][] (equal length) + weights? |
{ signal(rank 0..1), effectiveWeights, factorCount } |
— (z-score weighting + cross-sectional ranking) |
quant_series_quality |
values: number[], jumpThreshold=0.2 |
{ count, missingCount, zOutliers, jumps, longestConstantRun, healthy } |
— (series-level quality) |
quant_data_annotate |
values: number[], jumpThreshold=0.2 |
{ count, annotations: [{index, label, severity, detail}], summary } |
— (point-level labeling, a tribute to Scale AI) |
quant_data_quality |
candles (quant_market_fetch output) |
{ count, highBelowLow, nonPositive, timeNotIncreasing, timeGaps, extremeMoves, healthy } |
— (pre-analysis health check) |
quant_data_guide |
query (channel name/data type, e.g. "tushare"/"financials") or channel (exact name) |
{ query, results: [{ name, url, cost, dataTypes, setup, tutorialUrls, bestFor, … }] } |
— (built-in 15-channel data knowledge base: A-shares/US/bonds + dsh ecosystem data plugins) |
quant_market_fetch |
symbol: string (e.g. BTCUSDT / sh600000 / AAPL), interval: 1m…1M, limit: 1-1000, provider: binance/okx/bybit/sina/tencent/yahoo |
{ symbol, interval, provider, candles: [{openTime, open, high, low, close, volume}] } |
— |
quant_sma |
values: number[], window: integer |
{ values: (number\|null)[], window } |
index window-1 |
quant_ema |
values: number[], window: integer |
{ values: (number\|null)[], window } |
index window-1 (seed = first-window mean, alpha = 2/(w+1)) |
quant_rsi |
values: number[], window: integer = 14 |
{ values: (number\|null)[], window } |
index window (Wilder smoothing) |
quant_macd |
values: number[], fast=12, slow=26, signal=9 |
{ macd, signal, histogram } (equal length) |
macd: slow-1; signal/histogram: slow+signal-2 |
quant_bollinger |
values: number[], window=20, multiplier=2 |
{ upper, middle, lower, window, multiplier } |
index window-1 (population std) |
quant_atr |
high/low/close: number[], window=14 |
{ values: (number\|null)[], window } |
index window (Wilder smoothing) |
quant_kdj |
high/low/close: number[], window=9 |
{ k, d, j } (equal length) |
index window-1 (RSV method, K/D seeded at 50) |
quant_williams_r |
high/low/close: number[], window=14 |
{ values: (number\|null)[], window } |
index window-1 (range -100..0) |
quant_cci |
high/low/close: number[], window=20 |
{ values: (number\|null)[], window } |
index window-1 (±100 overbought/oversold) |
quant_obv |
close/volume: number[] |
{ values: number[] } |
everywhere (first value 0, no nulls) |
quant_adx |
high/low/close: number[], window=14 |
{ adx, plusDi, minusDi, window } |
±DI: index window; ADX: index 2*window-1 |
quant_roc |
values: number[], window=12 |
{ values: (number\|null)[], window } |
index window |
quant_backtest |
close: number[], fast=10, slow=30, feeRate=0.001, stopLoss?, takeProfit? |
{ totalReturnPct, maxDrawdownPct, sharpe, position, equityCurve, trades(with exitReason) } |
first trade one bar after first confirmed cross |
quant_backtest_bollinger |
close: number[], window=20, multiplier=2, feeRate=0.001, stopLoss?, takeProfit? |
same (buy on upper-band breakout, sell on mid-band cross-down) |
one bar after first confirmed breakout |
quant_backtest_rsi |
close: number[], rsiWindow=14, buyBelow=30, sellAbove=70, feeRate=0.001, stopLoss?, takeProfit? |
same (buy on RSI cross-up through buyBelow, sell on cross-down through sellAbove) |
one bar after first confirmed signal |
quant_backtest_portfolio |
assets: [{name, close}], weights?, rebalanceEvery?, feeRate=0.001 |
{ totalReturnPct, maxDrawdownPct, sharpe, equityCurve, assetNames, finalWeights, rebalances } |
— (multi-asset portfolio) |
quant_backtest_grid |
close: number[], fastMin=3, fastMax=10, slowMin=10, slowMax=30, feeRate=0.001 |
{ results(sorted by return desc), best, fastRange, slowRange, feeRate } |
— (grid search; skips fast >= slow) |