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)
4.5 KiB
4.5 KiB
File Modification Boundaries - Phase 2
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:
Phase 2 Implementation
src/NT8.Core/Risk/**/*.cs- All risk management filessrc/NT8.Core/Sizing/**/*.cs- All sizing filessrc/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/Risk/**/*.cs- Risk teststests/NT8.Core.Tests/Sizing/**/*.cs- Sizing teststests/NT8.Core.Tests/OMS/EnhancedOMSTests.cs- NEW filetests/NT8.Integration.Tests/RiskSizingIntegrationTests.cs- NEW filetests/NT8.Performance.Tests/Phase2PerformanceTests.cs- NEW file
Strictly Forbidden Modifications
You MUST NOT modify:
Interfaces (Breaking Changes)
src/NT8.Core/Common/Interfaces/IStrategy.cssrc/NT8.Core/Risk/IRiskManager.cs- Interface itselfsrc/NT8.Core/Sizing/IPositionSizer.cs- Interface itselfsrc/NT8.Core/OMS/IOrderManager.cs- Interface itselfsrc/NT8.Core/OMS/INT8OrderAdapter.cs- Interface itself
Phase 1 Implementations
src/NT8.Core/Risk/BasicRiskManager.cs- Keep as-issrc/NT8.Core/Sizing/BasicPositionSizer.cs- Keep as-issrc/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*.csprojfiles (unless adding new files).gitignore
Documentation (Read-Only)
nt8_phasing_plan.mdnt8_dev_spec.md- Phase 1 guides
New File Creation Rules
When creating new files:
-
Use proper namespace:
NT8.Core.Riskfor risk filesNT8.Core.Sizingfor sizing filesNT8.Core.OMSfor OMS filesNT8.Core.Tests.Riskfor risk testsNT8.Core.Tests.Sizingfor sizing tests
-
Include XML documentation on all public members
-
Follow existing file naming patterns (PascalCase)
-
Add to appropriate project file if needed
File naming examples:
✅ 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
// 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
// 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
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:
- Is this file in an allowed directory?
- Am I modifying an existing interface signature? (FORBIDDEN)
- Am I changing existing Phase 1 behavior? (FORBIDDEN)
- 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