Q

PRIVATE NAVIGATION MODE

ML4T_S 탭 잠금 해제

패스워드를 확인하면 이 브라우저에서 ML4T_S 탭과 검색 결과를 표시합니다.

STUDY SEARCH

학습 자료 검색

제목과 설명, 키워드, 학습 본문에서 찾습니다.

검색 범위

검색어를 입력해 주세요.

SEARCH THE NOTEBOOK

찾고 싶은 금융·통계·전략 개념을 입력해 보세요.

CHAPTER 01 / SECTION 02

1.2 트레이딩을 위한 머신러닝 워크플로 소개

데이터 기반과 전략 연구를 연결하고 탐색과 확인을 구분하는 절차를 설명합니다.

1장. The Process Is Your Edge(프로세스가 곧 경쟁 우위다)초급 학습 노트

반복해서 쓸 수 있는 데이터 기반

5월 11일 08:30에 지우는 A사의 영업이익 10억 원을 모델에 넣는다. 민서는 5월 12일 16:00에 공개된 20억 원을 3월 31일 분기 종료일에 붙여 같은 시점의 모델에 넣는다. 입력값이 달라진 이유는 실적을 쓸 수 있다고 판단한 기준이 다르기 때문이다.

Data Infrastructure(데이터 기반)는 이 차이를 줄이는 공통 토대다. 종목 코드, 실적이 속한 기간, 공시가 공개된 시각, 정정 이력과 값이 없을 때의 처리 규칙을 함께 남긴다. 이렇게 해 두면 나중에도 종목 선정 시각에 쓸 수 있었던 입력을 다시 만들 수 있다.

자산마다 별도로 처리할 일도 있다. 주식이 액면분할을 하면 분할 전후 가격을 비교할 기준이 필요하다. 선물은 만기가 돌아오면 어느 계약으로 바꿀지 정해야 한다.

공통 데이터에서 주문과 운영 진단으로 이어지는 흐름
  1. 공통 데이터 기반
    같은 공개 시각과 종목 식별 규칙으로 연구와 운영의 입력을 만든다.
  2. 전략 연구
    범위와 기준을 정하고 특성, 모델, 주문 규칙을 반복해서 점검한다.
  3. 증거 경계
    후보를 고정하고 선택에 쓰지 않은 구간에서 확인한다.
  4. 배포와 감시
    실거래 기록을 남기고 이상 징후가 생긴 단계로 돌아간다.

연구에서 만든 규칙과 기록이 운영으로 넘어가고 운영 결과는 다음 연구의 입력이 된다.

종목 코드가 바뀌거나 공급자가 같은 시각에 여러 메시지를 보낼 때는 내부 식별자와 메시지 순서를 남긴다. 거래가 멈춰 오래된 호가가 계속 보이는 경우도 따로 표시한다. 선물 계약을 잇는 기준과 디지털 자산의 거래소·자금 조달 규칙처럼 자산별 처리 방식도 버전과 함께 보존한다. Synthetic Data(합성 데이터)는 드문 급락을 만들어 점검할 때 쓸 수 있다. 다만 만든 자료에서 주문이 현실보다 쉽게 체결되면 그 자료로 수익을 입증할 수 없다.

실적 공개와 주문 및 평가의 시간 순서
  1. 5월 8일 16:00
    이전 분기 영업이익 10억 원이 공개된다.
  2. 5월 11일 08:30 → 시가
    10억 원으로 종목을 고른 뒤 시가에 거래한다고 가정한다.
  3. 5월 12일 16:00
    새 분기 영업이익 20억 원이 공개된다.
  4. 5월 18일 시가
    5월 11일 시가부터의 수익률이 확정된다.

결정 시각에는 이전 실적만 알려져 있다. 수익률은 나중에 예측을 평가할 때 쓴다.

예측을 주문으로 바꾸는 연구 과정

