합성데이터 Offline RL — IQL 신뢰도 가중과 Regime Specialist 설계
합성데이터의 현실성을 확신할 수 없는 환경에서 IQL, gamma 0.98, synthetic confidence, 외부 regime specialist 앙상블을 선택한 이유와 검증 계획을 정리합니다.
> 연구 상태: 설계 및 구현 검증 중. 이 글에는 paired > baseline-vs-candidate 성과 artifact가 없으므로 수익률 개선을 주장하지 않는다.
질문
합성데이터를 사실상 계속 생성할 수 있지만 실제 시장과의 차이를 완전히 알 수 없는 상황에서, 어떤 offline RL 계약을 기준으로 삼고 데이터 품질과 시장 국면 변화를 어떻게 보수적으로 다룰 것인가?
이번 설계는 다음 질문에서 출발했다.
- 같은 모델이면 언제나 같은 action이 나오는가?
- Synthetic dataset 밖 action을 막는 CQL이 더 안전하지 않은가?
- 매 bar마다 다음 position을 정하는데 왜
gamma가 0보다 커야 하는가? - 이미 여러 trading model을 앙상블하는데 모델 내부 mixture-of-critics도 필요한가?
설정과 경계
| 항목 | 설계 계약 | 현재 증거 수준 |
|---|---|---|
| 정책 optimizer 데이터 | synthetic/world-model transition만 사용 | 기존 코드·운영 계약으로 검증 |
| 실제 시장 데이터 | world-model 보정, 분포 기준선, walk-forward gate | 기존 코드·운영 계약으로 검증 |
| canonical 알고리즘 | IQL | 설계 결정, 성과 우월성은 미검증 |
| discount | gamma=0.98 | reward timing에 맞춘 설계 결정 |
| action cadence | 매 bar마다 새 target position 결정 | 기존 코드로 검증 |
| cooldown | 신규 학습 기본 0, 로직은 비상 옵션으로 유지 | 구현·회귀 테스트 통과 |
| ensemble 평가 | target position을 먼저 결합하고 비용은 netting 뒤 한 번 적용 | 기존 평가 계약으로 검증 |
| regime specialist | general/trend/range/panic 외부 IQL 모델 | 연구 가설, 구현·성과 미검증 |
같은 모델이면 action은 같은가
같은 체크포인트가 완전히 같은 observation을 deterministic actor에 넣으면 같은 raw_action이 나온다. IQL의 AWR은 추론 시 action을 무작위로 뽑는 방법이 아니다. 학습할 때 dataset의 어떤 action을 더 강하게 모방할지 정하는 방법이다.
실제 target position은 observation과 실행 상태에 따라 달라질 수 있다.
- Market window가 달라지면 observation이 다르다.
- 현재 target exposure가 다르면 같은 시장에서도 적절한 다음 target이 달라진다.
- Deadband와
max_delta_exposure는 raw target을 실행 가능한 target으로 바꾼다. - Fee와 slippage는 action 변경의 즉시 비용을 만든다.
신규 계약은 현재 target exposure를 observation에 포함한다. 모델이 보지 못하는 cooldown 상태로 action을 막는 대신, 신규 학습의 cooldown 기본값은 0으로 두고 deadband·최대 변화량·거래비용은 명시적인 실행 계약으로 유지한다. 기존 체크포인트 호환을 위해 cooldown 코드 자체는 제거하지 않는다.

