차트 정책을 처음부터 REINFORCE로 학습하면 무작위 매매의 분산이 커서 학습이 흔들릴 수 있다. 이 소스는 사람이 적은 정책 문서에서 규칙 교사를 만들고, KL 모방 학습으로 워밍업한 뒤 수익 보상으로 전환한다.

차트 REINFORCE: 규칙 교사와 KL로 정책망 준비하기 핵심 도식
그림. 규칙 교사로 초기 정책을 안정화한 뒤 에피소드 수익 보상으로 정책을 개선한다.

상태와 행동

상태는 최근 1·3·5·10봉 로그수익, 이동평균 거리, PB, MFI10, 보유 여부와 진입 후 수익률 등 10개 기본 특징에 극단 구간 라벨 7개를 더한 17차원이다. 행동은 매도·매수·유지 세 가지다.

teacher KL 워밍업

교사는 차트 규칙으로 세 행동의 logit을 만든다. 학생 정책의 분포가 교사 분포와 가까워지도록 KL divergence를 최소화한다. 교사 행동으로 가상 포트폴리오를 진행시키므로 보유 상태까지 일관되게 바뀐다.

REINFORCE 전환

워밍업 뒤에는 학생이 `Categorical` 분포에서 행동을 뽑는다. 에피소드가 끝나면 누적 수익률과 매도 결과를 보상으로 계산하고, 선택한 행동의 log probability에 return을 곱해 정책을 업데이트한다. teacher KL 항을 작은 계수로 유지하면 정책이 초기에 급격히 붕괴하는 것을 막을 수 있다.

차트 특징 → MLP logits → 행동 샘플 → 가상 체결
     ↑                    ↓
규칙 teacher KL      에피소드 수익 보상

평가 원칙

학습에 사용한 같은 기간의 수익만 보면 과적합을 놓친다. 시간 순서를 지킨 train/validation/test 분리, 수수료와 슬리피지, 최대 낙폭, 거래 횟수, 무행동 기준선을 함께 비교해야 한다.

관련 소스

  • `lib/rl_chart_trainer.py`: 상태, 교사 사전학습, REINFORCE
  • `lib/rl_policy_teacher.py`: 규칙 logit과 KL
  • `config/llm_rl_train.py`: 학습 설정