# Global Strategy Policy

This document summarizes the production-facing doctrine implemented in `src/strategies/global_strategy_policy.py`.

## Purpose

The global strategy policy is a side-effect-free gate that decides whether a strategy candidate may progress toward tiny live preview. It does not place orders. It combines learnings from:

- negative Mainnet tiny-live fills,
- paper-scorecard and simulator-artifact reviews,
- fee-aware anti-chase work,
- copy-observation runs,
- v76 strict/base paper results.

## Core posture

Default is **no trade**. A candidate must pass all evidence, market, timing, cost, promotion, and safety gates.

## Promotion requirements

- At least 30 closed paper/shadow trades.
- Total net PnL positive.
- Last 20 closed trades positive.
- Win rate >=45% or profit factor >=1.25.
- Top coin share <=35%.
- Short-scalp share <=25%.
- Not replay-only.
- Simulator sanity OK.

## Entry requirements

- Long only when BTC and ETH regime are bullish.
- Short only when BTC and ETH regime are bearish.
- Choppy market means no trade.
- Expected move vs realistic roundtrip cost >=4.
- Anti-chase check confirmed.
- Retest/reclaim confirmed.

## Copy policy

Direct copy execution stays blocked until the observation track has complete and PnL-evaluable shadow evidence. With zero allowed copy signals, copy is research-only. Later, copy may become a confirmation layer for independent strategy setups.

## Live safety requirements

- Reconcile clean.
- Stops confirmed.
- Alerts confirmed.
- Kill switch off only after deliberate review.
- Max effective leverage 1x.
- Max one initial open position.

## Scorecard integration

`paper_scorecard_report.py` now appends a `global_policy=...` line for each scored paper strategy. This prevents a strategy with attractive raw scorecard metrics from being presented as live-ready when the global policy still blocks it for missing anti-chase, cost, promotion, reconcile, stop, or alert evidence.

The report reads optional `strategy_policy_context.json` from the runtime root for explicit safety context. Without that file, safety gates default closed.

## Verification

See:

- `tests/test_global_strategy_policy.py`
- `tests/test_paper_scorecard_report.py`
