Streamlit으로 수익률 대시보드 만들기 – 전략 현황 실시간 시각화 (19)

2025. 8. 4. 06:05프로젝트 (Project)/바이낸스 코인 자동거래

반응형

19. Streamlit으로 수익률 대시보드 만들기 – 전략 현황 실시간 시각화

자동매매 시스템이 복잡해질수록 시각적인 모니터링 도구는 매우 중요합니다. 이번 편에서는 Streamlit을 사용해 각 전략별 수익률을 웹 UI로 시각화하는 방법을 소개합니다.


19-1. Streamlit 설치

먼저 터미널에서 아래 명령어로 설치합니다.

pip install streamlit

설치가 완료되면, streamlit run dashboard.py 명령어로 실행할 수 있습니다.


19-2. 전략 수익률 대시보드 코드 예시


import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt

# CSV 또는 DB에서 거래 데이터 불러오기
df = pd.read_csv("tradelog.csv")  # 'strategy', 'pnl', 'exit_time' 포함

# 전략별 수익률 집계
summary = df.groupby("strategy")["pnl"].sum().reset_index()
summary = summary.sort_values(by="pnl", ascending=False)

# Streamlit UI 구성
st.title("📊 자동매매 전략 수익률 대시보드")

st.subheader("전략별 누적 수익률")
fig, ax = plt.subplots()
bars = ax.bar(summary["strategy"], summary["pnl"], color="#d14124")
ax.set_ylabel("수익 (USDT)")
ax.set_title("전략별 수익")
plt.xticks(rotation=30)

# Bar 위에 수익 표시
for bar in bars:
    yval = bar.get_height()
    ax.text(bar.get_x() + bar.get_width()/2.0, yval + 0.5, f"{yval:.2f}", ha='center', va='bottom')

st.pyplot(fig)

# 최근 거래 로그도 함께 표시
st.subheader("📋 최근 10개 거래 로그")
st.dataframe(df.sort_values(by="exit_time", ascending=False).head(10))

19-3. 추가 확장 아이디어

  • 일자별 수익률 변화 라인차트
  • 전략별 거래 횟수 Pie chart
  • 오늘 수익률만 표시하는 필터
  • 실시간 DB 연동으로 자동 갱신

이렇게 구축된 대시보드는 운영 중인 자동매매 전략을 실시간으로 추적하고 평가하는 데 매우 유용합니다.


마무리 및 다음 편 예고

이번 편에서는 Python과 Streamlit을 이용해 전략별 수익률을 직관적으로 모니터링하는 대시보드를 만들었습니다. 다음 편에서는 위험관리 기능 – 수익률 급락/이상 손실 발생 시 경고 알림 시스템 구축을 소개하겠습니다.

 

반응형