FTMO FTMO Compliance
Prop firm rules, risk limits, and how V7 stays compliant
Learning Objectives
- •Understand FTMO rules and how V7 complies
- •Learn the challenge and verification process
- •Implement FTMO-specific risk controls
Explain Like I'm 5
FTMO gives you a funded trading account if you pass their challenge. Rules: make 10% profit without losing more than 10% total or 5% daily. V7 is specifically designed for FTMO compliance — the entire risk management system (S40, DD scaling) exists to make breach nearly impossible while still generating consistent returns.
Think of It This Way
FTMO compliance is like passing a driving test. There's a maximum speed limit (max drawdown) and you must reach the destination (profit target). V7 is like a self-driving car programmed to stay within speed limits while still making good time. 0.08% simulated breach probability means a 99.92% chance of passing.
1FTMO Rules
2V7 FTMO Risk Controls
Key Formulas
FTMO Daily Loss Check
FTMO checks equity at day start and compares to current equity. If the difference exceeds -5%, the account is breached. V7 uses a 4.5% buffer limit.
Hands-On Code
FTMO Compliance Monitor
class FTMOComplianceMonitor:
"""Monitor FTMO rule compliance in real-time."""
def __init__(self, starting_balance, daily_limit_pct=5.0, total_limit_pct=10.0):
self.starting_balance = starting_balance
self.daily_limit = starting_balance * daily_limit_pct / 100
self.total_limit = starting_balance * total_limit_pct / 100
self.day_start_equity = starting_balance
def check_compliance(self, current_equity):
"""Check all FTMO rules."""
daily_loss = self.day_start_equity - current_equity
total_loss = self.starting_balance - current_equity
daily_pct = daily_loss / self.day_start_equity * 100
total_pct = total_loss / self.starting_balance * 100
daily_ok = daily_loss < self.daily_limit
total_ok = total_loss < self.total_limit
# Buffer warnings (V7 uses tighter limits)
daily_buffer = daily_pct < 4.5 # V7 buffer
total_buffer = total_pct < 9.5 # V7 buffer
print(f"=== FTMO COMPLIANCE ===")
print(f"Daily loss: {daily_pct:.2f}% / 5.0% {'[PASS]' if daily_ok else '[ALERT] BREACH'}")
print(f"Total loss: {total_pct:.2f}% / 10.0% {'[PASS]' if total_ok else '[ALERT] BREACH'}")
if not daily_buffer:
print(f" [WARN] Approaching daily limit!")
if not total_buffer:
print(f" [WARN] Approaching total limit!")
# Recommend action based on DD zone
if total_pct > 8:
print(f" [ALERT] CRITICAL: Reduce to emergency risk (0.15%)")
elif total_pct > 6:
print(f" [WARN] DANGER: Reduce to survival risk (0.20%)")
elif total_pct > 4:
print(f" [WARN] CAUTION: Reduce to cautious risk (0.25%)")
return daily_ok and total_ok
# monitor = FTMOComplianceMonitor(starting_balance=100000)
# monitor.check_compliance(current_equity=96500)Real-time FTMO compliance checking prevents rule violations. The V7 engine checks this BEFORE every trade and adjusts risk level based on current DD zone. Automated compliance is essential — you never want to manually track these limits.
Knowledge Check
Q1.Your FTMO account started at $100K. Current equity is $92K. What DD zone is this and what risk should you use?
Assignment
Implement a complete FTMO compliance monitor with: daily/total loss tracking, DD zone detection, automatic risk scaling (S40), and alert generation. Test it by simulating various drawdown scenarios.