노트북에서 트레이딩 봇을 돌리는 것은 지루한 한 가지 이유로 나쁜 생각입니다: 당신의 노트북은 24시간 내내 온라인이 아니고, 시장은 그렇습니다. 거래 중에 뚜껑을 닫으면 봇은 열린 포지션 관리를 멈춥니다. Freqtrade — 인기 있는 오픈소스 Python 트레이딩 봇 — 는 무인으로 돌아가도록 만들어졌고, 그것이 바로 작은 VPS의 용도입니다. 그것이 실제로 무엇을 필요로 하는지, Docker로 어떻게 설정하는지, 그리고 부딪히기 전까지 아무도 언급하지 않는 솔직한 한계를 여기 적습니다.
왜 당신의 기기가 아니라 서버인가
두 가지 이유, 둘 다 실용적:
- 가동 시간. 봇은 밤낮없이 시장을 지켜보고 포지션을 관리해야 합니다. 노트북이 잠들거나 재부팅될 때마다 봇은 눈이 멉니다 — 놓친 진입, 아니면 더 나쁘게, 아무도 지켜보지 않는 열린 포지션.
- 지연과 안정성. VPS는 거래소로 꾸준한 경로를 가진 데이터센터 연결 위에 앉습니다. 가정용 wifi 지터와 NAT 리셋은 가격에 반응하는 봇에 도움이 안 됩니다.
이것은 어떤 트레이딩 봇이든 VPS에서 돌리는 뒤에 있는 같은 논리입니다 — Freqtrade는 요구 사항을 구체적으로 만들 뿐입니다.
실제로 무엇이 필요한가
Freqtrade 자체는 가볍지만, 워크로드에는 현실적으로:
- live / dry-run 봇: 2 GB RAM이 편안한 바닥입니다. Docker 이미지, 몇 개의 페어, 인디케이터, SQLite 거래 DB가 모두 약간의 여유를 원합니다. **$5 Micro(2 vCPU / 2 GB / 25 GB)**가 알맞은 출발점입니다. 1 GB로도 소수 페어의 단일 단순 전략은 돌아가지만, 가장자리에 가깝습니다.
- 많은 페어 / 여러 전략: **$8 Small(4 vCPU / 4 GB / 35 GB)**로 올리세요 — 페어가 많으면 동시 인디케이터 계산이 늘고 메모리의 dataframe이 커집니다.
- 디스크: 수수함. 이미지, 당신의
user_data, 거래 DB가 25 GB에 여유 있게 들어갑니다. 백테스트용으로 내려받은 과거 데이터만 자라나는 것 — 그리고 그것은 대부분 로컬 기기에 있습니다(아래 참조).
Docker Compose로 설정하기
Docker는 Freqtrade를 돌리는 유지 관리되는, 가장 덜 아픈 방법입니다. 새 박스에서:
sudo apt update && sudo apt install -y docker.io docker-compose-v2
mkdir ~/ft && cd ~/ft
docker run --rm -v "$(pwd)/user_data:/freqtrade/user_data" \
freqtradeorg/freqtrade:stable create-userdir --userdir user_data
공식 compose 파일을 받고, 설정을 대화식으로 만드세요(거래소, 스테이크, dry-run에 대해 물어봅니다):
curl -s https://raw.githubusercontent.com/freqtrade/freqtrade/stable/docker-compose.yml -o docker-compose.yml
docker compose run --rm freqtrade new-config --config user_data/config.json
먼저 dry-run — 항상
새 전략을 실제 돈에 겨누지 마세요. Freqtrade는 기본이 dry-run(페이퍼 트레이딩)이고, 전략이 얼마간 live 시장 데이터에서 스스로를 증명할 때까지 거기 두어야 합니다. config.json에서:
{
"dry_run": true,
"dry_run_wallet": 1000
}
시작하고 지켜보세요:
docker compose up -d
docker compose logs -f
compose 파일의 restart: unless-stopped 정책이 여기서 당신의 systemd 대응물입니다 — Docker가 크래시나 서버 재부팅 후 봇을 되돌립니다, 수동 단계 없이. (Docker 밖에서 돌리는 걸 선호하면 Restart=always인 systemd 유닛이 같은 일을 합니다 — 어떤 봇이든 살려 두는 것과 같은 원리.)
거래소 API 키 — 사람을 무는 부분
여기서 트레이딩 설정이 비싸게 어긋납니다. 두 가지 규칙, 협상 불가:
- 거래 권한만. 출금은 절대 켜지 않기. 키가 새어도 최악은 원치 않는 거래 — 자금이 문밖으로 걸어 나가는 것이 아닙니다. Freqtrade는 결코 출금 접근이 필요 없습니다.
- 키를 IP 화이트리스트에. 대부분의 거래소는 API 키를 특정 IP에 묶게 해줍니다. 이것이 **전용 IP 요금제**에서 돌리는 구체적 이유입니다: 키는 당신 서버의 고정 주소에서만 작동합니다. NAT 요금제에서는 봇이 노드의 아웃바운드 IP를 공유하고, 그것은 당신만의 것이 아닙니다 — 봇이 작동하는 데는 괜찮지만, 깔끔하게 화이트리스트할 수 없습니다.
키를 config.json에 두고, 모두 읽기 불가로 만들고(chmod 600), 컨테이너를 비-root 사용자로 돌리세요. 그리고 먼저 박스를 잠그세요 — 새 VPS 보안 체크리스트는 10분이 걸리고 중요한 문들을 닫습니다.
user_data 백업
당신의 전략, 설정, 거래 내역이 모두 user_data에 있습니다. 그것이 잃고 싶지 않은 것입니다:
tar czf ft-backup-$(date +%F).tar.gz user_data
그것을 주기적으로 서버에서 빼내세요(또는 오브젝트 스토리지로). 거래 DB를 잃는 것은 성과 내역을 잃는 것; 조정된 전략을 잃는 것은 최적화를 다시 하는 것입니다.
솔직한 한계
- 백테스트와 hyperopt는 무겁다 — 로컬에서. 그것들은 긴 구간 CPU를 붙잡고, 공유되는 버스트 지향 VPS는 스파이크성 워크로드용이지 몇 시간의 지속적 100% 부하용이 아닙니다(이용 정책에도 어긋납니다). 자신의 기기에서 최적화하고, 결과를 live로 돌리려 배포하세요. VPS는 live 봇을 위한 것이지 연구를 위한 것이 아닙니다.
- CPU는 공유/버스트. 대체로 캔들을 기다리다 반응하는 live 봇에는 훌륭; 1년치 1분 데이터를 hyperopt로 가는 데는 부적합.
- 한 지역, CPU 전용. 서버는 독일에 있고 GPU가 없습니다. Freqtrade에는 괜찮음(CPU/로직이지 ML 훈련이 아님) — 전략이 무거운 ML 모델에 기댄다면 알아둘 가치가 있고, 그것은 역시 로컬에서 훈련하는 게 낫습니다.
결론
VPS의 Freqtrade는 live 봇을 위한 알맞은 설정입니다: 집중된 전략에는 $5 Micro, 많은 페어를 돌리면 $8 Small, 가동 시간에는 restart: unless-stopped의 Docker Compose, 그리고 유출이 당신을 털 수 없도록 거래 전용, IP 화이트리스트된 API 키. 무거운 백테스트와 hyperopt는 노트북에 두고, user_data를 백업하고, 서버에는 잘하는 한 가지 — 시장이 움직이는 동안 온라인을 유지하는 것 — 을 시키세요. 가입은 이메일만이고 USDC나 USDT로 결제합니다; 전용 IP는 여기서 값어치 있는 유일한 업그레이드로, 순전히 API 키 화이트리스트를 위한 것입니다.
배포할 준비가 됐나요? Freqtrade는 Micro 요금제에서 편안합니다; 더 무거운 백테스트나 많은 페어에는 Small로 크기를 올리세요.
댓글
아직 댓글이 없습니다. 첫 번째가 되세요.