changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "properties": {
+ "as_of": {
+ "description": "가장 최근 평가 봉의 마감 시각",
+ "format": "date-time",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "events": {
+ "description": "최근 사건(새것 먼저). 대상선정·신호·신호 결말·연결 도착.",
+ "items": {
+ "properties": {
+ "kind": {
+ "enum": [
+ "target_selected",
+ "signal",
+ "signal_resolved",
+ "conn_arrival"
+ ],
+ "type": "string"
+ },
+ "price": {
+ "description": "signal/signal_resolved=종가 · 그 외=대상 가격",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "side": {
+ "description": "buy=매수 · sell=매도",
+ "enum": [
+ "buy",
+ "sell",
+ null
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "status": {
+ "description": "signal_resolved 의 결말",
+ "enum": [
+ "confirmed",
+ "failed",
+ null
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "time": {
+ "format": "date-time",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "timeframe": {
+ "enum": [
+ "1w",
+ "1d",
+ "8h",
+ "4h",
+ "1h",
+ "30m"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "time",
+ "timeframe",
+ "kind"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "missing_timeframes": {
+ "description": "아직 평가값이 없는 시간대",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "price": {
+ "description": "가장 최근 평가 봉의 종가",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "symbol": {
+ "type": "string"
+ },
+ "timeframes": {
+ "description": "상위→단기 순. 각 시간대가 낸 상태를 나란히 — 시간대 간 종합 판정은 없다(종합은 호출자 몫).",
+ "items": {
+ "properties": {
+ "bar_close_time": {
+ "description": "이 시간대의 마지막 평가 봉 마감 시각",
+ "format": "date-time",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "close": {
+ "description": "그 봉 종가",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "confirmed_at": {
+ "description": "결말(확인/실패)이 난 봉 시각",
+ "format": "date-time",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "entry": {
+ "description": "체결 기준 가격 = 신호 시점 종가",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "prev_signal": {
+ "properties": {
+ "side": {
+ "description": "buy=매수 · sell=매도",
+ "enum": [
+ "buy",
+ "sell",
+ null
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signal_time": {
+ "format": "date-time",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "stage": {
+ "description": "target_selected=대상선정 · pending=판정보류(종가가 신호봉 안) · confirmed=확인(종가가 신호 방향 경계 밖) · failed=실패(반대 경계 밖) · none=신호 없음",
+ "enum": [
+ "target_selected",
+ "pending",
+ "confirmed",
+ "failed",
+ "none"
+ ],
+ "type": "string"
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "resolved_close": {
+ "description": "결말을 정한 종가",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "side": {
+ "description": "buy=매수 · sell=매도",
+ "enum": [
+ "buy",
+ "sell",
+ null
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "signal_bar": {
+ "description": "신호봉(판단봉 2) — 종가가 이 범위 밖으로 나가면 확인/실패, 안이면 판정보류",
+ "properties": {
+ "high": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "low": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "time": {
+ "format": "date-time",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "signal_time": {
+ "description": "신호 시각(판단봉 2를 봉인하는 S 봉)",
+ "format": "date-time",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "stage": {
+ "description": "target_selected=대상선정 · pending=판정보류(종가가 신호봉 안) · confirmed=확인(종가가 신호 방향 경계 밖) · failed=실패(반대 경계 밖) · none=신호 없음",
+ "enum": [
+ "target_selected",
+ "pending",
+ "confirmed",
+ "failed",
+ "none"
+ ],
+ "type": "string"
+ },
+ "stop": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "target": {
+ "description": "진입가 대비 2% 이상 거리의 반대 측 확인 신호 경계. 없으면 null",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "target_reason": {
+ "description": "target 이 null 인 이유",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "timeframe": {
+ "enum": [
+ "1w",
+ "1d",
+ "8h",
+ "4h",
+ "1h",
+ "30m"
+ ],
+ "type": "string"
+ },
+ "unit_target": {
+ "description": "이 시간대가 지금 판정 중인 대상 가격",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "unit_target_touch": {
+ "enum": [
+ "break",
+ "inside",
+ null
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "timeframe",
+ "stage",
+ "side"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "symbol",
+ "as_of",
+ "price",
+ "timeframes",
+ "events",
+ "missing_timeframes"
+ ],
+ "type": "object"
+}