Résultats du backtest des signaux
Résultats du backtest des signaux (BTC / ETH uniquement)
/api/signal/backtest/:coinRequête
Paramètres de requête
| Nom | Type | Requis | Par défaut | Valeurs autorisées | Description |
|---|---|---|---|---|---|
| coin path | string | Requis | — | BTC, ETH | Crypto ; les autres valeurs renvoient 400. Exemple: BTC |
Les paramètres marqués « path » font partie de l'URL.
Exemple de requête
curl -s "https://www.coinboss.com/api/signal/backtest/BTC"Champs de la réponse
Le tableau des champs est généré à partir de réponses réelles : il liste donc exactement ce que renvoie l'endpoint. Les chemins utilisent a[] pour les éléments d'un tableau et {*} pour les objets indexés par un nom dynamique, comme une crypto ou une plateforme.
| Champ | Type | Unité | Description |
|---|---|---|---|
| success | boolean | — | true lorsque la requête a abouti. En cas d'échec, le corps est `{ success: false, code, error, request_id }`. |
| coin | string | — | Symbole de la crypto, en majuscules (par exemple BTC). |
| backtest_basis | string | — | Crypto sur laquelle les statistiques du backtest ont été mesurées (`ETH`). |
| basis_note_code | string | — | `basis_native` lorsque la crypto demandée est celle du backtest, `basis_borrowed` lorsque les statistiques de l'ETH sont affichées pour une autre crypto. |
| basis | string | — | Prix futures moins prix spot, ou bloc basis. |
| note_code | string | — | Code fixe `eth_only_basis` : toutes les statistiques de cette réponse proviennent de l'historique ETHUSDT. |
| daily | object | — | Valeurs quotidiennes. |
| daily.dataset | object | — | Taille et plage de dates de l'historique de bougies quotidiennes sur lequel reposent les statistiques quotidiennes (historique complet et fenêtre récente). |
| daily.dataset.bars_full | number | count | Nombre de bougies quotidiennes dans l'historique complet. |
| daily.dataset.range_full | string | — | Première et dernière dates de l'historique complet, sous forme de texte. |
| daily.dataset.bars_recent | number | count | Nombre de bougies quotidiennes dans la fenêtre récente. |
| daily.dataset.range_recent | string | — | Première et dernière dates de la fenêtre récente, sous forme de texte. |
| daily.dataset.src | string | — | Source. |
| daily.baseline | object | — | Résultat de référence d'un achat effectué n'importe quel jour et conservé 30 jours, pour l'historique complet et la fenêtre récente. |
| daily.baseline.full | object | — | Données en pleine résolution. |
| daily.baseline.full.n | number | — | Nombre d'éléments comptés. |
| daily.baseline.full.hold30_winrate | number | % | Part de toutes les détentions de 30 jours de l'historique complet qui se sont soldées par un gain. |
| daily.baseline.full.hold30_pf | number | ratio | Facteur de profit de toutes les détentions de 30 jours de l'historique complet : somme des gains ÷ somme absolue des pertes. |
| daily.baseline.recent | object | — | Entrées les plus récentes. |
| daily.baseline.recent.n | number | — | Nombre d'éléments comptés. |
| daily.baseline.recent.hold30_winrate | number | % | Part de toutes les détentions de 30 jours de la fenêtre récente qui se sont soldées par un gain. |
| daily.baseline.recent.hold30_pf | number | ratio | Facteur de profit de toutes les détentions de 30 jours de la fenêtre récente : somme des gains ÷ somme absolue des pertes. |
| daily.timing | object | — | Rendement du buy-and-hold comparé à des règles simples de filtre de tendance, pour l'historique complet et la fenêtre récente. |
| daily.timing.full | object | — | Données en pleine résolution. |
| daily.timing.full.buy_hold_pct | number | % | Rendement du buy-and-hold sur l'historique complet, mesuré à partir de la 210e bougie. |
| daily.timing.full.above_ema200_pct | number | % | Rendement sur l'historique complet en ne détenant que les jours où la clôture est au-dessus de l'EMA 200 jours. |
| daily.timing.full.below_ema200_pct | number | % | Rendement sur l'historique complet en ne détenant que les jours où la clôture est en dessous de l'EMA 200 jours. |
| daily.timing.full.ema20_gt_ema50_pct | number | % | Rendement sur l'historique complet en ne détenant que lorsque l'EMA 20 jours est au-dessus de l'EMA 50 jours. |
| daily.timing.full.days_above | string | — | Texte `days held/total days` pour la règle « clôture au-dessus de l'EMA200 », historique complet. |
| daily.timing.full.days_fast | string | — | Texte `days held/total days` pour la règle « EMA20 au-dessus de l'EMA50 », historique complet. |
| daily.timing.recent | object | — | Entrées les plus récentes. |
| daily.timing.recent.buy_hold_pct | number | % | Rendement du buy-and-hold sur la fenêtre récente. |
| daily.timing.recent.above_ema200_pct | number | % | Rendement sur la fenêtre récente en ne détenant que les jours où la clôture est au-dessus de l'EMA 200 jours. |
| daily.timing.recent.below_ema200_pct | number | % | Rendement sur la fenêtre récente en ne détenant que les jours où la clôture est en dessous de l'EMA 200 jours. |
| daily.timing.recent.ema20_gt_ema50_pct | number | % | Rendement sur la fenêtre récente en ne détenant que lorsque l'EMA 20 jours est au-dessus de l'EMA 50 jours. |
| daily.timing.recent.days_above | string | — | Texte `days held/total days` pour la règle « clôture au-dessus de l'EMA200 », fenêtre récente. |
| daily.timing.recent.days_fast | string | — | Texte `days held/total days` pour la règle « EMA20 au-dessus de l'EMA50 », fenêtre récente. |
| daily.signals | object | — | Entrées de signal. clés dynamiques: bull_regime,bear_regime,multi_long,fast_filter,pullback_add,streak5_up |
| daily.signals.{*} | object | — | Entrées de signal. |
| daily.signals.{*}.hold | string | — | Règle de détention utilisée dans le backtest du signal désigné par la clé du dictionnaire, par exemple `30d`, `7d` ou une règle de take-profit / stop-loss en multiples d'ATR. |
| daily.signals.{*}.full | object | — | Données en pleine résolution. |
| daily.signals.{*}.full.n | number | — | Nombre d'éléments comptés. |
| daily.signals.{*}.full.winrate | number|null | — | Taux de réussite. |
| daily.signals.{*}.full.pf | number|null | — | Facteur de profit. |
| daily.signals.{*}.recent | object | — | Entrées les plus récentes. |
| daily.signals.{*}.recent.n | number | — | Nombre d'éléments comptés. |
| daily.signals.{*}.recent.winrate | number|null | — | Taux de réussite. |
| daily.signals.{*}.recent.pf | number|null | — | Facteur de profit. |
| daily.signals.{*}.src | string | — | Source. |
| daily.signals.{*}.full.total_pct | number | % | Part du total. peut être absent |
| daily.signals.{*}.full.mdd_pct | number | % | Drawdown maximal. peut être absent |
| daily.signals.{*}.recent.total_pct | number | % | Part du total. peut être absent |
| daily.signals.{*}.recent.mdd_pct | number | % | Drawdown maximal. peut être absent |
| m15 | object | — | Backtest sur bougies ETHUSDT 15 minutes : sorties en multiples d'ATR(14), coût aller-retour inclus. |
| m15.dataset | object | — | Taille, plage de dates et complétude de l'historique de bougies 15 minutes utilisé. |
| m15.dataset.bars | number | — | Bougies. |
| m15.dataset.range | string | — | Fenêtre demandée. |
| m15.dataset.completeness | string | — | Texte indiquant le nombre de bougies présentes par rapport au nombre attendu dans l'historique 15 minutes. |
| m15.dataset.src | string | — | Source. |
| m15.signals | object | — | Entrées de signal. clés dynamiques: knife_25,knife_30,cum8_4,cum16_6 |
| m15.signals.{*} | object | — | Entrées de signal. |
| m15.signals.{*}.signals | number | — | Entrées de signal. |
| m15.signals.{*}.n | number | — | Nombre d'éléments comptés. |
| m15.signals.{*}.winrate | number | — | Taux de réussite. |
| m15.signals.{*}.pf | number | — | Facteur de profit. |
| m15.signals.{*}.total_pct | number | % | Part du total. |
| m15.signals.{*}.mdd_pct | number | % | Drawdown maximal. |
| m15.signals.{*}.tp | number | x | Distance de take-profit utilisée pour le signal désigné par la clé du dictionnaire, en multiple d'ATR(14). |
| m15.signals.{*}.sl | number | x | Distance de stop-loss utilisée pour le signal désigné par la clé du dictionnaire, en multiple d'ATR(14). |
| m15.signals.{*}.src | string | — | Source. |
| m15.threshold_scan | array | — | Résultats du backtest selon l'ampleur de la baisse sur une seule bougie qui déclenche un achat. |
| m15.threshold_scan[] | object | — | Résultat pour un seuil de baisse. |
| m15.threshold_scan[].th | number | % | Variation de prix sur une seule bougie qui déclenche l'entrée (négative). |
| m15.threshold_scan[].signals | number | — | Entrées de signal. |
| m15.threshold_scan[].n | number | — | Nombre d'éléments comptés. |
| m15.threshold_scan[].winrate | number | — | Taux de réussite. |
| m15.threshold_scan[].pf | number | — | Facteur de profit. |
| m15.threshold_scan[].total_pct | number | % | Part du total. |
| m15.filter_test | array | — | Résultats de l'entrée sur repli de −2.0 %, avec un filtre supplémentaire à chaque fois (RSI, volume, EMA200). |
| m15.filter_test[] | object | — | Résultat pour une variante de filtre. |
| m15.filter_test[].code | string | — | Code. |
| m15.filter_test[].n | number | — | Nombre d'éléments comptés. |
| m15.filter_test[].winrate | number | — | Taux de réussite. |
| m15.filter_test[].pf | number | — | Facteur de profit. |
| m15.filter_test[].total_pct | number | % | Part du total. |
| m15.confirm_test | array | — | Résultats selon le moment de l'entrée : immédiatement, ou après avoir attendu une ou deux bougies de confirmation. |
| m15.confirm_test[] | object | — | Résultat pour une variante de moment d'entrée. |
| m15.confirm_test[].code | string | — | Code. |
| m15.confirm_test[].n | number | — | Nombre d'éléments comptés. |
| m15.confirm_test[].winrate | number | — | Taux de réussite. |
| m15.confirm_test[].pf | number | — | Facteur de profit. |
| m15.confirm_test[].total_pct | number | % | Part du total. |
| m15.cost_test | array | — | Résultats selon différentes hypothèses de coût de trading aller-retour. |
| m15.cost_test[] | object | — | Résultat pour une hypothèse de coût. |
| m15.cost_test[].cost_pct | number | % | Coût de trading aller-retour retenu pour cette exécution, en pourcentage du notionnel. |
| m15.cost_test[].pf | number | — | Facteur de profit. |
| m15.cost_test[].total_pct | number | % | Part du total. |
| m15.hour_test | array | — | Résultats de l'entrée sur repli de −1.5 %, ventilés par plage horaire UTC. |
| m15.hour_test[] | object | — | Résultat pour une plage horaire UTC. |
| m15.hour_test[].code | string | — | Code. |
| m15.hour_test[].n | number | — | Nombre d'éléments comptés. |
| m15.hour_test[].winrate | number | — | Taux de réussite. |
| m15.hour_test[].pf | number | — | Facteur de profit. |
| m15.hour_test[].total_pct | number | % | Part du total. |
| m15.short_side | array | — | Résultats du trade miroir : vente à découvert après une envolée sur une seule bougie. |
| m15.short_side[] | object | — | Résultat pour un seuil d'envolée. |
| m15.short_side[].code | string | — | Code. |
| m15.short_side[].n | number | — | Nombre d'éléments comptés. |
| m15.short_side[].winrate | number | — | Taux de réussite. |
| m15.short_side[].pf | number | — | Facteur de profit. |
| m15.short_side[].total_pct | number | % | Part du total. |
| weekday | array | — | Jour de la semaine. |
| weekday[] | object | — | Jour de la semaine. |
| weekday[].d | number | — | Date calendaire (UTC). |
| weekday[].up_rate | number | — | Part des périodes ayant clôturé en hausse. |
| weekday[].mean_pct | number | % | Variation de prix quotidienne moyenne ce jour de la semaine (`d` 1 = lundi … 7 = dimanche), historique complet. |
| month | array | — | Mois calendaire. |
| month[] | object | — | Mois calendaire. |
| month[].m | number | — | Numéro du mois civil, 1–12. |
| month[].up_rate | number | — | Part des périodes ayant clôturé en hausse. |
| month[].median_pct | number | % | Médiane de la variation de prix cumulée de ce mois civil sur les années de l'historique complet. |
Généré à partir de 1 réponses réelles (2026-11-11 23:01 UTC).
Exemple de réponse
/api/signal/backtest/BTC · Réponse réelle (capture : 2026-11-13 03:59:07 UTC). Les tableaux et dictionnaires longs sont abrégés pour l'affichage : month comptait 12 éléments; weekday comptait 7 éléments; m15.signals comptait 4 éléments; daily.signals comptait 12 éléments; m15.cost_test comptait 5 éléments; m15.hour_test comptait 3 éléments.
- "success"true
- "coin""BTC"
- "backtest_basis""ETH"
- "basis_note_code""basis_borrowed"
- "basis""ETHUSDT"
- "note_code""eth_only_basis"
- "daily"
- "dataset"
- "baseline"
- "timing"
- "signals"
- "m15"
- "dataset"
- "signals"
- "threshold_scan"
- "filter_test"
- "confirm_test"
- "cost_test"
- "hour_test"
- "short_side"
- "weekday"
- "month"
Détails
- Authentification
- Aucune. Endpoint public.
- Limite de requêtes
- 1200 requêtes par minute et par IP
- Cache serveur
- 60m
- Micro-cache en périphérie
- 10s
- Fenêtre
- fixe : bougies quotidiennes du 2017-08-17 au 2026-07-30, bougies de 15 minutes de 2023-01 à 2026-07
- Sources de données
- Synthèse statique d'un backtest hors ligne sur les bougies ETHUSDT des plateformes ; elle n'est pas recalculée.
- Couverture des plateformes
- Backtest sur ETH uniquement ; BTC renvoie les mêmes chiffres, fondés sur ETH.
- Unités
- win rate in percent, profit factor, sample counts
- Horodatages
- Millisecondes depuis l'epoch Unix (UTC), sauf indication contraire dans la description du champ
- Format de réponse
- json
- Stabilité
- Stable
Statut en direct
Disponibilité, 30 derniers jours
100 % des 408 contrôles réussis
Erreurs
Les appels en échec ont la même structure sur tous les endpoints. La liste complète figure sur la page des erreurs. Erreurs et limites de requêtes →
| Code | HTTP | Signification | Que faire |
|---|---|---|---|
| INVALID_PARAM | 400 | Un paramètre requis est manquant ou une valeur n'est pas acceptée. `param` indique le nom du paramètre lorsqu'il est connu. | Ne réessayez pas à l'identique ; corrigez la requête. |
| UNAUTHORIZED | 401 | L'en-tête `CB-API-KEY` a été envoyé, mais la clé est inconnue ou révoquée. Les données publiques ne nécessitent aucune clé — supprimez l'en-tête ou utilisez une clé valide. | Ne réessayez pas à l'identique. |
| FORBIDDEN | 403 | La route ne fait pas partie de l'API publique (interne ou réservée aux comptes). | Ne réessayez pas. |
| NOT_FOUND | 404 | Route inconnue, ou la crypto / la plateforme / le fonds demandé n'existe pas. | Ne réessayez pas ; vérifiez le chemin et les identifiants dans le catalogue. |
| RATE_LIMITED | 429 | Plus de requêtes que la limite par minute. `Retry-After` indique le nombre de secondes à attendre. | Attendez la durée indiquée par `Retry-After`, puis réessayez avec backoff. |
| INTERNAL | 500 | Erreur serveur inattendue. Le message est volontairement générique ; citez `request_id` lorsque vous la signalez. | Réessayez une fois après quelques secondes ; si l'erreur persiste, signalez-la avec l'ID de requête. |
| UPSTREAM_FAILED | 503 | La source de données derrière cet endpoint n'a pas répondu à temps. Aucun chiffre périmé ni de substitution n'est renvoyé à sa place. | Réessayez avec backoff ; consultez la page de statut. |
| UNAVAILABLE | 501 / 503 | Le jeu de données n'est temporairement pas prêt (préchauffage du cache) ou l'endpoint n'a pas encore de source publique licite. | Réessayez plus tard ; le catalogue signale les endpoints indisponibles par conception. |
| REQUEST_FAILED | 200 | Certains endpoints plus anciens répondent HTTP 200 avec `success: false`. Vérifiez toujours `success`, et pas seulement le statut HTTP. | Dépend du message ; à traiter comme une requête en échec. |
Essayer
/api/signal/backtest/:coinDisponiblestring — Coin; other values return 400.
https://www.coinboss.com/api/signal/backtest/BTCAutres endpoints de cette catégorie
- Série de l'indicateur d'accumulation AHR999 /api/indicators/ahr999
- Indice de bulle Bitcoin /api/indicators/bitcoin-bubble
- Historique complet des clôtures quotidiennes du BTC /api/indicators/btc-history
- Liste de contrôle des signaux de sommet de marché haussier /api/indicators/bull-peak-signals
- Indice composite de marché haussier CBBI /api/indicators/cbbi
- Indice de risque des dérivés (méthode CoinBoss) /api/indicators/cdri
- Indice composite des dérivés (méthode CoinBoss) /api/indicators/cgdi
- Corrélation du BTC avec l'or / le S&P 500 /api/indicators/correlation
- Matrice de corrélation des principaux actifs /api/indicators/correlation-matrix
- Statut légal des cryptos par pays /api/indicators/crypto-legality
- Bandes de valorisation de sommet de cycle /api/indicators/cycle-caps
- Série du temps de doublement du prix du BTC /api/indicators/doubling-time
- Tendance de l'intérêt de recherche sur Google /api/indicators/google-trends
- Séries macro /api/indicators/macro-series
- Résultats du modèle de prévision de prix /api/indicators/price-forecast
- Série du drawdown depuis l'ATH /api/indicators/price-no-turning-back
- Nombre d'abonnés du subreddit Bitcoin sur Reddit /api/indicators/reddit-subs
- Pages vues sur Wikipedia /api/indicators/wikipedia-pageviews
- Indice de saison altcoin (méthode CoinBoss) /api/indices/altseason
- Radar de creux /api/indices/bottom-radar
- Étude de cas historique du radar de creux /api/indices/bottom-radar/case-0819
- Tableau de bord du signal multifactoriel BTC /api/indices/btc-signal
- Backtest du signal BTC /api/indices/btc-signal/backtest
- Indice Fear & Greed /api/indices/fear-greed
- Indice Fear & Greed (valeur actuelle et historique) /api/market/fear-greed
- Résultats du backtest des signaux /api/signal/backtest/:coin
- Tableau de bord de suivi des signaux /api/signal/monitor/:coin