Fix status IsFinished/IsOpen/IsForMetrics + use redis for markets on gmx.tsx instead of inmemory cache
This commit is contained in:
@@ -77,16 +77,46 @@ namespace Managing.Domain.Trades
|
||||
[Required]
|
||||
public Guid InitiatorIdentifier { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Return true if position is finished even if the position was canceled or rejected
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool IsFinished()
|
||||
{
|
||||
return Status switch
|
||||
{
|
||||
PositionStatus.Finished => true,
|
||||
PositionStatus.Canceled => true,
|
||||
PositionStatus.Rejected => true,
|
||||
PositionStatus.Flipped => true,
|
||||
_ => false
|
||||
};
|
||||
}
|
||||
|
||||
public bool IsInProfit()
|
||||
{
|
||||
if (ProfitAndLoss?.Net == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return ProfitAndLoss.Net > 0;
|
||||
}
|
||||
|
||||
public bool IsOpen()
|
||||
{
|
||||
return Status switch
|
||||
{
|
||||
PositionStatus.Filled => true,
|
||||
_ => false
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Return true if position is valid for metrics calculation (PnL, WinRate, etc.)
|
||||
/// Only positions with status Filled, Finished or Flipped are considered valid
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool IsValidForMetrics()
|
||||
{
|
||||
return Status switch
|
||||
@@ -94,7 +124,6 @@ namespace Managing.Domain.Trades
|
||||
PositionStatus.Filled => true,
|
||||
PositionStatus.Finished => true,
|
||||
PositionStatus.Flipped => true,
|
||||
PositionStatus.Updating => true,
|
||||
_ => false
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user