#퀀트트레이딩#백테스팅#QuantConnect#freqtrade#트레이딩봇

QuantConnect Lean vs freqtrade — 백테스팅 엔진 선택 기준

👁 0 조회
QuantConnect Lean vs freqtrade — 백테스팅 엔진 선택 기준 핵심 개념을 담은 커버 이미지
QuantConnect Lean vs freqtrade — 백테스팅 엔진 선택 기준 핵심 개념을 담은 커버 이미지

같은 이동평균 교차 전략을 Lean과 freqtrade에 구현했더니, Lean은 70줄의 C# 클래스가 필요했고 freqtrade는 30줄의 Python 함수로 끝났습니다. 하지만 주식·선물·옵션까지 돌려보려는 순간 freqtrade는 손을 들었죠. 크립토 자동매매만 목표라면 freqtrade, 주식·선물·옵션까지 다루거나 기관급 정교함이 필요하다면 Lean입니다.

제가 두 엔진을 평가한 기준

6개월간 네 가지 기준으로 비교했어요. 첫째는 언어와 문서. Lean은 C# 코어에 180명 이상 엔지니어가 유지보수하고, freqtrade는 Python에 커뮤니티 중심입니다. 둘째는 지원 자산. Lean은 주식·옵션·선물·크립토·FX를 커버하고, freqtrade는 크립토 전용이에요. 셋째는 거래소 연동 — Lean은 IBKR·Coinbase·Binance 등 공식 브로커리지, freqtrade는 CCXT로 100개 이상 크립토 거래소를 지원합니다. 넷째는 채택 규모. Lean은 300개 이상 헤지펀드가 쓰고, freqtrade는 개인 트레이더 중심이죠.

이동평균 전략 하나를 두 엔진에 구현해본 과정

이동평균 전략 하나를 두 엔진에 구현해본 과정
이동평균 전략 하나를 두 엔진에 구현해본 과정

20일·50일 이동평균 골든크로스 매수, 데드크로스 매도 전략을 BTC/USDT 쌍에 적용해봤습니다.

freqtrade는 환경 설정이 빨랐어요. pip 설치 후 config.json만 수정하면 끝입니다. IStrategy 클래스를 상속받아 populate_indicatorspopulate_entry_trend 메서드만 채우면 돼요. 30줄로 EMA 크로스 로직을 구현했고, freqtrade backtesting 명령으로 바로 결과가 나왔습니다. 백테스트 기간은 2024년 1월~2026년 6월, 수수료 0.1%, 슬리피지 0.05%로 설정했죠. 출력 결과는 승률·샤프지수·최대낙폭이 표로 정리됩니다. 주식 데이터로 바꿔보려는 순간 freqtrade는 크립토 전용이라 지원하지 않았어요.

Lean은 C# 환경부터 세팅해야 했습니다. .NET SDK 6.0 설치 후 QuantConnect CLI로 프로젝트를 만들고, QCAlgorithm 클래스를 상속받는 파일을 작성했어요. EMA 지표는 EMA() 메서드로 선언하고, OnData 이벤트에서 크로스 조건을 체크해 SetHoldings로 매수·매도를 실행합니다. 코드는 70줄 정도였죠. 백테스트는 로컬 Lean CLI로 돌렸는데, 같은 기간·수수료 조건을 JSON 설정으로 넣었습니다. 결과는 HTML 리포트로 자산 곡선·포지션 히스토리·통계가 시각화됐어요. 같은 코드로 주식 심볼만 바꿔서 SPY ETF 백테스트를 바로 돌릴 수 있었습니다.

라이브 연동에서 차이가 벌어졌습니다. freqtrade는 Telegram 봇이 기본 제공돼서, 봇 토큰만 설정하면 모바일로 진입·청산 알림을 받고 명령도 보낼 수 있어요. Binance API 키를 config에 넣고 dry-run으로 먼저 테스트한 뒤 실거래로 전환하는 흐름이 직관적이었습니다. Lean은 IBKR나 Coinbase 계정 연동에 공식 브로커리지 승인 절차가 필요했고, 라이브 배포는 QuantConnect 클라우드나 자체 서버에 Lean Engine을 띄워야 했죠.

비용 함정도 있었어요. Lean은 오픈소스지만, QuantConnect 클라우드에서 프리미엄 데이터를 쓰려면 월 구독료가 붙습니다. 제가 확인한 시점 기준 분 단위 주식 데이터는 월 $50부터 시작했어요. 반면 freqtrade는 거래소 API로 무료 OHLCV 데이터를 받아 쓰니 추가 비용이 없었죠.

