SMSmart Money Radar운용 정책 명세 · v2
자동주문 OFF · 읽기 전용대시보드

POLICY SPECIFICATION · OOS VALIDATION · 2026-07-30

가상펀드 운용·체결·검증 정책 명세

본 문서는 rank-top20-overnight-fund-v2의 현행 정책을 구현과 대조할 수 있는 수식과 절차로 명세한다. 종목 선정과 청산, 위험 한도, 주문·체결, 거래비용과 회계, 기업행위, 데이터 품질, 표본 외 검증을 한 문서에서 정의한다. 수익을 약속하는 문서가 아니라, 관측값이 포지션과 성과로 이어지는 전 과정을 재현하고 검토하기 위한 기준이다.

읽기 안내본문 수식과 정책값이 정식 정의다. ‘쉽게 말하면’ 주석은 이해를 돕는 요약이며, 해석이 다를 때는 본문을 우선한다.

적용 범위1억 원 단일 가상원장 · 롱 온리 · 오버나이트 허용 · 실주문 없음
문서 수식 ↔ 운용 엔진 규칙 대조상태기계·회계·주문 시각을 구현 및 계약 테스트와 대조함 · 실주문 전환은 차단 상태현행 DB 정책, FundPolicy, VirtualFundEngine, CostModel, fund_backtest를 서로 대조했다. 취소 후 재제출 규칙, 이벤트 시각, 표본 게이트와 데이터 품질의 차이는 아래에 구분해 적었다.
01

NOTATION & SCOPE

기호와 결정 시점

종목 i, 업종 s, 완결된 1분봉 시점 t에 대해 랭킹 r, 가격 P, 보유수량 q, 순청산가치 V(보유자산에서 예상 청산비용을 차감한 NAV)를 사용한다. 종목·업종 위험 한도는 총 시가평가액을 V로 나눈 비중으로 판단한다.

rᵢ,ₜ레이더 순위. 작을수록 우선
Pᵢ,ₜ결정 시점 기준가격
qᵢ,ₜ현재 보유수량
wᵍᵢ,ₜ종목 총 시가평가액 / Vₜ
Wᵍₛ,ₜ업종 s의 총비중 합계
Cₜ, Eᵍₜ현금비중, 총 투자비중
Gₜ랭킹 스냅샷이 정상(GOOD) 품질인지 여부
Dₜ펀드 열화 사유가 남아 있는지
Hᵢ,ₜ현재 랭킹 엔트리에서 감지한 강제 차단 조건(hard veto)
Vₜ = Cashₜ + Σᵢ(qᵢ,ₜPᵢ,ₜ) − Σᵢ LCostᵢ,ₜ(1)

현재 정책에서 LCostᵢ,ₜ = qᵢ,ₜPᵢ,ₜ·(1.5+20)/10,000이다. 이는 지금 전량 매도한다고 가정했을 때의 수수료와 제세금이다. 스프레드와 슬리피지는 가상 체결이 발생할 때 확정 비용으로 반영한다.

Gₜ = 1[source=forward_oos]·1[complete]·1[eligible]·1[¬degraded]·1[evaluated_at−decision_at≤3m](1a)

이는 랭킹 스냅샷 품질 기준이다. 보유종목 평가가격에는 별도로 최대 5분의 최신성 기준을 적용한다.

02

POLICY PARAMETERS

운용 정책 기준값

아래 수치는 논문에서 추정한 보편적 최적값이 아니라, 현행 엔진에 미리 고정한 정책값이다. 값을 바꿀 때는 정책 버전을 올리고 변경 이후의 데이터에만 적용한다.

