Backtest approved forecasting models on a holdout tail, rank by error, and refit the winner for the requested forward horizon.
/api/v2/quant/model-tournamentsCandidate forecasts are persisted as auditable model runs. FinanceGPT does not represent tournament winners as guarantees of future performance.
quant:models:runThe playground uses deterministic isolated sandbox fixtures. It never queries production workspace data and does not require you to paste an API secret into the browser.
Sign in to run{
"data": {
"winner_model_key": "forecasting.holt_linear",
"winner_forecast": [
137.80000000000001136868377216160297393798828125,
140.19999999999998863131622783839702606201171875,
142.599999999999994315658113919198513031005859375
]
}
}curl -X POST \
https://equitygpt.app/api/v2/quant/model-tournaments \
-H "Authorization: Bearer $FINANCEGPT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"series":[100,102,103,106,108,111,113,116,118,121,124,126,129,131,134,137],"holdout":4,"forecast_horizon":3,"metric":"rmse"}'import os, requests
url = "https://equitygpt.app/api/v2/quant/model-tournaments"
headers = {"Authorization": f"Bearer {os.environ['FINANCEGPT_API_KEY']}"}
payload = {
"series": [
100,
102,
103,
106,
108,
111,
113,
116,
118,
121,
124,
126,
129,
131,
134,
137
],
"holdout": 4,
"forecast_horizon": 3,
"metric": "rmse"
}
response = requests.request("POST", url, headers=headers, json=payload)
response.raise_for_status()
print(response.json())const response = await fetch('https://equitygpt.app/api/v2/quant/model-tournaments', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.FINANCEGPT_API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({"series":[100,102,103,106,108,111,113,116,118,121,124,126,129,131,134,137],"holdout":4,"forecast_horizon":3,"metric":"rmse"})
});
if (!response.ok) throw new Error(`FinanceGPT ${response.status}`);
console.log(await response.json());<?php
$ch = curl_init('https://equitygpt.app/api/v2/quant/model-tournaments');
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_HTTPHEADER => ['Authorization: Bearer '.getenv('FINANCEGPT_API_KEY'), 'Content-Type: application/json'], CURLOPT_POSTFIELDS => '{\"series\":[100,102,103,106,108,111,113,116,118,121,124,126,129,131,134,137],\"holdout\":4,\"forecast_horizon\":3,\"metric\":\"rmse\"}']);
$response = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) >= 400) throw new RuntimeException($response);
echo $response;Explorer gives immediate isolated sandbox access. Production plans require a commercial entitlement.
Create account