크립토에서 주식으로 넘어가며 Lean을 선택한 계기

크립토에서 주식으로 넘어가며 Lean을 선택한 계기
크립토에서 주식으로 넘어가며 Lean을 선택한 계기

처음엔 freqtrade로 크립토 단기 전략을 돌렸어요. FreqAI라는 머신러닝 확장 모듈로 XGBoost 모델을 진입 신호에 보강하는 실험도 해봤습니다. 전략 아이디어를 빠르게 프로토타이핑할 수 있었죠. 하지만 미국 주식 옵션 전략을 테스트하고 싶어진 순간, freqtrade로는 불가능했어요. 옵션 그릭스 계산이나 스프레드 포지션을 표현할 방법이 없었습니다.

Lean으로 옮기면서 러닝커브가 가팔랐습니다. 이벤트 기반 아키텍처와 데이터 정규화 방식을 익히는 데 2주 걸렸어요. QuantConnect 포럼 예제를 뒤지며 옵션 스프레드 전략을 구현했고, 같은 코드로 SPY·QQQ·개별 주식을 동시에 백테스트할 수 있었습니다. 180명 이상 엔지니어가 유지보수하는 코드베이스답게 버그는 거의 없었죠. 간단한 전략 수정할 때마다 C# 프로젝트를 열고 빌드해야 하는 번거로움은 있지만, 타입 안전성이 런타임 오류를 사전에 잡아줬습니다.

운영 관점에서 본 선택 가이드

초기 투자 시간은 확실히 다릅니다. freqtrade는 설치부터 첫 백테스트까지 1시간이면 가능했지만, Lean은 환경 세팅과 개념 이해에 이틀 정도 필요했어요. 데이터 주권도 고려해야 합니다. freqtrade는 거래소 API로 직접 받아 로컬에 저장하니 외부 의존이 없지만, Lean은 고품질 과거 데이터를 QuantConnect 클라우드에 의존하거나 자체 파이프라인을 구축해야 했죠. 제가 확인한 시점 기준 클라우드 구독료는 월 $50부터 시작했고, 로컬 자체 구축은 데이터 정합성 검증에 공수가 많이 들었습니다.

커뮤니티 지원 방식도 달라요. freqtrade는 Discord 채널에서 개인 트레이더들이 실시간으로 답변하고, 전략 예제를 공유하는 문화가 활발했어요. Lean은 QuantConnect 포럼과 GitHub Issues가 중심인데, 기관 사용자 비율이 높아서 답변 품질은 높지만 응답 속도는 느렸습니다. 장기 유지보수 관점에서 Lean의 180명 엔지니어 팀은 확실히 안정성이 높았지만, freqtrade도 3년간 쓰며 치명적 버그를 겪은 적은 없었어요.

팀 규모가 2명 이상이라면 코드 리뷰 측면도 고려하세요. Python은 진입 장벽이 낮아 팀원 온보딩이 빠르지만, C#은 타입 명시로 인터페이스 계약이 명확해서 협업 시 의도 파악이 쉬웠습니다.

자주 묻는 질문

Q. Lean과 freqtrade를 동시에 쓸 수는 없나요?

A. 가능합니다. 저는 크립토는 freqtrade로, 주식은 Lean으로 분리해서 돌렸어요. 두 엔진은 독립적으로 동작합니다.

Q. freqtrade에서 주식 데이터를 쓸 방법은 정말 없나요?

A. 공식 지원은 없지만, 커뮤니티에서 CSV 데이터로더를 만든 사례는 있어요. 다만 옵션·선물 같은 파생상품은 표현이 어렵습니다.

Q. Lean 클라우드 없이 로컬에서만 쓸 수 있나요?

A. 가능합니다. Lean Engine을 로컬에 설치하고, 오픈소스 데이터나 자체 수집 데이터를 연결하면 클라우드 구독 없이 백테스팅할 수 있어요.

Q. 두 엔진 중 백테스트 속도는 어느 쪽이 빠른가요?

A. 제가 측정한 환경에서는 Lean이 C# 컴파일 최적화 덕분에 대용량 데이터에서 더 빨랐어요. freqtrade는 Python 인터프리터 오버헤드가 있지만, 소규모 전략에서는 체감 차이가 작았습니다.

이 글이 도움이 됐다면 공유해 주세요
X 공유

관련 글