NIJA now includes institutional-grade compliance features that separate validation, performance tracking, and marketing layers with appropriate disclaimers. This makes NIJA investment-ready and suitable for professional trading operations.
All logs and reports now include the prominent banner:
╔════════════════════════════════════════════════════════════════════════════╗
║ MATHEMATICAL VALIDATION ONLY ║
║ DOES NOT REPRESENT HISTORICAL OR FORWARD PERFORMANCE ║
╚════════════════════════════════════════════════════════════════════════════╝
This disclaimer automatically appears in:
NIJA separates concerns into three distinct layers:
bot/validation_layer.py)bot/performance_tracking_layer.py)bot/marketing_layer.py)The Statistical Reporting Module (bot/statistical_reporting_module.py) provides:
from bot.statistical_reporting_module import get_statistical_reporting_module
module = get_statistical_reporting_module()
stats = module._get_key_statistics()
print(f"Win Rate: {stats['win_rate_last_100_trades']['value']:.2f}%")
max_dd = stats['max_drawdown']['value']
print(f"Max Drawdown: {max_dd:.2f}%")
Expected profit per trade over the last 100 trades:
expectancy = stats['rolling_expectancy']['value']
print(f"Expectancy: ${expectancy:.2f} per trade")
Complete account value progression over time, exportable as CSV.
from bot.institutional_disclaimers import print_validation_banner
from bot.performance_tracking_layer import get_performance_tracking_layer
from bot.statistical_reporting_module import get_statistical_reporting_module
# Display disclaimer
print_validation_banner()
# Initialize performance tracking
perf = get_performance_tracking_layer()
perf.set_initial_balance(10000.0)
# Record trades
perf.record_trade(
symbol='BTC-USD',
strategy='APEX_V71',
side='buy',
entry_price=45000,
exit_price=46000,
quantity=0.1,
profit=100,
fees=2
)
# Get statistics
stats = perf.get_statistics_summary()
print(f"Win Rate: {stats['win_rate_last_100']:.2f}%")
print(f"Max Drawdown: {stats['max_drawdown_pct']:.2f}%")
print(f"Rolling Expectancy: ${stats['rolling_expectancy']:.2f}")
# Generate reports
module = get_statistical_reporting_module()
module.print_summary()
exports = module.export_all_reports()
logger = get_institutional_logger(name) logger.show_validation_disclaimer()
2. **Record trades in your execution engine:**
```python
from bot.performance_tracking_layer import get_performance_tracking_layer
perf = get_performance_tracking_layer()
perf.set_initial_balance(initial_capital)
# After each trade execution:
perf.record_trade(
symbol=trade.symbol,
strategy=trade.strategy,
side=trade.side,
entry_price=trade.entry_price,
exit_price=trade.exit_price,
quantity=trade.quantity,
profit=trade.profit,
fees=trade.fees,
duration_seconds=trade.duration
)
marketing = get_marketing_layer()
marketing.export_investor_report(format=’json’) marketing.export_investor_report(format=’txt’) marketing.export_equity_curve_csv()
### Validation Workflow
Use the Validation Layer to validate strategies mathematically:
```python
from bot.validation_layer import get_validation_layer
validation = get_validation_layer()
# Validate a strategy using historical data
result = validation.validate_strategy(
strategy_name="APEX_V71",
historical_trades=backtest_results,
validation_period_days=90
)
print(f"Win Rate: {result.win_rate:.2f}%")
print(f"Profit Factor: {result.profit_factor:.2f}")
print(f"Statistical Confidence: {result.statistical_confidence:.1f}%")
from bot.statistical_reporting_module import get_statistical_reporting_module
module = get_statistical_reporting_module()
# Print summary to console
module.print_summary()
# Export all reports
exports = module.export_all_reports(output_dir='./reports')
This generates:
comprehensive_report_YYYYMMDD_HHMMSS.json - Complete statistical analysisinvestor_report_YYYYMMDD_HHMMSS.json - Investor-ready JSON reportinvestor_report_YYYYMMDD_HHMMSS.txt - Human-readable text reportequity_curve_YYYYMMDD_HHMMSS.csv - Equity curve for chartingperformance_stats_YYYYMMDD_HHMMSS.json - Raw performance statistics# Print summary
python bot/statistical_reporting_module.py --summary
# Export all reports
python bot/statistical_reporting_module.py --export
# Custom output directory
python bot/statistical_reporting_module.py --export --output-dir /path/to/reports
bot/institutional_disclaimers.py - Centralized disclaimer managementbot/validation_layer.py - Mathematical validation layerbot/performance_tracking_layer.py - Live performance trackingbot/marketing_layer.py - Public-facing reportingbot/statistical_reporting_module.py - Comprehensive statistical reportingbot/institutional_grade_integration_example.py - Integration examplesThe disclaimer banner is automatically displayed when:
display_feature_flag_banner() in startup_diagnostics✅ Clear Disclaimers - All outputs include appropriate disclaimers ✅ Separation of Concerns - Validation, tracking, and marketing are distinct ✅ Statistical Rigor - Proper metrics with sample size considerations ✅ Investor-Ready - Reports formatted for professional presentation ✅ Risk Transparency - Maximum drawdown and other risk metrics prominently displayed ✅ Performance Tracking - Real-time statistics separate from validation
╔════════════════════════════════════════════════════════════════════════════╗
║ MATHEMATICAL VALIDATION ONLY ║
║ DOES NOT REPRESENT HISTORICAL OR FORWARD PERFORMANCE ║
╚════════════════════════════════════════════════════════════════════════════╝
NIJA STATISTICAL REPORTING MODULE
================================================================================
KEY STATISTICS:
--------------------------------------------------------------------------------
Win Rate (Last 100 Trades): 66.67%
Sample Size: 100 trades
Maximum Drawdown: 5.23%
Interpretation: Lower is better - indicates downside risk
Rolling Expectancy: $33.45
Formula: (Win Rate × Avg Win) - (Loss Rate × Avg Loss)
Equity Curve Data Points: 500
Export: CSV available via marketing layer
================================================================================
Report Generated: 2026-02-15 00:45:00
================================================================================
For questions or issues related to institutional-grade features, see:
bot/institutional_grade_integration_example.py for usage examples