/api/signal/backtest/:coin
GETVerfügbar

Ergebnisse des Signal-Backtests

Ergebnisse des Signal-Backtests (nur BTC / ETH)

GET/api/signal/backtest/:coin

Anfrage

Query-Parameter

NameTypErforderlichStandardZulässige WerteBeschreibung
coin pathstringErforderlich—BTC, ETHCoin; 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.

FeldTypEinheitBeschreibung
successboolean—true, wenn die Anfrage erfolgreich war. Im Fehlerfall lautet der Body `{ success: false, code, error, request_id }`.
coinstring—Coin-Symbol in Großbuchstaben (zum Beispiel BTC).
backtest_basisstring—Coin, an dem die Backtest-Statistiken gemessen wurden (`ETH`).
basis_note_codestring—`basis_native`, wenn der angefragte Coin der Coin des Backtests ist, `basis_borrowed`, wenn ETH-Statistiken für einen anderen Coin angezeigt werden.
basisstring—Futures-Preis minus Spot-Preis, oder der Basis-Block.
note_codestring—Fester Code `eth_only_basis`: Jede Statistik in dieser Antwort stammt aus der ETHUSDT-Historie.
dailyobject—Tageswerte.
daily.datasetobject—Umfang und Datumsbereich der Tageskerzen-Historie hinter den Tagesstatistiken (gesamte Historie und jüngstes Zeitfenster).
daily.dataset.bars_fullnumbercountAnzahl der Tageskerzen in der gesamten Historie.
daily.dataset.range_fullstring—Erstes und letztes Datum der gesamten Historie, als Text.
daily.dataset.bars_recentnumbercountAnzahl der Tageskerzen im jüngsten Zeitfenster.
daily.dataset.range_recentstring—Erstes und letztes Datum des jüngsten Zeitfensters, als Text.
daily.dataset.srcstring—Quelle.
daily.baselineobject—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.fullobject—Daten in voller Auflösung.
daily.baseline.full.nnumber—Anzahl der gezählten Elemente.
daily.baseline.full.hold30_winratenumber%Anteil aller 30-Tage-Haltephasen in der gesamten Historie, die im Gewinn endeten.
daily.baseline.full.hold30_pfnumberratioProfitfaktor aller 30-Tage-Haltephasen in der gesamten Historie: Summe der Gewinne ÷ absolute Summe der Verluste.
daily.baseline.recentobject—Jüngste Einträge.
daily.baseline.recent.nnumber—Anzahl der gezählten Elemente.
daily.baseline.recent.hold30_winratenumber%Anteil aller 30-Tage-Haltephasen im jüngsten Zeitfenster, die im Gewinn endeten.
daily.baseline.recent.hold30_pfnumberratioProfitfaktor aller 30-Tage-Haltephasen im jüngsten Zeitfenster: Summe der Gewinne ÷ absolute Summe der Verluste.
daily.timingobject—Rendite von Buy-and-Hold im Vergleich zu einfachen Trendfilter-Regeln, für die gesamte Historie und das jüngste Zeitfenster.
daily.timing.fullobject—Daten in voller Auflösung.
daily.timing.full.buy_hold_pctnumber%Buy-and-Hold-Rendite über die gesamte Historie, gemessen ab der 210. Kerze.
daily.timing.full.above_ema200_pctnumber%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_pctnumber%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_pctnumber%Rendite über die gesamte Historie, wenn nur gehalten wird, solange der 20-Tage-EMA über dem 50-Tage-EMA liegt.
daily.timing.full.days_abovestring—Text `days held/total days` für die Regel „Schlusskurs über EMA200“, gesamte Historie.
daily.timing.full.days_faststring—Text `days held/total days` für die Regel „EMA20 über EMA50“, gesamte Historie.
daily.timing.recentobject—Jüngste Einträge.
daily.timing.recent.buy_hold_pctnumber%Buy-and-Hold-Rendite über das jüngste Zeitfenster.
daily.timing.recent.above_ema200_pctnumber%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_pctnumber%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_pctnumber%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_abovestring—Text `days held/total days` für die Regel „Schlusskurs über EMA200“, jüngstes Zeitfenster.
daily.timing.recent.days_faststring—Text `days held/total days` für die Regel „EMA20 über EMA50“, jüngstes Zeitfenster.
daily.signalsobject—Signaleinträge. dynamische Schlüssel: bull_regime,bear_regime,multi_long,fast_filter,pullback_add,streak5_up
daily.signals.{*}object—Signaleinträge.
daily.signals.{*}.holdstring—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.{*}.fullobject—Daten in voller Auflösung.
daily.signals.{*}.full.nnumber—Anzahl der gezählten Elemente.
daily.signals.{*}.full.winratenumber|null—Trefferquote.
daily.signals.{*}.full.pfnumber|null—Profitfaktor.
daily.signals.{*}.recentobject—Jüngste Einträge.
daily.signals.{*}.recent.nnumber—Anzahl der gezählten Elemente.
daily.signals.{*}.recent.winratenumber|null—Trefferquote.
daily.signals.{*}.recent.pfnumber|null—Profitfaktor.
daily.signals.{*}.srcstring—Quelle.
daily.signals.{*}.full.total_pctnumber%Anteil an der Gesamtsumme. kann fehlen
daily.signals.{*}.full.mdd_pctnumber%Maximaler Drawdown. kann fehlen
daily.signals.{*}.recent.total_pctnumber%Anteil an der Gesamtsumme. kann fehlen
daily.signals.{*}.recent.mdd_pctnumber%Maximaler Drawdown. kann fehlen
m15object—Backtest auf 15-Minuten-Kerzen von ETHUSDT: Ausstiege in Vielfachen des ATR(14), Kosten für Ein- und Ausstieg eingerechnet.
m15.datasetobject—Umfang, Datumsbereich und Vollständigkeit der verwendeten 15-Minuten-Kerzenhistorie.
m15.dataset.barsnumber—Kerzen.
m15.dataset.rangestring—Angefragtes Zeitfenster.
m15.dataset.completenessstring—Text, der die vorhandenen Kerzen den erwarteten Kerzen in der 15-Minuten-Historie gegenüberstellt.
m15.dataset.srcstring—Quelle.
m15.signalsobject—Signaleinträge. dynamische Schlüssel: knife_25,knife_30,cum8_4,cum16_6
m15.signals.{*}object—Signaleinträge.
m15.signals.{*}.signalsnumber—Signaleinträge.
m15.signals.{*}.nnumber—Anzahl der gezählten Elemente.
m15.signals.{*}.winratenumber—Trefferquote.
m15.signals.{*}.pfnumber—Profitfaktor.
m15.signals.{*}.total_pctnumber%Anteil an der Gesamtsumme.
m15.signals.{*}.mdd_pctnumber%Maximaler Drawdown.
m15.signals.{*}.tpnumberxTake-Profit-Abstand für das durch den Map-Schlüssel benannte Signal, als Vielfaches des ATR(14).
m15.signals.{*}.slnumberxStop-Loss-Abstand für das durch den Map-Schlüssel benannte Signal, als Vielfaches des ATR(14).
m15.signals.{*}.srcstring—Quelle.
m15.threshold_scanarray—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[].thnumber%Preisveränderung einer einzelnen Kerze, die den Einstieg auslöst (negativ).
m15.threshold_scan[].signalsnumber—Signaleinträge.
m15.threshold_scan[].nnumber—Anzahl der gezählten Elemente.
m15.threshold_scan[].winratenumber—Trefferquote.
m15.threshold_scan[].pfnumber—Profitfaktor.
m15.threshold_scan[].total_pctnumber%Anteil an der Gesamtsumme.
m15.filter_testarray—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[].codestring—Code.
m15.filter_test[].nnumber—Anzahl der gezählten Elemente.
m15.filter_test[].winratenumber—Trefferquote.
m15.filter_test[].pfnumber—Profitfaktor.
m15.filter_test[].total_pctnumber%Anteil an der Gesamtsumme.
m15.confirm_testarray—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[].codestring—Code.
m15.confirm_test[].nnumber—Anzahl der gezählten Elemente.
m15.confirm_test[].winratenumber—Trefferquote.
m15.confirm_test[].pfnumber—Profitfaktor.
m15.confirm_test[].total_pctnumber%Anteil an der Gesamtsumme.
m15.cost_testarray—Ergebnisse unter verschiedenen angenommenen Handelskosten für Ein- und Ausstieg.
m15.cost_test[]object—Ergebnis für eine Kostenannahme.
m15.cost_test[].cost_pctnumber%In diesem Lauf angenommene Handelskosten für Ein- und Ausstieg, als Prozentsatz des Nominalwerts.
m15.cost_test[].pfnumber—Profitfaktor.
m15.cost_test[].total_pctnumber%Anteil an der Gesamtsumme.
m15.hour_testarray—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[].codestring—Code.
m15.hour_test[].nnumber—Anzahl der gezählten Elemente.
m15.hour_test[].winratenumber—Trefferquote.
m15.hour_test[].pfnumber—Profitfaktor.
m15.hour_test[].total_pctnumber%Anteil an der Gesamtsumme.
m15.short_sidearray—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[].codestring—Code.
m15.short_side[].nnumber—Anzahl der gezählten Elemente.
m15.short_side[].winratenumber—Trefferquote.
m15.short_side[].pfnumber—Profitfaktor.
m15.short_side[].total_pctnumber%Anteil an der Gesamtsumme.
weekdayarray—Wochentag.
weekday[]object—Wochentag.
weekday[].dnumber—Kalenderdatum (UTC).
weekday[].up_ratenumber—Anteil der Perioden, die höher geschlossen haben.
weekday[].mean_pctnumber%Mittlere tägliche Preisveränderung an diesem Wochentag (`d` 1 = Montag … 7 = Sonntag), gesamte Historie.
montharray—Kalendermonat.
month[]object—Kalendermonat.
month[].mnumber—Nummer des Kalendermonats, 1–12.
month[].up_ratenumber—Anteil der Perioden, die höher geschlossen haben.
month[].median_pctnumber%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": { … 5 },
      • "baseline": { … 2 },
      • "timing": { … 2 },
      • "signals": { … 2 }
      },
    • "m15": {
      • "dataset": { … 4 },
      • "signals": { … 2 },
      • "threshold_scan": [ … 2 ],
      • "filter_test": [ … 2 ],
      • "confirm_test": [ … 2 ],
      • "cost_test": [ … 2 ],
      • "hour_test": [ … 2 ],
      • "short_side": [ … 1 ]
      },
    • "weekday": [
      • { … 3 },
      • { … 3 }
      ],
    • "month": [
      • { … 3 },
      • { … 3 }
      ]
    }

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ügbarGeprüft 2026-11-13 03:59:07 UTCHTTP 2008 msSchema stimmt überein

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 →