항목공식해석
진입 순위rᵢ,ₜ ≤ 10유효한 랭킹의 상위 10개
청산 순위rᵢ,ₜ > 20진입/청산 사이 완충구간
종목 목표wᵍ* = 9%신규 편입 및 초과비중 축소 목표
종목 상한wᵍᵢ,ₜ > 12%초과하면 9%로 축소
업종 상한Wᵍₛ,ₜ > 30%초과하면 27%로 축소
투자비중Eᵍₜ > 92%초과하면 90%로 축소
현금비중Cₜ < 8%미만이면 10%로 복원
종목 수N ≤ 10공매도·레버리지 없음
체결 참여율π ≤ 5%완결 1분봉 거래대금 기준
매수 유효봉B ≤ 5미체결 잔량은 이후 만료
매수 주문Lᵇ ≤ 신호가 +20bp조건 재검증 후 보호 지정가
매도 주문Lˢ ≥ 봉 시가 −20bp봉별 지정가+IOC 조건 근사
스프레드 결측Spread = ∅ ⇒ No Fill해당 봉은 체결 불가
03

DECISION RULE

의사결정과 위험관리

3.1 신규 편입 자격과 매수

09:05–15:00 사이에 생성된 유효하고 완전한 정상(GOOD) 랭킹만 사용한다. 이미 보유한 종목은 비중이 9% 아래로 내려가도 목표 비중을 채우기 위한 추가 매수를 하지 않는다. 펀드 열화 사유가 한 번 기록되면 열화 상태 잠금(래치)이 걸리며, 명시적으로 해제하기 전까지 신규 편입을 차단한다.

Iᵢ,ₜ = 1[Gₜ=1]·1[Dₜ=0]·1[09:05≤t≤15:00]·1[rᵢ,ₜ≤10]·1[Hᵢ,ₜ=0]·1[Pᵢ,ₜ>0]·1[sectorᵢ≠∅](2)
q̃ᵢ,ₜ = ⌊0.09Vₜ / (Pᵢ,ₜ(1+cᵇᵘʸᵢ,ₜ))⌋(3)

cᵇᵘʸᵢ,ₜ = (1.5 + 3 + Spreadᵇᵖᵢ,ₜ/2)/10,000이다. 실제 목표수량 q* 이하에서 이분탐색으로 정한다. 매수 후에도 현금 10% 이상, 총 투자비중 90% 이하, 업종 총비중 30% 이하, 최대 10종목 조건을 모두 만족해야 한다.

q*ᵢ,ₜ = max{q∈ℤ₊ : q≤q̃ᵢ,ₜ, C′≥10%, Eᵍ′≤90%, Wᵍ′ₛ≤30%, N′≤10}(4)

미체결 매수 주문도 새 스냅샷마다 같은 조건을 다시 확인한다. 상위 10위 이탈, 랭킹 소실, 강제 차단 조건, 가격·업종 결측, 비정상 품질 입력이 발생하면 즉시 취소한다. 유효한 대기 매수에 필요한 종목 수·현금·업종·노출 한도는 미리 차감해, 새 주문이 같은 한도를 중복 사용하지 못하게 한다.

3.2 전량 매도

강제 차단 조건은 데이터가 오래됐거나 열화된 경우에도 적용한다. 반면 순위 이탈이나 랭킹 소실에 따른 매도는 현재 유니버스가 완전한 정상(GOOD) 스냅샷일 때만 허용한다.

Xᵢ,ₜ = Hᵢ,ₜ ∨ (Gₜ ∧ (rᵢ,ₜ>20 ∨ i∉Uₜ))(5)

X=1이면 전량 매도한다. 10위 진입·20위 이탈의 진입·청산 완충구간(hysteresis)은 순위 경계 부근의 반복 매매와 거래비용을 줄이기 위한 장치다. 장이 마감됐다는 이유만으로 청산하지는 않는다.

3.3 위험 한도 리밸런싱

강제 청산을 투영한 뒤 종목, 업종, 전체 유동성 순서로 다시 계산한다. 업종·전체 축소는 랭킹이 약한 종목, 즉 순위 숫자가 큰 종목부터 매도한다. 정상 품질이 아닌 스냅샷에서는 순위 청산과 신규 편입만 차단하며, 보유 위험 한도 축소와 감지된 강제 차단 조건은 계속 처리한다.

