Fix multiple message
This commit is contained in:
@@ -339,7 +339,6 @@ public class TradingBot : Bot, ITradingBot
|
|||||||
|
|
||||||
private async Task ManagePositions()
|
private async Task ManagePositions()
|
||||||
{
|
{
|
||||||
// Update positions - iterate through positions instead of signals for better synchronization
|
|
||||||
foreach (var position in Positions.Where(p => !p.IsFinished()))
|
foreach (var position in Positions.Where(p => !p.IsFinished()))
|
||||||
{
|
{
|
||||||
var signalForPosition = Signals.FirstOrDefault(s => s.Identifier == position.SignalIdentifier);
|
var signalForPosition = Signals.FirstOrDefault(s => s.Identifier == position.SignalIdentifier);
|
||||||
@@ -358,7 +357,7 @@ public class TradingBot : Bot, ITradingBot
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Ensure signal status is correctly set to PositionOpen if position is not finished
|
// Ensure signal status is correctly set to PositionOpen if position is not finished
|
||||||
if (signalForPosition.Status != SignalStatus.PositionOpen)
|
if (signalForPosition.Status != SignalStatus.PositionOpen && position.Status != PositionStatus.Finished)
|
||||||
{
|
{
|
||||||
await LogInformation(
|
await LogInformation(
|
||||||
$"Updating signal {signalForPosition.Identifier} status from {signalForPosition.Status} to PositionOpen");
|
$"Updating signal {signalForPosition.Identifier} status from {signalForPosition.Status} to PositionOpen");
|
||||||
@@ -446,12 +445,12 @@ public class TradingBot : Bot, ITradingBot
|
|||||||
var currentTime = Config.IsForBacktest ? OptimizedCandles.Last().Date : DateTime.UtcNow;
|
var currentTime = Config.IsForBacktest ? OptimizedCandles.Last().Date : DateTime.UtcNow;
|
||||||
var timeSinceRequest = currentTime - positionForSignal.Open.Date;
|
var timeSinceRequest = currentTime - positionForSignal.Open.Date;
|
||||||
var waitTimeMinutes = 10;
|
var waitTimeMinutes = 10;
|
||||||
|
|
||||||
if (timeSinceRequest.TotalMinutes >= waitTimeMinutes)
|
if (timeSinceRequest.TotalMinutes >= waitTimeMinutes)
|
||||||
{
|
{
|
||||||
await LogWarning(
|
await LogWarning(
|
||||||
$"Too many open orders ({orders.Count()}) for unfilled position and {waitTimeMinutes} minutes have passed. Canceling all orders and marking position as canceled.");
|
$"Too many open orders ({orders.Count()}) for unfilled position and {waitTimeMinutes} minutes have passed. Canceling all orders and marking position as canceled.");
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await ExchangeService.CancelOrder(Account, Config.Ticker);
|
await ExchangeService.CancelOrder(Account, Config.Ticker);
|
||||||
@@ -461,7 +460,7 @@ public class TradingBot : Bot, ITradingBot
|
|||||||
{
|
{
|
||||||
await LogWarning($"Failed to cancel orders: {ex.Message}");
|
await LogWarning($"Failed to cancel orders: {ex.Message}");
|
||||||
}
|
}
|
||||||
|
|
||||||
await SetPositionStatus(signal.Identifier, PositionStatus.Canceled);
|
await SetPositionStatus(signal.Identifier, PositionStatus.Canceled);
|
||||||
SetSignalStatus(signal.Identifier, SignalStatus.Expired);
|
SetSignalStatus(signal.Identifier, SignalStatus.Expired);
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user