NinjaQuant is a quant backtesting and analytics API on Injective Mainnet using real Market IDs to simulate perpetual futures strategies with comparison, regime detection, and risk metrics.

Demo : https://devtrad.onrender.com/docs
Repo : https://github.com/Suganthan96/Devtrad
NinjaQuant is a production-ready quantitative backtesting and analytics API built on Injective Mainnet perpetual futures markets.
It provides a structured intelligence layer on top of Injective’s derivatives infrastructure, enabling:
Strategy backtesting
Parameter comparison
Market regime detection
Risk analytics
Professional performance evaluation
This API uses hardcoded, blockchain-verified Market IDs directly from Injective Mainnet.
✅ Mainnet Market IDs
✅ Verified on Injective Explorer
✅ Connected to Pyth Oracle feeds
✅ Blockchain-validated market mapping
Server logs confirm usage:
✅ Using Injective Market ID
Market ID: 0x9b9980167ecc3645ff1a5517886652d94a0825e54a77d2057cbbe3ebee015963
Oracle: Pyth
Injective provides rich on-chain derivatives data.
However, developers lack:
A structured backtesting engine
Risk-adjusted performance metrics
Market condition analytics
Strategy comparison tools
A quant abstraction layer
Most APIs expose raw data — not evaluated trading intelligence.
NinjaQuant provides a modular FastAPI-based quant intelligence engine that:
Uses verified Injective Mainnet Market IDs
Fetches historical OHLCV data
Executes strategy simulations
Computes professional metrics
Classifies market conditions
Performs risk analysis
Compares multiple strategies in one request
It transforms Injective into a quant research-ready ecosystem.
/backtest/ema-crossoverBacktest EMA crossover strategy on Injective Mainnet markets.
POST http://devtrad.onrender.com/backtest/ema-crossover
Content-Type: application/json
{
"market": "BTC/USDT PERP",
"timeframe": "1h",
"parameters": {
"short_period": 9,
"long_period": 21
},
"initial_capital": 10000
}
/backtest/rsi-mean-reversionBacktest RSI mean reversion strategy.
POST https://devtrad.onrender.com/backtest/rsi-mean-reversion
Content-Type: application/json
{
"market": "ETH/USDT PERP",
"timeframe": "1h",
"strategy": "rsi_mean_reversion",
"parameters": {
"period": 14,
"oversold": 30,
"overbought": 70
},
"initial_capital": 10000
}
/compareCompare multiple strategy configurations in one request.
Example:
EMA(9,21) vs EMA(12,26)
RSI(14,30,70)
Automatically identifies best performing strategy.
POST http://devtrad.onrender.com/compare
Content-Type: application/json
{
"market": "BTC/USDT PERP",
"timeframe": "1h",
"strategies": [
{
"strategy": "ema_crossover",
"parameters": {
"short_period": 9,
"long_period": 21
}
},
{
"strategy": "ema_crossover",
"parameters": {
"short_period": 12,
"long_period": 26
}
},
{
"strategy": "rsi_mean_reversion",
"parameters": {
"period": 14,
"oversold": 30,
"overbought": 70
}
}
],
"initial_capital": 10000
}
/market-regimeClassifies current market condition.
Returns:
Trending / Ranging / Volatile
Trend strength
Volatility level
Strategy recommendation
GET http://devtrad.onrender.com/market-regime?market=BTC/USDT PERP&timeframe=1h
Content-Type: application/json
/risk-analysisProfessional risk metrics:
Return volatility
Value at Risk (VaR)
Max consecutive losses
Risk classification (Low / Medium / High)
POST http://devtrad.onrender.com/risk-analysis
Content-Type: application/json
{
"market": "ETH/USDT PERP",
"timeframe": "1h",
"strategy": "rsi_mean_reversion",
"parameters": {
"period": 14,
"oversold": 30,
"overbought": 70
},
"initial_capital": 10000
}
Uses Short EMA & Long EMA
Golden Cross → Buy
Death Cross → Sell
Best for trending markets
Uses RSI momentum oscillator
Oversold → Buy
Overbought → Sell
Best for range-bound markets
Each backtest returns:
Win Rate
Total Return
Maximum Drawdown
Sharpe Ratio
Total Trades
Formulas:
Win Rate = Profitable Trades / Total Trades
Total Return = (Final − Initial) / Initial
Max Drawdown = Largest peak-to-trough decline
Sharpe Ratio = Mean Return / Std Dev Return
Injective Mainnet Data
↓
Data Layer (injective_client.py)
↓
Strategy Engine
↓
Metrics Engine
↓
FastAPI Routes
↓
Structured JSON Output