Nuove: multi-strategy, indicatori avanzati, posizioni
- Sidebar portfolio con metriche dettagliate (Totale, Investito, Disponibile, P&L, ROI) e aggiornamento real-time - Sistema multi-strategia: 8 strategie assegnabili per asset, voting decisionale, pagina Trading Control - Nuova pagina Posizioni: gestione, chiusura manuale, P&L non realizzato, notifiche - Sistema indicatori tecnici: 7+ indicatori configurabili, segnali real-time, raccomandazioni, storico segnali - Refactoring TradingBotService per capitale, P&L, ROI, eventi - Nuovi modelli e servizi per strategie/indicatori, persistenza configurazioni - UI/UX: navigazione aggiornata, widget, modali, responsive - Aggiornamento README e CHANGELOG con tutte le novità
This commit is contained in:
@@ -70,4 +70,22 @@ public static class TechnicalAnalysis
|
||||
|
||||
return (macdLine, signalLine, histogram);
|
||||
}
|
||||
|
||||
public static (decimal upper, decimal middle, decimal lower) CalculateBollingerBands(List<decimal> prices, int period = 20, decimal standardDeviations = 2)
|
||||
{
|
||||
if (prices.Count < period) return (0, 0, 0);
|
||||
|
||||
var recentPrices = prices.TakeLast(period).ToList();
|
||||
var sma = recentPrices.Average();
|
||||
|
||||
// Calculate standard deviation
|
||||
var squaredDifferences = recentPrices.Select(p => (double)Math.Pow((double)(p - sma), 2));
|
||||
var variance = squaredDifferences.Average();
|
||||
var stdDev = (decimal)Math.Sqrt(variance);
|
||||
|
||||
var upper = sma + (standardDeviations * stdDev);
|
||||
var lower = sma - (standardDeviations * stdDev);
|
||||
|
||||
return (upper, sma, lower);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user