Figure 1. 기존 environment timing과 IQL TD target을 바탕으로 그린 개념도다. 매 bar action과 multi-step credit assignment가 동시에 가능한 이유를 보여준다.
gamma=0.98은 50일 포지션 고정이 아니다
현재 환경은 bar t에서 새 target을 결정하지만, 해당 bar 수익에는 이전 target이 realized position으로 사용된다. 새 action의 거래비용은 즉시 발생하고 새 target은 다음 bar부터 수익에 영향을 준다.
target[t] = reward[t] + gamma * V(state[t+1])이 계약에서 gamma=0이면 새 action이 만든 즉시 거래비용은 보지만, 그 action이 다음 bar position 수익에 미치는 가치는 전달받지 못한다. gamma=0.98은 다음 상태의 가치를 현재 action으로 되돌려 주기 위한 discount다. 매일 새 action을 결정한다는 운용 주기는 그대로다.
1 / (1 - gamma)를 적용한 약 50 bars는 할인 가중치의 대략적인 scale일 뿐, position을 50 bars 고정하거나 1/5/20-bar 수익을 별도 예측한다는 뜻이 아니다. 이번 범위에는 multi-horizon critic을 추가하지 않는다. 0.98의 우월성은 동일 데이터·seed·학습 budget에서 0.95/0.98/0.995를 비교해야 한다.
왜 CQL이 아니라 IQL인가
CQL은 정책 분포의 Q가 실제 가치의 보수적인 하한이 되도록 Q regularizer를 추가한다. 핵심 위험은 dataset 밖 action의 value overestimation이다.
IQL은 policy improvement 중 dataset에 없는 action의 Q를 직접 질의하지 않는다. Dataset action의 Q와 expectile value에서 advantage를 만들고, advantage-weighted behavioral cloning으로 actor를 추출한다.
JeTech에서 IQL을 기준으로 선택한 이유는 합성데이터의 특수성 때문이다.
CQL이 직접 다루는 위험
= synthetic dataset support 밖 action
JeTech의 더 큰 위험
= synthetic dataset 자체와 실제 시장 사이의 state/dynamics gap합성 trajectory를 많이 만들면 synthetic support는 넓어질 수 있다. 그러나 넓은 synthetic support가 실제 시장을 정확하게 덮는다는 보장은 없다. CQL의 보수성만으로 이 차이를 증명할 수 없다. IQL은 dataset action 안에서 정책을 추출하므로 actor가 learned Q의 허점을 향해 unseen action을 직접 최적화하는 경로를 줄이는 기준선으로 선택했다.
이는 IQL의 우월성이 검증됐다는 뜻이 아니다. Synthetic trajectory 안에 비현실적이지만 높은 reward를 얻는 action이 기록돼 있으면 IQL도 이를 강하게 모방할 수 있다. 따라서 canonical 선택은 다음 묶음으로만 의미가 있다.
IQL
+ independent synthetic confidence
+ real-market walk-forward gate
+ position-level ensemble evaluationCQL은 제거하지 않는다. IQL 후보가 과도하게 공격적인지를 확인하는 보수적 대조군으로 유지한다.
합성데이터 품질을 모를 때의 원칙
모든 합성데이터를 무조건 나쁘다고 간주하면 무한 생성의 장점을 버리게 된다. 반대로 world-model reward가 좋다는 이유로 신뢰하면 모델이 만든 시험으로 모델을 평가하는 순환 논리가 된다.
이번 설계는 합성데이터를 처음부터 unverified로 취급하고 독립적인 증거만큼 학습 압력을 허용한다.
- Hard reject: 잘못된 OHLC 관계, 비양수 가격, 비유한 값 등 구조 위반.
- Unverified: 아직 분포 report가 없는 신규 합성데이터. 제거하지 않고 유효
confidence 0.25로 AWR 및 행동 regularization 압력을 낮춘다.
- Rejected: 실제-real bootstrap 기준을 넘거나 hard constraint를 위반한 데이터.
report 모드에서는 진단 artifact를 남길 수 있지만 IQL optimizer 진입은 기본 차단한다. 명시적 diagnostic override를 켠 경우에만 AWR 우위 가중을 끄고 behavior cloning 쪽으로 수렴시킨다. fail 모드에서는 저장도 막는다.
- Verified candidate: 구조 검사와 분포 기준을 통과한 구간. 정상 학습 압력을
허용하지만 실제 시장과 동일하다고 부르지는 않는다.
분포 기준은 합성 수익률 자체가 아니다. 실제 수익률의 연속 block bootstrap으로 real-real 변동 폭을 먼저 구한 뒤 synthetic-real 차이를 정규화한다. 비교 항목에는 변동성, 꼬리수익률, 절대·제곱수익률 자기상관과 OHLC constraint가 포함된다.
Confidence는 정답 label이 아니다. 현재 구현에서는 다음 학습 압력만 조절한다.
1. IQL AWR temperature와 advantage weight 상한 2. 합성 action floor, balance, turnover floor/ceiling regularization
낮은 confidence trajectory가 높은 advantage를 우연히 얻어도 actor가 이를 과하게 모방하지 못하게 하는 것이 목적이다. 현재 confidence는 dataset 단위이므로 같은 dataset 안의 transition sampling 비율은 바꾸지 않는다. 여러 source를 합칠 때의 transition별 confidence 보존은 후속 과제다.

