Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- 재테크
- S&P500
- 오블완
- 미국주식
- 연금
- 삼성전자
- 매일매수
- 국장
- 삼성전자우
- 업비트
- rise 200고배당커버드콜atm
- 토스
- 티스토리챌린지
- SCHD
- ace 미국30년국채액티브(h)
- 앱테크
- JEPQ
- ETF
- 개인연금
- IRP
- 주식
- 직투
- 강환국
- OXY
- N잡
- chatGPT
- 자동매매
- Python
- 퇴직연금
- isa
Archives
- Today
- Total
재테크 A2Z
업비트 자동매매 봇 만들기 (2) 백테스트 분석 및 수익률 시각화 + HTML 리포트 자동 생성 본문
지난 포스팅에서 자동매매 루프와 시그널 로그 기록을 구현한 데 이어, 이번에는 백테스트 로그를 기반으로 전략 성과를 분석하고 HTML 리포트를 자동 생성하는 방법을 정리합니다.
✅ 1. 로그 구조 요약
backtest/backtest_*.csv 파일에는 다음과 같은 형식으로 로그가 저장됩니다:
컬럼명설명
| time | 시그널 발생 시각 |
| ticker | 종목 코드 (KRW-BTC 등) |
| strategy | 전략 이름 |
| signal | buy 또는 sell |
| price | 시그널 발생 당시 가격 |
✅ 2. 백테스트 분석 코드 (analyze_backtest.py)
def load_log(strategy_name):
file_path = f"backtest/backtest_{strategy_name}.csv"
df = pd.read_csv(file_path, names=["time", "ticker", "strategy", "signal", "price"])
df["time"] = pd.to_datetime(df["time"])
return df
✅ 3. 전략별 누적 수익률 시각화
def compare_strategies(strategies):
for strategy in strategies:
df = load_log(strategy)
trades = calculate_profit(df)
plt.plot(trades["sell_time"], trades["cumulative"], label=strategy)
plt.legend()
plt.show()
✅ 4. HTML 리포트 자동 생성 (generate_html_report.py)
from jinja2 import Environment, FileSystemLoader
def generate_report(strategy):
...
env = Environment(loader=FileSystemLoader("."))
template = env.get_template("report_template.html")
output = template.render(...)
with open(f"report_{strategy}.html", "w") as f:
f.write(output)
✅ 5. HTML 템플릿 예시 (report_template.html)
<html>
<head><meta charset="utf-8"></head>
<body>
<h1>{{ strategy }} 전략 리포트</h1>
<p>누적 수익률: {{ cumulative_return }}%</p>
<table>
<tr><th>매수가</th><th>매도가</th><th>수익률</th></tr>
{% for row in trades %}
<tr><td>{{ row.buy }}</td><td>{{ row.sell }}</td><td>{{ row.profit }}</td></tr>
{% endfor %}
</table>
</body>
</html>
✅ 6. 실행 예시
# 전략별 분석
poetry run python backtest/analyze_backtest.py
# HTML 리포트 생성
poetry run python backtest/generate_html_report.py
📌 마무리
이제 각 전략의 수익률과 시그널 발생 로그를 시각화하고, HTML로 자동 저장하는 백테스트 분석 자동화 환경이 구축되었습니다.
다음 포스팅에서는 수익률 기반 리밸런싱 전략과 텔레그램 자동 보고서를 구현할 예정입니다.
'코딩 & 파이썬' 카테고리의 다른 글
| 2025.05.25 X220 자동매매 서버환경 구축가이드 (0) | 2025.05.25 |
|---|---|
| 업비트 자동매매 봇 만들기 (3) 업비트 OpenAPI 연동 및 IP 주소 등록 방법 (0) | 2025.05.24 |
| 업비트 자동매매 봇 만들기 (1) – 텔레그램 알림 + 시그널 루프 + 로그 백테스트 (0) | 2025.05.24 |
| 자동매매서버구축 X200 vs. N100 (0) | 2025.05.20 |
| 2025.05.19 VS Code 가상환경 연동 ~ 전략모듈 실행테스트 (0) | 2025.05.19 |