Risk Management Guide
Implement robust risk controls with the ZenOTC SDK.
Pre-Trade Checks
Always validate before trading:
check = await client.risk.pre_trade_check(
side="buy",
asset="BTC",
quantity=10.0,
price=50000.00
)
if check.approved:
order = await client.execution.create_order(...)
elif check.available_quantity:
# Trade reduced size
order = await client.execution.create_order(
quantity=float(check.available_quantity),
...
)
else:
print(f"Blocked: {check.reason}")
Monitor Limits
limits = await client.risk.get_limits()
for limit in limits.limits:
if limit.utilization_percentage > 80:
print(f"Warning: {limit.limit_type} at {limit.utilization_percentage}%")
Exposure Monitoring
exposure = await client.portfolio.get_exposure()
if exposure.leverage > 2.0:
# Reduce positions
await client.execution.cancel_all()
Circuit Breakers
async def check_circuit_breakers(client):
breached = await client.risk.get_breached_limits()
if breached:
await client.execution.cancel_all()
await client.market_making.cancel_all_quotes()
raise Exception("Circuit breaker triggered")