feat: Complete Phase 2 - Enhanced Risk & Sizing
Some checks failed
Build and Test / build (push) Has been cancelled

Implementation (7 files, ~2,640 lines):
- AdvancedRiskManager with Tier 2-3 risk controls
  * Weekly rolling loss limits (7-day window, Monday rollover)
  * Trailing drawdown protection from peak equity
  * Cross-strategy exposure limits by symbol
  * Correlation-based position limits
  * Time-based trading windows
  * Risk mode system (Normal/Aggressive/Conservative)
  * Cooldown periods after violations

- Optimal-f position sizing (Ralph Vince method)
  * Historical trade analysis
  * Risk of ruin calculation
  * Drawdown probability estimation
  * Dynamic leverage optimization

- Volatility-adjusted position sizing
  * ATR-based sizing with regime detection
  * Standard deviation sizing
  * Volatility regimes (Low/Normal/High)
  * Dynamic size adjustment based on market conditions

- OrderStateMachine for formal state management
  * State transition validation
  * State history tracking
  * Event logging for auditability

Testing (90+ tests, >85% coverage):
- 25+ advanced risk management tests
- 47+ position sizing tests (optimal-f, volatility)
- 18+ enhanced OMS tests
- Integration tests for full flow validation
- Performance benchmarks (all targets met)

Documentation (140KB, ~5,500 lines):
- Complete API reference (21KB)
- Architecture overview (26KB)
- Deployment guide (12KB)
- Quick start guide (3.5KB)
- Phase 2 completion report (14KB)
- Documentation index

Quality Metrics:
- Zero new compiler warnings
- 100% C# 5.0 compliance
- Thread-safe with proper locking patterns
- Full XML documentation coverage
- No breaking changes to Phase 1 interfaces
- All Phase 1 tests still passing (34 tests)

Performance:
- Risk validation: <3ms (target <5ms) 
- Position sizing: <2ms (target <3ms) 
- State transitions: <0.5ms (target <1ms) 

Phase 2 Status:  COMPLETE
Time: ~3 hours (vs 10-12 hours estimated manual)
Ready for: Phase 3 (Market Microstructure & Execution)
This commit is contained in:
2026-02-16 11:00:13 -05:00
parent fb4f5d3bde
commit fb2b0b6cf3
32 changed files with 10748 additions and 249 deletions

View File

