Resultados del backtest de señales
Resultados del backtest de señales (solo BTC / ETH)
/api/signal/backtest/:coinSolicitud
Parámetros de consulta
| Nombre | Tipo | Obligatorio | Valor por defecto | Valores admitidos | Descripción |
|---|---|---|---|---|---|
| coin path | string | Obligatorio | — | BTC, ETH | Moneda; 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.
| Campo | Tipo | Unidad | Descripción |
|---|---|---|---|
| success | boolean | — | true cuando la solicitud se completó correctamente. En caso de fallo, el cuerpo es `{ success: false, code, error, request_id }`. |
| coin | string | — | Símbolo de la moneda, en mayúsculas (por ejemplo BTC). |
| backtest_basis | string | — | Moneda sobre la que se midieron las estadísticas del backtest (`ETH`). |
| basis_note_code | string | — | `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. |
| basis | string | — | Precio de futuros menos precio spot, o el bloque de base. |
| note_code | string | — | Código fijo `eth_only_basis`: todas las estadísticas de esta respuesta proceden del historial de ETHUSDT. |
| daily | object | — | Valores diarios. |
| daily.dataset | object | — | 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_full | number | count | Número de velas diarias del historial completo. |
| daily.dataset.range_full | string | — | Primera y última fecha del historial completo, como texto. |
| daily.dataset.bars_recent | number | count | Número de velas diarias de la ventana reciente. |
| daily.dataset.range_recent | string | — | Primera y última fecha de la ventana reciente, como texto. |
| daily.dataset.src | string | — | Fuente. |
| daily.baseline | object | — | Resultado de referencia de comprar cualquier día y mantener 30 días, para el historial completo y la ventana reciente. |
| daily.baseline.full | object | — | Datos a resolución completa. |
| daily.baseline.full.n | number | — | Número de elementos contados. |
| daily.baseline.full.hold30_winrate | number | % | Proporción de todas las tenencias de 30 días del historial completo que terminaron con ganancia. |
| daily.baseline.full.hold30_pf | number | ratio | Factor de beneficio de todas las tenencias de 30 días del historial completo: suma de ganancias ÷ suma absoluta de pérdidas. |
| daily.baseline.recent | object | — | Entradas más recientes. |
| daily.baseline.recent.n | number | — | Número de elementos contados. |
| daily.baseline.recent.hold30_winrate | number | % | Proporción de todas las tenencias de 30 días de la ventana reciente que terminaron con ganancia. |
| daily.baseline.recent.hold30_pf | number | ratio | Factor de beneficio de todas las tenencias de 30 días de la ventana reciente: suma de ganancias ÷ suma absoluta de pérdidas. |
| daily.timing | object | — | Rentabilidad de comprar y mantener comparada con reglas simples de filtro de tendencia, para el historial completo y la ventana reciente. |
| daily.timing.full | object | — | Datos a resolución completa. |
| daily.timing.full.buy_hold_pct | number | % | Rentabilidad de comprar y mantener en el historial completo, medida a partir de la vela 210. |
| daily.timing.full.above_ema200_pct | number | % | 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_pct | number | % | 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_pct | number | % | 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_above | string | — | Texto `days held/total days` de la regla de cierre por encima de la EMA200, historial completo. |
| daily.timing.full.days_fast | string | — | Texto `days held/total days` de la regla de EMA20 por encima de EMA50, historial completo. |
| daily.timing.recent | object | — | Entradas más recientes. |
| daily.timing.recent.buy_hold_pct | number | % | Rentabilidad de comprar y mantener en la ventana reciente. |
| daily.timing.recent.above_ema200_pct | number | % | 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_pct | number | % | 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_pct | number | % | 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_above | string | — | Texto `days held/total days` de la regla de cierre por encima de la EMA200, ventana reciente. |
| daily.timing.recent.days_fast | string | — | Texto `days held/total days` de la regla de EMA20 por encima de EMA50, ventana reciente. |
| daily.signals | object | — | 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.{*}.hold | string | — | 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.{*}.full | object | — | Datos a resolución completa. |
| daily.signals.{*}.full.n | number | — | Número de elementos contados. |
| daily.signals.{*}.full.winrate | number|null | — | Tasa de acierto. |
| daily.signals.{*}.full.pf | number|null | — | Factor de beneficio. |
| daily.signals.{*}.recent | object | — | Entradas más recientes. |
| daily.signals.{*}.recent.n | number | — | Número de elementos contados. |
| daily.signals.{*}.recent.winrate | number|null | — | Tasa de acierto. |
| daily.signals.{*}.recent.pf | number|null | — | Factor de beneficio. |
| daily.signals.{*}.src | string | — | Fuente. |
| daily.signals.{*}.full.total_pct | number | % | Cuota sobre el total. puede faltar |
| daily.signals.{*}.full.mdd_pct | number | % | Drawdown máximo. puede faltar |
| daily.signals.{*}.recent.total_pct | number | % | Cuota sobre el total. puede faltar |
| daily.signals.{*}.recent.mdd_pct | number | % | Drawdown máximo. puede faltar |
| m15 | object | — | Backtest sobre velas de 15 minutos de ETHUSDT: salidas en múltiplos del ATR(14), con el coste de ida y vuelta incluido. |
| m15.dataset | object | — | Tamaño, intervalo de fechas y completitud del historial de velas de 15 minutos utilizado. |
| m15.dataset.bars | number | — | Barras. |
| m15.dataset.range | string | — | Ventana solicitada. |
| m15.dataset.completeness | string | — | Texto que indica las velas presentes frente a las velas esperadas en el historial de 15 minutos. |
| m15.dataset.src | string | — | Fuente. |
| m15.signals | object | — | Entradas de señales. claves dinámicas: knife_25,knife_30,cum8_4,cum16_6 |
| m15.signals.{*} | object | — | Entradas de señales. |
| m15.signals.{*}.signals | number | — | Entradas de señales. |
| m15.signals.{*}.n | number | — | Número de elementos contados. |
| m15.signals.{*}.winrate | number | — | Tasa de acierto. |
| m15.signals.{*}.pf | number | — | Factor de beneficio. |
| m15.signals.{*}.total_pct | number | % | Cuota sobre el total. |
| m15.signals.{*}.mdd_pct | number | % | Drawdown máximo. |
| m15.signals.{*}.tp | number | x | Distancia de take-profit utilizada para la señal indicada por la clave del mapa, como múltiplo del ATR(14). |
| m15.signals.{*}.sl | number | x | Distancia de stop-loss utilizada para la señal indicada por la clave del mapa, como múltiplo del ATR(14). |
| m15.signals.{*}.src | string | — | Fuente. |
| m15.threshold_scan | array | — | 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[].th | number | % | Variación de precio de una sola vela que activa la entrada (negativa). |
| m15.threshold_scan[].signals | number | — | Entradas de señales. |
| m15.threshold_scan[].n | number | — | Número de elementos contados. |
| m15.threshold_scan[].winrate | number | — | Tasa de acierto. |
| m15.threshold_scan[].pf | number | — | Factor de beneficio. |
| m15.threshold_scan[].total_pct | number | % | Cuota sobre el total. |
| m15.filter_test | array | — | 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[].code | string | — | Código. |
| m15.filter_test[].n | number | — | Número de elementos contados. |
| m15.filter_test[].winrate | number | — | Tasa de acierto. |
| m15.filter_test[].pf | number | — | Factor de beneficio. |
| m15.filter_test[].total_pct | number | % | Cuota sobre el total. |
| m15.confirm_test | array | — | 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[].code | string | — | Código. |
| m15.confirm_test[].n | number | — | Número de elementos contados. |
| m15.confirm_test[].winrate | number | — | Tasa de acierto. |
| m15.confirm_test[].pf | number | — | Factor de beneficio. |
| m15.confirm_test[].total_pct | number | % | Cuota sobre el total. |
| m15.cost_test | array | — | 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_pct | number | % | Coste de negociación de ida y vuelta asumido en esta ejecución, como porcentaje del nocional. |
| m15.cost_test[].pf | number | — | Factor de beneficio. |
| m15.cost_test[].total_pct | number | % | Cuota sobre el total. |
| m15.hour_test | array | — | 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[].code | string | — | Código. |
| m15.hour_test[].n | number | — | Número de elementos contados. |
| m15.hour_test[].winrate | number | — | Tasa de acierto. |
| m15.hour_test[].pf | number | — | Factor de beneficio. |
| m15.hour_test[].total_pct | number | % | Cuota sobre el total. |
| m15.short_side | array | — | 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[].code | string | — | Código. |
| m15.short_side[].n | number | — | Número de elementos contados. |
| m15.short_side[].winrate | number | — | Tasa de acierto. |
| m15.short_side[].pf | number | — | Factor de beneficio. |
| m15.short_side[].total_pct | number | % | Cuota sobre el total. |
| weekday | array | — | Día de la semana. |
| weekday[] | object | — | Día de la semana. |
| weekday[].d | number | — | Fecha de calendario (UTC). |
| weekday[].up_rate | number | — | Proporción de periodos que cerraron al alza. |
| weekday[].mean_pct | number | % | Variación media diaria del precio en ese día de la semana (`d` 1 = lunes … 7 = domingo), historial completo. |
| month | array | — | Mes de calendario. |
| month[] | object | — | Mes de calendario. |
| month[].m | number | — | Número del mes natural, 1–12. |
| month[].up_rate | number | — | Proporción de periodos que cerraron al alza. |
| month[].median_pct | number | % | 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"
- "baseline"
- "timing"
- "signals"
- "m15"
- "dataset"
- "signals"
- "threshold_scan"
- "filter_test"
- "confirm_test"
- "cost_test"
- "hour_test"
- "short_side"
- "weekday"
- "month"
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
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ódigo | HTTP | Significado | Qué hacer |
|---|---|---|---|
| INVALID_PARAM | 400 | Falta 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. |
| UNAUTHORIZED | 401 | Se 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. |
| FORBIDDEN | 403 | La ruta no forma parte de la API pública (interna o solo para cuentas). | No reintente. |
| NOT_FOUND | 404 | Ruta desconocida, o la moneda / el exchange / el fondo solicitado no existe. | No reintente; compruebe la ruta y los identificadores en el catálogo. |
| RATE_LIMITED | 429 | Má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. |
| INTERNAL | 500 | Error 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_FAILED | 503 | La 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. |
| UNAVAILABLE | 501 / 503 | El 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_FAILED | 200 | Algunos 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
/api/signal/backtest/:coinDisponiblestring — Coin; other values return 400.
https://www.coinboss.com/api/signal/backtest/BTCMás en esta categoría
- Serie del indicador de acumulación AHR999 /api/indicators/ahr999
- Índice de burbuja de Bitcoin /api/indicators/bitcoin-bubble
- Historial completo de cierres diarios de BTC /api/indicators/btc-history
- Lista de señales de techo del mercado alcista /api/indicators/bull-peak-signals
- Índice compuesto de ciclo alcista CBBI /api/indicators/cbbi
- Índice de riesgo de derivados (método CoinBoss) /api/indicators/cdri
- Índice compuesto de derivados (método CoinBoss) /api/indicators/cgdi
- Correlación de BTC con el oro / S&P 500 /api/indicators/correlation
- Matriz de correlación de los principales activos /api/indicators/correlation-matrix
- Situación legal de las criptomonedas por país /api/indicators/crypto-legality
- Bandas de valoración de techo de ciclo /api/indicators/cycle-caps
- Serie del tiempo de duplicación del precio de BTC /api/indicators/doubling-time
- Tendencia del interés de búsqueda en Google /api/indicators/google-trends
- Series macro /api/indicators/macro-series
- Resultado del modelo de previsión de precios /api/indicators/price-forecast
- Serie de caída desde el máximo histórico /api/indicators/price-no-turning-back
- Número de suscriptores del subreddit de Bitcoin en Reddit /api/indicators/reddit-subs
- Visitas a páginas de Wikipedia /api/indicators/wikipedia-pageviews
- Índice de temporada de altcoins (método CoinBoss) /api/indices/altseason
- Radar de suelos /api/indices/bottom-radar
- Caso histórico del radar de suelos /api/indices/bottom-radar/case-0819
- Panel de señales multifactor de BTC /api/indices/btc-signal
- Backtest de la señal de BTC /api/indices/btc-signal/backtest
- Índice de miedo y codicia /api/indices/fear-greed
- Índice de miedo y codicia (actual e historial) /api/market/fear-greed
- Resultados del backtest de señales /api/signal/backtest/:coin
- Panel de monitorización de señales /api/signal/monitor/:coin