지우는 5월 11일 08:30에 종목을 고른다. 이번 예에서는 5월 11일 시가부터 5월 18일 시가까지의 수익률로 예측을 평가한다. 모델을 만들기 전에 거래 대상, 비용, 평가 방법을 정한다. 예를 들어 거래가 뜸한 종목을 뺄지는 모델 점수를 본 뒤 결정하면 안 된다. 종목 범위를 바꾸면 비교하는 전략 자체가 달라지기 때문이다.

공시 문서에 적힌 실적을 전 분기 대비 이익 증가율처럼 모델이 읽을 수 있는 숫자로 바꾼다. 이 작업이 Feature Engineering(특성 공학)이다. 모델을 고를 때는 이익 증가율만으로 정렬하는 간단한 Baseline(기준 모델)부터 비교할 수 있다.

1월 자료로 학습해 2월을 평가한 뒤, 다시 그 시점까지의 자료로 학습해 3월을 평가할 수 있다. 과거에서 이후로 평가를 옮겨 가는 방식을 Walk-forward Validation(순차 전진 검증)이라고 한다.

모델이 높은 점수를 준 종목이라고 해서 바로 매수하는 것은 아니다. 몇 종목을 살지, 각 종목에 얼마를 배정할지, 주문을 건너뛸 조건은 무엇인지 정해야 한다. 한 종목에 너무 많이 몰리거나 시장에서 소화하기 어려운 주문이 나가지 않도록 한도도 둔다.

Backtest(백테스트)는 이런 주문 규칙을 과거에 적용해 보는 실험이다. 수수료, 매수·매도 호가 차이, 체결 지연을 넣는다. 종목을 너무 자주 교체해 이익이 비용으로 사라진다면, 점수 계산이나 매매 규칙을 다시 살펴본다. 실거래를 시작한 뒤에도 점수와 체결 기록을 따로 남겨야 어느 쪽을 고칠지 판단할 수 있다.

어떤 입력과 정답이 주문 목적에 맞는지 확인하기

지우의 입력인 Feature(특성)는 당시 확인한 실적 변화다. Label(레이블)은 예측할 구간의 실제 수익률이다. 장중 거래비용을 줄이는 모델이라면 정답을 이후 수익률 대신 체결 가격과 기준 가격의 차이로 바꿀 수 있다. 목표가 바뀌면 좋아 보이는 점수의 뜻도 달라진다.

여러 종목을 한 번에 고르는 전략에서는 Information Coefficient(정보계수)로 예측 순위와 나중의 실제 수익률 순위가 비슷했는지 비교할 수 있다. 한 달에만 순위가 잘 맞았다면 시장 상태별로 나눠 확인한 뒤 복잡한 모델에 시간을 쓴다. 예측력이 떨어졌을 때는 모델을 키우기 전에 공시의 시점이나 레이블의 기간이 어긋났는지 살펴본다.

Reinforcement Learning(강화학습)은 수익률을 맞히는 대신 주문을 나눠 내는 행동처럼 여러 번의 결정을 직접 학습할 수도 있다. 예를 들어 주문을 늦춰 비용을 줄이면 보상을 얻지만, 마감까지 남은 주문이 크면 벌점을 받는다. 시뮬레이션이 실제보다 쉽게 체결된다면 학습한 행동의 성과도 과대평가된다.

5월 8일에 만든 일주일 수익률이 5월 15일에 끝난다면, 5월 11일 주문을 검증할 모델의 학습 자료에서 제외한다. 예측 날짜가 평가보다 앞서더라도 정답에 평가 기간의 가격이 들어 있기 때문이다. 보유 기간이 겹치는 표본을 정리하는 규칙은 모델 설정을 고를 때도 적용한다.

한 주의 기록이 다음 단계로 넘어가는 과정

A사의 공시 기록에는 5월 8일 16:00에 공개된 영업이익 10억 원과 5월 12일 16:00에 공개된 20억 원이 모두 남아 있다. 5월 11일 08:30에 점수를 만들 때 쓸 수 있는 값은 10억 원이다.