Figure 2. Real OHLC는 world-model supervised training/calibration, 분포 기준선, 최종 gate에 쓰이지만 policy optimizer gradient에는 쓰이지 않는다. Confidence weighting이 synthetic-to-real exploitation을 줄인다는 문장은 아직 검증해야 할 가설이다.
내부 mixture-of-critics보다 외부 specialist가 먼저다
Mixture-of-critics는 한 모델 안에 여러 Q head를 두고 regime gate가 이를 섞는 구조다. 하지만 JeTech에는 이미 여러 독립 trading model의 target position을 결합하는 외부 앙상블이 있다.
따라서 첫 실험은 한 모델을 더 복잡하게 만드는 대신 다음 독립 checkpoint를 구성한다.
- General IQL
- Trend specialist IQL
- Range specialist IQL
- Panic/high-volatility specialist IQL
각 specialist는 미래정보가 없는 현재 시점의 trend, volatility, drawdown, correlation/liquidity stress로 계산한 soft regime weight를 받는다. 한 시점을 하나의 regime으로 강제 분류하지 않는다.
ensemble_target[t]
= sum(regime_weight[k, t] * specialist_target[k, t])
realized_position[t]
= ensemble_target[t-1]Turnover와 fee/slippage는 개별 모델 수익률에 먼저 적용하지 않는다. 합산된 target position의 변화량에 한 번 적용한다. 이 방식이어야 서로 반대 방향인 specialist의 실제 netting 효과를 측정할 수 있다.
현재 구현 범위는 caller가 제공한 soft weight와 specialist position을 같은 date에서 평가하는 backtest API까지다. Live inference의 동적 regime gate 연결은 동일가중 대비 paired OOS 개선과 registry 역할 계약을 확인한 뒤 진행한다.

