Skip to content
Guavy Logo GUAVY
GET
·
/api/v1/trades/get-backtest-summary

Get Backtest Summary

This endpoint provides a high-level performance overview of historical backtest trades made by the Guavy simulator for a given instrument and trade strategy.
The trade simulator's strategies don't use Guavy's sentiment scores. Its signals and backtests are separate from the scored news, so you can read the two side by side.
See the results for every coin the simulator covers, both strategies side by side, on the crypto backtest results page. Each row is a backtest summary, rebuilt daily.

Attributes

symbol
string
Required
The symbol of the instrument to perform a backtest on.
strategy
string
Required
The risk profile to use for the backtest. Can be 'aggressive' or 'conservative'.
years
integer
Specifies the maximum number of years of historical data to include in the backtest (default is 2, maximum is 10; larger values are treated as 10).

API Request

Example Request with cURL

curl \
--request GET \
--url     'https://guavy.com/api/v1/trades/get-backtest-summary/<symbol>/<strategy>?years=<integer>' \
--header 'Authorization: Bearer YOUR-GUAVY-ACCESS-TOKEN' \
--header 'Content-Type: application/json'

This request format works across all modern HTTP clients, including Python requests, JavaScript fetch, and other programming language libraries.

Example Response for /api/v1/trades/get-backtest-summary/ADA/conservative?years=3

{
  "annualized_return": 35.15799583980703,
  "average_loss": -0.013143198755577437,
  "average_loss_percent": -2.5,
  "average_profit": 0.12872993726021892,
  "average_profit_percent": 28.24,
  "average_trade_duration": 4.9,
  "backtest_duration": 1007,
  "buy_and_hold_profit_percent": -69.75,
  "end_date": "2026-09-24",
  "final_value": 2296.0419749618845,
  "initial_investment": 1000,
  "peak_loss": -0.02313713255421814,
  "peak_profit": 0.5548583416717563,
  "profit_percent": 129.6,
  "profitable_trade_percent": 30.0,
  "profitable_trades": 6,
  "start_date": "2023-12-22",
  "total_profit": 1296.0419749618845,
  "total_trades": 20,
  "unprofitable_trades": 14
}

Response Object

annualized_return
float
The backtest's annualized return, from its total profit and duration.
average_loss
float
The average loss per unprofitable trade.
average_loss_percent
float
The average loss per unprofitable trade, as a percentage.
average_profit
float
The average gain per profitable trade.
average_profit_percent
float
The average gain per profitable trade, as a percentage.
average_trade_duration
float
The average length of a trade, in days.
backtest_duration
integer
The length of historical data provided to the backtest, in days.
buy_and_hold_profit_percent
float
Profit gains, as a percentage, if the Guavy simulator had bought and held the instrument for the duration of the backtest.
end_date
string
The end date of the backtest simulation.
final_value
float
The final value of the investment after all simulated trades.
initial_investment
integer
The initial value invested in the instrument.
peak_loss
float
The greatest loss made by a singular trade.
peak_profit
float
The highest profit made by a singular trade.
profit_percent
float
The total profit made from the simulated trades, as a percentage.
profitable_trade_percent
float
The percentage of trades that made a profit.
profitable_trades
integer
The number of trades that made a profit.
start_date
string
The start date of the backtest simulation.
total_profit
float
The total profit made from the simulated trades.
total_trades
integer
The total number of trades made in the simulation.
unprofitable_trades
integer
The number of unprofitable trades made in the simulation.

Token Costs

Each API call consumes tokens from your monthly budget. Endpoints that return richer or deeper data cost more tokens. Historical endpoints scale with the amount of data requested.

You never have to guess how much is left: every metered response carries your balance in x-tokens-* headers: x-tokens-cost (what this call cost), x-tokens-limit / x-tokens-remaining (monthly), and x-tokens-limit-today / x-tokens-remaining-today (daily). The remaining values are net of any credit applied to the same request. A 401 refused at your limit carries them too, with x-tokens-cost at 0 because nothing was charged.

Endpoint Token Cost
GET /api/v1/ping 1
GET /api/v1/instruments/list-symbols 1
GET /api/v1/instruments/search-instruments/:query 2
GET /api/v1/instruments/get-detail/:symbol 5
GET /api/v1/instruments/scorecard/:symbol 10
GET /api/v1/newsroom/get-market-summary 3
GET /api/v1/newsroom/get-article/:id 3
GET /api/v1/newsroom/get-recent-briefs/:symbol 3 – 8 (scales with limit)
GET /api/v1/newsroom/search-briefs/:symbol 3 – 8 (scales with limit)
GET /api/v1/newsroom/get-instrument-analysis/:symbol 10
GET /api/v1/trades/get-recent-buys 3
GET /api/v1/trades/get-recent-sells 3
GET /api/v1/trades/get-recommendations 5
GET /api/v1/trades/get-current-action/:symbol/:strategy 5
GET /api/v1/trades/get-trend-history/:symbol/:limit 5 – 15 (scales with limit)
GET /api/v1/trades/get-backtest-history/:symbol/:strategy 8 – 20 (scales with years)
GET /api/v1/trades/get-backtest-summary/:symbol/:strategy 8 – 20 (scales with years)
GET /api/v1/sentiment/get-sentiment-history/:symbol 3 – 12 (scales with limit)
GET /api/v1/technical-analysis/get-price-history/:symbol 2 – 5 (5 for the full series, less with limit, from or to)
GET /api/v1/technical-analysis/get-indicators/:symbol 8

Account Limits

Each plan includes a monthly token budget: 3,000 for Sandbox, 250,000 for Quant, and 1,000,000 for Pro. Each market has its own budget, and a daily cap as well (500 tokens a day on Sandbox). The monthly budget resets to the full amount on the 1st of the month for an account with no active monthly subscription, or on your subscription's renewal date once its payment clears. Unused base tokens don't carry over. You can top up at any time with a one-time token pack; pack tokens never expire and any unused pack balance rolls forward. If you exceed your budget, the API returns a 401 until the next reset or until you purchase more tokens.

Connection Limits

The Guavy API allows 300 requests per minute per API key, returning 429 above that. We recommend caching responses that don't change frequently to reduce token consumption and improve performance.

Was this helpful?
Feedback option #{picture.id}
Feedback option #{picture.id}
Feedback option #{picture.id}
Feedback option #{picture.id}

© 2026 Guavy Inc. All rights reserved.