전체 글
-
[트레이딩 봇 만들기] 10. Live vs Backtest SL — MARK vs LAST price자동 매매 2026. 5. 28. 19:51
10. Live vs Backtest SL — MARK vs LAST price시리즈 3: 운영 인프라 + 디버깅 (2/4)운영 시작 → 백테스트와 다른 결과운영 시작하고 일주일 정도 지났을 때 첫 의문이 생겼다."백테스트는 +6.45% 인데 라이브는 +4.2%. 어디서 차이?"시드가 작아서 절대 금액은 작지만, 백분율 차이 2%p 는 통계적 noise 라기엔 크다. 매일 받는 daily report 의 backtest line 과 actual line 이 살짝씩 벌어지는 게 눈에 띄었다.분석을 시작했다. trade count 는 거의 같았다. 진입 시점도 비슷했다. 차이는 어디서 났을까. 자세히 들여다보니 SL 발동 timing 의 차이 가 결정적이었다.SL 시스템 비교Backtest 의 SL# env..
-
[트레이딩 봇 만들기] 9. AWS Lightsail 으로 봇 deploy자동 매매 2026. 5. 28. 19:50
9. AWS Lightsail 으로 봇 deploy시리즈 3: 운영 인프라 + 디버깅 (1/4)운영 환경 요구사항봇이 실제로 돌아가려면 어떤 환경이 필요한지 정리해보자.✅ 24/7 가동 (cron 15분 정확)✅ 저렴 (월 ML training 은 노트북에서 다 끝내고 inference 만 서버에서 돌리니까 GPU 는 불필요. 모델 자체도 5MB 짜리 작은 크기라서 RAM 2GB 면 충분하다. 결국 핵심은 "24/7 안정 가동 + Asia 근접 + 저렴" 이 셋.선택 경로 — 3단계 migration처음부터 베스트 환경에 한 번에 자리잡지는 못했다.1차 (Oracle Cloud Free Tier): 무료, ARM64 + 1 OCPU + 1 GB RAM → 메모리 부족 (모델 load + Slack +..
-
[트레이딩 봇 만들기] 8. 8자산 확장 — LTC standalone +1.44 but portfolio +0.13 noise자동 매매 2026. 5. 28. 19:43
8. 8자산 확장 — LTC standalone +1.44 but portfolio +0.13 noise시리즈 2: 실패 회고 (5/5)가설: "더 많은 자산 = 더 분산된 alpha"운영은 BTC/ETH/DOGE 3자산만 굴린다. 자산을 더 늘리면:자산마다 다른 idiosyncratic alpha 가 합쳐진다correlation 분산으로 portfolio std 가 줄어든다결국 risk-adjusted return 이 올라간다자산 분산은 modern portfolio theory 의 기본이다. 무료 lunch 가 있다면 이쯤일 거라는 기대로 8개 자산을 추가로 학습시켰다.시도한 자산5년 이상 데이터가 있는 알트코인을 골랐다.BNB: Binance native, 5y dataLTC: LitecoinB..
-
[트레이딩 봇 만들기] 7. Daily candle 5번 시도 — 모두 majority baseline noise자동 매매 2026. 5. 28. 19:41
7. Daily candle 5번 시도 — 모두 majority baseline noise시리즈 2: 실패 회고 (4/5)가설: "Daily 봉이 macro context 제공"15m 모델은 48시간 (2일) 만 본다. 짧다. 시장은 그것보다 큰 cycle 도 분명히 있을 텐데, 그 macro 정보를 어떻게든 입력에 넣고 싶었다.Daily 봉으로 30일 history 를 추가하면:월간 cycle 패턴을 잡을 수 있다강세장 vs 약세장 regime 을 구분할 수 있다24h forward 예측의 보조 context 가 된다이 가설로 5가지 변형을 시도했다. 결과는 5/5 fail. 매번 같은 곳에서 막혔다.시도 1: BTC daily single가장 단순한 형태 — 30일 daily 봉만으로 다음 1일 방향..
-
[트레이딩 봇 만들기] 6. Multi-horizon / Multi-task — 17 결정 rule 모두 0% fire자동 매매 2026. 5. 28. 19:40
6. Multi-horizon / Multi-task — 17 결정 rule 모두 0% fire시리즈 2: 실패 회고 (3/5)가설: "여러 horizon ensemble 이 더 robust"운영 모델은 24h forward direction 만 본다. 그런데 시장은 다양한 timeframe 에서 움직인다. 단기 (4h), 중기 (8h, 12h), 장기 (24h) 신호를 같이 보면 더 정확한 판단이 가능하지 않을까?자연스러운 가설이었다. "단기 + 중기 + 장기 신호가 모두 일치할 때만 fire" 라는 ensemble rule 을 적용하면 신호 강도가 올라가고 false positive 가 줄 거라고 봤다.BTC multi-horizon ensemble모델 4개를 새로 학습시켰다.모델 4개 학습: h=..
-
[트레이딩 봇 만들기] 5. ExitModel 19+ 시도 — 결국 게이트가 다였다자동 매매 2026. 5. 28. 19:34
5. ExitModel 19+ 시도 — 결국 게이트가 다였다시리즈 2: 실패 회고 (2/5)가설: "진입 결정과 청산 결정은 다른 모델로"너무 자연스러운 가설이었다.진입은 ChartEncoder V1 이 한다. 24h forward direction 학습. 데이터 풍부.청산은 또 다른 모델이 한다. 현재 trade 의 PnL 추세, V1 신호 변화, peak/trough 패턴 — 이런 걸 봐서 "이제 나가야 할 때" 를 판단.진입과 청산은 본질적으로 다른 결정이니까, 다른 모델로 분리하는 게 합리적으로 보였다. 그리고 청산 timing 을 조금만 잘 맞춰도 winner 의 tail 을 더 살리고 loser 를 더 빨리 끊을 수 있을 거 같았다.이 가설로 19개 이상의 변형 을 만들었다. 결과는 깔끔하다 ..
-
[트레이딩 봇 만들기] 4. dir_acc 향상이 수익으로 안 이어진 결정적 실증자동 매매 2026. 5. 28. 19:31
4. dir_acc 향상이 수익으로 안 이어진 결정적 실증시리즈 2: 실패 회고 (1/5)"ML 모델 성능 ↑ = 수익 ↑" 라는 흔한 직관다른 도메인에서는 이 가정이 거의 작동한다.자연어: BLEU / ROUGE score 가 오르면 번역 품질이 오른다.비전: classification accuracy 가 오르면 응용 품질이 따라 온다.트레이딩에서도: dir_accuracy 가 오르면 portfolio Sharpe 도 오르지 않을까?말하자면 "어디로 갈지 더 잘 맞히면 돈도 더 많이 번다" 라는 직관이다. 너무 자연스러워서 의심하기도 어렵다. 그런데 이걸 7개 변형 + paired t-test 로 정직하게 시험해본 결과는 충격적이었다.실험 — Phase A1 returns normalization기존 ..
-
[트레이딩 봇 만들기] 3. Backtest infrastructure — 라이브 == 백테스트자동 매매 2026. 5. 28. 19:16
3. Backtest infrastructure — 라이브 == 백테스트시리즈 1: 프로젝트 시작 (3/3)가장 어려운 문제자동매매 봇 개발에서 가장 자주 듣는 비명은 이거다."백테스트는 좋은데 라이브는 다르다."이 한 문장에 모든 함정이 들어있다. 백테스트가 그럴듯하게 잘 나오면 deploy 충동이 생기는데, 라이브에서 결과가 다르면 그동안의 모든 비교/판단이 다 의심받기 시작한다. 사실 모델이 좋아진 건지 운이 좋았던 건지, 진입 룰이 효과적인 건지 단순히 백테스트가 헐거웠던 건지 — 아무것도 확신할 수 없게 된다.이걸 방지하려면 backtest 환경이 production 만큼이나 디테일을 정확히 모델링해야 한다. 우리 시스템에서는 5가지를 단단히 박아뒀다.1. Canonical OOS split (..