모델은 그 입력으로 종목마다 점수를 매긴다. 매매 규칙은 점수를 보고 각 종목에 배정할 비중을 정한다. 주문 기록에는 목표 비중과 실제 체결 가격을 함께 남긴다. 나중에 같은 날짜의 입력, 점수, 비중, 체결가를 차례로 비교하면 차이가 시작된 단계를 찾을 수 있다.

공시는 예측에 쓰는 입력이고, 수익률은 예측이 맞았는지 확인하는 정답이다. 지우가 5월 11일 08:30에 평가를 시작할 때, 5월 8일에 이미 확정된 과거 수익률은 학습에 쓸 수 있다. 5월 11일 시가부터 5월 18일 시가까지의 수익률은 5월 18일 시가가 나온 뒤에 평가 결과로 기록한다.

비용은 평가 기준을 고정해야 비교할 수 있다. 과거 체결 기록을 보고 비용이 얼마나 드는지 다시 추정할 수는 있다. 성과가 낮다는 이유로 수수료나 체결 비용을 평가에서 빼면 이전 결과와 같은 기준으로 비교할 수 없다.

예측이 맞아도 주문을 보류하는 조건

높은 점수를 받은 종목의 예상 이익이 왕복 비용보다 작거나, 주문이 하루 거래량에 비해 너무 크면 주문을 보류한다. 거래 가능한 후보만 남긴 뒤 한 종목의 비중 상한과 자금 차입 한도를 지키는 목표 비중을 정한다. 시뮬레이션에서는 수수료뿐 아니라 호가 차이, 주문량 때문에 가격이 움직이는 Market Impact(시장 충격), 공매도의 차입 비용도 반영한다. 한도를 포함한 시뮬레이션에서 전략이 무너지면 입력과 주문 설계를 다시 검토한다.

실제 운영은 Shadow Deployment(그림자 배포)에서 주문을 기록만 하는 것으로 시작한다. 다음은 Canary Deployment(소규모 시험 배포)에서 작은 자금으로 실제 체결과 지연을 본다. 두 단계의 기록이 사전 기준을 충족하면 거래 규모를 늘린다. 운영 중에는 데이터 지연, 예측과 결과의 어긋남, 체결률과 가격 차이, 위험 한도 위반을 따로 감시한다. 원인에 따라 수집을 복구하거나 모델을 재학습하고, 미리 정한 중단 기준에 이르면 주문을 멈춘다.

탐색에서 확인으로 넘어가는 기준

Exploration(탐색) 단계에서는 후보를 바꾸며 실험하고 사용한 데이터, 설정, 결과를 장부에 남긴다. Confirmation(확인) 단계로 넘어갈 때는 후보와 평가 지표를 고정하고, 선택에 사용하지 않은 Holdout Set(보류 데이터)을 연다. 결과를 보고 규칙을 바꾼 뒤 같은 구간에 다시 적용하면 그 구간도 후보를 만드는 데 사용된 것이다.

여러 번 시험하고 그중 가장 좋은 결과를 고르면, 우연히 유리했던 조합이 뽑힐 수 있다. Selection-adjusted Inference(선택을 반영한 추론)는 이런 선택 과정을 고려해 결과를 얼마나 믿을 만한지 판단한다. 그래서 확인용 데이터를 따로 남기는 일과 시도한 실험을 기록하는 일이 함께 필요하다. 사람이 만든 매매 규칙에도 같은 절차를 적용할 수 있다.

예를 들어 실적 지표 네 가지와 보유 기간 다섯 가지를 조합하면 스무 개의 후보가 생긴다. 그중 하나가 탐색 구간에서 두드러져도, 스무 개를 비교한 결과라는 사실을 기록해야 한다. 실험 장부에는 성공한 조합뿐 아니라 실패한 조합과 평가 기준을 바꾼 이력도 포함한다. 확인 구간에서는 고른 조합을 그대로 실행하고, 비용 반영 후 성과와 하락 구간의 위험이 사전에 정한 기준을 충족하는지 본다. 확인에 실패한 뒤 수정할 때는 같은 구간을 새 확인 증거로 재사용하지 않는다.