백테스트 기능 구현과 전략 검증 시스템 설계 – 코인 자동 거래 앱 개발기 (11)
2025. 7. 27. 05:20ㆍ프로젝트 (Project)/바이낸스 코인 자동거래
반응형
11. 백테스트 기능 구현과 전략 검증 시스템 설계 – 코인 자동 거래 앱 개발기 (11)
자동매매 시스템이 실전에서 안정적으로 작동하기 위해선, 반드시 전략의 과거 성과를 검증해야 합니다. 이번 편에서는 Python 기반으로 백테스트 시스템을 직접 구성해보고, MACD + RSI 전략의 과거 성과를 실제 데이터에 적용하여 평가합니다.
11-1. 백테스트란?
백테스트(Backtest)는 과거 시세 데이터를 바탕으로 전략을 시뮬레이션하여 해당 전략이 수익성이 있었는지, 손실은 어느 정도였는지 등을 분석하는 기법입니다.
- 진입/청산 시점을 계산
- 수익률, 손실률, 승률, 최대 낙폭 등 지표 추출
11-2. 백테스트를 위한 데이터 준비
우선 과거의 1분봉 또는 5분봉 데이터를 가져옵니다. Binance에서 CSV로 다운로드하거나, CCXT 라이브러리 사용도 가능합니다.
import pandas as pd
df = pd.read_csv("BTCUSDT_5m.csv")
df['timestamp'] = pd.to_datetime(df['timestamp'])
df.set_index('timestamp', inplace=True)
11-3. 간단한 전략 적용 함수 만들기
예: MACD + RSI 조건 충족 시 매수 / RSI 과열 시 매도
import talib
def generate_macd_rsi_signals(df):
df['macd'], df['macdsignal'], _ = talib.MACD(df['close'])
df['rsi'] = talib.RSI(df['close'])
df['signal'] = 0
df.loc[(df['macd'] > df['macdsignal']) & (df['rsi'] < 30), 'signal'] = 1 # Buy
df.loc[(df['rsi'] > 70), 'signal'] = -1 # Sell
return df
11-4. 백테스트 로직 구현
def backtest(df):
df = generate_macd_rsi_signals(df)
position = 0
entry_price = 0
pnl_list = []
for i in range(len(df)):
signal = df['signal'].iloc[i]
price = df['close'].iloc[i]
if signal == 1 and position == 0:
position = 1
entry_price = price
elif signal == -1 and position == 1:
profit = price - entry_price
pnl_list.append(profit)
position = 0
return pnl_list
이제 수익 리스트를 바탕으로 총 수익, 평균 수익, 최대 손실 등을 계산합니다.
11-5. 전략 성능 분석
pnl = backtest(df)
print("총 거래 수:", len(pnl))
print("총 수익:", round(sum(pnl), 2))
print("평균 수익:", round(sum(pnl)/len(pnl), 2))
print("최대 손실:", round(min(pnl), 2))
이 출력 결과만으로도 전략의 대략적인 유효성을 평가할 수 있습니다.
11-6. 시각화
import matplotlib.pyplot as plt
plt.plot(df['close'], label="Price")
plt.plot(df['macd'], label="MACD")
plt.plot(df['macdsignal'], label="Signal")
plt.legend()
plt.title("MACD 전략 적용 시점")
plt.show()
11-7. 확장 방향
- 수수료 반영 기능
- 슬리피지 고려 및 실전 환경 유사도 향상
- 모든 전략을 공통 백테스트 인터페이스로 통합
향후 Flask 또는 Streamlit을 활용해 시각적 백테스트 리포트 제공도 가능해집니다.
11-8. 마무리 및 다음 편 예고
이제 과거 데이터를 기반으로 전략의 성과를 평가할 수 있게 되었고, 실전 적용 전 안정성과 수익성을 사전에 검증할 수 있게 되었습니다. 다음 편에서는 멀티 전략 지원 구조와 전략 등록 시스템을 구현해봅니다.
반응형
'프로젝트 (Project) > 바이낸스 코인 자동거래' 카테고리의 다른 글
| 전략별 실시간 수익률 집계 및 리포트 기능 구현 – 코인 자동 거래 앱 개발기 (13) (3) | 2025.07.29 |
|---|---|
| 멀티 전략 등록 및 동적 실행 시스템 설계 – 코인 자동 거래 앱 개발기 (12) (2) | 2025.07.28 |
| 리스크 알림 시스템과 손실 경고 기능 구현 – 코인 자동 거래 앱 개발기 (10) (0) | 2025.07.26 |
| 자동 거래 기록과 수익률 추적 시스템 구축 – 코인 자동 거래 앱 개발기 (9) (0) | 2025.07.25 |
| 전략 자동 전환 로직 설계 – 코인 자동 거래 앱 개발기 (8) (1) | 2025.07.24 |