Model Expectation Tooltip, Company Description Tooltip in MGSHMomentum

This commit is contained in:
2025-06-10 23:29:42 -04:00
parent 758ed01e06
commit b8e1746914
6 changed files with 180 additions and 22 deletions

View File

@@ -396,14 +396,20 @@ namespace PortfolioManager.ViewModels
base.OnPropertyChanged("HedgeCash");
base.OnPropertyChanged("ModelExpectation");
base.OnPropertyChanged("ExpectationColor");
base.OnPropertyChanged("ExpectationDescription");
base.OnPropertyChanged("ReloadEnabled");
base.OnPropertyChanged("LastTradeDate");
base.OnPropertyChanged("NextTradeDate");
UpdateTooltipProperties();
});
return true;
}
public void UpdateTooltipProperties()
{
base.OnPropertyChanged("ExpectationDescription");
base.OnPropertyChanged("CompanyDescriptionSelectedPosition");
}
private void UpdatePositionPrices(bool change = true)
{
try
@@ -690,17 +696,17 @@ namespace PortfolioManager.ViewModels
{
get
{
if(null==modelStatistics) return "";
StringBuilder sb=new StringBuilder();
if (null == modelStatistics) return "";
StringBuilder sb = new StringBuilder();
sb.Append("Expectancy is (percentage of winning trades * average gain) / (percentage of losing trades * average loss).").Append("\n");
sb.Append("Total Trades : ").Append(modelStatistics.TotalTrades).Append("\n");
sb.Append("Winning Trades : ").Append(modelStatistics.WinningTrades).Append("\n");
sb.Append("Losing Trades : ").Append(modelStatistics.LosingTrades).Append("\n");
sb.Append("Winning Trades : ").Append(Utility.FormatNumber(modelStatistics.WinningTradesPercent,2)).Append("%").Append("\n");
sb.Append("Losing Trades : ").Append(Utility.FormatNumber(modelStatistics.LosingTradesPercent,2)).Append("%").Append("\n");
sb.Append("Average Winning Trade Gain : ").Append(Utility.FormatNumber(modelStatistics.AverageWinningTradePercentGain,2)).Append("%").Append("\n");
sb.Append("Average Losing Trade Loss : ").Append(Utility.FormatNumber(modelStatistics.AverageLosingTradePercentLoss,2)).Append("%").Append("\n");
sb.Append("Expectancy : ").Append(Utility.FormatNumber(modelStatistics.Expectancy,2)).Append("\n");
sb.Append("Winning Trades : ").Append(Utility.FormatNumber(modelStatistics.WinningTradesPercent, 2)).Append("%").Append("\n");
sb.Append("Losing Trades : ").Append(Utility.FormatNumber(modelStatistics.LosingTradesPercent, 2)).Append("%").Append("\n");
sb.Append("Average Winning Trade Gain : ").Append(Utility.FormatNumber(modelStatistics.AverageWinningTradePercentGain, 2)).Append("%").Append("\n");
sb.Append("Average Losing Trade Loss : ").Append(Utility.FormatNumber(modelStatistics.AverageLosingTradePercentLoss, 2)).Append("%").Append("\n");
sb.Append("Expectancy : ").Append(Utility.FormatNumber(modelStatistics.Expectancy, 2)).Append("\n");
sb.Append("\n");
sb.Append("Maintain a positive Expectancy and you're a winner.");
sb.Append("\n");
@@ -708,5 +714,19 @@ namespace PortfolioManager.ViewModels
return sb.ToString();
}
}
public String CompanyDescriptionSelectedPosition
{
get
{
if(null== selectedPosition || null==selectedPosition.Symbol)return "No row selected.";
CompanyProfile companyProfile=CompanyProfileDA.GetCompanyProfile(selectedPosition.Symbol);
if(null==companyProfile || null==companyProfile.Description || "".Equals(companyProfile.Description))return "No description found.";
StringBuilder sb = new StringBuilder();
sb.Append(companyProfile.Symbol).Append(" - ").Append(companyProfile.CompanyName).Append("\n");
sb.Append(companyProfile.Sector).Append("/").Append(companyProfile.Industry).Append("\n").Append(companyProfile.Description);
return sb.ToString();
}
}
}
}