Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions IntelliTrader.Trading/Processors/DcaProcessor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,14 @@ public void Process(ITradingPair tradingPair, IPairConfig pairConfig, Concurrent
baseSpread = safety.MaxTrailingSpread;
}

decimal spreadRatio = baseSpread > 0 ? tradingPair.CurrentSpread / baseSpread : 0m;

// Extra safety boundary check: extremely high spread (> 3x base spread)
if (tradingPair.CurrentSpread > 3 * baseSpread)
{
if (task.LoggingEnabled)
{
loggingService.Info($"DCA postponed for {tradingPair.FormattedName} due to extremely high spread: {tradingPair.CurrentSpread:0.00}% (Threshold: {3 * baseSpread:0.00}%)");
loggingService.Info($"DCA postponed for {tradingPair.FormattedName} due to extremely high spread: {tradingPair.CurrentSpread:0.00}% (Base: {baseSpread:0.00}%, Spread Ratio: {spreadRatio:0.00}x, Threshold: {3 * baseSpread:0.00}%)");
}
return;
}
Expand All @@ -49,7 +51,7 @@ public void Process(ITradingPair tradingPair, IPairConfig pairConfig, Concurrent
{
if (task.LoggingEnabled)
{
loggingService.Info($"DCA paused for {tradingPair.FormattedName} due to high spread: {tradingPair.CurrentSpread:0.00}%");
loggingService.Info($"DCA paused for {tradingPair.FormattedName} due to high spread: {tradingPair.CurrentSpread:0.00}% (Base: {baseSpread:0.00}%, Spread Ratio: {spreadRatio:0.00}x)");
}
return;
}
Expand Down Expand Up @@ -138,7 +140,7 @@ public void Process(ITradingPair tradingPair, IPairConfig pairConfig, Concurrent
{
loggingService.Info($"DCA triggered for {tradingPair.FormattedName}. Margin: {tradingPair.CurrentMargin:0.00}, " +
$"Level (Base): {pairConfig.NextDCAMargin:0.00}, Level (Effective): {effectiveNextDCAMargin:0.00}, " +
$"Volatility Factor: {volatilityFactor:0.00} (Spread: {tradingPair.CurrentSpread:0.00}%, Signal Vol: {maxSignalVolatility:0.00}), " +
$"Volatility Factor: {volatilityFactor:0.00} (Spread: {tradingPair.CurrentSpread:0.00}%, Base Spread: {baseSpread:0.00}%, Spread Ratio: {spreadRatio:0.00}x, Spread Factor: {spreadFactor:0.00}, Signal Vol: {maxSignalVolatility:0.00}, Signal Vol Factor: {signalVolatilityFactor:0.00}, Max Vol Cap: {maxVolatilityCap:0.00}), " +
$"Multiplier: {pairConfig.BuyMultiplier}, " +
$"Global Rating: {(globalRating.HasValue ? globalRating.Value.ToString("0.00") : "N/A")}, " +
$"Scaling Factor: {scalingFactor:0.00}, Base Cost: {tradingPair.Cost * pairConfig.BuyMultiplier:0.00}, Scaled Cost: {buyOptions.MaxCost:0.00}");
Expand Down
17 changes: 16 additions & 1 deletion magda_agent_system/agent_tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -491,7 +491,7 @@
},
{
"id": "trading-spread-volatility-logging",
"status": "todo",
"status": "done",
"area": "trading",
"risk": "low",
"title": "Add detailed spread volatility metric logging to DcaProcessor",
Expand All @@ -503,6 +503,21 @@
"acceptance": [
"DcaProcessor outputs structured log entries with spread ratios and volatility scaling factors."
]
},
{
"id": "trading-processor-metrics-logging",
"status": "todo",
"area": "trading",
"risk": "low",
"title": "Add structured execution timing diagnostic logging to SellProcessor",
"description": "Add diagnostic timing and parameter logging to SellProcessor execution routines for performance tracking.",
"allowed_paths": [
"IntelliTrader.Trading/Processors/SellProcessor.cs",
"magda_agent_system/agent_tasks.json"
],
"acceptance": [
"SellProcessor outputs structured timing diagnostic logs under debug/info mode."
]
}
]
}