chore: checkpoint before NT8 execution wiring fix

Current state: Strategy builds and loads correctly, passes 240+ tests,
backtest (Strategy Analyzer) works but zero trades execute on live/SIM.

Root cause identified: NT8OrderAdapter.ExecuteInNT8() is a stub - it logs
to an internal list but never calls EnterLong/EnterShort/SetStopLoss/
SetProfitTarget. Fix is ready in TASK_01_WIRE_NT8_EXECUTION.md.

Task files added (ready for Kilocode):
- TASK_01_WIRE_NT8_EXECUTION.md (CRITICAL - INT8ExecutionBridge + wiring)
- TASK_02_EMERGENCY_KILL_SWITCH.md (CRITICAL - kill switch + verbose logging)
- TASK_03_WIRE_CIRCUIT_BREAKER.md (HIGH - wire ExecutionCircuitBreaker)

Build Status: All 240+ tests passing, zero errors
Next: Run Kilocode against TASK_01, TASK_02, TASK_03 in order
This commit is contained in:
2026-03-10 15:49:59 -04:00
parent a87152effb
commit a283ef4673
45 changed files with 4256 additions and 129 deletions

View File

@@ -19,6 +19,7 @@ namespace NT8.Strategies.Examples
private readonly double _stdDevMultiplier;
private ILogger _logger;
private StrategyConfig _config;
private ConfluenceScorer _scorer;
private GradeFilter _gradeFilter;
private RiskModeManager _riskModeManager;
@@ -98,6 +99,7 @@ namespace NT8.Strategies.Examples
try
{
_logger = logger;
_config = config;
_scorer = new ConfluenceScorer(_logger, 500);
_gradeFilter = new GradeFilter();
_riskModeManager = new RiskModeManager(_logger);
@@ -151,6 +153,10 @@ namespace NT8.Strategies.Examples
ResetSession(context.Session != null ? context.Session.SessionStart : context.CurrentTime.Date);
}
// Only trade during RTH
if (context.Session == null || !context.Session.IsRth)
return null;
if (bar.Time <= _openingRangeEnd)
{
UpdateOpeningRange(bar);
@@ -332,6 +338,13 @@ namespace NT8.Strategies.Examples
private StrategyIntent CreateIntent(string symbol, OrderSide side, double openingRange, double lastPrice)
{
var stopTicks = _config != null && _config.Parameters.ContainsKey("StopTicks")
? (int)_config.Parameters["StopTicks"]
: 8;
var targetTicks = _config != null && _config.Parameters.ContainsKey("TargetTicks")
? (int)_config.Parameters["TargetTicks"]
: 16;
var metadata = new Dictionary<string, object>();
metadata.Add("orb_high", _openingRangeHigh);
metadata.Add("orb_low", _openingRangeLow);
@@ -346,8 +359,8 @@ namespace NT8.Strategies.Examples
side,
OrderType.Market,
null,
8,
16,
stopTicks,
targetTicks,
0.75,
"ORB breakout signal",
metadata);