CodeHTTPBedeutungEmpfohlene Reaktion
INVALID_PARAM400Ein erforderlicher Parameter fehlt oder ein Wert wird nicht akzeptiert. `param` nennt den Parameter, sofern er bekannt ist.Nicht unverändert wiederholen; die Anfrage korrigieren.
UNAUTHORIZED401Der 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.
FORBIDDEN403Die Route gehört nicht zur öffentlichen API (intern oder nur für Konten).Nicht wiederholen.
NOT_FOUND404Unbekannte Route, oder der angefragte Coin / die Börse / der Fonds existiert nicht.Nicht wiederholen; Pfad und Kennungen mit dem Katalog abgleichen.
RATE_LIMITED429Mehr Anfragen, als das Limit pro Minute zulässt. `Retry-After` gibt die Wartezeit in Sekunden an.`Retry-After` abwarten, dann mit Backoff wiederholen.
INTERNAL500Unerwarteter 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_FAILED503Die 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.
UNAVAILABLE501 / 503Der 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_FAILED200Einige ä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

GET/api/signal/backtest/:coinVerfügbar
Parameter

string — Coin; other values return 400.

Anfrage-URLhttps://www.coinboss.com/api/signal/backtest/BTC
Wählen Sie einen Endpunkt und klicken Sie auf „Anfrage senden“. Antwort, Header und Laufzeit erscheinen hier.