wᵍᵢ,ₜ>12% ⇒ q*ᵢ,ₜ=⌊0.09Vₜ/Pᵢ,ₜ⌋(6)
Wᵍₛ,ₜ>30% ⇒ ΔValueₛ = Wᵍₛ,ₜVₜ − 0.27Vₜ(7)
Cₜ<8% ∨ Eᵍₜ>92% ⇒ Need=max(0, 0.10Vₜ−Cashₜ, MVᵍₜ−0.90Vₜ)(8)
1강제 청산veto · 순위 이탈 · 랭킹 소실
2위험 축소종목 · 업종 · 현금/노출
3신규 편입상위 10위 · 9% 목표

같은 종목의 매도 사유는 하나의 주문으로 합치며, 매도 주문을 매수보다 먼저 처리한다. 열화 상태 잠금이 명시적으로 해제되기 전에는 신규 편입을 막고 강제 차단 조건은 계속 적용하는 안전 우선 차단(fail-closed) 구조다.

3.4 기업행위

기업행위는 주문 의사결정보다 먼저 별도 원장 사건으로 반영한다. 현금배당은 현금·실현손익을, 주식배당·분할은 수량·평균원가를, 합병·상장폐지·현금정산·종목코드 변경은 보유 포지션을 직접 바꾼다. 지원하지 않는 인적분할·유상증자 또는 가격 없는 정산은 열화 상태 잠금을 설정해 신규 편입을 차단한다.

확인된 기업행위 공급원이 없거나 늦은 정정이 상태시각을 역행하면 실주문 전환을 차단한다. 현금배당은 권리락일이 아니라 지급일에 반영하되, record date의 명시적 권리수량이 없으면 현재 보유수량으로 추정하지 않고 현금 0원·열화 상태로 안전 우선 차단한다. 기업행위 대상 종목의 활성 주문은 먼저 취소한 뒤 변경된 종목코드·수량·현금을 다시 계산한다.

04

EXECUTION & ACCOUNTING

주문 체결·거래비용·평가

주문 취소는 미체결 수량을 철회하는 행위로, 시장가·지정가 같은 가격유형과 구분한다. 대기 중인 매수 주문은 매 분 진입 조건을 다시 확인한다. 최신 기준의 한도가 낮아질 때만 가격을 하향 정정하며, 가격을 높여 추격하지 않는다. 순위 이탈·강제 차단 조건·비정상 품질 상태가 발생하면 미체결 잔량을 취소하고 대체 주문을 만들지 않는다. 청산·위험 축소 매도는 무제한 시장가 대신 가격보호 지정가와 IOC 조건을 결합한 봉별 자식 주문으로 재가격한다. 이 과정은 실제 호가장이 아닌 완결된 1분봉으로 근사한다.

Gᵇ = Gˢ = 20bp,   TIFˢ = IOC(9a)
Lᵇ = FloorTick{Pᵈᵉᶜⁱˢⁱᵒⁿ(1+20/10,000)}(9b)
Lˢₜ = CeilTick{Pᵒᵖᵉⁿₜ(1−20/10,000)}(9c)

신호가 발생한 봉에서는 체결하지 않는다. 실제 평가·제출 시각 이후의 다음 완결 1분봉 시가에 불리한 방향으로 스프레드와 슬리피지를 반영한 뒤 호가단위로 반올림한다. 새 주문에 과거 봉을 소급 적용하지 않는다. 매수 한도는 최초 제출값보다 높이지 않고, 최신 기준의 한도가 낮아질 때만 보수적으로 낮춘다. 모든 체결은 09:00~15:20 연속매매 시간으로 제한하며, 매도 한도는 적격 봉마다 새로 계산한다. 호가 반올림은 2023년 1월 25일부터 KOSPI·KOSDAQ 주권에 공통 적용되는 KRX 통합 호가단위를 쓴다.

