AI 주식 자동매매

AI 트레이딩 시스템 설계 변경(지도학습, 강화학습)

아이띠불로구 2026. 4. 22. 18:34

강화 학습 -> 지도 학습으로 변경

미래를 예상해서 매매 판단을 하는 강화 학습보다 확률 데이터 기반으로 매매를 하는 지도학습이 더 나을 것 같음.

또 바뀔 수도 있음. 완성이나 할 수 있을지 모르겠음... 진척도는 20%? 이미 가공 데이터 생성하는 부분은 코딩을 끝냈지만 높은 완성도를 위해 아직도 DB 밀고 소스 수정하고 반복 중.

+ 주식 데이터 수집 로직도 다른 증권사로 바꿈(대신 -> 키움 -> LS). 대신은 과거 데이터를 많이 가져올 수 있어 그걸 활용할거고 키움에서 LS로 바꾼건 수정 주가 때문임. 과거 데이터에 수정주가 데이터가 없는 로우들은 최근 가격과 계산해서 데이터를 채울 예정

 

이론적으로는 강화학습(RL)이 더 "똑똑해" 보일 수 있지만, 실전 퀀트 시스템 개발에서는 **지도 학습(Supervised Learning, XGBoost)**으로 시작하는 것이 훨씬 유리합니다. 왜 그런지 핵심 이유를 짚어드릴게요.


1. 지도 학습 vs 강화학습: 왜 지금 방식이 더 나은가?

비교 항목 지도 학습 (현재: XGBoost) 강화학습 (이전: PPO 등)
목표의 명확성 "수익이 날 패턴을 맞춰라" (정답 존재) "보상을 최대화할 행동을 찾아라" (정답 없음)
학습 안정성 손실 함수($Loss$)가 줄어들면 성능이 좋아짐 보상($Reward$)이 늘어나다가도 갑자기 무너짐
데이터 효율성 과거 데이터만으로도 충분히 강력함 수만 번의 시뮬레이션(에피소드)이 필요함
디버깅 "어떤 피처가 문제인가?" 파악 가능 "왜 저런 이상한 매매를 하지?" 파악 불가능

2. 현재 설계(Multi-TF)가 RL의 빈자리를 채워주는 이유

강화학습을 쓰려던 이유는 아마 **"시장의 맥락을 읽고 유연하게 대응하기 위해서"**였을 겁니다. 그런데 지금 설계하신 m01~m60 멀티 타임프레임 피처가 사실상 그 역할을 대신합니다.

  • RL이 하려던 것: "지금 하락장이니까 조심해서 매수해야지."
  • 현재 설계가 하는 것: "m60(1시간봉)이 역배열이고 m15(15분봉) 변동성이 크네? XGBoost가 이걸 보고 매수 신호 확률을 낮게 뱉어야지."

즉, 복잡한 RL 에이전트를 만드는 대신, AI가 판단하기 좋은 '좋은 재료(피처)'를 직접 넣어주는 방식이 훨씬 빠르고 정확합니다.

3. 실전에서 RL이 위험한 진짜 이유: "Overfitting"

강화학습은 시뮬레이션 환경(Gym)에 **과적합(Overfitting)**되기 너무 쉽습니다.

  • 과거 데이터에서 우연히 발견된 '특이한 패턴'에 RL이 꽂히면, 실전에서 말도 안 되는 비중으로 풀매수를 갈기다가 계좌가 녹아버릴 수 있습니다.
  • 반면 XGBoost 기반의 지도 학습은 확률($0.0 \sim 1.0$)로 결과가 나오기 때문에, 우리가 직접 "확률 0.7 이상일 때만 10% 비중으로 진입" 같은 안전장치(Rule-base)를 걸기가 매우 쉽습니다.

💡 오늘의 결론

"분석(AI)과 매매(Rule)를 분리하세요."

  • AI (XGBoost): "지금 차트 모양을 보니 10분 뒤에 오를 확률이 65%야." (이것만 잘해도 성공입니다.)
  • 시스템 (코드): "오, 65%? 그럼 내 원칙대로 자산의 5%만 살게. 대신 -1% 되면 무조건 손절할 거야."

지금 가고 계신 멀티 타임프레임 + XGBoost 조합은 데이터의 선후 관계를 명확히 학습할 수 있는 아주 탄탄한 구조입니다.

 

 

1. XGBoost (지도 학습): "데이터에 기반한 확률 보고서"

현재 설계하신 방식은 수많은 과거 데이터(m01~m60)를 학습하여, 특정 패턴이 나타났을 때의 결과값을 확률로 계산합니다.

  • 출력값: "지금 이 차트 패턴에서 10분 뒤 가격이 오를 확률은 **68%**입니다."
  • 작동 원리: AI는 오로지 **'예측의 정확도'**에만 집중합니다. "매수를 해야 한다/말아야 한다"라는 결정은 내리지 않습니다.
  • 장점: 인간(개발자)이 그 확률을 보고 "60% 이상일 때만 매수해" 혹은 "장 초반에는 70% 이상일 때만 진입해" 같은 전략적 통제를 직접 할 수 있습니다.

2. 강화학습 (RL): "경험에 기반한 행동 결정"

이전 설계는 AI를 **'전장에 직접 뛰어든 용병'**으로 만드는 과정이었습니다.

  • 출력값: "지금 풀매수 하세요!" 또는 "지금은 관망하세요."
  • 작동 원리: AI는 예측이 틀려도 '돈만 벌면 장땡'이라는 식으로 학습합니다. 때로는 왜 그런 행동을 했는지 논리적으로 설명하기 어려운 '블랙박스' 현상이 발생합니다.
  • 단점: AI가 예상치 못한 시장 상황에서 "일단 사고 보자"는 식의 폭주를 할 때 제어하기가 매우 까다롭습니다.

3. 왜 지금 방식이 더 강력한가?

멀티 타임프레임(m01, m05, ..., m60) 데이터를 XGBoost에 넣는다는 것은, AI에게 **"지금 단기적으로는 하락 중이지만, 1시간 단위의 큰 흐름은 상승세다"**라는 맥락을 확률 계산에 포함하라고 지시하는 것과 같습니다.

이렇게 계산된 **'상승 확률'**은 매우 훌륭한 재료가 됩니다. 여기에 개발자님이 직접 다음과 같은 **'필터(Rule-base)'**를 더하면 실전에서 훨씬 안정적인 수익을 낼 수 있습니다.

  • 필터 1: XGBoost 상승 확률이 70% 이상인가?
  • 필터 2: 현재 거래량이 평균보다 높은가?
  • 필터 3: 목표 수익 대비 예상 손실액(손익비)이 적절한가?

요약하자면

지금의 설계는 **"AI는 정확한 확률만 계산해라, 돈을 거는 결정은 내가 만든 안전한 규칙(Rule)이 하겠다"**는 구조입니다. 이는 전 세계 수많은 퀀트 헤지펀드들이 사용하는 가장 표준적이고 검증된 방식이기도 합니다.