@page "/trading-control"
@using TradingBot.Services
@using TradingBot.Models
@inject TradingStrategiesService StrategiesService
@inject TradingBotService BotService
@implements IDisposable
@rendermode InteractiveServer
Trading Control - TradingBot
@foreach (var asset in BotService.AssetConfigurations.Values.OrderBy(a => a.Symbol))
{
var mapping = StrategiesService.GetAssetMapping(asset.Symbol);
var engineStatus = StrategiesService.GetEngineStatus(asset.Symbol);
var isActive = mapping?.IsActive ?? false;
@if (mapping != null && mapping.StrategyIds.Count > 0)
{
Strategie Assegnate (@mapping.StrategyIds.Count)
@foreach (var strategyId in mapping.StrategyIds)
{
var strategyInfo = availableStrategies[strategyId];
@strategyInfo.Name
@strategyInfo.Category
}
@if (engineStatus?.LastDecision != null && isActive)
{
Ultima Decisione
@engineStatus.LastDecision.Decision
Confidenza: @engineStatus.LastDecision.Confidence.ToString("F0")%
@engineStatus.LastDecision.Reason
Buy: @engineStatus.LastDecision.BuyVotes
Sell: @engineStatus.LastDecision.SellVotes
Hold: @engineStatus.LastDecision.HoldVotes
}
}
}
@if (showStrategySelector)
{
@foreach (var category in availableStrategies.Values.Select(s => s.Category).Distinct().OrderBy(c => c))
{
@category
@foreach (var strategy in availableStrategies.Values.Where(s => s.Category == category))
{
var isSelected = selectedStrategies.Contains(strategy.Id);
ToggleStrategy(strategy.Id)">
@strategy.RiskLevel Risk
@strategy.RecommendedTimeFrame
}
}
}
@code {
private Dictionary