2ee759fed1
Dashboard 고도화: - KPI 카드 4개 (Active Positions, Portfolio Value, Signal Quality, System Status) - Market Overview 섹션 (Market Status + System Health) - Performance Metrics 그리드 (YTD Return, Sharpe Ratio, Max Drawdown 등) - Algorithm Status 테이블 (P0~P6 진행 상황) - Live Signal Feed 테이블 (최근 5개 신호) UI 완성도: 91/100 (우수) - Page Load: 15/15 (HTTP 200, 1.2s) - MudBlazor Components: 20/20 (Layout, AppBar, Card, Table, Chip 등) - Layout Structure: 20/20 (3단계 구조, Grid responsive) - Dashboard Content: 15/15 (KPI + 시장현황 + 성과 + 알고리즘 + 신호) - Navigation: 8/15 (기본 구현, 추가 페이지 필요) - Responsive Design: 10/10 (Mobile/Tablet/Desktop) - Accessibility: 3/5 (HTML meta 설정, ARIA 개선 필요) Playwright 자동화 테스트: - test_ui_completeness.py: 종합 평가 스크립트 - test_ui_with_details.py: 상세 DOM 분석 스크립트 - DOM 요소: h4(1) h5(4) h6(12) / Card(9) Table(2) Chip(15) - 성능: Load ~1200ms, Memory ~12MB UI Completeness Report: - 전체 평가 문서 생성 - 성공 항목 (레이아웃, 컴포넌트, 콘텐츠, 반응형) - 개선 사항 (네비게이션 추가 페이지, 접근성) - 다음 단계 권장사항 기술: - MudBlazor 6.10.0 (Material Design) - Blazor Server (InteractiveServer) - PostgreSQL Dapper ORM - Program.cs: AddMudServices() 추가 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
4446 lines
122 KiB
YAML
4446 lines
122 KiB
YAML
meta:
|
||
title: 은퇴자산포트폴리오 — LLM 실행용 필드 사전
|
||
parent_file: RetirementAssetPortfolio.yaml
|
||
version: 2026-05-20-HARNESS_V4
|
||
language: ko-KR
|
||
timezone: Asia/Seoul
|
||
role: canonical
|
||
has_code_implementation: true
|
||
code_path: spec/14_raw_workbook_mapping.yaml
|
||
purpose: 'LLM이 동일 필드를 여러 이름으로 해석하지 않도록 canonical field, alias, 타입, 단위, 누락 정책을 고정한다.
|
||
알고리즘 파일은 이 사전의 canonical_name을 사용한다.
|
||
|
||
'
|
||
field_dictionary:
|
||
policy:
|
||
canonical_name_required: true
|
||
alias_resolution_order:
|
||
- exact canonical_name
|
||
- aliases
|
||
- source_column
|
||
unknown_field_action: DATA_MISSING으로 처리하고 임의 추정 금지
|
||
unit_conflict_action: DATA_CONFLICT. 계산·수량 산출 금지
|
||
fields:
|
||
ticker:
|
||
canonical_name: ticker
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- Ticker
|
||
- 종목코드
|
||
- code
|
||
name:
|
||
canonical_name: name
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- Name
|
||
- 종목명
|
||
close_price:
|
||
canonical_name: close_price
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- 현재가
|
||
velocity_1d:
|
||
canonical_name: velocity_1d
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- Velocity_1D
|
||
- v1d
|
||
note: VELOCITY_V1 산출 — 1일 가격 속도
|
||
velocity_5d:
|
||
canonical_name: velocity_5d
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- Velocity_5D
|
||
- v5d
|
||
note: VELOCITY_V1 산출 — 5일 가격 속도
|
||
open_price:
|
||
canonical_name: open_price
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- Open
|
||
- 시가
|
||
- open
|
||
previous_close_price:
|
||
canonical_name: previous_close_price
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- PrevClose
|
||
- 전일종가
|
||
- previous_close
|
||
volume:
|
||
canonical_name: volume
|
||
type: number
|
||
unit: shares
|
||
aliases:
|
||
- Volume
|
||
- 거래량
|
||
- volume_shares
|
||
entry_price:
|
||
canonical_name: entry_price
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- 지정가
|
||
- 진입가
|
||
- entry
|
||
- Entry_Price
|
||
limit_price:
|
||
canonical_name: limit_price
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- limit
|
||
- 주문지정가
|
||
stop_price:
|
||
canonical_name: stop_price
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- 손절가
|
||
- stop
|
||
- stop_loss_price
|
||
spsv2_verdict:
|
||
canonical_name: spsv2_verdict
|
||
type: enum
|
||
unit: none
|
||
aliases:
|
||
- SPSV2 판정
|
||
- sell_price_sanity_verdict
|
||
target_price:
|
||
canonical_name: target_price
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- 목표가
|
||
- 익절가
|
||
- take_profit_price
|
||
- Target_Price
|
||
quantity:
|
||
canonical_name: quantity
|
||
type: integer
|
||
unit: shares
|
||
aliases:
|
||
- 수량
|
||
- 보유수량
|
||
- confirmed_holding_quantity
|
||
atr20:
|
||
canonical_name: atr20
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- ATR20
|
||
- 20일 ATR
|
||
- atr_20
|
||
total_asset:
|
||
canonical_name: total_asset
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- 총자산
|
||
- portfolio_value
|
||
- account_total_asset
|
||
available_cash:
|
||
canonical_name: available_cash
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- 주문가능현금
|
||
- buy_power_cash
|
||
- 예수금
|
||
- Cash_Available
|
||
avg_trade_value_5d:
|
||
canonical_name: avg_trade_value_5d
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- AvgTradeValue_5D_KRW
|
||
- AvgTradeValue_5D_M
|
||
- 5D평균거래대금
|
||
- avg_daily_value_5d
|
||
avg_trade_value_20d:
|
||
canonical_name: avg_trade_value_20d
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- AvgTradeValue_20D_KRW
|
||
- AvgTradeValue_20D_M
|
||
- 20D평균거래대금
|
||
avg_volume_5d:
|
||
canonical_name: avg_volume_5d
|
||
type: number
|
||
unit: shares
|
||
aliases:
|
||
- AvgVolume_5D
|
||
- AvgVolume_5D_shares
|
||
- 5D평균거래량
|
||
frg_5d_sh:
|
||
canonical_name: frg_5d_sh
|
||
type: number
|
||
unit: shares
|
||
aliases:
|
||
- Frg_5D(sh)
|
||
- Frg_5D_sh
|
||
- 외국인5D
|
||
frg_20d_sh:
|
||
canonical_name: frg_20d_sh
|
||
type: number
|
||
unit: shares
|
||
aliases:
|
||
- Frg_20D(sh)
|
||
- Frg_20D
|
||
- 외국인20D
|
||
inst_5d_sh:
|
||
canonical_name: inst_5d_sh
|
||
type: number
|
||
unit: shares
|
||
aliases:
|
||
- Inst_5D(sh)
|
||
- Inst_5D_sh
|
||
- 기관5D
|
||
inst_20d_sh:
|
||
canonical_name: inst_20d_sh
|
||
type: number
|
||
unit: shares
|
||
aliases:
|
||
- Inst_20D(sh)
|
||
- 기관20D
|
||
beta:
|
||
canonical_name: beta
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- Beta
|
||
- 종목베타
|
||
- stock_beta
|
||
flow_rows:
|
||
canonical_name: flow_rows
|
||
type: integer
|
||
unit: rows
|
||
aliases:
|
||
- Flow_Rows
|
||
- 수급행수
|
||
flow_ok:
|
||
canonical_name: flow_ok
|
||
type: boolean
|
||
unit: none
|
||
aliases:
|
||
- Flow_OK
|
||
- flow_valid
|
||
flow_credit:
|
||
canonical_name: flow_credit
|
||
type: number
|
||
unit: ratio_0_1
|
||
aliases:
|
||
- Flow_Credit
|
||
- 수급점수_가중치
|
||
ma20:
|
||
canonical_name: ma20
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- MA20
|
||
- 20일선
|
||
- moving_average_20
|
||
vwap:
|
||
canonical_name: vwap
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- VWAP
|
||
- 거래량가중평균가
|
||
rsi_15m:
|
||
canonical_name: rsi_15m
|
||
type: number
|
||
unit: points
|
||
aliases:
|
||
- RSI_15M
|
||
- 15분봉RSI
|
||
volume_climax:
|
||
canonical_name: volume_climax
|
||
type: boolean
|
||
unit: none
|
||
aliases:
|
||
- Volume_Climax
|
||
- 거래량폭증
|
||
total_asset_ma10:
|
||
canonical_name: total_asset_ma10
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- 자산MA10
|
||
- total_equity_ma10
|
||
sea_action_tag:
|
||
canonical_name: sea_action_tag
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- SEA액션태그
|
||
equity_curve_status:
|
||
canonical_name: equity_curve_status
|
||
type: enum
|
||
unit: none
|
||
aliases:
|
||
- 자산곡선상태
|
||
relative_strength_1m_percentile:
|
||
canonical_name: relative_strength_1m_percentile
|
||
type: number
|
||
unit: percentile
|
||
aliases:
|
||
- RS_Pct_20D_Percentile
|
||
- 상대강도_백분위
|
||
rsi_14:
|
||
canonical_name: rsi_14
|
||
type: number
|
||
unit: points
|
||
aliases:
|
||
- RSI
|
||
- RSI_14
|
||
- 상대강도지수
|
||
cash_shortfall_krw:
|
||
canonical_name: cash_shortfall_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- 현금부족액
|
||
- cash_deficit
|
||
data_integrity_score:
|
||
canonical_name: data_integrity_score
|
||
type: number
|
||
unit: score_0_100
|
||
aliases:
|
||
- schema_presence_score
|
||
- data_quality_score
|
||
data_maturity_score:
|
||
canonical_name: data_maturity_score
|
||
type: number
|
||
unit: score_0_100
|
||
aliases:
|
||
- data_maturity
|
||
- maturity_score
|
||
pending_critical_category_count:
|
||
canonical_name: pending_critical_category_count
|
||
type: integer
|
||
unit: count
|
||
aliases:
|
||
- pending_categories_count
|
||
- critical_pending_count
|
||
pending_critical_categories:
|
||
canonical_name: pending_critical_categories
|
||
type: array
|
||
unit: none
|
||
aliases:
|
||
- pending_categories
|
||
- missing_critical_categories
|
||
stock_close_5d_return:
|
||
canonical_name: stock_close_5d_return
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- 종목5D수익률
|
||
kospi_close_5d_return:
|
||
canonical_name: kospi_close_5d_return
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- 코스피5D수익률
|
||
sector_smartmoney_5d:
|
||
canonical_name: sector_smartmoney_5d
|
||
type: number
|
||
unit: normalized_score
|
||
aliases:
|
||
- sector_flow.SmartMoney_5D_Norm_Score
|
||
- 섹터스마트머니5D
|
||
sector_rank:
|
||
canonical_name: sector_rank
|
||
type: integer
|
||
unit: none
|
||
aliases:
|
||
- sector_flow.Rank
|
||
- 섹터순위
|
||
sector_top2_names:
|
||
canonical_name: sector_top2_names
|
||
type: list
|
||
unit: none
|
||
aliases:
|
||
- sector_flow.Top2_Sectors
|
||
- 상위2개섹터
|
||
alpha_shield_status:
|
||
canonical_name: alpha_shield_status
|
||
type: enum
|
||
unit: none
|
||
aliases:
|
||
- 알파실드상태
|
||
rotation_radar_status:
|
||
canonical_name: rotation_radar_status
|
||
type: enum
|
||
unit: none
|
||
aliases:
|
||
- 로테이션레이더상태
|
||
flow_acceleration_status:
|
||
canonical_name: flow_acceleration_status
|
||
type: enum
|
||
unit: none
|
||
aliases:
|
||
- 수급가속도상태
|
||
oversold_exit_strategy:
|
||
canonical_name: oversold_exit_strategy
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- 과매도탈출전략
|
||
divergence_score:
|
||
canonical_name: divergence_score
|
||
type: number
|
||
unit: ratio_0_1
|
||
aliases:
|
||
- 다이버전스점수
|
||
overhang_score:
|
||
canonical_name: overhang_score
|
||
type: number
|
||
unit: ratio_0_1
|
||
aliases:
|
||
- 오버행점수
|
||
rs_ratio:
|
||
canonical_name: rs_ratio
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- RS비율
|
||
deviation_ratio:
|
||
canonical_name: deviation_ratio
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- 이격비율
|
||
vix_close:
|
||
canonical_name: vix_close
|
||
type: number
|
||
unit: index_points
|
||
aliases:
|
||
- VIX_Close
|
||
kospi_close:
|
||
canonical_name: kospi_close
|
||
type: number
|
||
unit: index_points
|
||
aliases:
|
||
- KOSPI
|
||
- KOSPI_Close
|
||
kospi_ma20:
|
||
canonical_name: kospi_ma20
|
||
type: number
|
||
unit: index_points
|
||
aliases:
|
||
- KOSPI_MA20
|
||
usd_krw:
|
||
canonical_name: usd_krw
|
||
type: number
|
||
unit: KRW_per_USD
|
||
aliases:
|
||
- USD/KRW
|
||
- USDKRW
|
||
market_risk_score:
|
||
canonical_name: market_risk_score
|
||
type: number
|
||
unit: points_0_10
|
||
aliases:
|
||
- MRS
|
||
- market_risk_score
|
||
- MRS합계
|
||
cash_floor_regime_min_pct:
|
||
canonical_name: cash_floor_regime_min_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- regime_min_cash_pct
|
||
usd_jpy_2d_change_pct:
|
||
canonical_name: usd_jpy_2d_change_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- USD_JPY_2D_Change_Pct
|
||
- USD/JPY_2D
|
||
credit_stress_status:
|
||
canonical_name: credit_stress_status
|
||
type: enum
|
||
unit: none
|
||
aliases:
|
||
- credit_stress
|
||
- HY_OAS_Status
|
||
- CP_CD_Spread_Status
|
||
bayesian_confidence_multiplier:
|
||
canonical_name: bayesian_confidence_multiplier
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- bayesian_multiplier
|
||
- confidence_multiplier
|
||
execution_cost_rate:
|
||
canonical_name: execution_cost_rate
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- cost_rate
|
||
- fee_slippage_rate
|
||
base_risk_budget:
|
||
canonical_name: base_risk_budget
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- risk_budget
|
||
- base_risk
|
||
net_return_feedback_multiplier:
|
||
canonical_name: net_return_feedback_multiplier
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- net_feedback_multiplier
|
||
performance_brake_multiplier:
|
||
canonical_name: performance_brake_multiplier
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- performance_multiplier
|
||
regime_reset_multiplier:
|
||
canonical_name: regime_reset_multiplier
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- regime_multiplier
|
||
kelly_brake_multiplier:
|
||
canonical_name: kelly_brake_multiplier
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- kelly_multiplier
|
||
final_risk_budget:
|
||
canonical_name: final_risk_budget
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- effective_risk_budget
|
||
current_price:
|
||
canonical_name: current_price
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- CurrentPrice
|
||
- last_price
|
||
average_cost:
|
||
canonical_name: average_cost
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- 평단
|
||
- Avg_Cost
|
||
- average_entry_price
|
||
highest_price_since_entry:
|
||
canonical_name: highest_price_since_entry
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- highestPriceSinceEntry
|
||
- highest_close
|
||
note: 진입 후 최고 종가 — L2 ATR 트레일링 기준가. prices_json에 포함
|
||
ma60:
|
||
canonical_name: ma60
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- MA60
|
||
- 60일선
|
||
- moving_average_60
|
||
current_weight_pct:
|
||
canonical_name: current_weight_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- 현재비중
|
||
- current_weight
|
||
target_band_min_pct:
|
||
canonical_name: target_band_min_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- 목표밴드하단
|
||
target_band_max_pct:
|
||
canonical_name: target_band_max_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- 목표밴드상단
|
||
immediate_cash:
|
||
canonical_name: immediate_cash
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- 즉시현금
|
||
- 출금가능현금
|
||
settlement_cash:
|
||
canonical_name: settlement_cash
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- D+2추정현금
|
||
- settlement_cash_d2
|
||
reserved_order_amount:
|
||
canonical_name: reserved_order_amount
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- 예약주문금액
|
||
- open_order_amount
|
||
planned_buy_amount:
|
||
canonical_name: planned_buy_amount
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- 신규매수예상금액
|
||
- planned_order_amount
|
||
sell_cash_proceeds_d2:
|
||
canonical_name: sell_cash_proceeds_d2
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- 매도대금정산분
|
||
- sell_cash_proceeds_immediate
|
||
- 매도대금즉시반영분
|
||
note: '사용자 지침: D+2 정산현금이 현금이다. 매도 후 D+2에 정산될 현금 유입액.'
|
||
min_cash_ratio:
|
||
canonical_name: min_cash_ratio
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- 최소현금비중
|
||
trailing_atr_multiplier:
|
||
canonical_name: trailing_atr_multiplier
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- trailing_ATR배수
|
||
trailing_stop_price:
|
||
canonical_name: trailing_stop_price
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- trailing_stop_가격
|
||
- 트레일링스탑가
|
||
position_class:
|
||
canonical_name: position_class
|
||
type: enum
|
||
unit: none
|
||
aliases:
|
||
- 분류
|
||
- core_satellite_class
|
||
- position_type
|
||
take_profit_ladder:
|
||
canonical_name: take_profit_ladder
|
||
type: object
|
||
unit: none
|
||
aliases:
|
||
- 익절래더
|
||
- tiered_ladder_output
|
||
cash_ratio_set:
|
||
canonical_name: cash_ratio_set
|
||
type: object
|
||
unit: none
|
||
aliases:
|
||
- 현금비중세트
|
||
portfolio_band_status:
|
||
canonical_name: portfolio_band_status
|
||
type: enum
|
||
unit: none
|
||
aliases:
|
||
- 버킷밴드상태
|
||
- target_band_status
|
||
atr_multiplier:
|
||
canonical_name: atr_multiplier
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- ATR배수
|
||
target_weight_limit_amount:
|
||
canonical_name: target_weight_limit_amount
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- 목표비중한도금액
|
||
sector_limit_amount:
|
||
canonical_name: sector_limit_amount
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- 섹터한도금액
|
||
liquidity_limit_amount:
|
||
canonical_name: liquidity_limit_amount
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- 유동성상한금액
|
||
forward_pe:
|
||
canonical_name: forward_pe
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- Forward_PE
|
||
- ForwardPER
|
||
- 선행PER
|
||
- 12M_Forward_PE
|
||
pbr:
|
||
canonical_name: pbr
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- PBR
|
||
- P/B
|
||
- 주가순자산비율
|
||
eps_revision_status:
|
||
canonical_name: eps_revision_status
|
||
type: enum
|
||
unit: none
|
||
aliases:
|
||
- EPS_Revision_Status
|
||
- eps_revision
|
||
- EPS방향
|
||
sector_median_forward_pe:
|
||
canonical_name: sector_median_forward_pe
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- sector_median_PE
|
||
- 섹터중앙값PER
|
||
- SectorPE_Median
|
||
sector_median_pbr:
|
||
canonical_name: sector_median_pbr
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- sector_median_PBR
|
||
- 섹터중앙값PBR
|
||
eps_growth_3y_cagr_pct:
|
||
canonical_name: eps_growth_3y_cagr_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- EPS_Growth_3Y
|
||
- EPS_CAGR_3Y
|
||
- EPS3Y성장률
|
||
- EPS_Growth_3Y_CAGR_pct
|
||
roe_pct:
|
||
canonical_name: roe_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- ROE_Pct
|
||
- ROE
|
||
- 자기자본이익률
|
||
- return_on_equity
|
||
operating_margin_pct:
|
||
canonical_name: operating_margin_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- Operating_Margin_Pct
|
||
- 영업이익률
|
||
- op_margin
|
||
debt_to_equity:
|
||
canonical_name: debt_to_equity
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- Debt_To_Equity
|
||
- D/E
|
||
- 부채비율
|
||
- debtToEquity
|
||
fcf_b:
|
||
canonical_name: fcf_b
|
||
type: number
|
||
unit: KRW_100million
|
||
aliases:
|
||
- FCF_B
|
||
- 잉여현금흐름
|
||
- freeCashflow_B
|
||
revenue_growth_pct:
|
||
canonical_name: revenue_growth_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- Revenue_Growth_Pct
|
||
- 매출성장률
|
||
- revenueGrowth
|
||
sector_type:
|
||
canonical_name: sector_type
|
||
type: enum
|
||
unit: none
|
||
aliases:
|
||
- 업종구분
|
||
- Sector_Type
|
||
beta_i:
|
||
canonical_name: beta_i
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- 개별종목베타
|
||
market_value_i:
|
||
canonical_name: market_value_i
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- 개별종목시가
|
||
total_equity_value:
|
||
canonical_name: total_equity_value
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- 총주식가치
|
||
take_profit_ladder_v2:
|
||
canonical_name: take_profit_ladder_v2
|
||
type: object
|
||
unit: none
|
||
aliases:
|
||
- V2익절래더
|
||
financial_health_score:
|
||
canonical_name: financial_health_score
|
||
type: number
|
||
unit: points_neg5_to_20
|
||
aliases:
|
||
- FHS
|
||
- 재무점수
|
||
portfolio_beta:
|
||
canonical_name: portfolio_beta
|
||
type: number_or_null
|
||
unit: ratio
|
||
aliases:
|
||
- portfolioBeta
|
||
note: M2_PORTFOLIO_BETA_GATE_V1 산출 — 보유 종목 가중평균 베타. null=데이터 부족
|
||
tier_completed:
|
||
canonical_name: tier_completed
|
||
type: enum
|
||
unit: none
|
||
aliases:
|
||
- 완료단계
|
||
- 익절완료단계
|
||
note: PROFIT_LOCK_RATCHET_V1 입력 — tier_1 또는 tier_2 익절 완료 단계
|
||
ratchet_stop_price:
|
||
canonical_name: ratchet_stop_price
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- 래칫손절가
|
||
- 보호스탑가격
|
||
note: PROFIT_LOCK_RATCHET_V1 출력 — 익절 후 상향된 손절 보호가
|
||
raw_price:
|
||
canonical_name: raw_price
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- 정규화전가격
|
||
note: TICK_NORMALIZER_V1 입력 — 호가 단위 정규화 전 원시 가격
|
||
tick_normalized_price:
|
||
canonical_name: tick_normalized_price
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- 호가정규화가격
|
||
- HTS입력가격
|
||
note: TICK_NORMALIZER_V1 출력 — KRX 호가 단위 정규화 완료 가격
|
||
tp_price:
|
||
canonical_name: tp_price
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- 익절목표가
|
||
- take_profit_price_raw
|
||
note: TP_VALIDITY_CHECK_V1 입력 — TAKE_PROFIT_LADDER_V2가 산출한 티어별 TP 원시 가격 (tp1
|
||
또는 tp2)
|
||
tp_validated_price:
|
||
canonical_name: tp_validated_price
|
||
type: number
|
||
unit: KRW_per_share_or_null
|
||
aliases:
|
||
- 유효익절가
|
||
- validated_tp
|
||
note: TP_VALIDITY_CHECK_V1 출력 — 현재가 이하 TP는 null. 유효한 경우만 HTS 입력 허용.
|
||
market_regime_state:
|
||
canonical_name: market_regime_state
|
||
type: enum
|
||
unit: none
|
||
aliases:
|
||
- 시장국면단계
|
||
- regime_phase
|
||
- market_phase
|
||
note: REGIME_TRIM_WEIGHT_V1 입력 — spec/11_market_regime.yaml 국면 분류 결과 (ADVANCE/PULLBACK_IN_UPTREND/DISTRIBUTION/BREAKDOWN)
|
||
frg_5d_krw:
|
||
canonical_name: frg_5d_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- Frg_5D_KRW
|
||
- 외국인5D순매수금액
|
||
note: 외국인 5일 순매수금액(KRW). 양수=순매수, 음수=순매도
|
||
inst_5d_krw:
|
||
canonical_name: inst_5d_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- Inst_5D_KRW
|
||
- 기관5D순매수금액
|
||
note: 기관 5일 순매수금액(KRW). 양수=순매수, 음수=순매도
|
||
secular_leader_gate_active:
|
||
canonical_name: secular_leader_gate_active
|
||
type: boolean
|
||
unit: none
|
||
aliases:
|
||
- 주도주게이트활성
|
||
note: SECULAR_LEADER_REGIME_GATE_V1 출력 — 삼성전자·SK하이닉스 secular_leader_profit_lock
|
||
발동 여부
|
||
secular_leader_gate_status:
|
||
canonical_name: secular_leader_gate_status
|
||
type: enum
|
||
unit: none
|
||
aliases:
|
||
- 주도주게이트상태
|
||
note: SECULAR_LEADER_REGIME_GATE_V1 출력 — ACTIVE/DEACTIVATED/ACTIVATION_FAIL/NOT_APPLICABLE
|
||
total_asset_krw:
|
||
canonical_name: total_asset_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- totalAsset
|
||
- 포트폴리오총자산
|
||
note: buildHarnessContext_ 집계값 — 보유종목 평가액 + 현금(D+2 기준) 합계
|
||
net_expectancy_30:
|
||
canonical_name: net_expectancy_30
|
||
type: number_or_null
|
||
unit: percent
|
||
aliases:
|
||
- net_exp_30
|
||
- monthly_net_expectancy
|
||
note: Bayesian 성과 계산기 출력 — 최근 30거래일 순기대 수익률(%). GOAL_RETIREMENT_V1 ETA 계산 기준.
|
||
goal_asset_krw:
|
||
canonical_name: goal_asset_krw
|
||
type: integer
|
||
unit: KRW
|
||
aliases:
|
||
- 목표자산
|
||
- goal_krw
|
||
note: GOAL_RETIREMENT_V1 고정값 — 500,000,000 KRW (5억원). LLM 재정의 금지.
|
||
goal_current_asset_krw:
|
||
canonical_name: goal_current_asset_krw
|
||
type: integer
|
||
unit: KRW
|
||
aliases:
|
||
- 현재자산
|
||
- current_asset_krw
|
||
note: GOAL_RETIREMENT_V1 산출 — 하네스 캡처 시점 총 자산(totalAsset)
|
||
goal_achievement_pct:
|
||
canonical_name: goal_achievement_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- 목표달성률
|
||
- achievement_pct
|
||
note: GOAL_RETIREMENT_V1 산출 — goal_current_asset_krw / goal_asset_krw * 100.
|
||
소수점 1자리.
|
||
goal_remaining_krw:
|
||
canonical_name: goal_remaining_krw
|
||
type: integer
|
||
unit: KRW
|
||
aliases:
|
||
- 목표잔여금
|
||
- remaining_krw
|
||
note: GOAL_RETIREMENT_V1 산출 — max(0, goal_asset_krw - goal_current_asset_krw)
|
||
goal_eta_months:
|
||
canonical_name: goal_eta_months
|
||
type: integer_or_null
|
||
unit: months
|
||
aliases:
|
||
- 목표달성월수
|
||
- eta_months
|
||
note: GOAL_RETIREMENT_V1 복리 ETA — null이면 DATA_MISSING(net_expectancy_30 없음).
|
||
0이면 ACHIEVED.
|
||
goal_eta_label:
|
||
canonical_name: goal_eta_label
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- 목표달성예상월
|
||
- eta_label
|
||
note: GOAL_RETIREMENT_V1 ETA 연월 — YYYY-MM 또는 ACHIEVED 또는 DATA_MISSING
|
||
goal_monthly_growth_pct:
|
||
canonical_name: goal_monthly_growth_pct
|
||
type: number_or_null
|
||
unit: percent
|
||
aliases:
|
||
- 월간기대수익률
|
||
- monthly_growth_pct
|
||
note: GOAL_RETIREMENT_V1 ETA 계산 기준 — performance.net_expectancy_30 전달값
|
||
goal_status:
|
||
canonical_name: goal_status
|
||
type: enum
|
||
unit: none
|
||
aliases:
|
||
- 목표상태
|
||
- goal_state
|
||
values:
|
||
- ACHIEVED
|
||
- IN_PROGRESS
|
||
note: GOAL_RETIREMENT_V1 산출 — goal_current_asset_krw >= goal_asset_krw이면 ACHIEVED
|
||
settlement_cash_d2_krw:
|
||
canonical_name: settlement_cash_d2_krw
|
||
type: integer
|
||
unit: KRW
|
||
aliases:
|
||
- d2_cash_krw
|
||
- D2현금
|
||
note: D+2 정산 현금 — cash_ledger_basis=D2_ONLY 기준 유일 허용 현금
|
||
cash_floor_min_pct:
|
||
canonical_name: cash_floor_min_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- 최소현금방어선
|
||
- min_cash_pct
|
||
note: calcCashFloor_() 산출 — MRS 기반 국면별 최소 현금 비율
|
||
mrs_score:
|
||
canonical_name: mrs_score
|
||
type: number
|
||
unit: score_0_100
|
||
aliases:
|
||
- 시장위험점수
|
||
note: MARKET_RISK_SCORE_V1 산출값 (0~100). TARGET_CASH_PCT_V1 입력.
|
||
sell_candidates_json:
|
||
canonical_name: sell_candidates_json
|
||
type: json_array
|
||
unit: none
|
||
aliases:
|
||
- 매도후보목록
|
||
note: H2 calcSellPriority_() 산출 — sell_priority 기반 정렬 배열
|
||
sell_quantities_json:
|
||
canonical_name: sell_quantities_json
|
||
type: json_array
|
||
unit: none
|
||
aliases:
|
||
- 매도수량목록
|
||
- h3_sell_qty
|
||
note: H3 calcQuantities_() 산출 — 종목별 매도수량 확정 배열
|
||
cash_current_pct_d2:
|
||
canonical_name: cash_current_pct_d2
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- 현금비중d2
|
||
- d2_cash_pct
|
||
note: D+2 정산현금 / 총자산 × 100 — GAS 결정론적 산출 (LLM 재계산 금지)
|
||
cash_target_pct:
|
||
canonical_name: cash_target_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- 목표현금비중
|
||
- target_cash_pct
|
||
note: 'TARGET_CASH_PCT_V1: max(5 + (MRS/10)×15, cash_floor_min_pct)'
|
||
cash_shortfall_min_krw:
|
||
canonical_name: cash_shortfall_min_krw
|
||
type: integer
|
||
unit: KRW
|
||
aliases:
|
||
- 최소현금부족액
|
||
- shortfall_min
|
||
note: 최소 현금 방어선까지 부족액 — 0이면 방어선 충족. LLM '약 N원' 계산 대체
|
||
cash_shortfall_target_krw:
|
||
canonical_name: cash_shortfall_target_krw
|
||
type: integer
|
||
unit: KRW
|
||
aliases:
|
||
- 목표현금부족액
|
||
- shortfall_target
|
||
note: 국면별 목표 현금비율까지 부족액 — TARGET_CASH_PCT_V1 기준
|
||
trim_plan_to_min_cash_json:
|
||
canonical_name: trim_plan_to_min_cash_json
|
||
type: json_array
|
||
unit: none
|
||
aliases:
|
||
- 현금회복trim계획
|
||
- trim_plan_min
|
||
note: H2 매도우선순위 기반 종목별 TRIM 계획 — LLM 임의 종목·순서 선택 금지
|
||
external_context_json:
|
||
canonical_name: external_context_json
|
||
type: json_array
|
||
unit: none
|
||
aliases:
|
||
- 외부시장데이터
|
||
- external_data
|
||
note: G3 격리 규칙 적용 — used_for=CONTEXT_ONLY 전용. 주문 판단에 사용 금지
|
||
required_sub_fields:
|
||
- source_name
|
||
- fetched_at
|
||
- symbol
|
||
- value
|
||
- used_for
|
||
alpha_lead_score:
|
||
canonical_name: alpha_lead_score
|
||
type: number
|
||
unit: score_0_100
|
||
note: ALPHA_LEAD_SCORE_V1 산출 — 선행 파일럿 진입 가능성 점수
|
||
lead_entry_state:
|
||
canonical_name: lead_entry_state
|
||
type: string
|
||
unit: enum
|
||
note: PILOT_ALLOWED | WATCH_ONLY | BLOCKED_LATE_CHASE | DATA_MISSING
|
||
follow_through_state:
|
||
canonical_name: follow_through_state
|
||
type: string
|
||
unit: enum
|
||
note: FOLLOW_THROUGH_CONFIRM_V1 산출 — CONFIRMED_ADD_ON | WAIT_PULLBACK | FAILED_BREAKOUT
|
||
holding_quantity:
|
||
canonical_name: holding_quantity
|
||
type: integer
|
||
unit: shares
|
||
aliases:
|
||
- 보유수량_k1
|
||
note: K1 트랜치 판단용 현재 보유수량
|
||
profit_pct:
|
||
canonical_name: profit_pct
|
||
type: number
|
||
unit: percent
|
||
note: PROFIT_PRESERVATION_STATE_V1 산출 — (close-avgCost)/avgCost×100
|
||
close_vs_ma20_pct:
|
||
canonical_name: close_vs_ma20_pct
|
||
type: number
|
||
unit: percent
|
||
note: ALPHA_LEAD_SCORE_V1 산출 — (close/MA20-1)×100, 눌림 판단에 사용
|
||
tranche_phase:
|
||
canonical_name: tranche_phase
|
||
type: string
|
||
unit: enum
|
||
note: STAGED_ENTRY_TRANCHE_V1 산출 — WAIT_PILOT_SETUP | TRANCHE_1_PILOT | TRANCHE_2_ADD_ON
|
||
| TRANCHE_3_PULLBACK_ADD | HOLD_CURRENT
|
||
current_tranche_allowed_pct:
|
||
canonical_name: current_tranche_allowed_pct
|
||
type: number
|
||
unit: percent
|
||
note: 'K1: 현재 단계에서 허용된 매수 비중 (0 | 30 | 40)'
|
||
next_tranche_condition:
|
||
canonical_name: next_tranche_condition
|
||
type: string
|
||
unit: description
|
||
note: 'K1: 다음 트랜치 진입 조건 코드'
|
||
close:
|
||
canonical_name: close
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- Close
|
||
- 종가
|
||
note: 당일 종가 — K2 반등 매도 예상금액 계산 기준
|
||
base_sell_qty:
|
||
canonical_name: base_sell_qty
|
||
type: integer
|
||
unit: shares
|
||
note: 'K2: SELL_QUANTITY_ALLOCATOR_V1(H3) 산출 기준 매도수량'
|
||
execution_style:
|
||
canonical_name: execution_style
|
||
type: string
|
||
unit: enum
|
||
note: URGENT_LIQUIDITY_TRIM | OVERSOLD_REBOUND_SELL | DISTRIBUTION_EXIT | PROFIT_PROTECT_TRIM
|
||
profit_preservation_state:
|
||
canonical_name: profit_preservation_state
|
||
type: string
|
||
unit: enum
|
||
note: PROFIT_PRESERVATION_STATE_V1 산출 — NORMAL | BREAKEVEN_RATCHET | PROFIT_LOCK_10/20/30
|
||
| APEX_TRAILING
|
||
profit_lock_stage:
|
||
canonical_name: profit_lock_stage
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- profitLockStage
|
||
note: PROFIT_LOCK_STAGE_CLASSIFIER_V1 산출 — NORMAL | PROFIT_LOCK_STAGE_10/20/30/50
|
||
immediate_sell_qty:
|
||
canonical_name: immediate_sell_qty
|
||
type: integer
|
||
unit: shares
|
||
note: 'K2: 즉시 체결 대상 수량 (OVERSOLD_REBOUND_SELL의 경우 floor(base/2))'
|
||
rebound_wait_qty:
|
||
canonical_name: rebound_wait_qty
|
||
type: integer
|
||
unit: shares
|
||
note: 'K2: 반등 트리거 대기 수량 — 트리거 미충족 시 HTS 주문 금지'
|
||
emergency_full_sell:
|
||
canonical_name: emergency_full_sell
|
||
type: boolean
|
||
unit: none
|
||
note: 'K2: 비상 전량 매도 플래그 — half_krw×2 < shortfall일 때만 true'
|
||
rebound_trigger_price:
|
||
canonical_name: rebound_trigger_price
|
||
type: integer
|
||
unit: KRW_per_share
|
||
note: 'K2: 반등 매도 실행 트리거 가격 (prevClose+0.5×ATR20, tick 정규화)'
|
||
execution_method_ladder_json:
|
||
canonical_name: execution_method_ladder_json
|
||
type: json_object
|
||
unit: none
|
||
note: EXECUTION_METHOD_LADDER_V1 산출 — 매도 실행 방식 계약표
|
||
sell_timing_verdict:
|
||
canonical_name: sell_timing_verdict
|
||
type: string
|
||
unit: enum
|
||
note: SELL_EXECUTION_TIMING_LOCK_V2 산출 — SELL_READY | TIMING_BLOCKED_INTRADAY
|
||
| SELL_BLOCKED_DATA
|
||
sell_waterfall_gate:
|
||
canonical_name: sell_waterfall_gate
|
||
type: string
|
||
unit: enum
|
||
note: SELL_WATERFALL_ENGINE_V2 산출 — PASS | WARN | FAIL
|
||
smart_cash_recovery_gate:
|
||
canonical_name: smart_cash_recovery_gate
|
||
type: string
|
||
unit: enum
|
||
note: SMART_CASH_RECOVERY_V7 산출 — PASS | WARN | FAIL
|
||
h2_candidates:
|
||
canonical_name: h2_candidates
|
||
type: json_array
|
||
unit: none
|
||
note: 'K3 입력: H2 매도후보 배열'
|
||
ret5d:
|
||
canonical_name: ret5d
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- Ret5D
|
||
note: 5거래일 수익률.
|
||
kospi_ret5d:
|
||
canonical_name: kospi_ret5d
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- KOSPI_Ret5D
|
||
- kospiRet5d
|
||
note: 'K3: KOSPI 5일 수익률 — 고베타 판단 기준'
|
||
frg_5d:
|
||
canonical_name: frg_5d
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- Frg_5D
|
||
- frg5d
|
||
note: K3/DISTRIBUTION_RISK_SCORE_V1 입력 — 외국인 5일 순매수금액
|
||
inst_5d:
|
||
canonical_name: inst_5d
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- Inst_5D
|
||
- inst5d
|
||
note: K3/DISTRIBUTION_RISK_SCORE_V1 입력 — 기관 5일 순매수금액
|
||
ac_gate:
|
||
canonical_name: ac_gate
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- AC_Gate
|
||
- acGate
|
||
note: 'J2/K3: 안티클라이막스 게이트 상태 — CLIMAX 포함 시 설거지 위험 신호'
|
||
regime_adjusted_sell_priority_json:
|
||
canonical_name: regime_adjusted_sell_priority_json
|
||
type: json_array
|
||
unit: none
|
||
aliases:
|
||
- regime_sell_priority
|
||
- k3_priority
|
||
note: K3_REGIME_SELL_PRIORITY_V1 산출 — final_regime_rank 기준 매도 순서. sell_priority_lock=true이면
|
||
LLM 재정렬 금지
|
||
regime_trim_guidance:
|
||
canonical_name: regime_trim_guidance
|
||
type: json_array
|
||
unit: none
|
||
aliases:
|
||
- regimeTrimGuidance
|
||
note: REGIME_TRIM_GUIDANCE_V1 산출 — 국면별 현금확보 TRIM 우선순위
|
||
anti_whipsaw_status:
|
||
canonical_name: anti_whipsaw_status
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- antiWhipsawStatus
|
||
note: ANTI_WHIPSAW_GATE_V1 산출 — WHIPSAW_BLOCK/WARN/CLEAR
|
||
breakeven_stop_price:
|
||
canonical_name: breakeven_stop_price
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- breakevenStopPrice
|
||
note: BREAKEVEN_RATCHET_V1 산출 — 손익분기 래칫 손절가
|
||
weight_pct:
|
||
canonical_name: weight_pct
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- weightPct
|
||
- Weight_Pct
|
||
note: 보유 비중(%) — M2 베타 가중, M5 섹터 편중 계산 입력
|
||
holding_qty:
|
||
canonical_name: holding_qty
|
||
type: number
|
||
unit: shares
|
||
aliases:
|
||
- holdingQty
|
||
note: 현재 보유 수량 — M3 익절 수량 계산 입력
|
||
proposed_quantity:
|
||
canonical_name: proposed_quantity
|
||
type: number_or_null
|
||
unit: shares
|
||
aliases:
|
||
- proposal_qty
|
||
note: proposal_reference_json 제안 수량 — 보유수량 부재 시 stop proposal ladder fallback
|
||
입력
|
||
tp1_price:
|
||
canonical_name: tp1_price
|
||
type: number_or_null
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- TP1_Price
|
||
- tp1Price
|
||
note: M3/prices_json 필드 — TP1 목표 가격. null=이미 통과 또는 미계산
|
||
tp1_qty:
|
||
canonical_name: tp1_qty
|
||
type: number
|
||
unit: shares
|
||
aliases:
|
||
- TP1_Qty
|
||
- tp1Qty
|
||
note: M3 — TP1 도달 시 매도 수량 (수동 입력 또는 AUTO_33PCT)
|
||
tp2_price:
|
||
canonical_name: tp2_price
|
||
type: number_or_null
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- TP2_Price
|
||
- tp2Price
|
||
note: M3/prices_json 필드 — TP2 목표 가격
|
||
tp2_qty:
|
||
canonical_name: tp2_qty
|
||
type: number
|
||
unit: shares
|
||
aliases:
|
||
- TP2_Qty
|
||
- tp2Qty
|
||
note: M3 — TP2 도달 시 매도 수량
|
||
tp3_qty:
|
||
canonical_name: tp3_qty
|
||
type: number
|
||
unit: shares
|
||
aliases:
|
||
- TP3_Qty
|
||
- tp3Qty
|
||
- tp3_quantity
|
||
note: M3 — TP3/잔량 수량
|
||
proposal_stop_ladder:
|
||
canonical_name: proposal_stop_ladder
|
||
type: json_object
|
||
unit: none
|
||
note: STOP_PROPOSAL_LADDER_V1 산출 — proposal_reference_sheet용 손절 1/2/3 가격·수량
|
||
묶음
|
||
dart_risk:
|
||
canonical_name: dart_risk
|
||
type: string
|
||
unit: text
|
||
aliases:
|
||
- DART_Risk
|
||
note: 공시 리스크 요약.
|
||
drawdown_guard_state:
|
||
canonical_name: drawdown_guard_state
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- drawdownGuardState
|
||
note: M1_DRAWDOWN_GUARD_V1 산출 — NO_BUY/REDUCE_BUY/CAUTION_BUY/NORMAL
|
||
drawdown_buy_scale:
|
||
canonical_name: drawdown_buy_scale
|
||
type: number
|
||
unit: 0~1
|
||
aliases:
|
||
- drawdownBuyScale
|
||
- buy_scale
|
||
note: M1 — atrQty 곱셈 배수. 1.0=정상, 0.5=50% 축소, 0=매수 금지
|
||
consecutive_losses:
|
||
canonical_name: consecutive_losses
|
||
type: number
|
||
unit: integer
|
||
aliases:
|
||
- consecutiveLosses
|
||
note: M1 입력 — 최근 연속 손절 횟수 (performance 시트 기준)
|
||
portfolio_beta_gate:
|
||
canonical_name: portfolio_beta_gate
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- portfolioBetaGate
|
||
note: M2 — OVER_BETA/WARN_BETA/PASS/INSUFFICIENT_DATA
|
||
portfolio_beta_gate_json:
|
||
canonical_name: portfolio_beta_gate_json
|
||
type: json_object
|
||
unit: none
|
||
aliases:
|
||
- betaGateJson
|
||
note: M2 — per-holding beta_proxy 상세 및 포트폴리오 베타 요약
|
||
beta_proxy:
|
||
canonical_name: beta_proxy
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- betaProxy
|
||
note: M2/K3 — ret5d/kospiRet5d 기반 베타 근사값. 비정상 시 1.0 사용
|
||
tp_quantity_ladder_json:
|
||
canonical_name: tp_quantity_ladder_json
|
||
type: json_array
|
||
unit: none
|
||
aliases:
|
||
- tpLadderJson
|
||
note: M3_TP_QUANTITY_LADDER_V1 산출 — TP1/2/3 도달 시 매도 수량. tp_quantity_ladder_lock=true이면
|
||
LLM 변경 금지
|
||
qty_source:
|
||
canonical_name: qty_source
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- qtySource
|
||
note: M3 — MANUAL(수동 입력)/AUTO_33PCT(자동 33%)/NO_HOLDING
|
||
event_hold_days:
|
||
canonical_name: event_hold_days
|
||
type: number_or_null
|
||
unit: integer
|
||
aliases:
|
||
- eventHoldDays
|
||
- Event_Hold_Days
|
||
note: M4 입력 — 이벤트(실적/공시) 홀드 잔여일. <=5이면 EVENT_HOLD
|
||
event_hold_gate:
|
||
canonical_name: event_hold_gate
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- eventHoldGate
|
||
note: M4_EVENT_RISK_HOLD_GATE_V1 산출 — EVENT_HOLD/PASS
|
||
event_risk_json:
|
||
canonical_name: event_risk_json
|
||
type: json_array
|
||
unit: none
|
||
aliases:
|
||
- eventRiskJson
|
||
note: M4 — per-holding 이벤트 홀드 게이트 상태 배열
|
||
sector_concentration_gate:
|
||
canonical_name: sector_concentration_gate
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- sectorConcentrationGate
|
||
note: M5_SECTOR_CONCENTRATION_LIMIT_V1 산출 — BLOCK_SECTOR/WARN_TOP2/PASS
|
||
sector_concentration_json:
|
||
canonical_name: sector_concentration_json
|
||
type: json_array
|
||
unit: none
|
||
aliases:
|
||
- sectorConcentrationJson
|
||
note: M5 — 섹터별 weight_pct 및 gate 상태 배열
|
||
sector:
|
||
canonical_name: sector
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- sectorName
|
||
- sector_name
|
||
- Sector
|
||
note: L1/K3 입력 — 섹터명 (TICKER_SECTOR_MAP 기반). sectorFlowRadar key
|
||
rank:
|
||
canonical_name: rank
|
||
type: number
|
||
unit: integer
|
||
aliases:
|
||
- sectorRank
|
||
- Rotation_Rank
|
||
- Sector_Rank
|
||
note: L1 입력 — 현재 주 섹터 로테이션 순위 (낮을수록 우수)
|
||
prev_rank_w1:
|
||
canonical_name: prev_rank_w1
|
||
type: number_or_null
|
||
unit: integer
|
||
aliases:
|
||
- prevRank
|
||
- Prev_Rotation_Rank
|
||
note: L1 입력 — 1주 전 섹터 순위. 미제공 시 null
|
||
prev_rank_w2:
|
||
canonical_name: prev_rank_w2
|
||
type: number_or_null
|
||
unit: integer
|
||
aliases:
|
||
- prevRankW2
|
||
- Prev_Rotation_Rank_W2
|
||
note: L1 입력 — 2주 전 섹터 순위. 미제공 시 null
|
||
sector_rotation_momentum_json:
|
||
canonical_name: sector_rotation_momentum_json
|
||
type: json_array
|
||
unit: none
|
||
aliases:
|
||
- sectorMomentumJson
|
||
- sector_momentum_json
|
||
note: L1_SECTOR_ROTATION_MOMENTUM_V1 산출 — 섹터별 rank_delta/momentum_state. sector_rotation_momentum_lock=true이면
|
||
LLM 재산출 금지
|
||
rank_delta_w1:
|
||
canonical_name: rank_delta_w1
|
||
type: number_or_null
|
||
unit: integer
|
||
aliases:
|
||
- rankDeltaW1
|
||
note: L1 입력 — 1주 섹터 순위 변화 (양수=순위 하락). prev_rank_w1 미제공 시 null
|
||
rank_delta_w2:
|
||
canonical_name: rank_delta_w2
|
||
type: number_or_null
|
||
unit: integer
|
||
aliases:
|
||
- rankDeltaW2
|
||
note: L1 입력 — 2주 섹터 순위 변화. prev_rank_w2 미제공 시 null
|
||
momentum_state:
|
||
canonical_name: momentum_state
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- momentumState
|
||
note: L1_SECTOR_ROTATION_MOMENTUM_V1 산출 — RISING/STABLE/TOPPING_OUT/FADING
|
||
pre_distribution_warning:
|
||
canonical_name: pre_distribution_warning
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- preDistributionWarning
|
||
- pre_dist_warning
|
||
note: L4_PRE_DISTRIBUTION_EARLY_WARNING_V1 산출 — EARLY_WARNING(신고점수축/급등약류)/NONE.
|
||
이 값이 EARLY_WARNING이면 신규 매수 신중 재검토
|
||
high52w:
|
||
canonical_name: high52w
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- High52W
|
||
- high_52w
|
||
- 52w_high
|
||
note: L4 입력 — 52주 최고가. 데이터 미제공 시 MA20×1.15 대체 판단
|
||
auto_trailing_stop:
|
||
canonical_name: auto_trailing_stop
|
||
type: number_or_null
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- autoTrailingStop
|
||
- trailing_stop
|
||
note: L2_RATCHET_TRAILING_AUTO_V1 산출 — PROFIT_LOCK_20/30/APEX_TRAILING 구간 ATR
|
||
트레일링 손절가. null=비해당. LLM이 이 값보다 낮은 손절가 제시 금지
|
||
protected_stop_price:
|
||
canonical_name: protected_stop_price
|
||
type: number_or_null
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- protectedStopPrice
|
||
note: profit_preservation_json 출력 — 수익보전 단계에서 유지해야 하는 보호 손절가
|
||
auto_trailing_note:
|
||
canonical_name: auto_trailing_note
|
||
type: string_or_null
|
||
unit: none
|
||
aliases:
|
||
- autoTrailingNote
|
||
note: L2_RATCHET_TRAILING_AUTO_V1 산출 근거 — 'max(ratchet,{highest}-N.N×ATR)' 형식
|
||
total_heat_pct:
|
||
canonical_name: total_heat_pct
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- totalHeatPct
|
||
- total_heat
|
||
note: 포트폴리오 총 Heat 비율 — DYNAMIC_HEAT_GATE_V1/TOTAL_HEAT_V1 입력. heat_gate_threshold_pct와
|
||
비교해 gate 판정
|
||
heat_gate_threshold_pct:
|
||
canonical_name: heat_gate_threshold_pct
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- heatGateThresholdPct
|
||
- heat_threshold_pct
|
||
note: L3_DYNAMIC_HEAT_GATE_V1 산출 — 현재 국면에서 적용된 BLOCK_NEW_BUY 임계값(%). GAS 결정론적
|
||
산출, LLM 재계산 금지
|
||
market_regime:
|
||
canonical_name: market_regime
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- marketRegime
|
||
- regime
|
||
note: 현재 시장 국면 — DYNAMIC_HEAT_GATE_V1/K3/L3 등 국면 감응 공식의 공통 입력
|
||
regime_size_scale:
|
||
canonical_name: regime_size_scale
|
||
type: number
|
||
unit: multiplier
|
||
aliases:
|
||
- regimeSizeScale
|
||
note: N1_POSITION_SIZE_REGIME_SCALE_V1 — 국면별 atrQty 스케일 배수 (0.25~1.2). GAS 결정론적
|
||
산출
|
||
stop_adequacy_json:
|
||
canonical_name: stop_adequacy_json
|
||
type: json
|
||
unit: array
|
||
aliases:
|
||
- stopAdequacyJson
|
||
note: N3_STOP_PRICE_ADEQUACY_V1 — 보유 종목별 손절가 적정성 검증 결과 배열
|
||
absolute_risk_stop_rows:
|
||
canonical_name: absolute_risk_stop_rows
|
||
type: json
|
||
unit: array
|
||
aliases:
|
||
- absoluteRiskStopRows
|
||
note: P3 ABSOLUTE_RISK_STOP_V1 — 절대 리스크 손절 taxonomy 결과 배열
|
||
relative_underperf_alert:
|
||
canonical_name: relative_underperf_alert
|
||
type: json
|
||
unit: object
|
||
aliases:
|
||
- relativeUnderperfAlert
|
||
note: P3 RELATIVE_UNDERPERF_ALERT_V1 — 상대약세 경보 taxonomy 객체
|
||
stop_action_ladder:
|
||
canonical_name: stop_action_ladder
|
||
type: json
|
||
unit: object
|
||
aliases:
|
||
- stopActionLadder
|
||
note: P3 STOP_ACTION_LADDER_V1 — 최종 손절/익절/시간손절 액션 래더
|
||
df_map:
|
||
canonical_name: df_map
|
||
type: json
|
||
unit: object
|
||
aliases:
|
||
- dfMap
|
||
note: P3 taxonomy wrapper 입력용 data feed map
|
||
kospi_ret20d:
|
||
canonical_name: kospi_ret20d
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- kospiRet20d
|
||
note: P3 RELATIVE_UNDERPERF_ALERT_V1 입력용 KOSPI 20D 수익률
|
||
context:
|
||
canonical_name: context
|
||
type: json
|
||
unit: object
|
||
aliases:
|
||
- ctx
|
||
note: P3 STOP_ACTION_LADDER_V1 입력용 calcSellDecision_ 컨텍스트 객체
|
||
stop_gap_pct:
|
||
canonical_name: stop_gap_pct
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- stopGapPct
|
||
note: 'N3: (recommended_stop - manual_stop) / recommended_stop × 100'
|
||
adequacy_status:
|
||
canonical_name: adequacy_status
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- adequacyStatus
|
||
note: 'N3: PASS/STOP_WIDE/STOP_CRITICAL/INSUFFICIENT_DATA'
|
||
recommended_stop:
|
||
canonical_name: recommended_stop
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- recommendedStop
|
||
- recommended_stop_price
|
||
note: 'N3: ATR 기반 권고 손절가 — max(avgCost×0.92, avgCost-ATR20×mul), tick 정규화 적용'
|
||
candidate_quality_grade:
|
||
canonical_name: candidate_quality_grade
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- Candidate_Quality_Grade
|
||
note: core_satellite 후보 품질 등급. 실행 추천이 아님.
|
||
execution_recommendation_state:
|
||
canonical_name: execution_recommendation_state
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- Execution_Recommendation_State
|
||
note: BUY_PILOT_ALLOWED/WATCH/BLOCK 상태. HTS 주문은 order_blueprint PASS만 허용.
|
||
expected_edge:
|
||
canonical_name: expected_edge
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- Expected_Edge
|
||
note: 기대우위. 손절가와 목표가 기반 매수 허용 하한 검증.
|
||
entry_mode_gate:
|
||
canonical_name: entry_mode_gate
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- Entry_Mode_Gate
|
||
note: 진입 모드 PASS/PENDING/BLOCK 게이트.
|
||
timing_score_entry:
|
||
canonical_name: timing_score_entry
|
||
type: number
|
||
unit: score_0_100
|
||
aliases:
|
||
- Timing_Score_Entry
|
||
note: 진입 타이밍 점수.
|
||
timing_score_exit:
|
||
canonical_name: timing_score_exit
|
||
type: number
|
||
unit: score_0_100
|
||
aliases:
|
||
- Timing_Score_Exit
|
||
note: 청산/감축 타이밍 점수.
|
||
liquidity_status:
|
||
canonical_name: liquidity_status
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- Liquidity_Status
|
||
note: 거래대금 기반 유동성 상태.
|
||
smart_money_flow_signal_v2_json:
|
||
canonical_name: smart_money_flow_signal_v2_json
|
||
type: json
|
||
unit: array
|
||
aliases:
|
||
- smartMoneyFlowSignalV2Json
|
||
note: CAPITAL_STYLE_ALLOCATION_V1 입력 — 스마트머니 흐름 배열
|
||
fundamental_multifactor_v3_json:
|
||
canonical_name: fundamental_multifactor_v3_json
|
||
type: json
|
||
unit: array
|
||
aliases:
|
||
- fundamentalMultifactorV3Json
|
||
note: CAPITAL_STYLE_ALLOCATION_V1 입력 — 펀더멘털 멀티팩터 배열
|
||
macro_event_ticker_impact_v1_json:
|
||
canonical_name: macro_event_ticker_impact_v1_json
|
||
type: json
|
||
unit: array
|
||
aliases:
|
||
- macroEventTickerImpactV1Json
|
||
note: CAPITAL_STYLE_ALLOCATION_V1 입력 — 거시 이벤트 영향 배열
|
||
liquidity_flow_signal_v1_json:
|
||
canonical_name: liquidity_flow_signal_v1_json
|
||
type: json
|
||
unit: array
|
||
aliases:
|
||
- liquidityFlowSignalV1Json
|
||
note: CAPITAL_STYLE_ALLOCATION_V1 입력 — 유동성 흐름 배열
|
||
capital_style_conviction:
|
||
canonical_name: capital_style_conviction
|
||
type: number
|
||
unit: score_0_100
|
||
aliases:
|
||
- capitalStyleConviction
|
||
note: CAPITAL_STYLE_ALLOCATION_V1 산출 — 투자성향별 conviction
|
||
capital_style_label:
|
||
canonical_name: capital_style_label
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- capitalStyleLabel
|
||
note: CAPITAL_STYLE_ALLOCATION_V1 산출 — 투자성향 라벨
|
||
spread_status:
|
||
canonical_name: spread_status
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- Spread_Status
|
||
note: 호가 스프레드 상태.
|
||
sell_action:
|
||
canonical_name: sell_action
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- Sell_Action
|
||
note: 하네스 산출 매도/감축 액션.
|
||
sell_validation:
|
||
canonical_name: sell_validation
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- Sell_Validation
|
||
note: 매도 신호 검산 상태.
|
||
rw_partial:
|
||
canonical_name: rw_partial
|
||
type: number
|
||
unit: count
|
||
aliases:
|
||
- RW_Partial
|
||
note: 상대약세 부분 신호 개수.
|
||
distribution_risk_score:
|
||
canonical_name: distribution_risk_score
|
||
type: number
|
||
unit: score_0_100
|
||
aliases:
|
||
- Distribution_Risk_Score
|
||
note: 분산위험 점수.
|
||
late_chase_risk_score:
|
||
canonical_name: late_chase_risk_score
|
||
type: number
|
||
unit: score_0_100
|
||
aliases:
|
||
- Late_Chase_Risk_Score
|
||
note: 추격매수 위험 점수.
|
||
rsi14:
|
||
canonical_name: rsi14
|
||
type: number
|
||
unit: points
|
||
aliases:
|
||
- RSI14
|
||
note: 14일 RSI.
|
||
disparity:
|
||
canonical_name: disparity
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- Disparity
|
||
note: 이격도.
|
||
val_surge_pct:
|
||
canonical_name: val_surge_pct
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- Val_Surge_Pct
|
||
note: 거래대금 급증률.
|
||
ret_1d:
|
||
canonical_name: ret_1d
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- Ret_1D
|
||
- ret1d
|
||
- 1D_Return_Pct
|
||
note: 전일 대비 수익률 (%).
|
||
ret_3d:
|
||
canonical_name: ret_3d
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- Ret_3D
|
||
- ret3d
|
||
- 3D_Return_Pct
|
||
note: 3거래일 수익률 (%).
|
||
days_since_breakout:
|
||
canonical_name: days_since_breakout
|
||
type: number
|
||
unit: trading_days
|
||
aliases:
|
||
- Days_Since_Breakout
|
||
- daysSinceBreakout
|
||
note: 돌파 발생 후 경과 거래일 수.
|
||
ret_since_breakout:
|
||
canonical_name: ret_since_breakout
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- Ret_Since_Breakout
|
||
- retSinceBreakout
|
||
note: 돌파일 종가 대비 현재 수익률.
|
||
follow_through_day_state:
|
||
canonical_name: follow_through_day_state
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- Follow_Through_Day_State
|
||
- followThroughDayState
|
||
note: Follow-Through Day 판정 상태.
|
||
vol_ratio_vs_breakout_day:
|
||
canonical_name: vol_ratio_vs_breakout_day
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- Vol_Ratio_Vs_Breakout_Day
|
||
- volRatioVsBreakoutDay
|
||
note: 돌파일 대비 거래량 비율.
|
||
vol_today:
|
||
canonical_name: vol_today
|
||
type: number
|
||
unit: shares
|
||
aliases:
|
||
- Vol_Today
|
||
- volToday
|
||
note: 당일 거래량.
|
||
vol_breakout_day:
|
||
canonical_name: vol_breakout_day
|
||
type: number
|
||
unit: shares
|
||
aliases:
|
||
- Vol_Breakout_Day
|
||
- volBreakoutDay
|
||
- volumeBreakoutDay
|
||
note: 돌파일 거래량.
|
||
consecutive_sell_signals_5d:
|
||
canonical_name: consecutive_sell_signals_5d
|
||
type: number
|
||
unit: count
|
||
aliases:
|
||
- Consecutive_Sell_Signals_5D
|
||
- consecutiveSellSignals5d
|
||
note: 최근 5일간 연속 매도 신호 수.
|
||
vol_surge_pct:
|
||
canonical_name: vol_surge_pct
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- Vol_Surge_Pct
|
||
- volSurgePct
|
||
note: 당일 거래량 급증률.
|
||
allowed_intraday_actions:
|
||
canonical_name: allowed_intraday_actions
|
||
type: array
|
||
unit: enum_list
|
||
aliases:
|
||
- Allowed_Intraday_Actions
|
||
- allowedIntradayActions
|
||
note: 장중 허용 액션 목록.
|
||
blocked_intraday_actions:
|
||
canonical_name: blocked_intraday_actions
|
||
type: array
|
||
unit: enum_list
|
||
aliases:
|
||
- Blocked_Intraday_Actions
|
||
- blockedIntradayActions
|
||
note: 장중 차단 액션 목록.
|
||
execution_quality_score:
|
||
canonical_name: execution_quality_score
|
||
type: number
|
||
unit: score
|
||
aliases:
|
||
- Execution_Quality_Score
|
||
- executionQualityScore
|
||
note: 실행 품질 점수.
|
||
execution_quality_grade:
|
||
canonical_name: execution_quality_grade
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- Execution_Quality_Grade
|
||
- executionQualityGrade
|
||
note: 실행 품질 등급.
|
||
execution_quality_outcome:
|
||
canonical_name: execution_quality_outcome
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- Execution_Quality_Outcome
|
||
- executionQualityOutcome
|
||
note: 실행 품질 결과 분류.
|
||
threshold_adjustment_proposals:
|
||
canonical_name: threshold_adjustment_proposals
|
||
type: array
|
||
unit: json
|
||
aliases:
|
||
- Threshold_Adjustment_Proposals
|
||
- thresholdAdjustmentProposals
|
||
note: 임계치 조정 제안 목록.
|
||
max_child_qty:
|
||
canonical_name: max_child_qty
|
||
type: number
|
||
unit: count
|
||
aliases:
|
||
- Max_Child_Qty
|
||
- maxChildQty
|
||
note: TWAP 분할 최대 자식 주문 수량.
|
||
n_slices:
|
||
canonical_name: n_slices
|
||
type: number
|
||
unit: count
|
||
aliases:
|
||
- N_Slices
|
||
- nSlices
|
||
note: 분할 주문 횟수.
|
||
participation_rate:
|
||
canonical_name: participation_rate
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- Participation_Rate
|
||
- participationRate
|
||
note: 시장 참여율.
|
||
twap_required:
|
||
canonical_name: twap_required
|
||
type: boolean
|
||
unit: boolean
|
||
aliases:
|
||
- Twap_Required
|
||
- twapRequired
|
||
note: TWAP 필요 여부.
|
||
institutional_flow_5d:
|
||
canonical_name: institutional_flow_5d
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- Institutional_Flow_5D
|
||
- institutionalFlow5d
|
||
note: 기관 5일 누적 순매수 금액.
|
||
foreign_flow_5d:
|
||
canonical_name: foreign_flow_5d
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- Foreign_Flow_5D
|
||
- foreignFlow5d
|
||
note: 외국인 5일 누적 순매수 금액.
|
||
sector_relative_strength_5d:
|
||
canonical_name: sector_relative_strength_5d
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- Sector_Relative_Strength_5D
|
||
- sectorRelativeStrength5d
|
||
note: 섹터 5일 상대강도.
|
||
secular_leader_gate:
|
||
canonical_name: secular_leader_gate
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- secularLeaderGate
|
||
note: SECULAR_LEADER_REGIME_GATE_V1 결과 enum.
|
||
breakout_quality_gate:
|
||
canonical_name: breakout_quality_gate
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- breakoutQualityGate
|
||
- breakout_quality_gate_state
|
||
note: BREAKOUT_QUALITY_GATE_V2 상태 enum.
|
||
final_action:
|
||
canonical_name: final_action
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- Final_Action
|
||
note: 하네스 최종 액션.
|
||
cash_preserve_style:
|
||
canonical_name: cash_preserve_style
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- Cash_Preserve_Style
|
||
note: 현금확보 매도 스타일.
|
||
allowed_action:
|
||
canonical_name: allowed_action
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- Allowed_Action
|
||
note: 내부 허용 액션.
|
||
t1_forced_sell_risk_score:
|
||
canonical_name: t1_forced_sell_risk_score
|
||
type: number
|
||
unit: score_0_100
|
||
aliases:
|
||
- T1_Forced_Sell_Risk_Score
|
||
note: 매수 후 다음 거래일 강제 매도 위험 점수.
|
||
sell_conflict_score:
|
||
canonical_name: sell_conflict_score
|
||
type: number
|
||
unit: score_0_100
|
||
aliases:
|
||
- Sell_Conflict_Score
|
||
note: 매도/현금확보 게이트와 신규매수 충돌 점수.
|
||
holding_stale_json:
|
||
canonical_name: holding_stale_json
|
||
type: json
|
||
unit: array
|
||
aliases:
|
||
- holdingStaleJson
|
||
note: N4_HOLDING_STALE_REVIEW_V1 — 보유 기간 기반 재검토 플래그 배열
|
||
holding_days:
|
||
canonical_name: holding_days
|
||
type: number
|
||
unit: integer_days
|
||
aliases:
|
||
- holdingDays
|
||
- Holding_Days
|
||
note: 'N4: entry_date 기준 보유 일수'
|
||
stale_status:
|
||
canonical_name: stale_status
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- staleStatus
|
||
note: 'N4: STALE_POSITION(>60d)/REVIEW_SOON(>30d)/FRESH(<=30d)/ENTRY_DATE_MISSING'
|
||
entry_date:
|
||
canonical_name: entry_date
|
||
type: string
|
||
unit: ISO_date
|
||
aliases:
|
||
- entryDate
|
||
- Entry_Date
|
||
- entry_date_iso
|
||
note: 'N4: account_snapshot의 진입일 컬럼 — HOLDING_STALE_REVIEW_V1 입력'
|
||
regime_cash_uplift_min_pct:
|
||
canonical_name: regime_cash_uplift_min_pct
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- regimeCashUpliftMinPct
|
||
note: N5_REGIME_CASH_UPLIFT_V1 — 국면 상향 적용 후 실제 현금 최소 비율 (%). GAS 결정론적 산출
|
||
win_rate_30:
|
||
canonical_name: win_rate_30
|
||
type: number
|
||
unit: ratio_0_to_1
|
||
aliases:
|
||
- winRate30
|
||
- win_rate
|
||
note: 'O4 입력: 최근 30거래 승률 (0.0~1.0). readPerformanceSheet_() 산출'
|
||
trades_used:
|
||
canonical_name: trades_used
|
||
type: number
|
||
unit: integer
|
||
aliases:
|
||
- tradesUsed
|
||
note: 'O4 입력: 성능 계산에 사용된 거래 수. 10 미만이면 INSUFFICIENT_HISTORY'
|
||
single_position_weight_gate:
|
||
canonical_name: single_position_weight_gate
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- singlePositionWeightGate
|
||
note: O1_SINGLE_POSITION_WEIGHT_CAP_V1 — OVERWEIGHT_TRIM/PASS. 개별 종목 비중 상한 초과
|
||
여부
|
||
single_position_weight_json:
|
||
canonical_name: single_position_weight_json
|
||
type: json
|
||
unit: array
|
||
aliases:
|
||
- singlePositionWeightJson
|
||
note: 'O1: 종목별 weight_pct vs cap_pct 상태 배열'
|
||
semiconductor_cluster_gate:
|
||
canonical_name: semiconductor_cluster_gate
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- semiconductorClusterGate
|
||
note: O2_SEMICONDUCTOR_CLUSTER_GATE_V1 — CLUSTER_BLOCK/PASS. 005930+000660 합산
|
||
비중의 국면별 상한 초과 여부
|
||
semiconductor_cluster_json:
|
||
canonical_name: semiconductor_cluster_json
|
||
type: json
|
||
unit: object
|
||
aliases:
|
||
- semiconductorClusterJson
|
||
note: 'O2: 반도체 클러스터 합산 비중 및 종목별 상세. threshold_pct는 국면별 가변'
|
||
portfolio_drawdown_gate:
|
||
canonical_name: portfolio_drawdown_gate
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- portfolioDrawdownGate
|
||
note: O3_PORTFOLIO_DRAWDOWN_GATE_V1 — DRAWDOWN_FORCE_RISK_OFF/DRAWDOWN_CAUTION/PASS/INSUFFICIENT_DATA
|
||
portfolio_drawdown_pct:
|
||
canonical_name: portfolio_drawdown_pct
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- portfolioDrawdownPct
|
||
note: 'O3: 고점 대비 낙폭 % (양수=낙폭). GAS 결정론적 산출'
|
||
portfolio_peak_krw:
|
||
canonical_name: portfolio_peak_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- portfolioPeakKrw
|
||
note: 'O3: 역대 총자산 고점 (원). settings 시트 자동 갱신'
|
||
win_loss_streak_state:
|
||
canonical_name: win_loss_streak_state
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- winLossStreakState
|
||
note: O4_WIN_LOSS_STREAK_GUARD_V1 — EDGE_OK/EDGE_WEAK/EDGE_DEGRADED/EDGE_CRITICAL/INSUFFICIENT_HISTORY
|
||
win_loss_streak_buy_scale:
|
||
canonical_name: win_loss_streak_buy_scale
|
||
type: number
|
||
unit: multiplier
|
||
aliases:
|
||
- winLossStreakBuyScale
|
||
note: 'O4: atrQty에 곱해지는 배수 (0.25~1.0). GAS 결정론적 산출'
|
||
win_loss_streak_win_rate_pct:
|
||
canonical_name: win_loss_streak_win_rate_pct
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- winLossStreakWinRatePct
|
||
note: 'O4: 최근 30거래 승률 % (0~100)'
|
||
position_count_gate:
|
||
canonical_name: position_count_gate
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- positionCountGate
|
||
note: O5_POSITION_COUNT_LIMIT_V1 — POSITION_COUNT_BLOCK/PASS
|
||
position_count:
|
||
canonical_name: position_count
|
||
type: number
|
||
unit: integer
|
||
aliases:
|
||
- positionCount
|
||
note: 'O5: 현재 보유 종목 수 (holdings.length)'
|
||
position_count_max:
|
||
canonical_name: position_count_max
|
||
type: number
|
||
unit: integer
|
||
aliases:
|
||
- positionCountMax
|
||
note: 'O5: 국면별 최대 허용 종목 수 (NEUTRAL:8, RISK_OFF:6)'
|
||
heat_gate_status:
|
||
canonical_name: heat_gate_status
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- heatGateStatus
|
||
- heat_gate
|
||
note: 'P5 입력: BLOCK_NEW_BUY/HALVE_NEW_BUY_QUANTITY/ALLOW_CONTINUE'
|
||
cash_floor_status:
|
||
canonical_name: cash_floor_status
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- cashFloorStatus
|
||
note: 'P5 입력: HARD_BLOCK/TRIM_REQUIRED/PASS — cash_floor 게이트 상태'
|
||
stop_breach_gate:
|
||
canonical_name: stop_breach_gate
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- stopBreachGate
|
||
note: P1_STOP_BREACH_ALERT_V1 — BREACH/APPROACHING/PASS
|
||
stop_breach_alert_json:
|
||
canonical_name: stop_breach_alert_json
|
||
type: json
|
||
unit: array
|
||
aliases:
|
||
- stopBreachAlertJson
|
||
note: 'P1: 종목별 손절가 이탈 경보 상태·gap_pct 배열'
|
||
gap_pct:
|
||
canonical_name: gap_pct
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- gapPct
|
||
note: 'P1: (close - stop_price) / stop_price × 100. 양수=여유, 음수=이탈'
|
||
tp_trigger_gate:
|
||
canonical_name: tp_trigger_gate
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- tpTriggerGate
|
||
note: P2_TP_TRIGGER_ALERT_V1 — TRIGGERED/PASS
|
||
tp_trigger_alert_json:
|
||
canonical_name: tp_trigger_alert_json
|
||
type: json
|
||
unit: array
|
||
aliases:
|
||
- tpTriggerAlertJson
|
||
note: 'P2: 익절가 도달 종목·tp_qty 연계 배열'
|
||
heat_concentration_gate:
|
||
canonical_name: heat_concentration_gate
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- heatConcentrationGate
|
||
note: P3_HEAT_CONCENTRATION_ALERT_V1 — HEAT_CONCENTRATED/PASS/INSUFFICIENT_DATA
|
||
heat_concentration_json:
|
||
canonical_name: heat_concentration_json
|
||
type: json
|
||
unit: array
|
||
aliases:
|
||
- heatConcentrationJson
|
||
note: 'P3: 종목별 heat_krw·heat_share_pct 배열'
|
||
heat_share_pct:
|
||
canonical_name: heat_share_pct
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- heatSharePct
|
||
note: 'P3: 해당 종목 Heat / totalHeatKrw × 100'
|
||
regime_transition_type:
|
||
canonical_name: regime_transition_type
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- regimeTransitionType
|
||
note: P4_REGIME_TRANSITION_ALERT_V1 — UPGRADE/DOWNGRADE/LATERAL_SHIFT/NO_CHANGE
|
||
regime_transition_json:
|
||
canonical_name: regime_transition_json
|
||
type: json
|
||
unit: object
|
||
aliases:
|
||
- regimeTransitionJson
|
||
note: 'P4: 국면 전환 상세 (prev_regime, current_regime, affected_gates)'
|
||
portfolio_health_label:
|
||
canonical_name: portfolio_health_label
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- portfolioHealthLabel
|
||
note: P5_PORTFOLIO_HEALTH_SCORE_V1 — HEALTHY/CAUTION/CRITICAL. 보고서 첫 줄 표시 의무
|
||
portfolio_health_score:
|
||
canonical_name: portfolio_health_score
|
||
type: number
|
||
unit: score_0_to_100
|
||
aliases:
|
||
- portfolioHealthScore
|
||
note: 'P5: 0~100 건전성 점수. max(0, 100-critical×30-caution×10)'
|
||
portfolio_health_blocked_json:
|
||
canonical_name: portfolio_health_blocked_json
|
||
type: json
|
||
unit: array
|
||
aliases:
|
||
- portfolioHealthBlockedJson
|
||
note: 'P5: 활성화된 게이트별 severity(CRITICAL/CAUTION) 상세 배열'
|
||
ss001_grade:
|
||
canonical_name: ss001_grade
|
||
type: string
|
||
unit: enum [A, B, C, D]
|
||
aliases:
|
||
- SS001_Grade
|
||
- ss001Grade
|
||
note: SS001_SCORE_V1 종합 등급. A=최우수, D=최하. composite_verdict 입력값.
|
||
excess_ret_10d:
|
||
canonical_name: excess_ret_10d
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- Excess_Ret_10D
|
||
- excessRet10D
|
||
note: 'RS_VERDICT_V1: 종목 10일 수익률 − KOSPI 10일 수익률.'
|
||
rs_verdict:
|
||
canonical_name: rs_verdict
|
||
type: string
|
||
unit: enum [LEADER, MARKET, LAGGARD, BROKEN, UNKNOWN]
|
||
aliases:
|
||
- RS_Verdict
|
||
- rsVerdict
|
||
note: RS_VERDICT_V1 판정. COMPOSITE_VERDICT_V1 및 RAG_V1 선행 입력.
|
||
composite_verdict:
|
||
canonical_name: composite_verdict
|
||
type: string
|
||
unit: enum [PRIME_CANDIDATE, WATCH_CANDIDATE, REDUCE_CANDIDATE, EXIT_REVIEW,
|
||
CLOSE_POSITION]
|
||
aliases:
|
||
- Composite_Verdict
|
||
- compositeVerdict
|
||
note: 'COMPOSITE_VERDICT_V1: ss001_grade × rs_verdict 매트릭스 판정.'
|
||
rag_v1:
|
||
canonical_name: rag_v1
|
||
type: string
|
||
unit: enum [PASS, FAIL, EXEMPT]
|
||
aliases:
|
||
- RAG_Verdict
|
||
- ragV1
|
||
note: 'REPLACEMENT_ALPHA_GATE_V1: 위성 신규 BUY 알파 검증 결과. FAIL → HOLD 강제.'
|
||
sfg_v1:
|
||
canonical_name: sfg_v1
|
||
type: string
|
||
unit: enum [TRIGGERED, CLEAR]
|
||
aliases:
|
||
- SFG_V1
|
||
- sfgV1
|
||
note: 'SATELLITE_FAILURE_GATE_V1: 위성 집단 실패 게이트. TRIGGERED → 모든 위성 BUY 차단.'
|
||
stock_drawdown_from_high_pct:
|
||
canonical_name: stock_drawdown_from_high_pct
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- Stock_Drawdown_From_High_Pct
|
||
- stockDrawdownFromHighPct
|
||
note: 'BENCHMARK_RELATIVE_TIMESERIES_V1: 종목 52주/가용 고점 대비 낙폭.'
|
||
excess_drawdown_pctp:
|
||
canonical_name: excess_drawdown_pctp
|
||
type: number
|
||
unit: pct_points
|
||
aliases:
|
||
- Excess_Drawdown_PctP
|
||
- excessDrawdownPctp
|
||
note: 'BENCHMARK_RELATIVE_TIMESERIES_V1: 종목 낙폭 - KOSPI 낙폭. 양수=시장보다 더 빠짐.'
|
||
recovery_ratio_5d:
|
||
canonical_name: recovery_ratio_5d
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- Recovery_Ratio_5D
|
||
- recoveryRatio5d
|
||
note: 'BENCHMARK_RELATIVE_TIMESERIES_V1: KOSPI 5D 양수 구간 회복률.'
|
||
recovery_ratio_20d:
|
||
canonical_name: recovery_ratio_20d
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- Recovery_Ratio_20D
|
||
- recoveryRatio20d
|
||
note: 'BENCHMARK_RELATIVE_TIMESERIES_V1: KOSPI 20D 양수 구간 회복률.'
|
||
downside_beta:
|
||
canonical_name: downside_beta
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- Downside_Beta
|
||
- downsideBeta
|
||
note: 'BENCHMARK_RELATIVE_TIMESERIES_V1: KOSPI 하락 구간 수익률 비율. 프록시 사용 시 brt_method에
|
||
표시.'
|
||
rs_line_20d_slope:
|
||
canonical_name: rs_line_20d_slope
|
||
type: number
|
||
unit: slope
|
||
aliases:
|
||
- RS_Line_20D_Slope
|
||
- rsLine20dSlope
|
||
note: 'BENCHMARK_RELATIVE_TIMESERIES_V1: 20D 상대강도선 기울기.'
|
||
rs_line_60d_slope:
|
||
canonical_name: rs_line_60d_slope
|
||
type: number
|
||
unit: slope
|
||
aliases:
|
||
- RS_Line_60D_Slope
|
||
- rsLine60dSlope
|
||
note: 'BENCHMARK_RELATIVE_TIMESERIES_V1: 60D 상대강도선 기울기.'
|
||
brt_verdict:
|
||
canonical_name: brt_verdict
|
||
type: string
|
||
unit: enum [LEADER, MARKET, LAGGARD, BROKEN, UNKNOWN]
|
||
aliases:
|
||
- BRT_Verdict
|
||
- brtVerdict
|
||
note: BENCHMARK_RELATIVE_TIMESERIES_V1 최종 판정. RS_VERDICT_V2 입력.
|
||
brt_method:
|
||
canonical_name: brt_method
|
||
type: string
|
||
unit: text
|
||
aliases:
|
||
- BRT_Method
|
||
- brtMethod
|
||
note: BRT 산출 방식. 과거 시계열 부재 시 PROXY_FROM_RET20_RET60.
|
||
rs_verdict_v1_raw:
|
||
canonical_name: rs_verdict_v1_raw
|
||
type: string
|
||
unit: enum [LEADER, MARKET, LAGGARD, BROKEN, UNKNOWN]
|
||
aliases:
|
||
- RS_Verdict_V1_Raw
|
||
- rsVerdictV1Raw
|
||
note: RS_VERDICT_V2 감사용 V1 원본.
|
||
saqg_v1:
|
||
canonical_name: saqg_v1
|
||
type: string
|
||
unit: enum [ELIGIBLE, WATCHLIST_ONLY, EXCLUDED, EXEMPT]
|
||
aliases:
|
||
- SAQG_V1
|
||
- saqgV1
|
||
note: 'SATELLITE_ALPHA_QUALITY_GATE_V1: 위성 후보 품질 게이트.'
|
||
sapg_status:
|
||
canonical_name: sapg_status
|
||
type: string
|
||
unit: enum [PASS, SAPG_ALERT, SAPG_CRITICAL, INSUFFICIENT_DATA]
|
||
aliases:
|
||
- SAPG_Status
|
||
- sapgStatus
|
||
note: 'SATELLITE_AGGREGATE_PNL_GATE_V1: 위성 합산 손익 게이트.'
|
||
globalKospiRet5D_:
|
||
canonical_name: globalKospiRet5D_
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- KOSPI_Ret5D_PreRead
|
||
note: 'GAS preReads: KOSPI 5D 수익률.'
|
||
globalKospiRet20D_:
|
||
canonical_name: globalKospiRet20D_
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- KOSPI_Ret20D_PreRead
|
||
note: 'GAS preReads: KOSPI 20D 수익률.'
|
||
globalKospiRet60D_:
|
||
canonical_name: globalKospiRet60D_
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- KOSPI_Ret60D_PreRead
|
||
note: 'GAS preReads: KOSPI 60D 수익률.'
|
||
globalKospiDrawdown_:
|
||
canonical_name: globalKospiDrawdown_
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- KOSPI_Drawdown_PreRead
|
||
note: 'GAS preReads: KOSPI 가용 고점 대비 낙폭.'
|
||
profit_loss:
|
||
canonical_name: profit_loss
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- unrealized_pnl_krw
|
||
- profit_loss_krw
|
||
note: account_snapshot 평가손익. SATELLITE_AGGREGATE_PNL_GATE_V1 입력.
|
||
cash_creation_purpose_lock:
|
||
canonical_name: cash_creation_purpose_lock
|
||
type: string
|
||
unit: enum
|
||
aliases:
|
||
- Cash_Creation_Purpose_Lock
|
||
note: CASH_CREATION_PURPOSE_LOCK_V1 출력 상태.
|
||
alpha_evaluation_window_json:
|
||
canonical_name: alpha_evaluation_window_json
|
||
type: json
|
||
unit: array
|
||
aliases:
|
||
- Alpha_Evaluation_Window_JSON
|
||
note: ALPHA_EVALUATION_WINDOW_V1 T+20/T+60 알파 평가 결과.
|
||
t20_return_pct:
|
||
canonical_name: t20_return_pct
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- T20_Return_Pct
|
||
note: ALPHA_EVALUATION_WINDOW_V1 입력.
|
||
t60_return_pct:
|
||
canonical_name: t60_return_pct
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- T60_Return_Pct
|
||
note: ALPHA_EVALUATION_WINDOW_V1 입력.
|
||
benchmark_core_return_pct:
|
||
canonical_name: benchmark_core_return_pct
|
||
type: number
|
||
unit: pct
|
||
aliases:
|
||
- Benchmark_Core_Return_Pct
|
||
note: ALPHA_EVALUATION_WINDOW_V1 벤치마크 코어 수익률.
|
||
volume_ratio_5d:
|
||
canonical_name: volume_ratio_5d
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- Volume_Ratio_5D
|
||
- vol_ratio_5d
|
||
note: 최근 당일 거래량 / 5일 평균 거래량. PREDICTIVE_ALPHA_ENGINE_V1 thesis 입력.
|
||
distribution_signals_count:
|
||
canonical_name: distribution_signals_count
|
||
type: number
|
||
unit: float
|
||
aliases:
|
||
- weighted_sum
|
||
- Distribution_Signals_Count
|
||
note: DISTRIBUTION_SELL_DETECTOR_V1 가중합산 점수. ANTI_LATE_ENTRY_GATE_V2 GATE_3
|
||
입력.
|
||
foreign_sell_consecutive_days:
|
||
canonical_name: foreign_sell_consecutive_days
|
||
type: integer
|
||
unit: days
|
||
aliases:
|
||
- foreign_consecutive_sell_days
|
||
- Foreign_Sell_Consecutive_Days
|
||
note: 외국인 순매도 연속 일수. PREDICTIVE_ALPHA_ENGINE_V1 antithesis 및 MACRO_EVENT_SYNCHRONIZER_V1
|
||
입력.
|
||
foreign_sell_krw_today:
|
||
canonical_name: foreign_sell_krw_today
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- Foreign_Sell_KRW_Today
|
||
note: 당일 외국인 순매도 금액(원). mega_sell_alert 판정 기준. macro 시트 _foreignFlow.
|
||
days_since_entry:
|
||
canonical_name: days_since_entry
|
||
type: integer
|
||
unit: days
|
||
aliases:
|
||
- Days_Since_Entry
|
||
note: 진입 후 경과 영업일 수. PREDICTIVE_ALPHA_ENGINE_V1 stale_position 판정 입력.
|
||
fomc_days_remaining:
|
||
canonical_name: fomc_days_remaining
|
||
type: integer
|
||
unit: days
|
||
aliases:
|
||
- FOMC_Days_Remaining
|
||
note: 다음 FOMC까지 남은 일수. settings 시트 event_calendar. MACRO_EVENT_SYNCHRONIZER_V1
|
||
입력.
|
||
domestic_cpi:
|
||
canonical_name: domestic_cpi
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- Domestic_CPI
|
||
- cpi_yoy
|
||
note: 국내 소비자물가지수 전년비(%). macro 시트. MACRO_EVENT_SYNCHRONIZER_V1 입력.
|
||
vix:
|
||
canonical_name: vix
|
||
type: number
|
||
unit: index
|
||
aliases:
|
||
- VIX
|
||
- cboe_vix
|
||
note: CBOE VIX 공포지수. macro 시트 _vix. MACRO_EVENT_SYNCHRONIZER_V1 입력.
|
||
us500_1w_change:
|
||
canonical_name: us500_1w_change
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- US500_1W_Change
|
||
- sp500_1w_change
|
||
note: S&P500 1주일 등락률(%). macro 시트 _us500Close. MACRO_EVENT_SYNCHRONIZER_V1 입력.
|
||
base_qty:
|
||
canonical_name: base_qty
|
||
type: integer
|
||
unit: shares
|
||
aliases:
|
||
- Base_Qty
|
||
note: SELL_QUANTITY_ALLOCATOR_V1 산출 기준 매도 수량. CASH_PRESERVATION_SELL_ENGINE_V2
|
||
입력.
|
||
ce70_net_profit_krw:
|
||
canonical_name: ce70_net_profit_krw
|
||
type: number_or_null
|
||
unit: KRW
|
||
aliases:
|
||
- CE70_NET_PROFIT_KRW
|
||
- ce70_profit
|
||
note: forecast_simulation_engine_v1 산출 — 세후비용 차감 손익분포의 30%분위(CE70). 표본 부족 시
|
||
null(DATA_MISSING).
|
||
tax_fee_slippage_krw:
|
||
canonical_name: tax_fee_slippage_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- TAX_FEE_SLIPPAGE_KRW
|
||
- tax_fee_slippage
|
||
note: sell_waterfall_engine_v4 산출 — 세금·수수료·슬리피지 합산 비용.
|
||
cash_repair_benefit_krw:
|
||
canonical_name: cash_repair_benefit_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- CASH_REPAIR_BENEFIT_KRW
|
||
note: smart_cash_recovery_v9 연동 — 현금방어선 회복으로 인한 효용 가치.
|
||
concentration_reduction_benefit_krw:
|
||
canonical_name: concentration_reduction_benefit_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- CONCENTRATION_REDUCTION_BENEFIT_KRW
|
||
note: portfolio_exposure.concentration_caps_v8_9_supplement 초과 해소로 인한 효용 가치.
|
||
turnover_penalty_krw:
|
||
canonical_name: turnover_penalty_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- TURNOVER_PENALTY_KRW
|
||
note: 회전율 예산 초과분에 대한 페널티. rebalancing_engine_v8_9.turnover_budget 참조.
|
||
transition_utility_krw:
|
||
canonical_name: transition_utility_krw
|
||
type: number_or_null
|
||
unit: KRW
|
||
aliases:
|
||
- TRANSITION_UTILITY_KRW
|
||
note: PORTFOLIO_TRANSITION_UTILITY_V1 산출 — 양수일 때만 전환 후보 채택 검토. 입력 결측 시 null(NO_TRADE_AND_QUARANTINE).
|
||
avoided_tail_loss_krw:
|
||
canonical_name: avoided_tail_loss_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- AVOIDED_TAIL_LOSS_KRW
|
||
note: SELL_LOT_PARETO_SELECTOR_V1 입력 — 해당 lot을 매도하지 않았을 때 예상되는 꼬리위험 손실 회피액.
|
||
tax_loss_benefit_krw:
|
||
canonical_name: tax_loss_benefit_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- TAX_LOSS_BENEFIT_KRW
|
||
note: SELL_LOT_PARETO_SELECTOR_V1 입력 — 손실 lot 매도 시 세금 절감 효과. 계좌유형 미확인 시 0(DATA_MISSING
|
||
표기).
|
||
reentry_cost_krw:
|
||
canonical_name: reentry_cost_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- REENTRY_COST_KRW
|
||
note: SELL_LOT_PARETO_SELECTOR_V1 입력 — 매도 후 재진입 시 예상 거래비용·스프레드.
|
||
missed_upside_penalty_krw:
|
||
canonical_name: missed_upside_penalty_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- MISSED_UPSIDE_PENALTY_KRW
|
||
note: SELL_LOT_PARETO_SELECTOR_V1 입력 — CE70_NET_PROFIT_KRW 분포 기반 추정 상승분. 분포
|
||
없으면 0(보수적 하한).
|
||
lot_sell_score_krw:
|
||
canonical_name: lot_sell_score_krw
|
||
type: number_or_null
|
||
unit: KRW
|
||
aliases:
|
||
- LOT_SELL_SCORE_KRW
|
||
note: SELL_LOT_PARETO_SELECTOR_V1 산출 — 동일 hard_precedence 단계 내 lot 우선순위 점수.
|
||
ce90_net_profit_krw:
|
||
canonical_name: ce90_net_profit_krw
|
||
type: number_or_null
|
||
unit: KRW
|
||
aliases:
|
||
- CE90_NET_PROFIT_KRW
|
||
note: FORECAST_SIMULATION_ENGINE_V1 산출 — 손익분포 10%분위(CE90). 표본 부족 시 null(WATCH_ONLY).
|
||
cvar95_loss_krw:
|
||
canonical_name: cvar95_loss_krw
|
||
type: number_or_null
|
||
unit: KRW
|
||
aliases:
|
||
- CVAR95_LOSS_KRW
|
||
note: FORECAST_SIMULATION_ENGINE_V1 산출 — 95% 신뢰구간 꼬리손실 평균. 표본 부족 시 null(WATCH_ONLY).
|
||
sample_count_total:
|
||
canonical_name: sample_count_total
|
||
type: integer
|
||
unit: count
|
||
aliases:
|
||
- SAMPLE_COUNT_TOTAL
|
||
note: FORECAST_SIMULATION_ENGINE_V1 입력 — 전체 손익 표본 수. spec/29_backtest_harness_contract.yaml
|
||
연동.
|
||
sample_count_same_regime:
|
||
canonical_name: sample_count_same_regime
|
||
type: integer
|
||
unit: count
|
||
aliases:
|
||
- SAMPLE_COUNT_SAME_REGIME
|
||
note: FORECAST_SIMULATION_ENGINE_V1 입력 — 동일 레짐 손익 표본 수.
|
||
net_profit_distribution_after_tax_fee_slippage:
|
||
canonical_name: net_profit_distribution_after_tax_fee_slippage
|
||
type: list_or_null
|
||
unit: list_of_KRW
|
||
aliases:
|
||
- NET_PROFIT_DISTRIBUTION
|
||
note: FORECAST_SIMULATION_ENGINE_V1 입력 — 세후·비용 차감 손익 표본 분포. spec/29_backtest_harness_contract.yaml
|
||
연동.
|
||
execution_mode:
|
||
canonical_name: execution_mode
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- EXECUTION_MODE
|
||
- global_execution_gate
|
||
note: AUDIT_ONLY | SHADOW | PILOT | LIVE_LIMITED | LIVE_FULL. PORTFOLIO_TRANSITION_UTILITY_V1·FORECAST_SIMULATION_ENGINE_V1
|
||
입력.
|
||
direct_weight_pct:
|
||
canonical_name: direct_weight_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- DIRECT_WEIGHT_PCT
|
||
note: SECTOR_EXPOSURE_GRAPH_V1 입력 — 종목 직접보유 비중.
|
||
etf_constituents_json:
|
||
canonical_name: etf_constituents_json
|
||
type: list_or_null
|
||
unit: json
|
||
aliases:
|
||
- ETF_CONSTITUENTS_JSON
|
||
note: SECTOR_EXPOSURE_GRAPH_V1 입력 — ETF 구성종목 [{ticker, weight_pct, sector_id}].
|
||
미확인 시 ETF_BUY_BLOCKED.
|
||
etf_weight_pct:
|
||
canonical_name: etf_weight_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- ETF_WEIGHT_PCT
|
||
note: SECTOR_EXPOSURE_GRAPH_V1 입력 — 포트폴리오 내 ETF 비중.
|
||
sector_id:
|
||
canonical_name: sector_id
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- SECTOR_ID
|
||
note: 'canonical_sector_id_format(L1:L2:L3:L4) 준수. 예: EQ:TECH:SEMIS:HBM.'
|
||
peer_sector_betas:
|
||
canonical_name: peer_sector_betas
|
||
type: list_or_null
|
||
unit: list_of_ratio
|
||
aliases:
|
||
- PEER_SECTOR_BETAS
|
||
note: SECTOR_EXPOSURE_GRAPH_V1 입력 — 동일 macro_driver 공유 섹터 베타 목록. 미확인 시 raw beta
|
||
사용 + PARTIAL 표기.
|
||
sector_family_total_pct:
|
||
canonical_name: sector_family_total_pct
|
||
type: number_or_null
|
||
unit: percent
|
||
aliases:
|
||
- SECTOR_FAMILY_TOTAL_PCT
|
||
note: SECTOR_EXPOSURE_GRAPH_V1 산출 — direct_weight_pct + lookthrough_etf_weight_pct.
|
||
relative_strength_leads_sector:
|
||
canonical_name: relative_strength_leads_sector
|
||
type: boolean
|
||
unit: none
|
||
aliases:
|
||
- RELATIVE_STRENGTH_LEADS_SECTOR
|
||
note: LEADER_LIFECYCLE_GATE_V1 입력 — promotion_requires_all 항목.
|
||
volume_quality_confirmed:
|
||
canonical_name: volume_quality_confirmed
|
||
type: boolean
|
||
unit: none
|
||
aliases:
|
||
- VOLUME_QUALITY_CONFIRMED
|
||
note: LEADER_LIFECYCLE_GATE_V1 입력 — promotion_requires_all 항목.
|
||
above_ma60_or_reclaim_confirmed:
|
||
canonical_name: above_ma60_or_reclaim_confirmed
|
||
type: boolean
|
||
unit: none
|
||
aliases:
|
||
- ABOVE_MA60_OR_RECLAIM_CONFIRMED
|
||
note: LEADER_LIFECYCLE_GATE_V1 입력 — promotion_requires_all 항목, demotion_triggers_any
|
||
항목.
|
||
earnings_revision_status:
|
||
canonical_name: earnings_revision_status
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- EARNINGS_REVISION_STATUS
|
||
note: LEADER_LIFECYCLE_GATE_V1 입력 — positive | neutral | negative.
|
||
institutional_flow_status:
|
||
canonical_name: institutional_flow_status
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- INSTITUTIONAL_FLOW_STATUS
|
||
note: LEADER_LIFECYCLE_GATE_V1 입력 — accumulation | neutral | distribution.
|
||
current_role:
|
||
canonical_name: current_role
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- CURRENT_ROLE
|
||
note: LEADER_LIFECYCLE_GATE_V1 입력 — 직전 평가 leader_role. 최초 평가 시 LAGGARD.
|
||
leader_role:
|
||
canonical_name: leader_role
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- LEADER_ROLE
|
||
note: LEADER_LIFECYCLE_GATE_V1 산출 — CAPTAIN | CORE_LEADER | ENABLER | CYCLICAL_BETA
|
||
| LAGGARD | DISTRIBUTION_RISK.
|
||
planned_order_amount_krw:
|
||
canonical_name: planned_order_amount_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- PLANNED_ORDER_AMOUNT_KRW
|
||
note: EXECUTION_CAPACITY_LADDER_V1 입력 — 계획된 주문금액.
|
||
avg_trade_value_20d_krw:
|
||
canonical_name: avg_trade_value_20d_krw
|
||
type: number_or_null
|
||
unit: KRW
|
||
aliases:
|
||
- AVG_TRADE_VALUE_20D_KRW
|
||
- AvgTradeValue_20D
|
||
note: EXECUTION_CAPACITY_LADDER_V1 입력 — 20일 평균거래대금. 미확인 시 EXECUTION_PLAN_BLOCKED.
|
||
intraday_trade_value_krw:
|
||
canonical_name: intraday_trade_value_krw
|
||
type: number_or_null
|
||
unit: KRW
|
||
aliases:
|
||
- INTRADAY_TRADE_VALUE_KRW
|
||
note: EXECUTION_CAPACITY_LADDER_V1 입력 — 당일 누적 거래대금.
|
||
orderbook_top3_depth_krw:
|
||
canonical_name: orderbook_top3_depth_krw
|
||
type: number_or_null
|
||
unit: KRW
|
||
aliases:
|
||
- ORDERBOOK_TOP3_DEPTH_KRW
|
||
note: EXECUTION_CAPACITY_LADDER_V1 입력 — 호가창 상위 3단계 누적 깊이.
|
||
spread_bps:
|
||
canonical_name: spread_bps
|
||
type: number_or_null
|
||
unit: basis_points
|
||
aliases:
|
||
- SPREAD_BPS
|
||
note: EXECUTION_CAPACITY_LADDER_V1 입력 — 매수/매도 호가 스프레드. spread_widen_cancel_rule
|
||
연동.
|
||
order_capacity_krw:
|
||
canonical_name: order_capacity_krw
|
||
type: number_or_null
|
||
unit: KRW
|
||
aliases:
|
||
- ORDER_CAPACITY_KRW
|
||
note: EXECUTION_CAPACITY_LADDER_V1 산출 — 체결 가능 용량 상한. 결측 입력 시 null(EXECUTION_PLAN_BLOCKED).
|
||
data_quarantine_rate_pct:
|
||
canonical_name: data_quarantine_rate_pct
|
||
type: number_or_null
|
||
unit: percent
|
||
aliases:
|
||
- DATA_QUARANTINE_RATE_PCT
|
||
note: MODEL_GOVERNANCE_KILL_SWITCH_V1 입력 — 결측/충돌로 quarantine된 입력 비율. >5%면 kill
|
||
switch.
|
||
implementation_shortfall_ratio:
|
||
canonical_name: implementation_shortfall_ratio
|
||
type: number_or_null
|
||
unit: ratio
|
||
aliases:
|
||
- IMPLEMENTATION_SHORTFALL_RATIO
|
||
note: MODEL_GOVERNANCE_KILL_SWITCH_V1 입력 — 실제/기대 슬리피지 비율. >2.0이면 kill switch.
|
||
t5_hit_rate_pct:
|
||
canonical_name: t5_hit_rate_pct
|
||
type: number_or_null
|
||
unit: percent
|
||
aliases:
|
||
- T5_HIT_RATE_PCT
|
||
note: MODEL_GOVERNANCE_KILL_SWITCH_V1 입력 — spec/29_backtest_harness_contract.yaml:t5_op_rate
|
||
연동.
|
||
t5_sample_count:
|
||
canonical_name: t5_sample_count
|
||
type: integer
|
||
unit: count
|
||
aliases:
|
||
- T5_SAMPLE_COUNT
|
||
note: MODEL_GOVERNANCE_KILL_SWITCH_V1 입력 — t5_hit_rate_pct 표본 수. 30건 미만이면 hit_rate
|
||
kill switch 미적용.
|
||
calibration_error:
|
||
canonical_name: calibration_error
|
||
type: number_or_null
|
||
unit: ratio
|
||
aliases:
|
||
- CALIBRATION_ERROR
|
||
note: MODEL_GOVERNANCE_KILL_SWITCH_V1 입력 — spec/calibration_registry.yaml 연동.
|
||
calibration_error_limit:
|
||
canonical_name: calibration_error_limit
|
||
type: number
|
||
unit: ratio
|
||
aliases:
|
||
- CALIBRATION_ERROR_LIMIT
|
||
note: MODEL_GOVERNANCE_KILL_SWITCH_V1 입력 — calibration_error 허용 상한.
|
||
account_mdd_pct:
|
||
canonical_name: account_mdd_pct
|
||
type: number_or_null
|
||
unit: percent
|
||
aliases:
|
||
- ACCOUNT_MDD_PCT
|
||
note: MODEL_GOVERNANCE_KILL_SWITCH_V1 입력 — 현재 계좌 MDD.
|
||
account_mdd_budget_pct:
|
||
canonical_name: account_mdd_budget_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- ACCOUNT_MDD_BUDGET_PCT
|
||
note: MODEL_GOVERNANCE_KILL_SWITCH_V1 입력 — spec/risk/aggregate_risk.yaml MDD
|
||
예산.
|
||
kill_switch_triggered:
|
||
canonical_name: kill_switch_triggered
|
||
type: boolean
|
||
unit: none
|
||
aliases:
|
||
- KILL_SWITCH_TRIGGERED
|
||
note: MODEL_GOVERNANCE_KILL_SWITCH_V1 산출 — kill_switch_conditions 중 하나 이상 true.
|
||
scenario_id:
|
||
canonical_name: scenario_id
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- SCENARIO_ID
|
||
note: SCENARIO_SHOCK_MATRIX_V1 입력 — base_case | adverse_case | liquidity_drought_case
|
||
| crisis_case | fx_shock_case | tax_cost_case.
|
||
scenario_results:
|
||
canonical_name: scenario_results
|
||
type: list_or_null
|
||
unit: list_of_object
|
||
aliases:
|
||
- SCENARIO_RESULTS
|
||
note: SCENARIO_SHOCK_MATRIX_V1 산출 — [{scenario_id, scenario_ce70_krw, scenario_cvar95_krw}].
|
||
분포 결측 시 null.
|
||
evaluated_candidates:
|
||
canonical_name: evaluated_candidates
|
||
type: list
|
||
unit: list_of_object
|
||
aliases:
|
||
- EVALUATED_CANDIDATES
|
||
note: TRANSITION_SET_ENUMERATOR_V1 입력 — PORTFOLIO_TRANSITION_UTILITY_V1.candidate_actions
|
||
산출물.
|
||
max_set_size:
|
||
canonical_name: max_set_size
|
||
type: integer
|
||
unit: count
|
||
aliases:
|
||
- MAX_SET_SIZE
|
||
note: TRANSITION_SET_ENUMERATOR_V1 입력 — 조합 폭발 방지 상한. 기본값 3.
|
||
selected_transition_set:
|
||
canonical_name: selected_transition_set
|
||
type: list
|
||
unit: list_of_string
|
||
aliases:
|
||
- SELECTED_TRANSITION_SET
|
||
note: TRANSITION_SET_ENUMERATOR_V1 산출 — 최종 선택된 candidate_id 조합. 빈 리스트면 NO_TRADE.
|
||
decision_id:
|
||
canonical_name: decision_id
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- DECISION_ID
|
||
note: IMMUTABLE_DECISION_LEDGER_V1 입력 — 동일 ID 재기록 시 DUPLICATE_DECISION_ID.
|
||
input_hash_bundle:
|
||
canonical_name: input_hash_bundle
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- INPUT_HASH_BUNDLE
|
||
note: IMMUTABLE_DECISION_LEDGER_V1 입력 — 의사결정 시점 입력 데이터 해시 묶음.
|
||
candidate_ids:
|
||
canonical_name: candidate_ids
|
||
type: list
|
||
unit: list_of_string
|
||
aliases:
|
||
- CANDIDATE_IDS
|
||
note: IMMUTABLE_DECISION_LEDGER_V1 입력 — 평가 대상이 된 candidate_id 목록.
|
||
selected_transition_id:
|
||
canonical_name: selected_transition_id
|
||
type: string_or_null
|
||
unit: none
|
||
aliases:
|
||
- SELECTED_TRANSITION_ID
|
||
note: IMMUTABLE_DECISION_LEDGER_V1 입력 — NO_TRADE면 null.
|
||
ledger_append_status:
|
||
canonical_name: ledger_append_status
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- LEDGER_APPEND_STATUS
|
||
note: IMMUTABLE_DECISION_LEDGER_V1 산출 — APPENDED | DUPLICATE_DECISION_ID | REJECTED_MISSING_FIELDS.
|
||
revalidation_snapshot:
|
||
canonical_name: revalidation_snapshot
|
||
type: object_or_null
|
||
unit: json
|
||
aliases:
|
||
- REVALIDATION_SNAPSHOT
|
||
note: EXECUTION_PLAN_COMPILER_V1 입력 — slice 직전 시점 {cash_floor_pct, deployable_cash_krw,
|
||
order_capacity_krw, spread_bps}.
|
||
baseline_snapshot:
|
||
canonical_name: baseline_snapshot
|
||
type: object_or_null
|
||
unit: json
|
||
aliases:
|
||
- BASELINE_SNAPSHOT
|
||
note: EXECUTION_PLAN_COMPILER_V1 입력 — slice 1 컴파일 시점 스냅샷. cancel_remaining_if
|
||
기준값.
|
||
compiled_slices:
|
||
canonical_name: compiled_slices
|
||
type: list_or_null
|
||
unit: list_of_object
|
||
aliases:
|
||
- COMPILED_SLICES
|
||
note: EXECUTION_PLAN_COMPILER_V1 산출 — [{slice_index, slice_amount_krw, status}].
|
||
cash_ladder:
|
||
canonical_name: cash_ladder
|
||
type: object_or_null
|
||
unit: json
|
||
aliases:
|
||
- CASH_LADDER
|
||
note: STATE_VECTOR_CONSTRUCTOR_V1 입력 — spec/formulas/domains/cash.yaml:CASH_RATIOS_V1
|
||
산출.
|
||
positions:
|
||
canonical_name: positions
|
||
type: list_or_null
|
||
unit: list_of_object
|
||
aliases:
|
||
- POSITIONS
|
||
note: STATE_VECTOR_CONSTRUCTOR_V1 입력 — spec/15_account_snapshot_contract.yaml
|
||
보유종목 목록.
|
||
sector_exposure_graph:
|
||
canonical_name: sector_exposure_graph
|
||
type: list_or_null
|
||
unit: list_of_object
|
||
aliases:
|
||
- SECTOR_EXPOSURE_GRAPH
|
||
note: STATE_VECTOR_CONSTRUCTOR_V1 입력 — SECTOR_EXPOSURE_GRAPH_V1.rows 산출.
|
||
goal_progress_pct:
|
||
canonical_name: goal_progress_pct
|
||
type: number_or_null
|
||
unit: percent
|
||
aliases:
|
||
- GOAL_PROGRESS_PCT
|
||
note: STATE_VECTOR_CONSTRUCTOR_V1 입력 — total_asset_krw / target_asset_krw *
|
||
100.
|
||
factor_exposures:
|
||
canonical_name: factor_exposures
|
||
type: list_or_null
|
||
unit: list_of_object
|
||
aliases:
|
||
- FACTOR_EXPOSURES
|
||
note: STATE_VECTOR_CONSTRUCTOR_V1 입력 — spec/risk/factor_risk.yaml 연동.
|
||
tax_lots:
|
||
canonical_name: tax_lots
|
||
type: list_or_null
|
||
unit: list_of_object
|
||
aliases:
|
||
- TAX_LOTS
|
||
note: STATE_VECTOR_CONSTRUCTOR_V1 입력 — spec/15_account_snapshot_contract.yaml
|
||
연동.
|
||
risk_bucket_weights:
|
||
canonical_name: risk_bucket_weights
|
||
type: object_or_null
|
||
unit: json
|
||
aliases:
|
||
- RISK_BUCKET_WEIGHTS
|
||
note: STATE_VECTOR_CONSTRUCTOR_V1 입력 — spec/risk/portfolio_exposure.yaml 연동.
|
||
macro_regime_probabilities:
|
||
canonical_name: macro_regime_probabilities
|
||
type: object_or_null
|
||
unit: json
|
||
aliases:
|
||
- MACRO_REGIME_PROBABILITIES
|
||
note: STATE_VECTOR_CONSTRUCTOR_V1 입력 — spec/risk/market_risk_cash.yaml 연동.
|
||
state_vector:
|
||
canonical_name: state_vector
|
||
type: object_or_null
|
||
unit: json
|
||
aliases:
|
||
- STATE_VECTOR
|
||
note: STATE_VECTOR_CONSTRUCTOR_V1 산출 — 결측 component는 null + missing_components
|
||
기록.
|
||
missing_components:
|
||
canonical_name: missing_components
|
||
type: list
|
||
unit: list_of_string
|
||
aliases:
|
||
- MISSING_COMPONENTS
|
||
note: STATE_VECTOR_CONSTRUCTOR_V1 산출 — null로 남은 component 이름 목록.
|
||
transition_utility_after_tax_cost_krw:
|
||
canonical_name: transition_utility_after_tax_cost_krw
|
||
type: number_or_null
|
||
unit: KRW
|
||
aliases:
|
||
- TRANSITION_UTILITY_AFTER_TAX_COST_KRW
|
||
note: REBALANCE_CADENCE_GATE_V1 입력 — PORTFOLIO_TRANSITION_UTILITY_V1.transition_utility_krw와
|
||
동일 출처.
|
||
hard_risk_block_active:
|
||
canonical_name: hard_risk_block_active
|
||
type: boolean_or_null
|
||
unit: none
|
||
aliases:
|
||
- HARD_RISK_BLOCK_ACTIVE
|
||
note: REBALANCE_CADENCE_GATE_V1 입력 — spec/risk/aggregate_risk.yaml 연동.
|
||
rebalance_execution_allowed:
|
||
canonical_name: rebalance_execution_allowed
|
||
type: boolean
|
||
unit: none
|
||
aliases:
|
||
- REBALANCE_EXECUTION_ALLOWED
|
||
note: REBALANCE_CADENCE_GATE_V1 산출 — true여야 실제 리밸런싱 실행 가능.
|
||
historical_returns:
|
||
canonical_name: historical_returns
|
||
type: list_or_null
|
||
unit: list_of_object
|
||
aliases:
|
||
- HISTORICAL_RETURNS
|
||
note: WALK_FORWARD_BOOTSTRAP_V1 입력 — [{date, regime_state, net_return_after_cost_pct}].
|
||
spec/29_backtest_harness_contract.yaml 연동.
|
||
current_regime_state:
|
||
canonical_name: current_regime_state
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- CURRENT_REGIME_STATE
|
||
note: WALK_FORWARD_BOOTSTRAP_V1 입력 — regime_matched 리샘플링 필터 기준.
|
||
bootstrap_method:
|
||
canonical_name: bootstrap_method
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- BOOTSTRAP_METHOD
|
||
note: WALK_FORWARD_BOOTSTRAP_V1 입력 — walk_forward | regime_matched.
|
||
weekly_legacy_to_cma_transfer_plan_krw:
|
||
canonical_name: weekly_legacy_to_cma_transfer_plan_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- WEEKLY_LEGACY_TO_CMA_TRANSFER_PLAN_KRW
|
||
note: WEEKLY_LEGACY_TRANSFER_PLAN_V1 입력 — spec/risk/portfolio_exposure.yaml
|
||
operator_cashflow_config 고정 계획값.
|
||
transfer_confirmed:
|
||
canonical_name: transfer_confirmed
|
||
type: boolean_or_null
|
||
unit: none
|
||
aliases:
|
||
- TRANSFER_CONFIRMED
|
||
note: WEEKLY_LEGACY_TRANSFER_PLAN_V1 입력 — null은 false로 간주(보수적).
|
||
transfer_confirmed_amount_krw:
|
||
canonical_name: transfer_confirmed_amount_krw
|
||
type: number_or_null
|
||
unit: KRW
|
||
aliases:
|
||
- TRANSFER_CONFIRMED_AMOUNT_KRW
|
||
note: WEEKLY_LEGACY_TRANSFER_PLAN_V1 입력 — transfer_confirmed=true일 때만 값 존재.
|
||
ma20_prev:
|
||
canonical_name: ma20_prev
|
||
type: number_or_null
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- MA20_PREV
|
||
note: GOLDEN_CROSS_SIGNAL_V1 입력 — 전일 ma20.
|
||
ma60_prev:
|
||
canonical_name: ma60_prev
|
||
type: number_or_null
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- MA60_PREV
|
||
note: GOLDEN_CROSS_SIGNAL_V1 입력 — 전일 ma60.
|
||
ma120:
|
||
canonical_name: ma120
|
||
type: number_or_null
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- MA120
|
||
- 120일선
|
||
note: TREND_FILTER_GATE_V1 입력 — 120일 이동평균.
|
||
ma120_prev:
|
||
canonical_name: ma120_prev
|
||
type: number_or_null
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- MA120_PREV
|
||
note: TREND_FILTER_GATE_V1 입력 — 전일 ma120.
|
||
high_price:
|
||
canonical_name: high_price
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- High
|
||
- 고가
|
||
- high
|
||
note: STRONG_CLOSE_SIGNAL_V1 입력 — 당일 고가.
|
||
low_price:
|
||
canonical_name: low_price
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- Low
|
||
- 저가
|
||
- low
|
||
note: STRONG_CLOSE_SIGNAL_V1 입력 — 당일 저가.
|
||
bb_width:
|
||
canonical_name: bb_width
|
||
type: number_or_null
|
||
unit: percent
|
||
aliases:
|
||
- BB_WIDTH
|
||
note: VOLATILITY_EXPANSION_BREAKOUT_V1 입력 — 20일 볼린저밴드 폭.
|
||
bb_width_20d_percentile:
|
||
canonical_name: bb_width_20d_percentile
|
||
type: number_or_null
|
||
unit: percent
|
||
aliases:
|
||
- BB_WIDTH_20D_PERCENTILE
|
||
note: VOLATILITY_EXPANSION_BREAKOUT_V1 입력 — 최근 20일 분포 내 bb_width 백분위. 낮을수록 squeeze.
|
||
daily_close_changes:
|
||
canonical_name: daily_close_changes
|
||
type: list_or_null
|
||
unit: list_of_percent
|
||
aliases:
|
||
- DAILY_CLOSE_CHANGES
|
||
note: CONSECUTIVE_STREAK_V1 입력 — 최근 N거래일 일별 종가 변화율(%) 리스트, 최신값이 마지막.
|
||
prior_high:
|
||
canonical_name: prior_high
|
||
type: number_or_null
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- PRIOR_HIGH
|
||
note: BREAKOUT_FAILURE_STOP_V1 입력 — 진입 당시 돌파 기준 전고점.
|
||
golden_cross_today:
|
||
canonical_name: golden_cross_today
|
||
type: boolean_or_null
|
||
unit: none
|
||
aliases:
|
||
- GOLDEN_CROSS_TODAY
|
||
note: GOLDEN_CROSS_SIGNAL_V1 산출 — STRATEGY_SCORING 보조신호. 단독 BUY 트리거 금지.
|
||
strong_close:
|
||
canonical_name: strong_close
|
||
type: boolean_or_null
|
||
unit: none
|
||
aliases:
|
||
- STRONG_CLOSE
|
||
note: STRONG_CLOSE_SIGNAL_V1 산출.
|
||
close_position_pct:
|
||
canonical_name: close_position_pct
|
||
type: number_or_null
|
||
unit: percent
|
||
aliases:
|
||
- CLOSE_POSITION_PCT
|
||
note: STRONG_CLOSE_SIGNAL_V1 산출 — (close-low)/(high-low)*100.
|
||
volatility_expansion_breakout:
|
||
canonical_name: volatility_expansion_breakout
|
||
type: boolean_or_null
|
||
unit: none
|
||
aliases:
|
||
- VOLATILITY_EXPANSION_BREAKOUT
|
||
note: VOLATILITY_EXPANSION_BREAKOUT_V1 산출 — BREAKOUT_QUALITY_GATE_V2 통과 전제.
|
||
fifty_two_week_high_breakout:
|
||
canonical_name: fifty_two_week_high_breakout
|
||
type: boolean_or_null
|
||
unit: none
|
||
aliases:
|
||
- FIFTY_TWO_WEEK_HIGH_BREAKOUT
|
||
note: FIFTY_TWO_WEEK_HIGH_TRIGGER_V1 산출 — BREAKOUT_QUALITY_GATE_V2 입력 전용.
|
||
up_streak:
|
||
canonical_name: up_streak
|
||
type: integer_or_null
|
||
unit: count
|
||
aliases:
|
||
- UP_STREAK
|
||
note: CONSECUTIVE_STREAK_V1 산출 — 연속 상승 일수.
|
||
trend_filter_pass:
|
||
canonical_name: trend_filter_pass
|
||
type: boolean_or_null
|
||
unit: none
|
||
aliases:
|
||
- TREND_FILTER_PASS
|
||
note: TREND_FILTER_GATE_V1 산출 — close>ma120 AND ma120 상승 중.
|
||
breakout_failure:
|
||
canonical_name: breakout_failure
|
||
type: boolean_or_null
|
||
unit: none
|
||
aliases:
|
||
- BREAKOUT_FAILURE
|
||
note: BREAKOUT_FAILURE_STOP_V1 산출 — true이면 SELL_RISK_EXIT_REVIEW.
|
||
deployable_cash_contribution_krw:
|
||
canonical_name: deployable_cash_contribution_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- DEPLOYABLE_CASH_CONTRIBUTION_KRW
|
||
note: WEEKLY_LEGACY_TRANSFER_PLAN_V1 산출 — 확정 전이면 0, 확정 후 transfer_confirmed_amount_krw.
|
||
plan_status:
|
||
canonical_name: plan_status
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- PLAN_STATUS
|
||
note: WEEKLY_LEGACY_TRANSFER_PLAN_V1 산출 — PLANNED_NOT_DEPLOYABLE | CONFIRMED_DEPLOYABLE.
|
||
ac_s1:
|
||
canonical_name: ac_s1
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- AC_S1
|
||
ac_s2:
|
||
canonical_name: ac_s2
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- AC_S2
|
||
ac_s3:
|
||
canonical_name: ac_s3
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- AC_S3
|
||
ac_s4:
|
||
canonical_name: ac_s4
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- AC_S4
|
||
ac_s5:
|
||
canonical_name: ac_s5
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- AC_S5
|
||
ac_total:
|
||
canonical_name: ac_total
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- AC_Total
|
||
atr20_at_entry:
|
||
canonical_name: atr20_at_entry
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- ATR20_At_Entry
|
||
aum:
|
||
canonical_name: aum
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- AUM
|
||
account:
|
||
canonical_name: account
|
||
type: integer
|
||
unit: shares
|
||
aliases:
|
||
- Account
|
||
- account
|
||
account_avg_cost:
|
||
canonical_name: account_avg_cost
|
||
type: integer
|
||
unit: shares
|
||
aliases:
|
||
- Account_Avg_Cost
|
||
account_holding_qty:
|
||
canonical_name: account_holding_qty
|
||
type: integer
|
||
unit: shares
|
||
aliases:
|
||
- Account_Holding_Qty
|
||
account_market_value:
|
||
canonical_name: account_market_value
|
||
type: integer
|
||
unit: shares
|
||
aliases:
|
||
- Account_Market_Value
|
||
account_parse_status:
|
||
canonical_name: account_parse_status
|
||
type: integer
|
||
unit: shares
|
||
aliases:
|
||
- Account_Parse_Status
|
||
action_priority:
|
||
canonical_name: action_priority
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- Action_Priority
|
||
alert:
|
||
canonical_name: alert
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Alert
|
||
alert_level:
|
||
canonical_name: alert_level
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Alert_Level
|
||
ask:
|
||
canonical_name: ask
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Ask
|
||
base_ticker:
|
||
canonical_name: base_ticker
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Base_Ticker
|
||
bid:
|
||
canonical_name: bid
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Bid
|
||
breakout_gate:
|
||
canonical_name: breakout_gate
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- Breakout_Gate
|
||
breakout_score:
|
||
canonical_name: breakout_score
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Breakout_Score
|
||
c1_price:
|
||
canonical_name: c1_price
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- C1_Price
|
||
c2_relstr:
|
||
canonical_name: c2_relstr
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- C2_RelStr
|
||
c3_volsurge:
|
||
canonical_name: c3_volsurge
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- C3_VolSurge
|
||
c4_flow:
|
||
canonical_name: c4_flow
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- C4_Flow
|
||
c5_sector:
|
||
canonical_name: c5_sector
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- C5_Sector
|
||
category:
|
||
canonical_name: category
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Category
|
||
chunk_size:
|
||
canonical_name: chunk_size
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Chunk_Size
|
||
close_at_entry:
|
||
canonical_name: close_at_entry
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Close_At_Entry
|
||
constituent_code:
|
||
canonical_name: constituent_code
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Constituent_Code
|
||
constituent_name:
|
||
canonical_name: constituent_name
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Constituent_Name
|
||
coverage_pct:
|
||
canonical_name: coverage_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- Coverage_Pct
|
||
current_ratio:
|
||
canonical_name: current_ratio
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- Current_Ratio
|
||
dps:
|
||
canonical_name: dps
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- DPS
|
||
data_quality:
|
||
canonical_name: data_quality
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Data_Quality
|
||
date:
|
||
canonical_name: date
|
||
type: date_ISO8601
|
||
unit: none
|
||
aliases:
|
||
- Date
|
||
days_to_earnings:
|
||
canonical_name: days_to_earnings
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Days_To_Earnings
|
||
days_to_ex_div:
|
||
canonical_name: days_to_ex_div
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Days_To_Ex_Div
|
||
decision_source:
|
||
canonical_name: decision_source
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Decision_Source
|
||
decision_use:
|
||
canonical_name: decision_use
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Decision_Use
|
||
dividendyield:
|
||
canonical_name: dividendyield
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- DividendYield
|
||
ee_est:
|
||
canonical_name: ee_est
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- EE_Est
|
||
eps_growth_1y_pct:
|
||
canonical_name: eps_growth_1y_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- EPS_Growth_1Y_Pct
|
||
etf_data_status:
|
||
canonical_name: etf_data_status
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- ETF_Data_Status
|
||
etf_execution_use:
|
||
canonical_name: etf_execution_use
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- ETF_Execution_Use
|
||
etf_frg_5d_krw:
|
||
canonical_name: etf_frg_5d_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- ETF_Frg_5D_KRW
|
||
etf_inst_5d_krw:
|
||
canonical_name: etf_inst_5d_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- ETF_Inst_5D_KRW
|
||
etf_liquidity_score:
|
||
canonical_name: etf_liquidity_score
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- ETF_Liquidity_Score
|
||
etf_liquidity_status:
|
||
canonical_name: etf_liquidity_status
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- ETF_Liquidity_Status
|
||
etf_nav_risk:
|
||
canonical_name: etf_nav_risk
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- ETF_NAV_Risk
|
||
etf_name:
|
||
canonical_name: etf_name
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- ETF_Name
|
||
etf_ticker:
|
||
canonical_name: etf_ticker
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- ETF_Ticker
|
||
earnings_date:
|
||
canonical_name: earnings_date
|
||
type: date_ISO8601
|
||
unit: none
|
||
aliases:
|
||
- Earnings_Date
|
||
effective_date:
|
||
canonical_name: effective_date
|
||
type: date_ISO8601
|
||
unit: none
|
||
aliases:
|
||
- Effective_Date
|
||
enabled:
|
||
canonical_name: enabled
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Enabled
|
||
entry_mode:
|
||
canonical_name: entry_mode
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- Entry_Mode
|
||
entry_mode_reason:
|
||
canonical_name: entry_mode_reason
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- Entry_Mode_Reason
|
||
entry_stage:
|
||
canonical_name: entry_stage
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Entry_Stage
|
||
- entry_stage
|
||
event:
|
||
canonical_name: event
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Event
|
||
ex_dividend_date:
|
||
canonical_name: ex_dividend_date
|
||
type: date_ISO8601
|
||
unit: none
|
||
aliases:
|
||
- Ex_Dividend_Date
|
||
exit_reason:
|
||
canonical_name: exit_reason
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Exit_Reason
|
||
final_rank:
|
||
canonical_name: final_rank
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Final_Rank
|
||
flow_breadth_5d:
|
||
canonical_name: flow_breadth_5d
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Flow_Breadth_5D
|
||
follow_through_score:
|
||
canonical_name: follow_through_score
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Follow_Through_Score
|
||
impact:
|
||
canonical_name: impact
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Impact
|
||
is_etf:
|
||
canonical_name: is_etf
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Is_ETF
|
||
lp_quality_flag:
|
||
canonical_name: lp_quality_flag
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- LP_Quality_Flag
|
||
leader_gate:
|
||
canonical_name: leader_gate
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- Leader_Gate
|
||
leader_scan_total:
|
||
canonical_name: leader_scan_total
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Leader_Scan_Total
|
||
limit_price_est:
|
||
canonical_name: limit_price_est
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- Limit_Price_Est
|
||
low52w:
|
||
canonical_name: low52w
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Low52W
|
||
ma20_at_entry:
|
||
canonical_name: ma20_at_entry
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- MA20_At_Entry
|
||
ma60_at_entry:
|
||
canonical_name: ma60_at_entry
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- MA60_At_Entry
|
||
mae_pct:
|
||
canonical_name: mae_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- MAE_Pct
|
||
mfe_pct:
|
||
canonical_name: mfe_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- MFE_Pct
|
||
nav:
|
||
canonical_name: nav
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- NAV
|
||
nav_source:
|
||
canonical_name: nav_source
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- NAV_Source
|
||
nav_source_date:
|
||
canonical_name: nav_source_date
|
||
type: date_ISO8601
|
||
unit: none
|
||
aliases:
|
||
- NAV_Source_Date
|
||
next_chunk_idx:
|
||
canonical_name: next_chunk_idx
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Next_Chunk_Idx
|
||
override_reason:
|
||
canonical_name: override_reason
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Override_Reason
|
||
override_sell_qty:
|
||
canonical_name: override_sell_qty
|
||
type: integer
|
||
unit: shares
|
||
aliases:
|
||
- Override_Sell_Qty
|
||
override_validation:
|
||
canonical_name: override_validation
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Override_Validation
|
||
pct_52w_high:
|
||
canonical_name: pct_52w_high
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- Pct_52W_High
|
||
pct_from_52w_low:
|
||
canonical_name: pct_from_52w_low
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- Pct_From_52W_Low
|
||
pnl_pct:
|
||
canonical_name: pnl_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- PnL_Pct
|
||
pos_size_qty:
|
||
canonical_name: pos_size_qty
|
||
type: integer
|
||
unit: shares
|
||
aliases:
|
||
- Pos_Size_Qty
|
||
premium_discount_pct:
|
||
canonical_name: premium_discount_pct
|
||
type: integer
|
||
unit: shares
|
||
aliases:
|
||
- Premium_Discount_Pct
|
||
priority_score:
|
||
canonical_name: priority_score
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Priority_Score
|
||
processed_count:
|
||
canonical_name: processed_count
|
||
type: integer
|
||
unit: shares
|
||
aliases:
|
||
- Processed_Count
|
||
proxy_name:
|
||
canonical_name: proxy_name
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Proxy_Name
|
||
proxy_ticker:
|
||
canonical_name: proxy_ticker
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Proxy_Ticker
|
||
proxy_type:
|
||
canonical_name: proxy_type
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Proxy_Type
|
||
rsi14_at_entry:
|
||
canonical_name: rsi14_at_entry
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- RSI14_At_Entry
|
||
rw1:
|
||
canonical_name: rw1
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- RW1
|
||
rw2:
|
||
canonical_name: rw2
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- RW2
|
||
rw3:
|
||
canonical_name: rw3
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- RW3
|
||
rw4:
|
||
canonical_name: rw4
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- RW4
|
||
rw5:
|
||
canonical_name: rw5
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- RW5
|
||
rebalance_need_krw:
|
||
canonical_name: rebalance_need_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- Rebalance_Need_KRW
|
||
rebalance_target_cash_pct:
|
||
canonical_name: rebalance_target_cash_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- Rebalance_Target_Cash_Pct
|
||
rebound_preservation_score:
|
||
canonical_name: rebound_preservation_score
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Rebound_Preservation_Score
|
||
record_date:
|
||
canonical_name: record_date
|
||
type: date_ISO8601
|
||
unit: none
|
||
aliases:
|
||
- Record_Date
|
||
ret10d:
|
||
canonical_name: ret10d
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Ret10D
|
||
ret20d:
|
||
canonical_name: ret20d
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Ret20D
|
||
ret60d:
|
||
canonical_name: ret60d
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Ret60D
|
||
rotation_score:
|
||
canonical_name: rotation_score
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Rotation_Score
|
||
rule_sell_qty:
|
||
canonical_name: rule_sell_qty
|
||
type: integer
|
||
unit: shares
|
||
aliases:
|
||
- Rule_Sell_Qty
|
||
sector_score:
|
||
canonical_name: sector_score
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Sector_Score
|
||
sell_conflict_state:
|
||
canonical_name: sell_conflict_state
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- Sell_Conflict_State
|
||
sell_execution_window:
|
||
canonical_name: sell_execution_window
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Sell_Execution_Window
|
||
sell_limit_price:
|
||
canonical_name: sell_limit_price
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- Sell_Limit_Price
|
||
sell_order_type:
|
||
canonical_name: sell_order_type
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Sell_Order_Type
|
||
sell_price_basis:
|
||
canonical_name: sell_price_basis
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- Sell_Price_Basis
|
||
sell_price_source:
|
||
canonical_name: sell_price_source
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- Sell_Price_Source
|
||
sell_qty:
|
||
canonical_name: sell_qty
|
||
type: integer
|
||
unit: shares
|
||
aliases:
|
||
- Sell_Qty
|
||
sell_ratio_pct:
|
||
canonical_name: sell_ratio_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- Sell_Ratio_Pct
|
||
sell_reason:
|
||
canonical_name: sell_reason
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Sell_Reason
|
||
setup_decision:
|
||
canonical_name: setup_decision
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Setup_Decision
|
||
signal_date:
|
||
canonical_name: signal_date
|
||
type: date_ISO8601
|
||
unit: none
|
||
aliases:
|
||
- Signal_Date
|
||
smartmoney_20d_krw:
|
||
canonical_name: smartmoney_20d_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- SmartMoney_20D_KRW
|
||
smartmoney_5d_krw:
|
||
canonical_name: smartmoney_5d_krw
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- SmartMoney_5D_KRW
|
||
snapshot_date:
|
||
canonical_name: snapshot_date
|
||
type: date_ISO8601
|
||
unit: none
|
||
aliases:
|
||
- Snapshot_Date
|
||
source:
|
||
canonical_name: source
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Source
|
||
source_date:
|
||
canonical_name: source_date
|
||
type: date_ISO8601
|
||
unit: none
|
||
aliases:
|
||
- Source_Date
|
||
source_origin:
|
||
canonical_name: source_origin
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Source_Origin
|
||
spread_pct:
|
||
canonical_name: spread_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- Spread_Pct
|
||
status:
|
||
canonical_name: status
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- Status
|
||
stop_price_est:
|
||
canonical_name: stop_price_est
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- Stop_Price_Est
|
||
stop_price_source:
|
||
canonical_name: stop_price_source
|
||
type: number
|
||
unit: KRW_per_share
|
||
aliases:
|
||
- Stop_Price_Source
|
||
symbol:
|
||
canonical_name: symbol
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Symbol
|
||
t1_forced_sell_risk_state:
|
||
canonical_name: t1_forced_sell_risk_state
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- T1_Forced_Sell_Risk_State
|
||
timing_action:
|
||
canonical_name: timing_action
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- Timing_Action
|
||
timing_block_reason:
|
||
canonical_name: timing_block_reason
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Timing_Block_Reason
|
||
total_chunks:
|
||
canonical_name: total_chunks
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Total_Chunks
|
||
tracking_error:
|
||
canonical_name: tracking_error
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Tracking_Error
|
||
tradevalue_unit:
|
||
canonical_name: tradevalue_unit
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- TradeValue_Unit
|
||
trade_id:
|
||
canonical_name: trade_id
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Trade_ID
|
||
type:
|
||
canonical_name: type
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Type
|
||
universe_count:
|
||
canonical_name: universe_count
|
||
type: integer
|
||
unit: shares
|
||
aliases:
|
||
- Universe_Count
|
||
updated_at:
|
||
canonical_name: updated_at
|
||
type: date_ISO8601
|
||
unit: none
|
||
aliases:
|
||
- Updated_At
|
||
upside_pct:
|
||
canonical_name: upside_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- Upside_Pct
|
||
weight:
|
||
canonical_name: weight
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- Weight
|
||
account_type:
|
||
canonical_name: account_type
|
||
type: integer
|
||
unit: shares
|
||
aliases:
|
||
- account_type
|
||
available_quantity:
|
||
canonical_name: available_quantity
|
||
type: integer
|
||
unit: shares
|
||
aliases:
|
||
- available_quantity
|
||
captured_at:
|
||
canonical_name: captured_at
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- captured_at
|
||
country_code:
|
||
canonical_name: country_code
|
||
type: integer
|
||
unit: shares
|
||
aliases:
|
||
- country_code
|
||
estimated_withholding_tax_rate_pct:
|
||
canonical_name: estimated_withholding_tax_rate_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- estimated_withholding_tax_rate_pct
|
||
foreign_currency:
|
||
canonical_name: foreign_currency
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- foreign_currency
|
||
foreign_equity_flag:
|
||
canonical_name: foreign_equity_flag
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- foreign_equity_flag
|
||
fx_rate_at_capture:
|
||
canonical_name: fx_rate_at_capture
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- fx_rate_at_capture
|
||
inav:
|
||
canonical_name: inav
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- iNAV
|
||
krw_estimated_value:
|
||
canonical_name: krw_estimated_value
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- krw_estimated_value
|
||
last_updated:
|
||
canonical_name: last_updated
|
||
type: date_ISO8601
|
||
unit: none
|
||
aliases:
|
||
- last_updated
|
||
market_value:
|
||
canonical_name: market_value
|
||
type: number
|
||
unit: KRW
|
||
aliases:
|
||
- market_value
|
||
monthly_contribution_limit:
|
||
canonical_name: monthly_contribution_limit
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- monthly_contribution_limit
|
||
monthly_contribution_used:
|
||
canonical_name: monthly_contribution_used
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- monthly_contribution_used
|
||
open_order_quantity:
|
||
canonical_name: open_order_quantity
|
||
type: integer
|
||
unit: shares
|
||
aliases:
|
||
- open_order_quantity
|
||
order_side:
|
||
canonical_name: order_side
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- order_side
|
||
parse_status:
|
||
canonical_name: parse_status
|
||
type: string
|
||
unit: none
|
||
aliases:
|
||
- parse_status
|
||
remaining_contribution_capacity:
|
||
canonical_name: remaining_contribution_capacity
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- remaining_contribution_capacity
|
||
return_pct:
|
||
canonical_name: return_pct
|
||
type: number
|
||
unit: percent
|
||
aliases:
|
||
- return_pct
|
||
ticker_or_name:
|
||
canonical_name: ticker_or_name
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- ticker_or_name
|
||
total_cost:
|
||
canonical_name: total_cost
|
||
type: number
|
||
unit: none
|
||
aliases:
|
||
- total_cost
|
||
normalization_rules:
|
||
- id: FIELD_ALIAS_CANONICALIZATION
|
||
rule: 모든 입력은 계산 전 canonical_name으로 변환한다.
|
||
- id: KRW_100M_TO_KRW
|
||
applies_to:
|
||
- avg_trade_value_5d
|
||
condition: source field suffix is _M or value labeled 억원
|
||
transform: value * 100000000
|
||
- id: FLOW_YN_TO_BOOLEAN
|
||
applies_to:
|
||
- flow_ok
|
||
transform: Y=true, N=false
|
||
- id: SHARES_INTEGER
|
||
applies_to:
|
||
- quantity
|
||
- flow_rows
|
||
transform: must be integer; decimal shares are invalid except final floor in sizing
|
||
|
||
# WBS-9.3: 데이터 품질 정책 — NULL 처리 및 자동 충전 규칙
|
||
data_quality_policy:
|
||
version: "2026-06-22"
|
||
purpose: "NULL 컬럼별 충전 가능성, 우선순위, 추정 금지 정책을 명시"
|
||
|
||
null_handling_fields:
|
||
# 우선순위 1 (필수, 자동 충전 가능)
|
||
atr20:
|
||
chargeability: FILLABLE
|
||
priority: 1
|
||
source: ATR(close, 20) 자동 계산
|
||
estimation_forbidden: false
|
||
fallback: 입력 거래 제외
|
||
|
||
rsi_14:
|
||
chargeability: FILLABLE
|
||
priority: 1
|
||
source: RSI(close, 14) 자동 계산
|
||
estimation_forbidden: false
|
||
fallback: 입력 거래 제외
|
||
|
||
velocity_1d:
|
||
chargeability: FILLABLE
|
||
priority: 1
|
||
source: (close - previous_close) / previous_close * 100
|
||
estimation_forbidden: false
|
||
fallback: 입력 거래 제외
|
||
|
||
# 우선순위 2 (권장, 추정 가능)
|
||
stop_price:
|
||
chargeability: FILLABLE
|
||
priority: 2
|
||
source: ATR(close, 20) * 2.0 (기본값)
|
||
estimation_forbidden: false
|
||
estimation_rule: ATR20 * atr_multiplier
|
||
fallback: 입력 거래 제외
|
||
|
||
target_price:
|
||
chargeability: FILLABLE
|
||
priority: 2
|
||
source: consensus_target 또는 ATR 기반
|
||
estimation_forbidden: false
|
||
estimation_rule: close * (1 + expectancy_pct)
|
||
fallback: 입력 거래 제외
|
||
|
||
# 우선순위 3 (선택, 추정 불가)
|
||
rsi_15m:
|
||
chargeability: NOT_FILLABLE
|
||
priority: 3
|
||
source: 인트라데이 데이터 필요 (HTS 수동 기록)
|
||
estimation_forbidden: true
|
||
fallback: NA로 처리, 계산 제외
|
||
|
||
bayesian_confidence_multiplier:
|
||
chargeability: COMPUTED
|
||
priority: 3
|
||
source: spec/17_performance_contract.yaml 기준 자동 계산
|
||
estimation_forbidden: true
|
||
fallback: 0.5 기본값 (데이터 부족 신호)
|
||
|
||
kelly_brake_multiplier:
|
||
chargeability: COMPUTED
|
||
priority: 3
|
||
source: 성과 피드백 레이어에서 자동 계산
|
||
estimation_forbidden: true
|
||
fallback: 1.0 (제약 없음)
|
||
|
||
ci_gate_rules:
|
||
- gate_id: DATA_QUALITY_NULL_CHECK
|
||
description: 필수 필드(priority 1) NULL 검증
|
||
trigger: GAS runDataFeed() 또는 snapshot_admin API 호출 시
|
||
required_fields:
|
||
- close_price
|
||
- ticker
|
||
- entry_price
|
||
- stop_price
|
||
- velocity_1d
|
||
action_on_fail: ERROR 로그 기록, 해당 거래 SKIP
|
||
acceptance_criteria: "100% 필드 충전"
|
||
|
||
- gate_id: DATA_QUALITY_FILLABLE_CHECK
|
||
description: 권장 필드(priority 2) 자동 충전
|
||
trigger: 데이터 로드 직후
|
||
fillable_fields:
|
||
- atr20
|
||
- rsi_14
|
||
- velocity_5d
|
||
- stop_price
|
||
- target_price
|
||
action_on_success: 자동 계산값 삽입
|
||
action_on_fail: WARNING 로그, 기존값 유지
|
||
acceptance_criteria: ">= 95% 자동 충전율"
|
||
|
||
- gate_id: DATA_QUALITY_ESTIMATION_BLOCK
|
||
description: 추정 금지 필드 검증
|
||
trigger: 계산 엔진 전 1회
|
||
forbidden_estimation_fields:
|
||
- rsi_15m
|
||
- kelly_brake_multiplier
|
||
- proposal_stop_ladder
|
||
action_on_fail: DATA_MISSING 처리, 계산 제외
|
||
acceptance_criteria: "0% 추정율"
|
||
|
||
automated_fill_procedures:
|
||
- procedure_id: FILL_ATR20
|
||
field: atr20
|
||
condition: "atr20 IS NULL AND close_price IS NOT NULL"
|
||
implementation: "src/quant_engine/auto_fill_atr20_v1.py"
|
||
execution_frequency: "on_data_load"
|
||
|
||
- procedure_id: FILL_RSI14
|
||
field: rsi_14
|
||
condition: "rsi_14 IS NULL AND close_price IS NOT NULL"
|
||
implementation: "src/quant_engine/auto_fill_rsi14_v1.py"
|
||
execution_frequency: "on_data_load"
|
||
|
||
- procedure_id: FILL_VELOCITY_1D
|
||
field: velocity_1d
|
||
condition: "velocity_1d IS NULL AND (close_price AND previous_close_price) IS NOT NULL"
|
||
implementation: "src/quant_engine/auto_fill_velocity_v1.py"
|
||
execution_frequency: "on_data_load"
|
||
|
||
- procedure_id: FILL_STOP_PRICE
|
||
field: stop_price
|
||
condition: "stop_price IS NULL AND atr20 IS NOT NULL"
|
||
implementation: "src/quant_engine/auto_fill_stop_price_v1.py"
|
||
execution_frequency: "on_data_load"
|
||
parameters:
|
||
multiplier_default: 2.0
|
||
fallback_pct: -5.0
|