Figure 3. 내부 mixture-of-critics 전에 기존 model registry와 position-level 평가를 활용하는 외부 specialist 구조다. 가중치와 성과 수치는 아직 산출하지 않았다.
ICQL은 무엇이며 왜 보류하는가
ICQL은 Improved CQL이 아니다. 정식 명칭은 In-Context Compositional Q-Learning이다. 현재 context와 관련된 transition을 검색하고, linear Transformer가 명시적인 subtask label 없이 local Q-function을 추론한다.
고정된 trend/range/panic 전문가보다 세밀한 local Q를 만들 가능성은 있다. 그러나 JeTech에 바로 적용하면 다음 질문이 먼저 해결돼야 한다.
- 유사 시장을 정의하는 embedding이 실제 시장에서도 안정적인가.
- Synthetic transition끼리만 가까운 잘못된 이웃을 검색하지 않는가.
- Retrieval 결과가 바뀌어도 추론을 재현할 수 있는가.
- 외부 specialist보다 position-level marginal value가 실제로 큰가.
따라서 ICQL과 내부 mixture-of-critics는 외부 specialist의 효용을 먼저 증명한 뒤의 deferred research로 남긴다.
현재 결과
검증된 코드 계약
- 현재 environment는 이전 target exposure로 bar 수익을 계산하고 새 action의
turnover cost를 즉시 반영한 뒤 target을 갱신한다.
- 현재 IQL critic target은
reward + gamma * V(next_observation)이고 actor는
advantage-weighted behavior cloning으로 학습된다.
- Canonical evaluation은
realized_position[t] = target_position[t-1]을 사용한다. - 합성데이터 분포 report와 position/delta-position correlation 및 candidate marginal
평가 코드 경로가 추가돼 있다.
아직 증명되지 않은 결과
- IQL이 CQL보다 실제 OOS 성과가 높다는 주장
gamma=0.98이 다른 discount보다 우월하다는 주장- Confidence weighting이 real 5Y gate 통과율을 높인다는 주장
- Regime specialist가 동일가중 ensemble보다 Sharpe·MDD를 개선한다는 주장
- Cooldown 제거가 수익률을 높인다는 주장
구현 완료와 unit test만으로 이 항목을 증명할 수 없다. 동일한 데이터와 평가 계약의 paired experiment가 필요하다.
검증 계획과 수용 기준
1. 계약 회귀 테스트
- 같은 checkpoint와 observation에서 같은 raw action이 나오는지 확인한다.
- 현재 exposure가 observation tensor·checkpoint metadata·추론 경로에서 동일하게
유지되는지 확인한다.
gamma=0에서 즉시 비용만 남는 timing fixture와gamma>0에서 next-state value가
전달되는 fixture를 고정한다. 2. Confidence calibration
- BTC/SPY/XAU/CL, 최소 3개 seed에서 distribution report를 만든다.
- Hard constraint 위반은 항상 reject한다.
- Threshold 확정 전에는 운영 gate를 fail 모드로 전환하지 않는다.
3. 알고리즘 paired comparison
- 동일 dataset·seed·encoder·train step에서 IQL과 CQL을 비교한다.
- Synthetic 점수와 real walk-forward 결과를 분리해 보고한다.
4. Gamma ablation
0.95/0.98/0.995를 동일 조건으로 비교한다.- 단독 Sharpe 외에 turnover, exposure collapse, MDD, weak-window 결과를 본다.
5. External specialist ablation
- 동일가중 baseline과 soft regime weight candidate를 같은 symbol/date에서 비교한다.
- Position correlation, delta-position correlation, marginal Sharpe, MDD, turnover
netting을 함께 기록한다. 6. Promotion gate
- Full real 5Y gate와 paired weak-window repair를 모두 통과한 경우에만 개선으로
표현한다.
한계
- Distribution similarity는 실제 dynamics의 동일성을 보장하지 않는다.
- Confidence 함수가 잘못 보정되면 중요한 rare regime을 약하게 학습할 수 있다.
- IQL도 dataset 안의 비현실적인 고보상 action을 모방할 수 있다.
- Regime feature와 soft gate가 과거 데이터에 과적합될 수 있다.
- Specialist 수가 늘면 correlation이 낮아 보여도 독립적인 alpha가 아닐 수 있다.
- 현재 문서에는 paired 성과 artifact가 없어 개선 효과를 수치로 말할 수 없다.
다음 연구
1. Confidence 없이 학습한 IQL과 confidence-weighted IQL의 paired comparison 2. IQL과 CQL의 동일 조건 synthetic-to-real gap 비교 3. gamma=0.95/0.98/0.995 ablation 4. General-only, equal-weight specialists, soft-weight specialists의 position-level 비교 5. 외부 specialist가 검증된 뒤 내부 mixture-of-critics와 ICQL feasibility 검토 6. 잘못된 Q가 합성데이터 생성을 강화하는 자기확신 loop를 막을 수 있을 때만 value-guided trajectory generation 검토
결론
- 검증됨: 같은 deterministic actor는 같은 observation에서 같은 raw action을 낸다.
- 검증됨: 현재 reward timing에서는 action 비용이 즉시 발생하고 새 position의
수익은 다음 bar부터 연결된다.
- 설계 결정: Canonical 알고리즘은 IQL, discount는
0.98, 신규 학습의 cooldown은
0으로 둔다.
- 설계 결정: 합성 confidence는 진실 판정이 아니라 AWR 및 합성 action/turnover
regularization 압력을 조절하는 값으로 사용한다.
- 연구 가설: 외부 regime specialist 앙상블이 단일 모델 내부 mixture-of-critics보다
먼저 검증할 가치가 있다.
- 미검증: 위 결정들이 real OOS 성과를 개선한다는 주장.
- 보류: ICQL은 CQL의 개선판이 아니며 retrieval 기반 local Q 연구로 별도 검토한다.
본 자료는 연구 기록이며 투자 권유가 아니다.