Get Statistics
Retrieve aggregate performance statistics for signals within a specified date range.
Endpoint
GET https://enterprise.guardis.io/v1/signals/statisticsAuthentication
Include your API key in the X-API-Key header.
X-API-Key: your_api_key_hereQuery Parameters
from_date
string
Yes
Start of the date range (ISO 8601 format)
to_date
string
No
End of the date range (ISO 8601 format). Defaults to current time if omitted
model_name
string
No
Filter by model name. If omitted, statistics are calculated across all models
Example Request
curl -X GET "https://enterprise.guardis.io/v1/signals/statistics?from_date=2025-12-01T00:00:00Z&to_date=2025-12-07T23:59:59Z" \
-H "X-API-Key: your_api_key_here"Response Format
{
"from_date": "2025-12-01T00:00:00Z",
"to_date": "2025-12-07T23:59:59Z",
"model_name": null,
"total_signals": 284,
"roi_statistics": {
"avg_max_roi": "142.847291635",
"median_max_roi": "118.293847291",
"min_roi": "-12.847291635",
"max_roi": "847.291635000",
"std_dev_roi": "89.472918473"
},
"drawdown_statistics": {
"avg_drawdown_before_ath": "8.472918473",
"median_drawdown_before_ath": "5.293847291",
"min_drawdown": "0.000000000",
"max_drawdown": "42.847291635",
"std_dev_drawdown": "7.293847291"
},
"market_cap_statistics": {
"avg_signal_market_cap": "38472.918473650",
"median_signal_market_cap": "32847.291847365",
"avg_ath_market_cap": "94728.184736500",
"median_ath_market_cap": "78472.918473650"
},
"liquidity_statistics": {
"avg_liquidity_usd": "24847.291847365",
"median_liquidity_usd": "21293.847291847"
},
"model_breakdown": [
{
"model_name": "influx_high_on_dip",
"signal_count": 156,
"avg_max_roi": "158.472918473",
"median_max_roi": "132.847291847",
"avg_drawdown_before_ath": "6.847291847"
},
{
"model_name": "smart_money_surge",
"signal_count": 89,
"avg_max_roi": "124.293847291",
"median_max_roi": "98.472918473",
"avg_drawdown_before_ath": "10.293847291"
},
{
"model_name": "organic_momentum",
"signal_count": 39,
"avg_max_roi": "118.847291635",
"median_max_roi": "102.293847291",
"avg_drawdown_before_ath": "11.472918473"
}
],
"daily_breakdown": [
{
"date": "2025-12-07",
"signal_count": 42,
"avg_max_roi": "148.293847291"
},
{
"date": "2025-12-06",
"signal_count": 38,
"avg_max_roi": "139.472918473"
},
{
"date": "2025-12-05",
"signal_count": 45,
"avg_max_roi": "152.847291635"
}
]
}Field Reference
Response Wrapper
from_date
string
Start of the requested date range
to_date
string
End of the requested date range
model_name
string | null
Model filter applied, or null if all models
total_signals
integer
Total number of signals in the date range
ROI Statistics
avg_max_roi
string
Average maximum ROI percentage across all signals
median_max_roi
string
Median maximum ROI percentage
min_roi
string
Lowest ROI percentage observed
max_roi
string
Highest ROI percentage observed
std_dev_roi
string
Standard deviation of ROI percentages
Drawdown Statistics
avg_drawdown_before_ath
string
Average maximum drawdown before reaching ATH
median_drawdown_before_ath
string
Median maximum drawdown before ATH
min_drawdown
string
Lowest drawdown percentage observed
max_drawdown
string
Highest drawdown percentage observed
std_dev_drawdown
string
Standard deviation of drawdown percentages
Market Cap Statistics
avg_signal_market_cap
string
Average market cap at signal time (USD)
median_signal_market_cap
string
Median market cap at signal time (USD)
avg_ath_market_cap
string
Average ATH market cap (USD)
median_ath_market_cap
string
Median ATH market cap (USD)
Liquidity Statistics
avg_liquidity_usd
string
Average pool liquidity at signal time (USD)
median_liquidity_usd
string
Median pool liquidity at signal time (USD)
Model Breakdown
model_name
string
Name of the signal model
signal_count
integer
Number of signals from this model
avg_max_roi
string
Average maximum ROI for this model
median_max_roi
string
Median maximum ROI for this model
avg_drawdown_before_ath
string
Average drawdown before ATH for this model
Daily Breakdown
date
string
Date (YYYY-MM-DD format)
signal_count
integer
Number of signals on this date
avg_max_roi
string
Average maximum ROI for signals on this date
Note: Decimal values are returned as strings to preserve precision.
Example Usage
JavaScript:
const params = new URLSearchParams({
from_date: "2025-12-01T00:00:00Z",
to_date: "2025-12-07T23:59:59Z"
});
const response = await fetch(
`https://enterprise.guardis.io/v1/signals/statistics?${params}`,
{
headers: {
"X-API-Key": "your_api_key_here"
}
}
);
const stats = await response.json();
console.log(`Signal Statistics (${stats.from_date} to ${stats.to_date})`);
console.log(`Total Signals: ${stats.total_signals}`);
console.log(`\nROI Performance:`);
console.log(` Average: ${parseFloat(stats.roi_statistics.avg_max_roi).toFixed(2)}%`);
console.log(` Median: ${parseFloat(stats.roi_statistics.median_max_roi).toFixed(2)}%`);
console.log(` Best: ${parseFloat(stats.roi_statistics.max_roi).toFixed(2)}%`);
console.log(`\nDrawdown:`);
console.log(` Average: ${parseFloat(stats.drawdown_statistics.avg_drawdown_before_ath).toFixed(2)}%`);
console.log(` Median: ${parseFloat(stats.drawdown_statistics.median_drawdown_before_ath).toFixed(2)}%`);
console.log(`\nModel Breakdown:`);
for (const model of stats.model_breakdown) {
console.log(` ${model.model_name}: ${model.signal_count} signals, ${parseFloat(model.avg_max_roi).toFixed(2)}% avg ROI`);
}Python:
import requests
response = requests.get(
"https://enterprise.guardis.io/v1/signals/statistics",
params={
"from_date": "2025-12-01T00:00:00Z",
"to_date": "2025-12-07T23:59:59Z"
},
headers={"X-API-Key": "your_api_key_here"}
)
stats = response.json()
print(f"Signal Statistics ({stats['from_date']} to {stats['to_date']})")
print(f"Total Signals: {stats['total_signals']}")
print("\nROI Performance:")
print(f" Average: {float(stats['roi_statistics']['avg_max_roi']):.2f}%")
print(f" Median: {float(stats['roi_statistics']['median_max_roi']):.2f}%")
print(f" Best: {float(stats['roi_statistics']['max_roi']):.2f}%")
print("\nDrawdown:")
print(f" Average: {float(stats['drawdown_statistics']['avg_drawdown_before_ath']):.2f}%")
print(f" Median: {float(stats['drawdown_statistics']['median_drawdown_before_ath']):.2f}%")
print("\nModel Breakdown:")
for model in stats["model_breakdown"]:
avg_roi = float(model["avg_max_roi"])
print(f" {model['model_name']}: {model['signal_count']} signals, {avg_roi:.2f}% avg ROI")Error Responses
400
Missing required parameter or invalid format
401
Missing or invalid API key
422
Invalid date format or date range
500
Internal server error
{
"code": 400,
"message": "Missing required parameter: from_date"
}{
"code": 422,
"message": "Invalid date format. Use ISO 8601 format (e.g., 2025-12-01T00:00:00Z)"
}{
"code": 422,
"message": "Date range too large. Maximum allowed range is 90 days"
}Last updated
