/api/signal/backtest/:coin
GETDisponible

Resultados del backtest de señales

Resultados del backtest de señales (solo BTC / ETH)

GET/api/signal/backtest/:coin

Solicitud

Parámetros de consulta

NombreTipoObligatorioValor por defectoValores admitidosDescripción
coin pathstringObligatorio—BTC, ETHMoneda; los demás valores devuelven 400. Ejemplo: BTC

Los parámetros marcados como «path» forman parte de la URL.

Solicitud de ejemplo

curl -s "https://www.coinboss.com/api/signal/backtest/BTC"

Campos de la respuesta

La tabla de campos se genera a partir de respuestas reales, por lo que recoge exactamente lo que devuelve el endpoint. Las rutas usan a[] para los elementos de un array y {*} para los objetos cuya clave es un nombre dinámico, como una moneda o un exchange.

CampoTipoUnidadDescripción
successboolean—true cuando la solicitud se completó correctamente. En caso de fallo, el cuerpo es `{ success: false, code, error, request_id }`.
coinstring—Símbolo de la moneda, en mayúsculas (por ejemplo BTC).
backtest_basisstring—Moneda sobre la que se midieron las estadísticas del backtest (`ETH`).
basis_note_codestring—`basis_native` cuando la moneda solicitada es la moneda del backtest y `basis_borrowed` cuando se muestran las estadísticas de ETH para otra moneda.
basisstring—Precio de futuros menos precio spot, o el bloque de base.
note_codestring—Código fijo `eth_only_basis`: todas las estadísticas de esta respuesta proceden del historial de ETHUSDT.
dailyobject—Valores diarios.
daily.datasetobject—Tamaño e intervalo de fechas del historial de velas diarias en el que se basan las estadísticas diarias (historial completo y ventana reciente).
daily.dataset.bars_fullnumbercountNúmero de velas diarias del historial completo.
daily.dataset.range_fullstring—Primera y última fecha del historial completo, como texto.
daily.dataset.bars_recentnumbercountNúmero de velas diarias de la ventana reciente.
daily.dataset.range_recentstring—Primera y última fecha de la ventana reciente, como texto.
daily.dataset.srcstring—Fuente.
daily.baselineobject—Resultado de referencia de comprar cualquier día y mantener 30 días, para el historial completo y la ventana reciente.
daily.baseline.fullobject—Datos a resolución completa.
daily.baseline.full.nnumber—Número de elementos contados.
daily.baseline.full.hold30_winratenumber%Proporción de todas las tenencias de 30 días del historial completo que terminaron con ganancia.
daily.baseline.full.hold30_pfnumberratioFactor de beneficio de todas las tenencias de 30 días del historial completo: suma de ganancias ÷ suma absoluta de pérdidas.
daily.baseline.recentobject—Entradas más recientes.
daily.baseline.recent.nnumber—Número de elementos contados.
daily.baseline.recent.hold30_winratenumber%Proporción de todas las tenencias de 30 días de la ventana reciente que terminaron con ganancia.
daily.baseline.recent.hold30_pfnumberratioFactor de beneficio de todas las tenencias de 30 días de la ventana reciente: suma de ganancias ÷ suma absoluta de pérdidas.
daily.timingobject—Rentabilidad de comprar y mantener comparada con reglas simples de filtro de tendencia, para el historial completo y la ventana reciente.
daily.timing.fullobject—Datos a resolución completa.
daily.timing.full.buy_hold_pctnumber%Rentabilidad de comprar y mantener en el historial completo, medida a partir de la vela 210.
daily.timing.full.above_ema200_pctnumber%Rentabilidad en el historial completo manteniendo solo los días en que el cierre está por encima de la EMA de 200 días.
daily.timing.full.below_ema200_pctnumber%Rentabilidad en el historial completo manteniendo solo los días en que el cierre está por debajo de la EMA de 200 días.
daily.timing.full.ema20_gt_ema50_pctnumber%Rentabilidad en el historial completo manteniendo solo mientras la EMA de 20 días está por encima de la EMA de 50 días.
daily.timing.full.days_abovestring—Texto `days held/total days` de la regla de cierre por encima de la EMA200, historial completo.
daily.timing.full.days_faststring—Texto `days held/total days` de la regla de EMA20 por encima de EMA50, historial completo.
daily.timing.recentobject—Entradas más recientes.
daily.timing.recent.buy_hold_pctnumber%Rentabilidad de comprar y mantener en la ventana reciente.
daily.timing.recent.above_ema200_pctnumber%Rentabilidad en la ventana reciente manteniendo solo los días en que el cierre está por encima de la EMA de 200 días.
daily.timing.recent.below_ema200_pctnumber%Rentabilidad en la ventana reciente manteniendo solo los días en que el cierre está por debajo de la EMA de 200 días.
daily.timing.recent.ema20_gt_ema50_pctnumber%Rentabilidad en la ventana reciente manteniendo solo mientras la EMA de 20 días está por encima de la EMA de 50 días.
daily.timing.recent.days_abovestring—Texto `days held/total days` de la regla de cierre por encima de la EMA200, ventana reciente.
daily.timing.recent.days_faststring—Texto `days held/total days` de la regla de EMA20 por encima de EMA50, ventana reciente.
daily.signalsobject—Entradas de señales. claves dinámicas: bull_regime,bear_regime,multi_long,fast_filter,pullback_add,streak5_up
daily.signals.{*}object—Entradas de señales.
daily.signals.{*}.holdstring—Regla de mantenimiento utilizada en el backtest de la señal indicada por la clave del mapa, por ejemplo `30d`, `7d` o una regla de take-profit / stop-loss en múltiplos del ATR.
daily.signals.{*}.fullobject—Datos a resolución completa.
daily.signals.{*}.full.nnumber—Número de elementos contados.
daily.signals.{*}.full.winratenumber|null—Tasa de acierto.
daily.signals.{*}.full.pfnumber|null—Factor de beneficio.
daily.signals.{*}.recentobject—Entradas más recientes.
daily.signals.{*}.recent.nnumber—Número de elementos contados.
daily.signals.{*}.recent.winratenumber|null—Tasa de acierto.
daily.signals.{*}.recent.pfnumber|null—Factor de beneficio.
daily.signals.{*}.srcstring—Fuente.
daily.signals.{*}.full.total_pctnumber%Cuota sobre el total. puede faltar
daily.signals.{*}.full.mdd_pctnumber%Drawdown máximo. puede faltar
daily.signals.{*}.recent.total_pctnumber%Cuota sobre el total. puede faltar
daily.signals.{*}.recent.mdd_pctnumber%Drawdown máximo. puede faltar
m15object—Backtest sobre velas de 15 minutos de ETHUSDT: salidas en múltiplos del ATR(14), con el coste de ida y vuelta incluido.
m15.datasetobject—Tamaño, intervalo de fechas y completitud del historial de velas de 15 minutos utilizado.
m15.dataset.barsnumber—Barras.
m15.dataset.rangestring—Ventana solicitada.
m15.dataset.completenessstring—Texto que indica las velas presentes frente a las velas esperadas en el historial de 15 minutos.
m15.dataset.srcstring—Fuente.
m15.signalsobject—Entradas de señales. claves dinámicas: knife_25,knife_30,cum8_4,cum16_6
m15.signals.{*}object—Entradas de señales.
m15.signals.{*}.signalsnumber—Entradas de señales.
m15.signals.{*}.nnumber—Número de elementos contados.
m15.signals.{*}.winratenumber—Tasa de acierto.
m15.signals.{*}.pfnumber—Factor de beneficio.
m15.signals.{*}.total_pctnumber%Cuota sobre el total.
m15.signals.{*}.mdd_pctnumber%Drawdown máximo.
m15.signals.{*}.tpnumberxDistancia de take-profit utilizada para la señal indicada por la clave del mapa, como múltiplo del ATR(14).
m15.signals.{*}.slnumberxDistancia de stop-loss utilizada para la señal indicada por la clave del mapa, como múltiplo del ATR(14).
m15.signals.{*}.srcstring—Fuente.
m15.threshold_scanarray—Resultados del backtest según el tamaño de la caída de una sola vela que activa una compra.
m15.threshold_scan[]object—Resultado para un umbral de caída.
m15.threshold_scan[].thnumber%Variación de precio de una sola vela que activa la entrada (negativa).
m15.threshold_scan[].signalsnumber—Entradas de señales.
m15.threshold_scan[].nnumber—Número de elementos contados.
m15.threshold_scan[].winratenumber—Tasa de acierto.
m15.threshold_scan[].pfnumber—Factor de beneficio.
m15.threshold_scan[].total_pctnumber%Cuota sobre el total.
m15.filter_testarray—Resultados de la entrada en caídas del −2.0 % con un filtro adicional en cada caso (RSI, volumen, EMA200).
m15.filter_test[]object—Resultado para una variante de filtro.
m15.filter_test[].codestring—Código.
m15.filter_test[].nnumber—Número de elementos contados.
m15.filter_test[].winratenumber—Tasa de acierto.
m15.filter_test[].pfnumber—Factor de beneficio.
m15.filter_test[].total_pctnumber%Cuota sobre el total.
m15.confirm_testarray—Resultados según el momento de entrada: de inmediato, o tras esperar una o dos velas de confirmación.
m15.confirm_test[]object—Resultado para una variante del momento de entrada.
m15.confirm_test[].codestring—Código.
m15.confirm_test[].nnumber—Número de elementos contados.
m15.confirm_test[].winratenumber—Tasa de acierto.
m15.confirm_test[].pfnumber—Factor de beneficio.
m15.confirm_test[].total_pctnumber%Cuota sobre el total.
m15.cost_testarray—Resultados con distintos supuestos de coste de negociación de ida y vuelta.
m15.cost_test[]object—Resultado para un supuesto de coste.
m15.cost_test[].cost_pctnumber%Coste de negociación de ida y vuelta asumido en esta ejecución, como porcentaje del nocional.
m15.cost_test[].pfnumber—Factor de beneficio.
m15.cost_test[].total_pctnumber%Cuota sobre el total.
m15.hour_testarray—Resultados de la entrada en caídas del −1.5 % desglosados por franja horaria UTC.
m15.hour_test[]object—Resultado para una franja horaria UTC.
m15.hour_test[].codestring—Código.
m15.hour_test[].nnumber—Número de elementos contados.
m15.hour_test[].winratenumber—Tasa de acierto.
m15.hour_test[].pfnumber—Factor de beneficio.
m15.hour_test[].total_pctnumber%Cuota sobre el total.
m15.short_sidearray—Resultados de la operación inversa: abrir cortos tras una subida brusca de una sola vela.
m15.short_side[]object—Resultado para un umbral de subida brusca.
m15.short_side[].codestring—Código.
m15.short_side[].nnumber—Número de elementos contados.
m15.short_side[].winratenumber—Tasa de acierto.
m15.short_side[].pfnumber—Factor de beneficio.
m15.short_side[].total_pctnumber%Cuota sobre el total.
weekdayarray—Día de la semana.
weekday[]object—Día de la semana.
weekday[].dnumber—Fecha de calendario (UTC).
weekday[].up_ratenumber—Proporción de periodos que cerraron al alza.
weekday[].mean_pctnumber%Variación media diaria del precio en ese día de la semana (`d` 1 = lunes … 7 = domingo), historial completo.
montharray—Mes de calendario.
month[]object—Mes de calendario.
month[].mnumber—Número del mes natural, 1–12.
month[].up_ratenumber—Proporción de periodos que cerraron al alza.
month[].median_pctnumber%Mediana de la variación acumulada del precio de ese mes natural entre los años del historial completo.

