Skip to content

PortfolioStatistics WinRate Definition #8268

@AlexCatarino

Description

@AlexCatarino

Expected Behavior

WinRate is defined as "The ratio of the number of winning days to the total number of days" or use the definition of winning aording to a close trade.

Actual Behavior

WinRate is defined as "The ratio of the number of winning trades to the total number of trades"
which is misleading because it is calculated as follows:

foreach (var pair in profitLoss)
{
    var tradeProfitLoss = pair.Value;

    if (tradeProfitLoss > 0)
    {
        totalProfit += tradeProfitLoss / runningCapital;
        totalWins++;
    }
    else
    {
        totalLoss += tradeProfitLoss / runningCapital;
        totalLosses++;
    }

    runningCapital += tradeProfitLoss;
}

var totalTrades = totalWins + totalLosses;
WinRate = totalTrades == 0 ? 0 : (decimal) totalWins / totalTrades;

Potential Solution

We can fix the docs or use WinRate, as defined in the TradeStatistics class, which takes into account closed trades (exit and entry).

EDIT: We see the same issue for LossRate, AverageWinRate and AverageLossRate.

Reproducing the Problem

N/A

Checklist

  • I have completely filled out this template
  • I have confirmed that this issue exists on the current master branch
  • I have confirmed that this is not a duplicate issue by searching issues
  • I have provided detailed steps to reproduce the issue

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions