@page "/" @using TradingBot.Models @using TradingBot.Services @inject TradingBotService BotService @inject NavigationManager Navigation @implements IDisposable @rendermode InteractiveServer Dashboard - TradingBot
Valore Portfolio
$@portfolioStats.TotalBalance.ToString("N2")
@Math.Abs(portfolioStats.TotalProfitPercentage).ToString("F2")%
Profitto Totale
$@portfolioStats.TotalProfit.ToString("N2")
Da $@portfolioStats.InitialBalance.ToString("N2")
Operazioni Totali
@portfolioStats.TotalTrades
Win Rate: @portfolioStats.WinRate.ToString("F1")%
Asset Attivi
@portfolioStats.ActiveAssets/@portfolioStats.TotalAssets
In trading

Asset Attivi

Vedi Tutti
@foreach (var config in BotService.AssetConfigurations.Values.Where(c => c.IsEnabled).Take(6)) { var price = BotService.GetLatestPrice(config.Symbol);
@config.Symbol @if (price != null) { @price.Change24h.ToString("F2")% }
$@(price?.Price.ToString("N2") ?? "Loading...")
$@config.TotalProfit.ToString("N2")
}

Attività Recente

Vedi Storico
@if (BotService.Trades.Count == 0) {

Nessuna operazione ancora

} else {
@foreach (var trade in BotService.Trades.Take(8)) {
@(trade.Type == TradeType.Buy ? "ACQUISTO" : "VENDITA") @trade.Symbol @if (trade.IsBot) { BOT }
@trade.Amount.ToString("F6") @ $@trade.Price.ToString("N2") @trade.Timestamp.ToLocalTime().ToString("HH:mm:ss")
$@((trade.Amount * trade.Price).ToString("N2"))
}
}
@code { private PortfolioStatistics portfolioStats = new(); protected override void OnInitialized() { BotService.OnStatusChanged += HandleUpdate; BotService.OnTradeExecuted += HandleTradeExecuted; BotService.OnPriceUpdated += HandlePriceUpdate; if (!BotService.Status.IsRunning) { BotService.Start(); } RefreshData(); } private void RefreshData() { portfolioStats = BotService.GetPortfolioStatistics(); StateHasChanged(); } private void HandleUpdate() => InvokeAsync(RefreshData); private void HandleTradeExecuted(Trade trade) => InvokeAsync(RefreshData); private void HandlePriceUpdate(string symbol, MarketPrice price) => InvokeAsync(RefreshData); public void Dispose() { BotService.OnStatusChanged -= HandleUpdate; BotService.OnTradeExecuted -= HandleTradeExecuted; BotService.OnPriceUpdated -= HandlePriceUpdate; } }