2.3 KiB
2.3 KiB
File Modification Boundaries — Production Hardening
You are fixing specific gaps. These are the ONLY files you may touch.
✅ Files You MAY Modify
| File | What to Change |
|---|---|
src/NT8.Adapters/Strategies/NT8StrategyBase.cs |
Add EnableKillSwitch, EnableVerboseLogging NinjaScript params; add kill switch early-exit in OnBarUpdate; wire ExecutionCircuitBreaker; call _circuitBreaker.RecordOrderRejection() from OnOrderUpdate |
src/NT8.Core/Execution/TrailingStopManager.cs |
Fix CalculateNewStopPrice() — replace placeholder math with real formulas for FixedTrailing, ATRTrailing, Chandelier |
src/NT8.Core/Logging/BasicLogger.cs |
Add LogLevel MinimumLevel property; skip writes below minimum level |
src/NT8.Core/MarketData/SessionManager.cs |
Add static CME holiday list; update IsRegularTradingHours() to return false on holidays |
✅ Files You MAY Create (New)
| File | Purpose |
|---|---|
tests/NT8.Core.Tests/Execution/TrailingStopManagerFixedTests.cs |
Unit tests for fixed trailing stop calculations |
❌ Files You Must NOT Touch
| File / Directory | Reason |
|---|---|
src/NT8.Adapters/NinjaTrader/NT8OrderAdapter.cs |
The stub does NOT block execution — NT8StrategyBase.SubmitOrderToNT8() is what submits orders. Leave the adapter alone. |
src/NT8.Adapters/Strategies/SimpleORBNT8.cs |
Strategy wrapper is correct |
src/NT8.Strategies/Examples/SimpleORBStrategy.cs |
Strategy logic is correct |
src/NT8.Core/OMS/** |
Complete and tested |
src/NT8.Core/Risk/** |
Complete and tested |
src/NT8.Core/Sizing/** |
Complete and tested |
src/NT8.Core/Intelligence/** |
Complete and tested |
src/NT8.Core/Analytics/** |
Complete and tested |
src/NT8.Core/Execution/ExecutionCircuitBreaker.cs |
Already correct — only instantiate and use it, don't modify |
src/NT8.Core/Common/** |
Interfaces and models — never touch |
Directory.Build.props |
Never touch |
*.csproj |
Never touch |
| Any existing passing test file | Do not break passing tests |
Quick Self-Check
Before editing any file, ask:
- Is this file in the allowed list above?
- Am I changing an interface? → STOP
- Am I modifying existing Risk/Sizing/OMS/Intelligence/Analytics code? → STOP
- Am I breaking a passing test? → STOP