/api/signal/backtest/:coin
GET사용 가능

신호 백테스트 결과

신호 백테스트 결과(BTC / ETH만 지원)

GET/api/signal/backtest/:coin

요청

쿼리 파라미터

이름타입필수기본값허용 값설명
coin pathstring필수—BTC, ETH코인. 다른 값은 400을 반환합니다. 예시: BTC

“path”로 표시된 파라미터는 URL의 일부입니다.

요청 예시

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

응답 필드

필드 표는 실제 응답에서 생성되므로 엔드포인트가 반환하는 내용을 그대로 보여 줍니다. 경로에서 a[]는 배열 항목을, {*}는 코인이나 거래소처럼 동적 이름을 키로 갖는 객체를 뜻합니다.

필드타입단위설명
successboolean—요청이 성공하면 true입니다. 실패하면 본문은 `{ success: false, code, error, request_id }`입니다.
coinstring—코인 심볼, 대문자(예: BTC).
backtest_basisstring—백테스트 통계를 측정한 코인(`ETH`).
basis_note_codestring—요청한 코인이 백테스트한 코인이면 `basis_native`, 다른 코인에 대해 ETH 통계를 표시하면 `basis_borrowed`.
basisstring—선물 가격에서 현물 가격을 뺀 값 또는 베이시스 블록.
note_codestring—고정 코드 `eth_only_basis`: 이 응답의 모든 통계는 ETHUSDT 히스토리에서 산출됩니다.
dailyobject—일별 값.
daily.datasetobject—일별 통계의 바탕이 되는 일별 캔들 히스토리의 크기와 날짜 범위(전체 히스토리와 최근 구간).
daily.dataset.bars_fullnumbercount전체 히스토리의 일별 캔들 수.
daily.dataset.range_fullstring—전체 히스토리의 첫 날짜와 마지막 날짜, 텍스트 형식.
daily.dataset.bars_recentnumbercount최근 구간의 일별 캔들 수.
daily.dataset.range_recentstring—최근 구간의 첫 날짜와 마지막 날짜, 텍스트 형식.
daily.dataset.srcstring—소스.
daily.baselineobject—임의의 날에 매수해 30일간 보유했을 때의 참조 결과로, 전체 히스토리와 최근 구간에 대해 제공합니다.
daily.baseline.fullobject—전체 해상도 데이터.
daily.baseline.full.nnumber—집계된 항목 수.
daily.baseline.full.hold30_winratenumber%전체 히스토리의 모든 30일 보유 중 수익으로 끝난 비중.
daily.baseline.full.hold30_pfnumberratio전체 히스토리의 모든 30일 보유에 대한 프로핏 팩터: 이익 합계 ÷ 손실 합계의 절댓값.
daily.baseline.recentobject—최근 항목.
daily.baseline.recent.nnumber—집계된 항목 수.
daily.baseline.recent.hold30_winratenumber%최근 구간의 모든 30일 보유 중 수익으로 끝난 비중.
daily.baseline.recent.hold30_pfnumberratio최근 구간의 모든 30일 보유에 대한 프로핏 팩터: 이익 합계 ÷ 손실 합계의 절댓값.
daily.timingobject—매수 후 보유 수익률을 단순 추세 필터 규칙과 비교한 값으로, 전체 히스토리와 최근 구간에 대해 제공합니다.
daily.timing.fullobject—전체 해상도 데이터.
daily.timing.full.buy_hold_pctnumber%전체 히스토리의 매수 후 보유 수익률로, 210번째 캔들부터 측정합니다.
daily.timing.full.above_ema200_pctnumber%종가가 200일 EMA 위에 있는 날에만 보유했을 때의 전체 히스토리 수익률.
daily.timing.full.below_ema200_pctnumber%종가가 200일 EMA 아래에 있는 날에만 보유했을 때의 전체 히스토리 수익률.
daily.timing.full.ema20_gt_ema50_pctnumber%20일 EMA가 50일 EMA 위에 있는 동안에만 보유했을 때의 전체 히스토리 수익률.
daily.timing.full.days_abovestring—종가가 EMA200 위에 있다는 규칙에 대한 `days held/total days` 텍스트, 전체 히스토리.
daily.timing.full.days_faststring—EMA20이 EMA50 위에 있다는 규칙에 대한 `days held/total days` 텍스트, 전체 히스토리.
daily.timing.recentobject—최근 항목.
daily.timing.recent.buy_hold_pctnumber%최근 구간의 매수 후 보유 수익률.
daily.timing.recent.above_ema200_pctnumber%종가가 200일 EMA 위에 있는 날에만 보유했을 때의 최근 구간 수익률.
daily.timing.recent.below_ema200_pctnumber%종가가 200일 EMA 아래에 있는 날에만 보유했을 때의 최근 구간 수익률.
daily.timing.recent.ema20_gt_ema50_pctnumber%20일 EMA가 50일 EMA 위에 있는 동안에만 보유했을 때의 최근 구간 수익률.
daily.timing.recent.days_abovestring—종가가 EMA200 위에 있다는 규칙에 대한 `days held/total days` 텍스트, 최근 구간.
daily.timing.recent.days_faststring—EMA20이 EMA50 위에 있다는 규칙에 대한 `days held/total days` 텍스트, 최근 구간.
daily.signalsobject—신호 항목. 동적 키: bull_regime,bear_regime,multi_long,fast_filter,pullback_add,streak5_up
daily.signals.{*}object—신호 항목.
daily.signals.{*}.holdstring—맵 키가 가리키는 시그널의 백테스트에 사용된 보유 규칙, 예: `30d`, `7d` 또는 ATR 배수로 정한 익절 / 손절 규칙.
daily.signals.{*}.fullobject—전체 해상도 데이터.
daily.signals.{*}.full.nnumber—집계된 항목 수.
daily.signals.{*}.full.winratenumber|null—승률.
daily.signals.{*}.full.pfnumber|null—프로핏 팩터.
daily.signals.{*}.recentobject—최근 항목.
daily.signals.{*}.recent.nnumber—집계된 항목 수.
daily.signals.{*}.recent.winratenumber|null—승률.
daily.signals.{*}.recent.pfnumber|null—프로핏 팩터.
daily.signals.{*}.srcstring—소스.
daily.signals.{*}.full.total_pctnumber%전체 대비 비중. 없을 수 있음
daily.signals.{*}.full.mdd_pctnumber%최대 낙폭. 없을 수 있음
daily.signals.{*}.recent.total_pctnumber%전체 대비 비중. 없을 수 있음
daily.signals.{*}.recent.mdd_pctnumber%최대 낙폭. 없을 수 있음
m15object—15분 ETHUSDT 캔들 기준 백테스트: 포지션 종료(익절·손절) 조건은 ATR(14) 배수이며 왕복 비용을 포함합니다.
m15.datasetobject—사용된 15분 캔들 히스토리의 크기, 날짜 범위, 완전성.
m15.dataset.barsnumber—봉 수.
m15.dataset.rangestring—요청한 구간.
m15.dataset.completenessstring—15분 히스토리에서 실제로 있는 캔들 수와 예상 캔들 수를 비교해 보여 주는 텍스트.
m15.dataset.srcstring—소스.
m15.signalsobject—신호 항목. 동적 키: knife_25,knife_30,cum8_4,cum16_6
m15.signals.{*}object—신호 항목.
m15.signals.{*}.signalsnumber—신호 항목.
m15.signals.{*}.nnumber—집계된 항목 수.
m15.signals.{*}.winratenumber—승률.
m15.signals.{*}.pfnumber—프로핏 팩터.
m15.signals.{*}.total_pctnumber%전체 대비 비중.
m15.signals.{*}.mdd_pctnumber%최대 낙폭.
m15.signals.{*}.tpnumberx맵 키가 가리키는 시그널에 사용된 익절 거리, ATR(14)의 배수.
m15.signals.{*}.slnumberx맵 키가 가리키는 시그널에 사용된 손절 거리, ATR(14)의 배수.
m15.signals.{*}.srcstring—소스.
m15.threshold_scanarray—매수를 트리거하는 단일 캔들 하락 폭별 백테스트 결과.
m15.threshold_scan[]object—하락 기준값 하나에 대한 결과.
m15.threshold_scan[].thnumber%진입을 트리거하는 단일 캔들 가격 변화(음수).
m15.threshold_scan[].signalsnumber—신호 항목.
m15.threshold_scan[].nnumber—집계된 항목 수.
m15.threshold_scan[].winratenumber—승률.
m15.threshold_scan[].pfnumber—프로핏 팩터.
m15.threshold_scan[].total_pctnumber%전체 대비 비중.
m15.filter_testarray—−2.0 % 급락 진입에 추가 필터(RSI, 거래량, EMA200)를 하나씩 적용한 결과.
m15.filter_test[]object—필터 변형 하나에 대한 결과.
m15.filter_test[].codestring—코드.
m15.filter_test[].nnumber—집계된 항목 수.
m15.filter_test[].winratenumber—승률.
m15.filter_test[].pfnumber—프로핏 팩터.
m15.filter_test[].total_pctnumber%전체 대비 비중.
m15.confirm_testarray—진입 시점별 결과: 즉시 진입하거나, 확인 캔들 한 개 또는 두 개를 기다린 뒤 진입.
m15.confirm_test[]object—진입 시점 변형 하나에 대한 결과.
m15.confirm_test[].codestring—코드.
m15.confirm_test[].nnumber—집계된 항목 수.
m15.confirm_test[].winratenumber—승률.
m15.confirm_test[].pfnumber—프로핏 팩터.
m15.confirm_test[].total_pctnumber%전체 대비 비중.
m15.cost_testarray—서로 다른 왕복 거래 비용 가정에 따른 결과.
m15.cost_test[]object—비용 가정 하나에 대한 결과.
m15.cost_test[].cost_pctnumber%이 실행에서 가정한 왕복 거래 비용, 명목가치 대비 백분율.
m15.cost_test[].pfnumber—프로핏 팩터.
m15.cost_test[].total_pctnumber%전체 대비 비중.
m15.hour_testarray—−1.5 % 급락 진입의 결과를 UTC 시간대 구간별로 나눈 값.
m15.hour_test[]object—UTC 시간대 구간 하나에 대한 결과.
m15.hour_test[].codestring—코드.
m15.hour_test[].nnumber—집계된 항목 수.
m15.hour_test[].winratenumber—승률.
m15.hour_test[].pfnumber—프로핏 팩터.
m15.hour_test[].total_pctnumber%전체 대비 비중.
m15.short_sidearray—반대 방향 거래의 결과: 단일 캔들 급등 후 숏 진입.
m15.short_side[]object—급등 기준값 하나에 대한 결과.
m15.short_side[].codestring—코드.
m15.short_side[].nnumber—집계된 항목 수.
m15.short_side[].winratenumber—승률.
m15.short_side[].pfnumber—프로핏 팩터.
m15.short_side[].total_pctnumber%전체 대비 비중.
weekdayarray—요일.
weekday[]object—요일.
weekday[].dnumber—달력 날짜(UTC).
weekday[].up_ratenumber—상승 마감한 기간의 비중.
weekday[].mean_pctnumber%해당 요일의 평균 일별 가격 변화(`d` 1 = 월요일 … 7 = 일요일), 전체 히스토리.
montharray—달력 월.
month[]object—달력 월.
month[].mnumber—월 번호, 1–12.
month[].up_ratenumber—상승 마감한 기간의 비중.
month[].median_pctnumber%전체 히스토리의 여러 연도에 걸친 해당 월 누적 가격 변화의 중앙값.

