Update backtest message

This commit is contained in:
2025-07-17 15:01:30 +07:00
parent 27bed791c3
commit 3ba06f94be
3 changed files with 37 additions and 35 deletions

View File

@@ -161,14 +161,8 @@ public class MessengerService : IMessengerService
{
try
{
var configMessage = BuildBacktestConfigMessage(backtest);
var resultsMessage = BuildBacktestResultsMessage(backtest);
// Send configuration message first
await _webhookService.SendMessage(configMessage, "2775292276");
// Send results message second
await _webhookService.SendMessage(resultsMessage, "2775292276");
var message = BuildBacktestMessage(backtest);
await _webhookService.SendMessage(message, "2775292276");
}
catch (Exception e)
{
@@ -238,8 +232,8 @@ public class MessengerService : IMessengerService
var tradeCount = backtest.Positions?.Count ?? 0;
var finalPnl = backtest.FinalPnl;
var growthPercentage = backtest.GrowthPercentage;
var maxDrawdown = backtest.Statistics?.MaxDrawdownPc ?? 0;
var sharpeRatio = backtest.Statistics?.SharpeRatio ?? 0;
var maxDrawdown = backtest.Statistics?.MaxDrawdown ?? 0;
var sharpeRatio = (backtest.Statistics?.SharpeRatio * 100) ?? 0;
// Get indicators list as comma-separated string
var indicators = config.Scenario?.Indicators != null && config.Scenario.Indicators.Any()
@@ -247,30 +241,28 @@ public class MessengerService : IMessengerService
: "N/A";
// MoneyManagement summary
var mmSl = config.MoneyManagement != null ? config.MoneyManagement.StopLoss.ToString("F2") : "N/A";
var mmTp = config.MoneyManagement != null ? config.MoneyManagement.TakeProfit.ToString("F2") : "N/A";
var mmSl = config.MoneyManagement != null ? (config.MoneyManagement.StopLoss * 100).ToString("F2") : "N/A";
var mmTp = config.MoneyManagement != null ? (config.MoneyManagement.TakeProfit * 100).ToString("F2") : "N/A";
var mmLev = config.MoneyManagement != null ? config.MoneyManagement.Leverage.ToString("F2") : "N/A";
var message = $"🚀 Excellent Backtest Results! 🚀\n\n" +
$"📊 Configuration:\n" +
$"🔹 Symbol: {config.Ticker}\n" +
$"🔹 Symbol: {config.Ticker} | " +
$"⏱️ Timeframe: {config.Timeframe}\n" +
$"👤 Account: {config.AccountName}\n" +
$"💼 Money Management: 🛡️ SL: {mmSl}% | 🎯 TP: {mmTp}% | 📈 Lev: {mmLev}x\n" +
$"💰 Balance: {config.BotTradingBalance}\n" +
$"💼 MM: 🛡️ SL: {mmSl}% | 🎯 TP: {mmTp}% | 📈 Lev: {mmLev}x\n" +
$"💰 Balance: {config.BotTradingBalance:C}\n" +
$"🧩 Indicators: {indicators}\n" +
$"📅 Period: {backtest.StartDate:yyyy-MM-dd} to {backtest.EndDate:yyyy-MM-dd}\n" +
$"⏳ Cooldown: {config.CooldownPeriod} | 🔥 Max Loss Streak: {config.MaxLossStreak}\n" +
$"🔄 Flip Position: {(config.FlipPosition ? "Yes" : "No")} | 🔒 Flip Only When In Profit: {(config.FlipOnlyWhenInProfit ? "Yes" : "No")}\n" +
$"👀 Watching Only: {(config.IsForWatchingOnly ? "Yes" : "No")} | 🧪 Backtest Mode: {(config.IsForBacktest ? "Yes" : "No")}\n" +
$"⏰ Max Position Time (hrs): {(config.MaxPositionTimeHours?.ToString() ?? "N/A")} | 🏁 Close Early When Profitable: {(config.CloseEarlyWhenProfitable ? "Yes" : "No")}\n" +
$"📈 Performance Metrics:\n" +
$"🔄 Flipping: {(config.FlipPosition ? "Yes" : "No")} | 🔒 Flip Only When In Profit: {(config.FlipOnlyWhenInProfit ? "Yes" : "No")}\n" +
$"{(config.MaxPositionTimeHours.HasValue && config.MaxPositionTimeHours.Value > 0 ? $" Max Position Time (hrs): {config.MaxPositionTimeHours.Value} | " : "")}🏁 Close Early When Profitable: {(config.CloseEarlyWhenProfitable ? "Yes" : "No")}\n" +
$"\n📈 Performance Metrics:\n" +
$"⭐ Score: {score:F1}/100\n" +
$"🏆 Win Rate: {winRate:F1}%\n" +
$"📊 Total Trades: {tradeCount}\n" +
$"💰 Final PnL: ${finalPnl:F2}\n" +
$"📈 Growth: {growthPercentage:F1}%\n" +
$"📉 Max Drawdown: {maxDrawdown:F1}%\n" +
$"📉 Max Drawdown: ${maxDrawdown:C}\n" +
$"📊 Sharpe Ratio: {sharpeRatio:F2}\n\n" +
$"🆔 Backtest ID: {backtest.Id}";