Intelligent risk management and compliance monitoring system for 73+ exchanges. Provides real-time risk assessment, ML-driven anomaly detection, and regulatory compliance support.
- RiskManager — Central risk management orchestrator for pre-trade, in-trade, and post-trade risk controls
- RiskAssessor — Real-time risk scoring and limit enforcement
- RiskEnsembleModel — Ensemble model combining Random Forest, Neural Network, and XGBoost for risk prediction
- AnomalyDetector — Behavioral pattern recognition and outlier detection for suspicious trading activity
- RiskEvent — Structured event type for risk-triggered incidents
- RiskEventType — Enum of event types (POSITION_LIMIT, MARGIN_CALL, etc.)
- RiskLevel — Enum of risk levels (LOW, MEDIUM, HIGH, CRITICAL)
- RiskMetrics — Container for aggregated risk metrics
DurableRiskGate and the instrument admission types provide deterministic,
local contracts for offline fake-client smoke tests. They do not source trusted
account, position, exchange metadata, or policy facts, and do not constitute a
real-account risk approval or enable a provider write route. A production
composition must independently supply and verify those authorities.
A successful dispatch claim leaves a dispatch-inflight:<intent_id> account
freeze. settle and ensure_settled require the matching durable claim and do
not clear that latch. The generic resolve_freeze method refuses dispatch
latches. resolve_dispatch_freeze requires an injected journal authority that
holds the account-wide writer fence while it verifies an exact current journal
row, the single dispatch attempt, and the account/intent/permit/claim binding,
then yields a typed VerifiedDispatchResolution bound to the proof digest. A
bare boolean cannot clear the latch; the receipt itself is not a signature or
proof of provider truth outside that injected authority.
The allowed resolutions are a rejected or canceled zero-fill terminal, or an
ACKED_TRACKED transfer to an exact durable order exposure reservation. The
tracked order's settled notional remains counted as risk capacity; this API
does not clear positions, margins, fills, or later order lifecycle state.
No authority is installed by default. The Iteration 41 CTP reconciliation
observation alone is not sufficient: its independent native queries do not
prove a common atomic snapshot or an account-wide writer fence. A verifier
that cannot prove those facts must keep the latch active. Fake simulation
evidence is restricted to fake/fixture scopes and cannot bind a native CTP
scope.
- Market Manipulation Detection (spoofing, layering, front-running)
- Anti-Money Laundering (AML) and Know Your Customer (KYC)
- MiFID II and SEC Rule 606 trade reporting
- Position limits and concentration risk limits
- Credit risk and margin management
pip install bt_api_risk- Python >= 3.9
- numpy >= 1.26.0
- pydantic >= 2.0.0
from bt_api_risk import RiskManager, RiskAssessor, RiskLevel, RiskEvent, RiskEventType
# Initialize the risk manager
risk_mgr = RiskManager()
# Create a risk assessment
assessor = RiskAssessor()
risk_score = assessor.assess_position(
exchange="BINANCE___SPOT",
symbol="BTCUSDT",
position_value=100000.0,
account_equity=500000.0,
)
print(f"Risk level: {risk_score.level}") # RiskLevel.MEDIUM
# Emit a risk event
event = RiskEvent(
event_type=RiskEventType.POSITION_LIMIT,
level=RiskLevel.HIGH,
exchange="BINANCE___SPOT",
symbol="BTCUSDT",
message="Position exceeds single-symbol limit",
)
risk_mgr.emit(event)from bt_api_risk import AnomalyDetector
detector = AnomalyDetector(threshold=0.8)
is_anomalous = detector.is_anomalous(
features={
"trade_frequency": 150,
"order_size_ratio": 0.95,
"price_impact": 0.12,
}
)from bt_api_risk import RiskEnsembleModel
model = RiskEnsembleModel()
risk_prob = model.predict_risk(
features={
"position_concentration": 0.75,
"leverage_ratio": 2.5,
"daily_volatility": 0.04,
"liquidity_score": 0.6,
}
)
print(f"Risk probability: {risk_prob:.3f}")| Class | Description |
|---|---|
RiskManager |
Central orchestrator for risk controls |
RiskAssessor |
Real-time risk scoring engine |
RiskEnsembleModel |
ML ensemble for risk prediction |
AnomalyDetector |
Behavioral anomaly detection |
RiskEvent |
Risk incident event container |
RiskEventType |
Enum of risk event types |
RiskLevel |
Enum of risk severity levels |
RiskMetrics |
Aggregated risk metrics container |
| Standard | Description |
|---|---|
| MiFID II | EU markets instrument directive |
| SEC Rule 606 | US trade reporting |
| AML/KYC | Anti-money laundering / Know your customer |
| Basel III | Banking capital requirements |
| MAR | EU market abuse regulation |
Full documentation available at bt_api_py documentation.
MIT License