Generada 2026-11-11 23:01 UTC a partir de 1 respuestas reales.

Respuesta de ejemplo

/api/signal/backtest/BTC · Respuesta real capturada 2026-11-13 03:59:07 UTC. Los arrays y mapas largos se abrevian para su visualización: month tenía 12 elementos; weekday tenía 7 elementos; m15.signals tenía 4 elementos; daily.signals tenía 12 elementos; m15.cost_test tenía 5 elementos; m15.hour_test tenía 3 elementos.

  • {
    • "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 }
      ]
    }

Detalles

Autenticación
Ninguna. Endpoint público.
Límite de solicitudes
1200 solicitudes por minuto por IP
Caché del servidor
60m
Microcaché de borde
10s
Ventana
fijo: barras diarias de 2017-08-17 a 2026-07-30, barras de 15 minutos de 2023-01 a 2026-07
Fuentes de datos
Resumen estático de un backtest offline sobre las velas ETHUSDT de exchanges; no se recalcula.
Cobertura de exchanges
Solo backtest de ETH; BTC devuelve las mismas cifras basadas en ETH.
Unidades
win rate in percent, profit factor, sample counts
Marcas de tiempo
Milisegundos de época Unix (UTC), salvo que la descripción del campo indique otra cosa
Formato de respuesta
json
Estabilidad
Estable

