Get Statistics

Retrieve aggregate performance statistics for signals within a specified date range.

Endpoint

GET https://enterprise.guardis.io/v1/signals/statistics

Authentication

Include your API key in the X-API-Key header.

X-API-Key: your_api_key_here

Query Parameters

Parameter
Type
Required
Description

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

Field
Type
Description

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

Field
Type
Description

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

Field
Type
Description

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

Field
Type
Description

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

Field
Type
Description

avg_liquidity_usd

string

Average pool liquidity at signal time (USD)

median_liquidity_usd

string

Median pool liquidity at signal time (USD)

Model Breakdown

Field
Type
Description

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

Field
Type
Description

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

Status Code
Description

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