refactor: 프로젝트명 bithumb으로 변경 및 futures 파이프라인 제거

deepcoin 패키지를 bithumb으로 rename하고, 3단계 live 운영·사이징 튜닝·텔레그램 알림을 통합한다.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dsyoon
2026-06-13 17:47:11 +09:00
parent 4890abd9a6
commit c3334e4f77
129 changed files with 1846 additions and 1642 deletions

View File

@@ -13,8 +13,8 @@ SRC = ROOT / "src"
if str(SRC) not in sys.path:
sys.path.insert(0, str(SRC))
from deepcoin.config import load_settings
from deepcoin.operations.chart import render_ops_live_chart
from bithumb.config import load_settings
from bithumb.operations.chart import render_ops_live_chart
def _configure_logging(verbose: bool) -> None:
@@ -34,12 +34,21 @@ def _write_index_html(
"""docs/live 인덱스 HTML을 생성한다."""
sim = report["filtered_sim"]
ret = sim.get("total_return_pct", 0)
sizing_line = ""
if sim.get("sizing_rules_applied"):
lb = sim.get("learned_default_buy_cash_pct")
ls = sim.get("learned_default_sell_coin_pct")
if lb is not None and ls is not None:
sizing_line = (
f"<br>학습 비율: 매수 {float(lb) * 100:.0f}% · 매도 {float(ls) * 100:.0f}%"
f" (클러스터별 규칙 적용)"
)
index_path.parent.mkdir(parents=True, exist_ok=True)
html = f"""<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>DeepCoin Live — 운영 백테스트 차트</title>
<title>Bithumb Live — 운영 백테스트 차트</title>
<style>
body {{ font-family: "Malgun Gothic", Arial, sans-serif; margin: 32px; color: #333; background: #f5f5f5; }}
h1 {{ font-size: 22px; margin-bottom: 8px; }}
@@ -52,13 +61,13 @@ def _write_index_html(
</style>
</head>
<body>
<h1>DeepCoin Live — 운영 백테스트</h1>
<h1>Bithumb Live — 운영 백테스트</h1>
<p class="meta">
{report.get("symbol", "BTC")} · {report.get("technique_name", "")} ({report.get("technique_id", "")})<br>
sim 기간: 최근 {report.get("sim_lookback_days", 1095)}일 ·
슬리피지 {report.get("slippage_rate", 0) * 100:.2f}% ·
일 체결 상한 {report.get("daily_max_trades", "-")} ·
MTF {"on" if report.get("mtf_enabled") else "off"}
MTF {"on" if report.get("mtf_enabled") else "off"}{sizing_line}
</p>
<div class="card">
<div>3년 수익률 (운영 규칙 sim)</div>