Files
Auto-Trader/agent/src/shadow_account/__init__.py
T
warren618 c090d1fce8 feat: shadow account — extract/backtest/render/scan + HTML report + skill
- 4 new tools: extract_shadow_strategy, run_shadow_backtest,
  render_shadow_report, scan_shadow_signals
- src/shadow_account/ package: clustering-based rule extractor, cached
  cross-market backtester, 8-section HTML/PDF reporter with attribution
  waterfall, signal scanner, Jinja2-rendered signal engine
- src/skills/shadow-account/ ships rules + methodology + attribution semantics
- API endpoint GET /shadow-reports/<id>?format=html|pdf
- Context routing: Shadow block mandates load_skill first
- Reused trade_journal_tool.pair_trades_fifo (promoted from private)
- 28 new unit tests
- Reporter fix: _chart_attribution_waterfall had 6 undefined refs
  (_ACCENT/_POS/_NEG/_BG/_GRID/_style_axes) — inlined hex + native mpl
- Deps: jinja2, matplotlib, weasyprint (optional; HTML fallback when GTK missing)
2026-04-18 23:15:06 +08:00

54 lines
1.4 KiB
Python

"""Shadow Account — extract a user's profitable pattern as a re-runnable shadow.
Public API (for tools/tests/external callers):
extract_shadow_profile: journal → ShadowProfile
ShadowProfile / ShadowRule / ShadowBacktestResult / AttributionBreakdown
storage: save_profile / load_profile / find_by_journal_hash
"""
from src.shadow_account.backtester import (
SUPPORTED_MARKETS,
run_shadow_backtest,
select_multi_market_codes,
)
from src.shadow_account.codegen import (
render_config,
render_signal_engine,
validate_generated,
write_run_dir,
)
from src.shadow_account.extractor import extract_shadow_profile
from src.shadow_account.reporter import render_shadow_report
from src.shadow_account.models import (
AttributionBreakdown,
ShadowBacktestResult,
ShadowProfile,
ShadowRule,
)
from src.shadow_account.storage import (
find_by_journal_hash,
load_profile,
new_shadow_id,
save_profile,
)
__all__ = [
"AttributionBreakdown",
"SUPPORTED_MARKETS",
"ShadowBacktestResult",
"ShadowProfile",
"ShadowRule",
"extract_shadow_profile",
"find_by_journal_hash",
"load_profile",
"new_shadow_id",
"render_config",
"render_shadow_report",
"render_signal_engine",
"run_shadow_backtest",
"save_profile",
"select_multi_market_codes",
"validate_generated",
"write_run_dir",
]