Ergebnisse des Signal-Backtests
Ergebnisse des Signal-Backtests (nur BTC / ETH)
/api/signal/backtest/:coinAnfrage
Query-Parameter
| Name | Typ | Erforderlich | Standard | Zulässige Werte | Beschreibung |
|---|---|---|---|---|---|
| coin path | string | Erforderlich | — | BTC, ETH | Coin; andere Werte liefern 400. Beispiel: BTC |
Mit „path“ gekennzeichnete Parameter sind Teil der URL.
Beispielanfrage
curl -s "https://www.coinboss.com/api/signal/backtest/BTC"Antwortfelder
Die Feldtabelle wird aus echten Antworten erzeugt und führt daher genau das auf, was der Endpunkt zurückgibt. In Pfaden steht a[] für Array-Elemente und {*} für Objekte, deren Schlüssel ein dynamischer Name ist, etwa ein Coin oder eine Börse.
| Feld | Typ | Einheit | Beschreibung |
|---|---|---|---|
| success | boolean | — | true, wenn die Anfrage erfolgreich war. Im Fehlerfall lautet der Body `{ success: false, code, error, request_id }`. |
| coin | string | — | Coin-Symbol in Großbuchstaben (zum Beispiel BTC). |
| backtest_basis | string | — | Coin, an dem die Backtest-Statistiken gemessen wurden (`ETH`). |
| basis_note_code | string | — | `basis_native`, wenn der angefragte Coin der Coin des Backtests ist, `basis_borrowed`, wenn ETH-Statistiken für einen anderen Coin angezeigt werden. |
| basis | string | — | Futures-Preis minus Spot-Preis, oder der Basis-Block. |
| note_code | string | — | Fester Code `eth_only_basis`: Jede Statistik in dieser Antwort stammt aus der ETHUSDT-Historie. |
| daily | object | — | Tageswerte. |
| daily.dataset | object | — | Umfang und Datumsbereich der Tageskerzen-Historie hinter den Tagesstatistiken (gesamte Historie und jüngstes Zeitfenster). |
| daily.dataset.bars_full | number | count | Anzahl der Tageskerzen in der gesamten Historie. |
| daily.dataset.range_full | string | — | Erstes und letztes Datum der gesamten Historie, als Text. |
| daily.dataset.bars_recent | number | count | Anzahl der Tageskerzen im jüngsten Zeitfenster. |
| daily.dataset.range_recent | string | — | Erstes und letztes Datum des jüngsten Zeitfensters, als Text. |
| daily.dataset.src | string | — | Quelle. |
| daily.baseline | object | — | Referenzergebnis für einen Kauf an einem beliebigen Tag mit 30 Tagen Haltedauer, für die gesamte Historie und das jüngste Zeitfenster. |
| daily.baseline.full | object | — | Daten in voller Auflösung. |
| daily.baseline.full.n | number | — | Anzahl der gezählten Elemente. |
| daily.baseline.full.hold30_winrate | number | % | Anteil aller 30-Tage-Haltephasen in der gesamten Historie, die im Gewinn endeten. |
| daily.baseline.full.hold30_pf | number | ratio | Profitfaktor aller 30-Tage-Haltephasen in der gesamten Historie: Summe der Gewinne ÷ absolute Summe der Verluste. |
| daily.baseline.recent | object | — | Jüngste Einträge. |
| daily.baseline.recent.n | number | — | Anzahl der gezählten Elemente. |
| daily.baseline.recent.hold30_winrate | number | % | Anteil aller 30-Tage-Haltephasen im jüngsten Zeitfenster, die im Gewinn endeten. |
| daily.baseline.recent.hold30_pf | number | ratio | Profitfaktor aller 30-Tage-Haltephasen im jüngsten Zeitfenster: Summe der Gewinne ÷ absolute Summe der Verluste. |
| daily.timing | object | — | Rendite von Buy-and-Hold im Vergleich zu einfachen Trendfilter-Regeln, für die gesamte Historie und das jüngste Zeitfenster. |
| daily.timing.full | object | — | Daten in voller Auflösung. |
| daily.timing.full.buy_hold_pct | number | % | Buy-and-Hold-Rendite über die gesamte Historie, gemessen ab der 210. Kerze. |
| daily.timing.full.above_ema200_pct | number | % | Rendite über die gesamte Historie, wenn nur an Tagen gehalten wird, an denen der Schlusskurs über dem 200-Tage-EMA liegt. |
| daily.timing.full.below_ema200_pct | number | % | Rendite über die gesamte Historie, wenn nur an Tagen gehalten wird, an denen der Schlusskurs unter dem 200-Tage-EMA liegt. |
| daily.timing.full.ema20_gt_ema50_pct | number | % | Rendite über die gesamte Historie, wenn nur gehalten wird, solange der 20-Tage-EMA über dem 50-Tage-EMA liegt. |
| daily.timing.full.days_above | string | — | Text `days held/total days` für die Regel „Schlusskurs über EMA200“, gesamte Historie. |
| daily.timing.full.days_fast | string | — | Text `days held/total days` für die Regel „EMA20 über EMA50“, gesamte Historie. |
| daily.timing.recent | object | — | Jüngste Einträge. |
| daily.timing.recent.buy_hold_pct | number | % | Buy-and-Hold-Rendite über das jüngste Zeitfenster. |
| daily.timing.recent.above_ema200_pct | number | % | Rendite über das jüngste Zeitfenster, wenn nur an Tagen gehalten wird, an denen der Schlusskurs über dem 200-Tage-EMA liegt. |
| daily.timing.recent.below_ema200_pct | number | % | Rendite über das jüngste Zeitfenster, wenn nur an Tagen gehalten wird, an denen der Schlusskurs unter dem 200-Tage-EMA liegt. |
| daily.timing.recent.ema20_gt_ema50_pct | number | % | Rendite über das jüngste Zeitfenster, wenn nur gehalten wird, solange der 20-Tage-EMA über dem 50-Tage-EMA liegt. |
| daily.timing.recent.days_above | string | — | Text `days held/total days` für die Regel „Schlusskurs über EMA200“, jüngstes Zeitfenster. |
| daily.timing.recent.days_fast | string | — | Text `days held/total days` für die Regel „EMA20 über EMA50“, jüngstes Zeitfenster. |
| daily.signals | object | — | Signaleinträge. dynamische Schlüssel: bull_regime,bear_regime,multi_long,fast_filter,pullback_add,streak5_up |
| daily.signals.{*} | object | — | Signaleinträge. |
| daily.signals.{*}.hold | string | — | Halteregel, die im Backtest des durch den Map-Schlüssel benannten Signals verwendet wird, zum Beispiel `30d`, `7d` oder eine Take-Profit- / Stop-Loss-Regel in ATR-Vielfachen. |
| daily.signals.{*}.full | object | — | Daten in voller Auflösung. |
| daily.signals.{*}.full.n | number | — | Anzahl der gezählten Elemente. |
| daily.signals.{*}.full.winrate | number|null | — | Trefferquote. |
| daily.signals.{*}.full.pf | number|null | — | Profitfaktor. |
| daily.signals.{*}.recent | object | — | Jüngste Einträge. |
| daily.signals.{*}.recent.n | number | — | Anzahl der gezählten Elemente. |
| daily.signals.{*}.recent.winrate | number|null | — | Trefferquote. |
| daily.signals.{*}.recent.pf | number|null | — | Profitfaktor. |
| daily.signals.{*}.src | string | — | Quelle. |
| daily.signals.{*}.full.total_pct | number | % | Anteil an der Gesamtsumme. kann fehlen |
| daily.signals.{*}.full.mdd_pct | number | % | Maximaler Drawdown. kann fehlen |
| daily.signals.{*}.recent.total_pct | number | % | Anteil an der Gesamtsumme. kann fehlen |
| daily.signals.{*}.recent.mdd_pct | number | % | Maximaler Drawdown. kann fehlen |
| m15 | object | — | Backtest auf 15-Minuten-Kerzen von ETHUSDT: Ausstiege in Vielfachen des ATR(14), Kosten für Ein- und Ausstieg eingerechnet. |
| m15.dataset | object | — | Umfang, Datumsbereich und Vollständigkeit der verwendeten 15-Minuten-Kerzenhistorie. |
| m15.dataset.bars | number | — | Kerzen. |
| m15.dataset.range | string | — | Angefragtes Zeitfenster. |
| m15.dataset.completeness | string | — | Text, der die vorhandenen Kerzen den erwarteten Kerzen in der 15-Minuten-Historie gegenüberstellt. |
| m15.dataset.src | string | — | Quelle. |
| m15.signals | object | — | Signaleinträge. dynamische Schlüssel: knife_25,knife_30,cum8_4,cum16_6 |
| m15.signals.{*} | object | — | Signaleinträge. |
| m15.signals.{*}.signals | number | — | Signaleinträge. |
| m15.signals.{*}.n | number | — | Anzahl der gezählten Elemente. |
| m15.signals.{*}.winrate | number | — | Trefferquote. |
| m15.signals.{*}.pf | number | — | Profitfaktor. |
| m15.signals.{*}.total_pct | number | % | Anteil an der Gesamtsumme. |
| m15.signals.{*}.mdd_pct | number | % | Maximaler Drawdown. |
| m15.signals.{*}.tp | number | x | Take-Profit-Abstand für das durch den Map-Schlüssel benannte Signal, als Vielfaches des ATR(14). |
| m15.signals.{*}.sl | number | x | Stop-Loss-Abstand für das durch den Map-Schlüssel benannte Signal, als Vielfaches des ATR(14). |
| m15.signals.{*}.src | string | — | Quelle. |
| m15.threshold_scan | array | — | Backtest-Ergebnisse nach Größe des Rückgangs einer einzelnen Kerze, der einen Kauf auslöst. |
| m15.threshold_scan[] | object | — | Ergebnis für eine Rückgangsschwelle. |
| m15.threshold_scan[].th | number | % | Preisveränderung einer einzelnen Kerze, die den Einstieg auslöst (negativ). |
| m15.threshold_scan[].signals | number | — | Signaleinträge. |
| m15.threshold_scan[].n | number | — | Anzahl der gezählten Elemente. |
| m15.threshold_scan[].winrate | number | — | Trefferquote. |
| m15.threshold_scan[].pf | number | — | Profitfaktor. |
| m15.threshold_scan[].total_pct | number | % | Anteil an der Gesamtsumme. |
| m15.filter_test | array | — | Ergebnisse des Einstiegs bei einem Rücksetzer von −2,0 % mit jeweils einem zusätzlichen Filter (RSI, Volumen, EMA200). |
| m15.filter_test[] | object | — | Ergebnis für eine Filtervariante. |
| m15.filter_test[].code | string | — | Code. |
| m15.filter_test[].n | number | — | Anzahl der gezählten Elemente. |
| m15.filter_test[].winrate | number | — | Trefferquote. |
| m15.filter_test[].pf | number | — | Profitfaktor. |
| m15.filter_test[].total_pct | number | % | Anteil an der Gesamtsumme. |
| m15.confirm_test | array | — | Ergebnisse nach Einstiegszeitpunkt: sofort oder nach Abwarten von einer oder zwei bestätigenden Kerzen. |
| m15.confirm_test[] | object | — | Ergebnis für eine Variante des Einstiegszeitpunkts. |
| m15.confirm_test[].code | string | — | Code. |
| m15.confirm_test[].n | number | — | Anzahl der gezählten Elemente. |
| m15.confirm_test[].winrate | number | — | Trefferquote. |
| m15.confirm_test[].pf | number | — | Profitfaktor. |
| m15.confirm_test[].total_pct | number | % | Anteil an der Gesamtsumme. |
| m15.cost_test | array | — | Ergebnisse unter verschiedenen angenommenen Handelskosten für Ein- und Ausstieg. |
| m15.cost_test[] | object | — | Ergebnis für eine Kostenannahme. |
| m15.cost_test[].cost_pct | number | % | In diesem Lauf angenommene Handelskosten für Ein- und Ausstieg, als Prozentsatz des Nominalwerts. |
| m15.cost_test[].pf | number | — | Profitfaktor. |
| m15.cost_test[].total_pct | number | % | Anteil an der Gesamtsumme. |
| m15.hour_test | array | — | Ergebnisse des Einstiegs bei einem Rücksetzer von −1,5 %, aufgeteilt nach UTC-Stundenfenster. |
| m15.hour_test[] | object | — | Ergebnis für ein UTC-Stundenfenster. |
| m15.hour_test[].code | string | — | Code. |
| m15.hour_test[].n | number | — | Anzahl der gezählten Elemente. |
| m15.hour_test[].winrate | number | — | Trefferquote. |
| m15.hour_test[].pf | number | — | Profitfaktor. |
| m15.hour_test[].total_pct | number | % | Anteil an der Gesamtsumme. |
| m15.short_side | array | — | Ergebnisse des spiegelbildlichen Trades: Short-Einstieg nach einem sprunghaften Anstieg einer einzelnen Kerze. |
| m15.short_side[] | object | — | Ergebnis für eine Anstiegsschwelle. |
| m15.short_side[].code | string | — | Code. |
| m15.short_side[].n | number | — | Anzahl der gezählten Elemente. |
| m15.short_side[].winrate | number | — | Trefferquote. |
| m15.short_side[].pf | number | — | Profitfaktor. |
| m15.short_side[].total_pct | number | % | Anteil an der Gesamtsumme. |
| weekday | array | — | Wochentag. |
| weekday[] | object | — | Wochentag. |
| weekday[].d | number | — | Kalenderdatum (UTC). |
| weekday[].up_rate | number | — | Anteil der Perioden, die höher geschlossen haben. |
| weekday[].mean_pct | number | % | Mittlere tägliche Preisveränderung an diesem Wochentag (`d` 1 = Montag … 7 = Sonntag), gesamte Historie. |
| month | array | — | Kalendermonat. |
| month[] | object | — | Kalendermonat. |
| month[].m | number | — | Nummer des Kalendermonats, 1–12. |
| month[].up_rate | number | — | Anteil der Perioden, die höher geschlossen haben. |
| month[].median_pct | number | % | Median der kumulierten Preisveränderung dieses Kalendermonats über die Jahre der gesamten Historie. |
Erzeugt 2026-11-11 23:01 UTC aus 1 echten Antworten.
Beispielantwort
/api/signal/backtest/BTC · Echte Antwort, erfasst 2026-11-13 03:59:07 UTC. Lange Arrays und Maps sind für die Anzeige gekürzt: month hatte 12 Elemente; weekday hatte 7 Elemente; m15.signals hatte 4 Elemente; daily.signals hatte 12 Elemente; m15.cost_test hatte 5 Elemente; m15.hour_test hatte 3 Elemente.
- "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"
Details
- Authentifizierung
- Keine. Öffentlicher Endpunkt.
- Rate-Limit
- 1200 Anfragen pro Minute und IP
- Server-Cache
- 60m
- Edge-Micro-Cache
- 10s
- Zeitfenster
- fest: Tageskerzen 2017-08-17 bis 2026-07-30, 15-Minuten-Kerzen 2023-01 bis 2026-07
- Datenquellen
- Statische Zusammenfassung eines Offline-Backtests auf ETHUSDT-Klines der Börsen; wird nicht neu berechnet.
- Börsenabdeckung
- Nur ETH-Backtest; BTC liefert dieselben ETH-basierten Zahlen.
- Einheiten
- win rate in percent, profit factor, sample counts
- Zeitstempel
- Unix-Epoche in Millisekunden (UTC), sofern die Feldbeschreibung nichts anderes angibt
- Antwortformat
- json
- Stabilität
- Stabil
Live-Status
Verfügbarkeit, letzte 30 Tage
100 % von 408 Prüfungen bestanden
Fehler
Fehlgeschlagene Aufrufe haben auf jedem Endpunkt denselben Aufbau. Die vollständige Liste steht auf der Fehlerseite. Fehler und Rate-Limits →
| Code | HTTP | Bedeutung | Empfohlene Reaktion |
|---|---|---|---|
| INVALID_PARAM | 400 | Ein erforderlicher Parameter fehlt oder ein Wert wird nicht akzeptiert. `param` nennt den Parameter, sofern er bekannt ist. | Nicht unverändert wiederholen; die Anfrage korrigieren. |
| UNAUTHORIZED | 401 | Der Header `CB-API-KEY` wurde gesendet, der Schlüssel ist jedoch unbekannt oder widerrufen. Öffentliche Daten erfordern keinen Schlüssel – lassen Sie den Header weg oder verwenden Sie einen gültigen Schlüssel. | Nicht unverändert wiederholen. |
| FORBIDDEN | 403 | Die Route gehört nicht zur öffentlichen API (intern oder nur für Konten). | Nicht wiederholen. |
| NOT_FOUND | 404 | Unbekannte Route, oder der angefragte Coin / die Börse / der Fonds existiert nicht. | Nicht wiederholen; Pfad und Kennungen mit dem Katalog abgleichen. |
| RATE_LIMITED | 429 | Mehr Anfragen, als das Limit pro Minute zulässt. `Retry-After` gibt die Wartezeit in Sekunden an. | `Retry-After` abwarten, dann mit Backoff wiederholen. |
| INTERNAL | 500 | Unerwarteter Serverfehler. Die Meldung ist bewusst allgemein gehalten; geben Sie `request_id` an, wenn Sie den Fehler melden. | Einmal nach einigen Sekunden wiederholen; wenn der Fehler bestehen bleibt, mit der Request-ID melden. |
| UPSTREAM_FAILED | 503 | Die Datenquelle hinter diesem Endpunkt hat nicht rechtzeitig geantwortet. Es werden ersatzweise keine veralteten oder stellvertretenden Zahlen zurückgegeben. | Mit Backoff wiederholen; die Statusseite prüfen. |
| UNAVAILABLE | 501 / 503 | Der Datensatz ist vorübergehend nicht bereit (Cache wird aufgewärmt), oder der Endpunkt hat noch keine rechtmäßige öffentliche Quelle. | Später wiederholen; der Katalog kennzeichnet Endpunkte, die konzeptbedingt nicht verfügbar sind. |
| REQUEST_FAILED | 200 | Einige ältere Endpunkte antworten mit HTTP 200 und `success: false`. Prüfen Sie immer `success`, nicht nur den HTTP-Status. | Hängt von der Meldung ab; als fehlgeschlagene Anfrage behandeln. |
Ausprobieren
/api/signal/backtest/:coinVerfügbarstring — Coin; other values return 400.
https://www.coinboss.com/api/signal/backtest/BTCMehr in dieser Kategorie
- Zeitreihe des AHR999-Akkumulationsindikators /api/indicators/ahr999
- Bitcoin-Blasenindex /api/indicators/bitcoin-bubble
- Vollständige Historie der BTC-Tagesschlusskurse /api/indicators/btc-history
- Checkliste der Signale für ein Bullenmarkt-Hoch /api/indicators/bull-peak-signals
- CBBI-Sammelindex für den Bullenmarkt /api/indicators/cbbi
- Derivate-Risikoindex (CoinBoss-Methode) /api/indicators/cdri
- Derivate-Sammelindex (CoinBoss-Methode) /api/indicators/cgdi
- Korrelation von BTC mit Gold / S&P 500 /api/indicators/correlation
- Korrelationsmatrix der wichtigsten Assets /api/indicators/correlation-matrix
- Rechtsstatus von Kryptowährungen nach Land /api/indicators/crypto-legality
- Bewertungsbänder für Zyklushochs /api/indicators/cycle-caps
- Zeitreihe der Verdopplungszeit des BTC-Preises /api/indicators/doubling-time
- Trend des Google-Suchinteresses /api/indicators/google-trends
- Makro-Zeitreihen /api/indicators/macro-series
- Ausgabe des Preisprognosemodells /api/indicators/price-forecast
- Zeitreihe des Drawdowns vom ATH /api/indicators/price-no-turning-back
- Abonnentenzahl des Bitcoin-Subreddits auf Reddit /api/indicators/reddit-subs
- Wikipedia-Seitenaufrufe /api/indicators/wikipedia-pageviews
- Altcoin-Season-Index (CoinBoss-Methode) /api/indices/altseason
- Boden-Radar /api/indices/bottom-radar
- Boden-Radar: historische Fallstudie /api/indices/bottom-radar/case-0819
- Dashboard des BTC-Multifaktor-Signals /api/indices/btc-signal
- Backtest des BTC-Signals /api/indices/btc-signal/backtest
- Fear-&-Greed-Index /api/indices/fear-greed
- Fear-&-Greed-Index (aktuell und Historie) /api/market/fear-greed
- Ergebnisse des Signal-Backtests /api/signal/backtest/:coin
- Dashboard des Signal-Monitors /api/signal/monitor/:coin