Grade filter B minimum, MinTradeGrade property, session reset fix
Some checks failed
Build and Test / build (push) Has been cancelled
Some checks failed
Build and Test / build (push) Has been cancelled
This commit is contained in:
@@ -153,9 +153,13 @@ namespace NT8.Strategies.Examples
|
||||
UpdateRiskMode(context);
|
||||
UpdateConfluenceInputs(bar, context);
|
||||
|
||||
if (_currentSessionDate != context.CurrentTime.Date)
|
||||
DateTime thisSessionStart = context.Session != null
|
||||
? context.Session.SessionStart
|
||||
: context.CurrentTime.Date.AddHours(9.5);
|
||||
|
||||
if (thisSessionStart != _openingRangeStart || _currentSessionDate == DateTime.MinValue)
|
||||
{
|
||||
ResetSession(context.Session != null ? context.Session.SessionStart : context.CurrentTime.Date);
|
||||
ResetSession(thisSessionStart);
|
||||
}
|
||||
|
||||
// Only trade during RTH
|
||||
@@ -211,15 +215,23 @@ namespace NT8.Strategies.Examples
|
||||
var score = _scorer.CalculateScore(candidate, context, bar, _factorCalculators);
|
||||
var mode = _riskModeManager.GetCurrentMode();
|
||||
|
||||
if (!_gradeFilter.ShouldAcceptTrade(score.Grade, mode))
|
||||
int minGradeValue = 4;
|
||||
if (_config != null && _config.Parameters != null && _config.Parameters.ContainsKey("MinTradeGrade"))
|
||||
{
|
||||
var reason = _gradeFilter.GetRejectionReason(score.Grade, mode);
|
||||
_logger.LogInformation(
|
||||
"SimpleORBStrategy rejected intent for {0}: Grade={1}, Mode={2}, Reason={3}",
|
||||
candidate.Symbol,
|
||||
score.Grade,
|
||||
mode,
|
||||
reason);
|
||||
var mgv = _config.Parameters["MinTradeGrade"];
|
||||
if (mgv is int)
|
||||
minGradeValue = (int)mgv;
|
||||
}
|
||||
|
||||
TradeGrade minGrade = (TradeGrade)minGradeValue;
|
||||
if ((int)score.Grade < (int)minGrade)
|
||||
{
|
||||
if (_logger != null)
|
||||
_logger.LogInformation(
|
||||
"SimpleORBStrategy filtered by grade: Score={0:F3} Grade={1} MinGrade={2}",
|
||||
score.WeightedScore,
|
||||
score.Grade,
|
||||
minGrade);
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -343,6 +355,13 @@ namespace NT8.Strategies.Examples
|
||||
_openingRangeLow = Double.MaxValue;
|
||||
_openingRangeReady = false;
|
||||
_tradeTaken = false;
|
||||
|
||||
if (_logger != null)
|
||||
_logger.LogInformation(
|
||||
"Session reset: Date={0:yyyy-MM-dd} ORB window={1:HH:mm}-{2:HH:mm}",
|
||||
_currentSessionDate,
|
||||
_openingRangeStart,
|
||||
_openingRangeEnd);
|
||||
}
|
||||
|
||||
private void UpdateOpeningRange(BarData bar)
|
||||
|
||||
Reference in New Issue
Block a user