Freqtrade Basics의 내용을 바탕으로 제미나이에게 요약을 부탁한 것이다. 이제 뭔가 읽고 이해하고 글 쓰는 일이 시간/ 정성/ 재미/ 헤어(응?)도 없지만, 절약한 시간을 다른 곳에 사용할 수 있다는 긍정적인 면이 있다. Freqtrade 호스팅을 하고 싶어 제미나이의 조언대로 FastAPI를 다시 보기 시작했다. 프런트엔드는 리액트를 추천하지만, 스벨트를 공부하는 중이다. 이러다 보니 정작 Freqtrade 대신 잡기술에 집중하는 부작용이 생기는 중이다.
1. 봇의 실행 모드 (Modes)
봇은 크게 두 가지 모드로 작동하며, 이는 호스팅 서비스의 핵심 옵션이 됩니다.
- Live Mode (실전 매매): 실제 거래소 지갑과 연동하여 진짜 돈(Real Money)으로 거래합니다.
- Dry-run Mode (모의 투자): 라이브 모드와 똑같이 작동하지만, 실제 주문을 넣지 않고 가상의 돈으로 시뮬레이션만 합니다. (전략 검증용)
2. 봇의 작동 원리: 반복 루프 (The Bot Loop)
Freqtrade는 이벤트 방식(웹소켓 대기)이 아니라, 설정된 시간마다 깨어나서 작업을 수행하는 루프 방식으로 작동합니다.
- 기본적으로 몇 초(설정값 process_throttle_secs)마다 한 번씩 다음 과정을 반복합니다.
- 데이터 조회: 현재 열려있는 거래(Open Trades)를 DB에서 가져옵니다.
- 시장 데이터 다운: 거래소에서 최신 캔들(OHLCV) 데이터를 받아옵니다.
- 전략 분석: 사용자의 전략(Strategy) 코드를 실행하여 매수/매도 신호를 계산합니다.
- 주문 처리: 신호가 있다면 거래소에 매수/매도 주문을 넣거나, 기존 주문을 취소/수정합니다.
- 잠자기: 다음 주기까지 대기합니다.
3. 데이터 저장소 (Persistence)
- 기술: SQLite 데이터베이스를 사용합니다.
- 역할: 봇이 재시작되더라도 현재 열려있는 거래 상태, 과거 거래 내역 등이 유지되도록 합니다.
- 위치: /user_data/tradesv3.sqlite 파일에 저장됩니다.
4. 백테스팅 vs 실전 매매의 차이
- 백테스팅: 과거 데이터 전체를 한꺼번에 계산(Vectorized)하여 속도가 매우 빠릅니다.
- 실전(Live/Dry): 매 순간 새로운 캔들 하나만 가지고 계산(Iterative)하므로, 코드 작성 시 "미래 데이터 참조(Look-ahead)" 오류를 주의해야 합니다.
💡 기획자를 위한 기술적 시사점 (호스팅 서비스 구축 시)
이 내용을 바탕으로 호스팅 서비스를 기획할 때 고려해야 할 점입니다.
- 볼륨 마운트 필수 (Volume Mounting):
- 봇이 SQLite 파일(tradesv3.sqlite)에 거래 내역을 저장하므로, 도커 컨테이너가 삭제되더라도 이 파일은 유지되어야 합니다.
- 기획 시 사용자별로 **영구 저장소(Persistent Volume)**를 할당하여 /user_data 폴더를 연결해주는 설계가 필수입니다.
- CPU 리소스 관리:
- 봇이 process_throttle_secs(기본 5초)마다 계속 CPU를 사용합니다.
- 한 서버에 너무 많은 봇을 띄우면 전체가 느려질 수 있으므로, 컨테이너당 CPU 제한(Limit) 정책이 필요합니다.
- 설정 파일 주입:
- 사용자는 웹 UI에서 설정을 바꾸지만, 봇은 파일(config.json)을 읽어서 작동합니다.
- 웹에서 설정을 변경하면 → 서버가 config.json 파일을 덮어쓰고 → 봇 컨테이너를 재시작(Restart) 해주는 기능이 기획에 포함되어야 합니다.
'Freqtrade' 카테고리의 다른 글
| 2인분 같은 1인분 봇 추가요~ (0) | 2026.01.13 |
|---|---|
| 26년 새해에도 진행중인 프로젝트 (0) | 2026.01.01 |
| Docker로 빠르게 시작해보는 Freqtrade (0) | 2025.12.19 |
| Freqtrade 한글화 (0) | 2025.12.18 |
| 📈 Freqtrade 설치 가이드: 초보자부터 전문가까지 (0) | 2025.12.18 |