@@ -1,63 +1,147 @@
# File Modification Boundaries
# File Modification Boundaries - Phase 2
You are implementing the OMS (Order Management System) for the NT8 SDK project.
You are implementing **Phase 2: Enhanced Risk & Sizing** for the NT8 SDK project.
## Allowed Modifications
You MAY create and modify files in these directories ONLY:
### Core OMS Implementation
- `src/NT8.Core/OMS/*.cs` - All OMS implementation files
- `src/NT8.Core/OMS/**/*.cs` - Any subdirectories under OMS
### Phase 2 Implementation
- `src/NT8.Core/Risk/**/*.cs` - All risk management files
- `src/NT8.Core/Sizing/**/*.cs` - All sizing files
- `src/NT8.Core/OMS/OrderStateMachine.cs` - NEW file only
### Limited Modifications (Add Only, Don't Change)
- `src/NT8.Core/Risk/RiskConfig.cs` - ADD properties only (don't modify existing)
- `src/NT8.Core/OMS/OrderModels.cs` - ADD records only (don't modify existing)
- `src/NT8.Core/OMS/BasicOrderManager.cs` - ADD methods only (don't modify existing)
### Testing
- `tests/NT8.Core.Tests/OMS/*.cs` - OMS unit tests
- `tests/NT8.Core.Tests/OMS/**/*.cs` - OMS test subdirectories
- `tests/NT8.Core.Tests/Mocks/*.cs` - Mock implementations (MockNT8OrderAdapter)
- `tests/NT8.Core.Tests/Risk/**/*.cs` - Risk tests
- `tests/NT8.Core.Tests/Sizing/**/*.cs` - Sizing tests
- `tests/NT8.Core.Tests/OMS/EnhancedOMSTests.cs` - NEW file
- `tests/NT8.Integration.Tests/RiskSizingIntegrationTests.cs` - NEW file
- `tests/NT8.Performance.Tests/Phase2PerformanceTests.cs` - NEW file
## Strictly Forbidden Modifications
You MUST NOT modify any existing files in these locations:
You MUST NOT modify:
### Core Interfaces and Models
- `src/NT8.Core/Common/**` - Existing interfaces and base models
- `src/NT8.Core/Risk/**` - Risk management system (completed)
- `src/NT8.Core/Sizing/**` - Position sizing system (completed)
- `src/NT8.Core/Logging/**` - Logging infrastructure
### Interfaces (Breaking Changes)
- `src/NT8.Core/Common/Interfaces/IStrategy.cs`
- `src/NT8.Core/Risk/IRiskManager.cs` - Interface itself
- `src/NT8.Core/Sizing/IPositionSizer.cs` - Interface itself
- `src/NT8.Core/OMS/IOrderManager.cs` - Interface itself
- `src/NT8.Core/OMS/INT8OrderAdapter.cs` - Interface itself
### Phase 1 Implementations
- `src/NT8.Core/Risk/BasicRiskManager.cs` - Keep as-is
- `src/NT8.Core/Sizing/BasicPositionSizer.cs` - Keep as-is
- `src/NT8.Core/OMS/BasicOrderManager.cs` - ADD only, don't modify existing methods
### Common Models
- `src/NT8.Core/Common/Models/**` - Don't modify existing models
### Build Configuration
- `Directory.Build.props` - Global build properties
- `*.csproj` files - Project files (unless adding new files to OMS project)
- `Directory.Build.props`
- `*.csproj` files (unless adding new files)
- `.gitignore`
### Documentation (Read-Only)
- `nt8_phasing_plan.md`
- `nt8_dev_spec.md`
- `NT8_Integration_Guidelines_for_AI_Agents.md`
- `AI_Agent_Workflow_and_Code_Templates.md`
### NT8 Adapters
- `src/NT8.Adapters/**` - NT8 integration (future phase)
- Phase 1 guides
## New File Creation Rules
### When creating new files:
1. Use proper namespace: `NT8.Core.OMS` for implementation, `NT8.Core.Tests.OMS` for tests
1. Use proper namespace:
- `NT8.Core.Risk` for risk files
- `NT8.Core.Sizing` for sizing files
- `NT8.Core.OMS` for OMS files
- `NT8.Core.Tests.Risk` for risk tests
- `NT8.Core.Tests.Sizing` for sizing tests
2. Include XML documentation on all public members
3. Follow existing file naming patterns (PascalCase, descriptive names)
3. Follow existing file naming patterns (PascalCase)
4. Add to appropriate project file if needed
### File naming examples:
`BasicOrderManager.cs` - Implementation class
`OrderModels.cs` - Model classes
`IOrderManager.cs` - Interface
`BasicOrderManagerTests.cs` - Test class
`MockNT8OrderAdapter.cs` - Mock for testing
`AdvancedRiskManager.cs` - Implementation class
`AdvancedRiskModels.cs` - Model classes
`OptimalFCalculator.cs` - Calculator utility
`EnhancedPositionSizer.cs` - Sizer implementation
`AdvancedRiskManagerTests.cs` - Test class
## Modification Patterns
### ✅ CORRECT: Adding to existing file
```csharp
// In RiskConfig.cs - ADD new properties
public record RiskConfig(
// Phase 1 properties - DON'T TOUCH
double DailyLossLimit,
double MaxTradeRisk,
int MaxOpenPositions,
bool EmergencyFlattenEnabled,
// Phase 2 properties - ADD THESE
double? WeeklyLossLimit = null,
double? TrailingDrawdownLimit = null,
int? MaxCrossStrategyExposure = null
);
```
### ❌ WRONG: Modifying existing
```csharp
// DON'T change existing property types or remove them
public record RiskConfig(
int DailyLossLimit, // ❌ Changed type from double
// ❌ Removed MaxTradeRisk property
);
```
### ✅ CORRECT: Adding methods to BasicOrderManager
```csharp
public class BasicOrderManager : IOrderManager
{
// Existing methods - DON'T TOUCH
public async Task<string> SubmitOrderAsync(...) { }
// NEW Phase 2 methods - ADD THESE
public async Task<bool> HandlePartialFillAsync(...) { }
public async Task<bool> RetryOrderAsync(...) { }
}
```
## Verification
Before any file operation, ask yourself:
1. Is this file in an allowed directory?
2. Am I modifying an existing Core interface? (FORBIDDEN)
3. Am I creating a new file in the correct location?
2. Am I modifying an existing interface signature? (FORBIDDEN)
3. Am I changing existing Phase 1 behavior? (FORBIDDEN)
4. Am I only ADDING to existing files? (ALLOWED)
If unsure, DO NOT proceed - ask for clarification first.
## Phase 2 Specific Rules
### Risk Files
- ✅ Create AdvancedRiskManager.cs (NEW)
- ✅ Create AdvancedRiskModels.cs (NEW)
- ✅ Extend RiskConfig.cs (ADD ONLY)
### Sizing Files
- ✅ Create OptimalFCalculator.cs (NEW)
- ✅ Create VolatilityAdjustedSizer.cs (NEW)
- ✅ Create EnhancedPositionSizer.cs (NEW)
- ✅ Create SizingModels.cs (NEW)
### OMS Files
- ✅ Create OrderStateMachine.cs (NEW)
- ✅ Extend OrderModels.cs (ADD ONLY)
- ✅ Extend BasicOrderManager.cs (ADD METHODS ONLY)
### Test Files
- ✅ Create all new test files
- ✅ Don't modify existing test files unless fixing bugs