Xₜ = AdverseTick{Pᵒᵖᵉⁿₜ[1+d·(Spreadᵇᵖₜ/2+3)/10,000]}(9)
Fillᵇₜ ⇔ Xᵇₜ ≤ Lᵇ,   Fillˢₜ ⇔ Xˢₜ ≥ Lˢₜ(9d)
Eligibleₜ = Completedₜ·1[t>Submitted]·1[Spreadₜ≠∅]·1[Sessionₜ](9e)
qᶠⁱˡˡ_buy = min(qʳᵉᵐ, ⌊0.05·BarTradeValue/Xᵇ⌋, qᶠᵉᵃˢⁱᵇˡᵉ)(10a)
qᶠⁱˡˡ_sell = min(qʳᵉᵐ, qʰᵉˡᵈ, ⌊0.05·BarTradeValue/Xˢ⌋)(10b)
Costₖ = 0.00015·Pᶠⁱˡˡq + 1[SELL]·0.0020·Pᶠⁱˡˡq + |Pᶠⁱˡˡ−Pᵒᵖᵉⁿ|q(11)
매수보호 지정가 · 최대 5개 적격 봉

매 분 진입조건을 재검증하고 추격 시장가로 전환하지 않는다.

매도가격보호 지정가 + IOC 조건의 1분봉 근사

해당 봉의 가격·참여율 조건에서만 체결하고 자식 주문 잔량은 취소한 뒤 다음 적격 봉에 새로 제출한다.

결측 스프레드체결 불가

0bp로 낙관하지 않으며 적격 봉 횟수도 차감하지 않는다.

2026 정책의 매도 제세금 20bp는 코스피 5bp + 농어촌특별세 15bp, 코스닥 20bp를 반영한다. 중개 수수료 1.5bp와 슬리피지 3bp, 가격보호폭 20bp는 모형 가정이며 실제 계좌 조건과 다를 수 있다. 최우선 매수·매도호가, 큐 우선순위, VI·단일가 시장단계가 입력에 없으므로 실제 KRX IOC와 동일하다고 볼 수 없다. 따라서 실주문 전환은 차단 상태로 유지한다.

05

VALIDATION PROTOCOL

성과 측정과 표본 외 검증

가상펀드 운용과 백테스트는 같은 VirtualFundEngine 상태 머신을 사용한다. 이는 상태기계와 회계 로직이 같다는 뜻이며, 입력 시점까지 완전히 같다는 뜻은 아니다. 현행 구현은 순수익률·낙폭·비용·회전율·노출·체결률을 계산하고, 표본 표시 조건과 아직 계산하지 않는 연구지표를 구분한다.

Rʳᵘⁿ = Vₜ/V₀ − 1,   DDₜ = Vₜ/maxᵤ≤ₜ(Vᵤ) − 1(12)
Turnoverʳᵘⁿ = Σₖ ReferenceNotionalₖ / V₀(13)
SampleReady = 1[TradingDays≥20]·1[CompletedPositionExits≥30]·1[Quality=GOOD](14)
현재 계산

순·총수익률, 최대낙폭, 총비용·비용부담, 실행 회전율, 시간가중 노출, 체결률을 저장한다.

현재 벤치마크

같은 거래일의 KRX 300 TR 90% + 현금 10%만 정식 비교하며, 날짜가 다르면 비교값을 만들지 않는다.

표본 표시 게이트

20거래일과 30회의 독립된 포지션 완료 청산을 모두 충족해야 한다. 부분매도 실현손익은 감사 원장에는 남지만 완료 청산 수를 늘리지 않는다. 최종 마크가 열화되거나 stale 마크 비율이 5%를 넘으면 표본 수와 무관하게 ready가 아니다.

현재 미계산

