오픈 소스 거래 프레임워크에 대해 더 깊이 알아보고 싶나요? 저희의 상세 리뷰 및 비교를 확인해 보세요.
왜 트렌드 추종인가?
봇을 만들기 전에, 단순하고 견고하며 검증된 전략을 원했습니다. 트렌드 추종은 이 모든 조건을 만족합니다 — 가격 모멘텀을 기반으로 하며 여러 시장에서 작동합니다. 핵심 아이디어는 간단합니다:
가격이 이동평균선 위에 있을 때 매수하고, 아래에 있을 때 매도한다.
이 점을 염두에 두고, 저는 오직 오픈 소스 도구만 사용해 완전한 파이프라인을 구축했습니다.
사용한 도구
- Backtrader – 백테스트와 전략 로직용
- CCXT – 실시간 거래 API 접속용 (바이낸스)
- Pandas/NumPy – 데이터 처리용
- Python – 연결 코드 및 스크립팅용
- Screen – VPS 또는 라즈베리 파이에서 봇 실행용
단계별 제작 과정
1. 전략 로직 (Backtrader)
class TrendStrategy(bt.Strategy):
def __init__(self):
self.sma = bt.indicators.SimpleMovingAverage(period=50)
def next(self):
if self.data.close[0] > self.sma[0] and not self.position:
self.buy()
elif self.data.close[0] < self.sma[0] and self.position:
self.sell()
간단하게 유지했습니다: 가격이 50 이동평균선을 상향 돌파하면 매수, 하향 돌파하면 매도합니다.
2. 백테스트
CCXT를 통해 다운로드한 바이낸스 과거 데이터를 사용해 BTC/USDT 데이터 수개월을 테스트했습니다. 평가한 항목은:
- 승률
- 최대 낙폭
- 수익률 지표
3. CCXT로 실거래 연결
import ccxt
exchange = ccxt.binance({
'apiKey': 'YOUR_API_KEY',
'secret': 'YOUR_SECRET',
'enableRateLimit': True
})
ticker = exchange.fetch_ticker('BTC/USDT')
print("현재 BTC 가격:", ticker['last'])
확신이 생기자 CCXT를 통해 실시간 가격과 주문 체결을 연결해 실거래를 진행했습니다.
4. 배포
라즈베리 파이에서 screen
을 사용해 24시간 7일 내내 봇을 실행했습니다:
screen -S trendbot
python3 bot.py
# Ctrl+A 누르고 D 누르면 화면 분리
배운 점
- 간단한 전략도 효과적인 리스크 관리와 함께할 때 잘 작동한다
- 오픈 소스 도구는 강력하지만, 직접 디버깅이 필요하다
- 실제 돈이 걸린 거래에서는 로그 기록과 테스트가 필수다
직접 만들어 보고 싶나요?
Backtrader로 직접 트렌드 봇을 만들거나 자세한 리뷰를 보고 싶다면, 아래 링크를 확인하세요:
Backtrader 프레임워크 리뷰 및 사용 가이드