Estado en vivo

DisponibleComprobado 2026-11-13 03:59:07 UTCHTTP 2008 msEl esquema coincide

Disponibilidad, últimos 30 días

100% de 408 comprobaciones superadas

Errores

Las llamadas fallidas tienen la misma estructura en todos los endpoints. La lista completa está en la página de errores. Errores y límites de solicitudes →

CódigoHTTPSignificadoQué hacer
INVALID_PARAM400Falta un parámetro obligatorio o un valor no se acepta. `param` indica el nombre del parámetro cuando se conoce.No reintente sin cambios; corrija la solicitud.
UNAUTHORIZED401Se envió la cabecera `CB-API-KEY`, pero la clave es desconocida o está revocada. Los datos públicos no necesitan clave: elimine la cabecera o use una clave válida.No reintente sin cambios.
FORBIDDEN403La ruta no forma parte de la API pública (interna o solo para cuentas).No reintente.
NOT_FOUND404Ruta desconocida, o la moneda / el exchange / el fondo solicitado no existe.No reintente; compruebe la ruta y los identificadores en el catálogo.
RATE_LIMITED429Más solicitudes que el límite por minuto. `Retry-After` indica los segundos de espera.Espere el tiempo de `Retry-After` y después reintente con espera progresiva.
INTERNAL500Error inesperado del servidor. El mensaje es genérico por diseño; cite `request_id` al informar del error.Reintente una vez tras unos segundos; si persiste, infórmelo con el ID de solicitud.
UPSTREAM_FAILED503La fuente de datos de este endpoint no respondió a tiempo. No se devuelven cifras desactualizadas ni sustitutas en su lugar.Reintente con espera progresiva; consulte la página de estado.
UNAVAILABLE501 / 503El conjunto de datos no está listo temporalmente (calentamiento de la caché) o el endpoint aún no tiene una fuente pública lícita.Reintente más tarde; el catálogo marca los endpoints que no están disponibles por diseño.
REQUEST_FAILED200Algunos endpoints antiguos responden HTTP 200 con `success: false`. Compruebe siempre `success`, no solo el estado HTTP.Depende del mensaje; trátelo como una solicitud fallida.

Pruébelo

GET/api/signal/backtest/:coinDisponible
Parámetros

string — Coin; other values return 400.

URL de la solicitudhttps://www.coinboss.com/api/signal/backtest/BTC
Elija un endpoint y pulse «Enviar solicitud». Aquí aparecerán la respuesta, las cabeceras y los tiempos.