PBO·DSR은 단일 고정 규칙 단계에서 N/A로 저장한다. Sharpe는 현재 펀드 백테스트에서 계산·저장하지 않는다.

입력 동등성 제한

라이브와 백테스트는 source_watermarks.decision_at, 유효·무효 스냅샷, 열화 사유와 기업행위를 함께 전달한다. 재현 가능한 평가 시각이 기록된 경우 그 가용 시각(availability)을 사용하며, 기록이 없는 과거 구간은 운영 지연까지 완전히 같다고 보지 않는다.

실주문 전환 검토용 · 현재 미계산Sharpe* = √252·mean(Rₜ−Rᶠₜ)/sd(Rₜ−Rᶠₜ)

여러 전략 후보를 실제로 시험하게 될 때만 시험 횟수를 기록해 DSR·PBO를 계산한다. 무거래·단순 상위보유·순위 반전(rank reversal) 비교군도 현재 펀드 API의 산출값이 아니라 실주문 전환 전 추가 검증 항목이다.

실주문 전환 불가 조건현재 시스템은 결과와 무관하게 auto_trading=false다. 향후 실주문 전환을 검토하더라도 비용 차감 후 초과성과, 충분한 기간, 벤치마크 원천, 데이터 최신성·커버리지, 기업행위 공급원, 다중시험 보정이 모두 확인되기 전에는 자동주문으로 전환하지 않는다.
06

REFERENCES & LIMITS

근거 문헌과 적용 한계

  1. KRX, 코스닥시장 매매거래제도일반

    2023년 1월 25일부터 KOSPI·KOSDAQ 주권에 공통 적용되는 2천·2만·20만원 경계의 호가가격단위를 사용합니다.

  2. KRX, Cancellation and Correction of Orders

    취소는 미체결 수량을 철회하는 행위이고 가격유형이 아닙니다. 가격을 정정하면 새 접수시각 기준으로 시간우선순위가 바뀝니다.

  3. KRX, Types of Orders

    취소는 미체결 주문을 철회하는 행위이며 별도 가격유형이 아닙니다. 지정가는 가격을 통제하지만 미체결될 수 있고, 시장가는 유동성이 부족할 때 가격 급변을 만들 수 있으며, IOC는 즉시 체결 가능한 수량만 체결하고 잔량을 취소합니다.

  4. Novy-Marx & Velikov (2016), A Taxonomy of Anomalies and Their Trading Costs

    거래비용을 반영하면 전략 성과와 유의성이 약화되며, 진입·보유 기준을 분리한 buy/hold spread가 단순하지만 효과적인 비용 완화책임을 보입니다.

  5. Almgren & Chriss (2001), Optimal Execution of Portfolio Transactions

    체결비용과 가격변동 위험의 상충관계를 정식화합니다. 본 펀드의 5% 참여율은 이 논문의 최적해가 아니라 그 원칙을 보수적으로 적용한 정책 한도입니다.

  6. Tashman (2000), Out-of-sample Tests of Forecasting Accuracy

    고정된 한 구간의 적합도보다 rolling-origin, 재추정, 복수 시험구간을 사용한 표본 외 평가가 필요하다는 검증 원칙입니다.

  7. Bailey & López de Prado (2014), The Deflated Sharpe Ratio

    비정규 수익률과 여러 전략을 시험한 선택편향을 감안해 관측 Sharpe를 보정하는 기준입니다.

  8. Bailey et al. (2017), The Probability of Backtest Overfitting

    여러 후보 중 선택된 전략이 표본 외에서 중앙값보다 부진할 확률을 CSCV 방식으로 추정하는 검증 기준입니다.

  9. 국가법령정보센터, 2026년 증권거래세법령

    2026년 1월 2일 시행 기준 코스피 증권거래세 5bp, 코스닥 20bp를 확인하는 법령 근거입니다. 코스피 농어촌특별세 15bp를 더해 현재 모형의 총 매도 제세금은 두 시장 모두 20bp입니다.