2026-11-11 23:01 UTC에 실제 응답 1건으로 생성.

응답 예시

/api/signal/backtest/BTC · 2026-11-13 01:38:37 UTC에 수집한 실제 응답. 긴 배열과 맵은 표시를 위해 줄였습니다: month: 원래 항목 12개; weekday: 원래 항목 7개; m15.signals: 원래 항목 4개; daily.signals: 원래 항목 12개; m15.cost_test: 원래 항목 5개; m15.hour_test: 원래 항목 3개.

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

상세 정보

인증
없음. 공개 엔드포인트.
요청 한도
IP당 분당 1200회
서버 캐시
60m
엣지 마이크로 캐시
10s
구간
고정: 일봉 2017-08-17 ~ 2026-07-30, 15분봉 2023-01 ~ 2026-07
데이터 소스
거래소 ETHUSDT 캔들에 대한 오프라인 백테스트의 정적 요약으로, 재계산하지 않습니다.
거래소 커버리지
ETH 백테스트만 제공; BTC는 동일한 ETH 기반 수치를 반환합니다.
단위
win rate in percent, profit factor, sample counts
타임스탬프
필드 설명에 별도 언급이 없는 한 Unix epoch 밀리초(UTC)
응답 형식
json
안정성
안정

실시간 상태

