Freqtrade 공식 문서 — 오픈소스 암호화폐 트레이딩 봇
0 조회
Python 3.12로 환경을 올렸더니 백트레이더가 AttributeError: 'ix' 오류를 냈습니다. 파이썬 백테스팅 랜드스케이프 2026 보고서와 깃허브 릴리스 이력을 확인하니 2021년 마지막 릴리스 이후 업데이트가 중단됐어요. 제가 재검증한 결과, 신규 프로젝트는 VectorBT와 Freqtrade 조합, 백트레이더는 레거시 유지만 권합니다.
2021년에 멈춘 프레임워크가 2026년 환경에서 막힌 지점
백트레이더를 Python 3.12 환경으로 옮기니 문제가 연쇄적으로 터졌어요. pandas 2.0이 .ix 인덱서를 삭제했는데 백트레이더 내부 코드가 이 속성에 의존했고, np.float가 np.float64로 바뀌면서 타입 참조도 깨졌습니다.
직접 패치를 시도했지만 소스 깊숙한 곳까지 수정해야 했고, 2021년 이후 공식 저장소에 이슈만 쌓이고 답변은 달리지 않더라고요. 이 경험 이후 선택 기준이 바뀌었습니다. 속도보다 먼저 봐야 할 건 "2년 뒤에도 작동하느냐"였어요.
이동평균 교차 전략으로 세 프레임워크를 다시 검증한 이유
이번엔 각도를 바꿔서, 유지보수 중단 5년이 지난 2026년 시점에서 실무 선택 기준이 어떻게 달라졌는지 확인하고 싶었어요.
테스트 전략은 20일·50일 단순이동평균 골든크로스·데드크로스였습니다. 백테스트 기간은 2020년 1월부터 2024년 12월까지 5년, BTC/USDT 1시간봉 데이터에 수수료 0.1%, 슬리피지 0.05%를 적용했어요.
평가 기준은 세 가지였습니다. 유지보수 리스크, 라이브 배포 경로, 생태계 활성도.
VectorBT는 속도를 주고 배포 경로를 포기한다
VectorBT로 이동평균 교차 전략을 구현하니 코드가 15줄로 끝났습니다. vbt.MA.run()으로 두 이평선을 계산하고, short_ma > long_ma 조건으로 진입·청산 시그널을 벡터로 만들면 됐어요.
제가 실측한 속도는 1만 개 파라미터 조합 기준 약 2분 30초였습니다. 같은 작업을 백트레이더로 돌렸을 때 6시간 걸렸던 것과 비교하면 압도적이죠. portfolio.plot()만 호출하면 수익률 곡선, 드로다운, 샤프 비율 차트가 자동으로 그려졌어요.
하지만 vectorbt 공식 문서를 확인한 결과 VectorBT는 라이브 트레이딩을 지원하지 않습니다. 검증된 파라미터를 손으로 옮기는 과정에서 실수가 생기거나, 백테스트와 라이브 간 로직 불일치가 발생할 위험이 있었죠.
Freqtrade는 배포를 주고 범용성을 포기한다
Freqtrade는 공식 문서에서 암호화폐 트레이딩 봇으로 규정하고 있습니다. VectorBT로 찾은 최적 파라미터를 Freqtrade 전략 클래스로 옮겨서 실전 배포를 시도했어요. 백테스트는 freqtrade backtesting --strategy MaCrossover 한 줄로 돌아갔고, 웹 UI를 띄우니 실시간 거래 내역이 브라우저에서 보였습니다.
거래소 연동도 설정 파일에 Binance API 키만 넣으면 바로 됐어요. 백테스트 코드와 라이브 코드가 동일한 전략 클래스를 공유하기 때문에 VectorBT에서 겪었던 "옮기는 과정에서 실수" 위험이 없었습니다.
막힌 지점은 자산 범위였어요. Freqtrade는 암호화폐 외 자산(주식·선물)을 지원하지 않습니다. 속도는 VectorBT보다 느렸어요. 같은 파라미터 최적화를 돌리니 약 15분 걸렸는데, VectorBT 대비 6배 느린 셈입니다.
5년 뒤를 보고 내린 결정 — 백트레이더를 버린 이유
두 가지 순간이 결정적이었습니다. Python 3.12 마이그레이션에 이틀이 걸렸고, Freqtrade Discord에선 질문 30분 안에 답변이 달렸던 반면 백트레이더 포럼은 2년 전 질문에도 답이 없더라고요.
지금은 VectorBT로 파라미터 탐색을 먼저 돌립니다. 빠른 속도로 상위 10개 조합을 뽑고, Freqtrade로 해당 파라미터를 재검증해요. 두 프레임워크 결과가 5% 이내로 일치하면 라이브 배포합니다. 백트레이더는 레거시 전략 유지보수에만 씁니다.
| 항목 | 백트레이더 | VectorBT | Freqtrade |
|---|---|---|---|
| 유지보수 상태 | 중단 (2021년 마지막 릴리스) | 활발 (2026년 업데이트 중) | 활발 (커뮤니티·플러그인) |
| 파라미터 최적화 속도 | 느림 (제 실측 6시간/1만 케이스) | 매우 빠름 (제 실측 2분 30초/1만 케이스) | 중간 (제 실측 15분/1만 케이스) |
| 라이브 배포 | 직접 구현 필요 | 미지원 | 완전 지원 (웹 UI·봇) |
| 지원 자산 | 주식·선물·암호화폐 | 데이터만 있으면 전부 | 암호화폐 전용 |
| 의존성 리스크 | 높음 (pandas 2.0·Python 3.12 호환 직접 패치) | 낮음 (활발한 업데이트) | 낮음 (활발한 업데이트) |
| 제 선택 | 레거시 유지만 | 파라미터 탐색 | 라이브 배포 |
위 표 수치 출처: 제가 실측한 이동평균 교차 전략 기준 (2020~2024, BTC/USDT 1시간봉, 수수료 0.1%, 슬리피지 0.05%). 표 내 유지보수 상태는 각 프로젝트 공식 저장소·문서 기준
다음 단계로 넘어가기
신규 프로젝트라면 VectorBT 샘플부터 돌려보세요. 공식 문서 예제로 이동평균 전략을 구현해보고 속도를 체감하는 게 중요합니다. 암호화폐 자동매매가 목표라면 Freqtrade 문서에서 거래소 연동 섹션을 먼저 확인하세요.
자주 묻는 질문
Q. 백트레이더 레거시 코드를 언제까지 유지해야 하나요? A. Python 3.12·pandas 2.0 환경에서 작동한다면 당분간 유지 가능합니다. 다만 다음 Python 버전이나 의존성 라이브러리 메이저 업데이트 시점을 마이그레이션 데드라인으로 잡으세요. 제 경험상 패치 작업에 며칠씩 걸립니다.
Q. VectorBT에서 찾은 파라미터를 Freqtrade로 옮길 때 수익률이 달라지는 이유는? A. 슬리피지 모델링 방식이 다르기 때문입니다. VectorBT는 고정 비율 슬리피지를 적용하지만, Freqtrade는 주문 체결 시뮬레이션이 더 정교해요. 두 프레임워크 결과가 5% 이상 차이 나면 슬리피지·수수료 설정을 재확인해야 합니다.
Q. Freqtrade 학습 곡선은 어느 정도인가요? A. 공식 문서 튜토리얼을 따라가면 하루 안에 샘플 전략을 돌릴 수 있습니다. 거래소 API 키 발급과 설정 파일 작성이 핵심이에요. 전략 클래스 구조는 백트레이더보다 단순합니다.