@@ -21,13 +21,27 @@ public static class TradingBox
|
||||
|
||||
if (signals == null || signals.Count == 0) continue;
|
||||
|
||||
var candleLoopback = limitedCandles.TakeLast(loopbackPeriod ?? 1).ToList();
|
||||
// Ensure limitedCandles is ordered chronologically
|
||||
var orderedCandles = limitedCandles.OrderBy(c => c.Date).ToList();
|
||||
|
||||
foreach (var signal in signals.Where(s => s.Date >= candleLoopback.FirstOrDefault()?.Date))
|
||||
var loopback = loopbackPeriod ?? 1;
|
||||
var candleLoopback = orderedCandles.TakeLast(loopback).ToList();
|
||||
|
||||
if (!candleLoopback.Any())
|
||||
{
|
||||
if (previousSignal.SingleOrDefault(s => s.Identifier == signal.Identifier) == null)
|
||||
// Handle empty case (e.g., log warning, skip processing)
|
||||
continue;
|
||||
}
|
||||
|
||||
var loopbackStartDate = candleLoopback.First().Date;
|
||||
|
||||
foreach (var signal in signals.Where(s => s.Date >= loopbackStartDate))
|
||||
{
|
||||
var hasExistingSignal = previousSignal.Any(s => s.Identifier == signal.Identifier);
|
||||
if (!hasExistingSignal)
|
||||
{
|
||||
if (previousSignal.Count == 0 || previousSignal.Last().Date < signal.Date)
|
||||
bool shouldAdd = previousSignal.Count == 0 || previousSignal.Last().Date < signal.Date;
|
||||
if (shouldAdd)
|
||||
{
|
||||
signalOnCandles.Add(signal);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user