사용 가능2026-11-13 01:38:37 UTC 점검HTTP 20088 ms스키마 일치

최근 30일 가용성

점검 380회 중 100% 통과

오류

실패한 호출은 모든 엔드포인트에서 동일한 구조로 반환됩니다. 전체 목록은 오류 페이지에 있습니다. 오류 및 요청 한도 →

코드HTTP의미대응 방법
INVALID_PARAM400필수 파라미터가 누락되었거나 허용되지 않는 값입니다. 문제가 된 파라미터를 알 수 있으면 `param`에 그 이름이 들어갑니다.그대로 재시도하지 말고 요청을 수정하십시오.
UNAUTHORIZED401`CB-API-KEY` 헤더를 보냈지만 알 수 없거나 폐기된 키입니다. 공개 데이터에는 키가 필요 없으므로 헤더를 빼거나 유효한 키를 사용하십시오.그대로 재시도하지 마십시오.
FORBIDDEN403해당 경로는 공개 API에 포함되지 않습니다(내부용 또는 계정 전용).재시도하지 마십시오.
NOT_FOUND404알 수 없는 경로이거나, 요청한 코인 / 거래소 / 펀드가 존재하지 않습니다.재시도하지 말고 경로와 식별자를 카탈로그와 대조해 확인하십시오.
RATE_LIMITED429요청 수가 분당 한도를 초과했습니다. `Retry-After`가 대기해야 할 초를 알려 줍니다.`Retry-After`만큼 기다린 뒤 백오프를 적용해 재시도하십시오.
INTERNAL500예기치 않은 서버 오류입니다. 메시지는 의도적으로 일반적인 내용만 담습니다. 신고할 때 `request_id`를 인용하십시오.몇 초 뒤 한 번 재시도하고, 계속되면 요청 ID와 함께 신고하십시오.
UPSTREAM_FAILED503이 엔드포인트의 데이터 소스가 제시간에 응답하지 않았습니다. 그 대신 만료된 수치나 대체 수치를 반환하는 일은 없습니다.백오프를 적용해 재시도하고 상태 페이지를 확인하십시오.
UNAVAILABLE501 / 503데이터셋이 일시적으로 준비되지 않았거나(캐시 워밍 중) 엔드포인트에 아직 합법적인 공개 소스가 없습니다.나중에 재시도하십시오. 설계상 사용 불가인 엔드포인트는 카탈로그에 표시되어 있습니다.
REQUEST_FAILED200일부 이전 엔드포인트는 HTTP 200에 `success: false`로 응답합니다. HTTP 상태만 보지 말고 항상 `success`를 확인하십시오.메시지에 따라 다릅니다. 실패한 요청으로 처리하십시오.

직접 실행

GET/api/signal/backtest/:coin사용 가능
파라미터

string — Coin; other values return 400.

요청 URLhttps://www.coinboss.com/api/signal/backtest/BTC
엔드포인트를 선택하고 “요청 보내기”를 누르십시오. 응답, 헤더, 소요 시간이 여기에 표시됩니다.