feat(chart): interactive zoom/pan controls, pattern overlays, predictions, individual pattern filtering and landscape fullscreen mode
This commit is contained in:
@@ -198,15 +198,16 @@ class ChartPatternModel extends Equatable {
|
||||
class TechnicalAnalysisModel extends Equatable {
|
||||
final String symbol;
|
||||
final String currency;
|
||||
final double? currentPrice;
|
||||
final String trend;
|
||||
final String rsi;
|
||||
final String macd;
|
||||
final String overallSignal;
|
||||
final String sma50;
|
||||
final String sma200;
|
||||
final double vix;
|
||||
final String sp500Trend;
|
||||
final double dxy;
|
||||
final double? vix;
|
||||
final String? sp500Trend;
|
||||
final double? dxy;
|
||||
final double? stopLossAtr;
|
||||
final List<CandleModel> candles;
|
||||
final List<IndicatorModel> indicators;
|
||||
@@ -216,15 +217,16 @@ class TechnicalAnalysisModel extends Equatable {
|
||||
const TechnicalAnalysisModel({
|
||||
required this.symbol,
|
||||
this.currency = 'EUR',
|
||||
this.currentPrice,
|
||||
required this.trend,
|
||||
required this.rsi,
|
||||
required this.macd,
|
||||
required this.overallSignal,
|
||||
required this.sma50,
|
||||
required this.sma200,
|
||||
this.vix = 16.5,
|
||||
this.sp500Trend = 'Bullish',
|
||||
this.dxy = 104.2,
|
||||
this.vix,
|
||||
this.sp500Trend,
|
||||
this.dxy,
|
||||
this.stopLossAtr,
|
||||
this.candles = const [],
|
||||
this.indicators = const [],
|
||||
@@ -245,7 +247,6 @@ class TechnicalAnalysisModel extends Equatable {
|
||||
var rawPatterns = json['patterns'] as List<dynamic>? ?? [];
|
||||
var patternsList = rawPatterns.map((p) => ChartPatternModel.fromJson(p as Map<String, dynamic>)).toList();
|
||||
|
||||
|
||||
final lastInd = indicatorsList.isNotEmpty ? indicatorsList.last : null;
|
||||
final regime = json['marketRegime'] as Map<String, dynamic>?;
|
||||
|
||||
@@ -259,17 +260,18 @@ class TechnicalAnalysisModel extends Equatable {
|
||||
}
|
||||
|
||||
return TechnicalAnalysisModel(
|
||||
symbol: json['symbol']?.toString() ?? json['isin']?.toString() ?? json['ticker']?.toString() ?? '',
|
||||
symbol: json['symbol']?.toString() ?? '',
|
||||
currency: json['currency']?.toString() ?? 'EUR',
|
||||
currentPrice: (json['currentPrice'] as num?)?.toDouble(),
|
||||
trend: parsedTrend,
|
||||
rsi: lastInd?.rsi14?.toStringAsFixed(1) ?? 'N/A',
|
||||
macd: lastInd?.macdHistogram?.toStringAsFixed(2) ?? lastInd?.macdLine?.toStringAsFixed(2) ?? 'N/A',
|
||||
overallSignal: parsedSignal,
|
||||
sma50: lastInd?.sma50?.toStringAsFixed(2) ?? 'N/A',
|
||||
sma200: lastInd?.sma200?.toStringAsFixed(2) ?? 'N/A',
|
||||
vix: (regime?['vixValue'] as num?)?.toDouble() ?? 16.5,
|
||||
sp500Trend: regime?['marketTrend']?.toString() ?? 'Bullish',
|
||||
dxy: (regime?['dxyValue'] as num?)?.toDouble() ?? 104.2,
|
||||
vix: (regime?['vixValue'] as num?)?.toDouble(),
|
||||
sp500Trend: regime?['marketTrend']?.toString(),
|
||||
dxy: (regime?['dxyValue'] as num?)?.toDouble(),
|
||||
stopLossAtr: lastInd?.recommendedStopLoss,
|
||||
candles: candlesList,
|
||||
indicators: indicatorsList,
|
||||
|
||||
Reference in New Issue
Block a user