diff --git a/src/api/dashboard/static/js/indicators/moving_average.js b/src/api/dashboard/static/js/indicators/moving_average.js index 83dd61c..9e6b79a 100644 --- a/src/api/dashboard/static/js/indicators/moving_average.js +++ b/src/api/dashboard/static/js/indicators/moving_average.js @@ -153,7 +153,7 @@ export class MAIndicator extends BaseIndicator { const maType = (this.params.maType || 'SMA').toLowerCase(); const period = this.params.period || 44; - let maValues; +let maValues; switch (maType) { case 'sma': @@ -176,6 +176,42 @@ export class MAIndicator extends BaseIndicator { } return maValues.map(ma => ({ ma })); + + getMetadata() { + return { + name: 'MA', + description: 'Moving Average (SMA/EMA/RMA/WMA/VWMA)', + inputs: [ + { + name: 'period', + label: 'Period', + type: 'number', + default: 44, + min: 1, + max: 500 + }, + { + name: 'maType', + label: 'MA Type', + type: 'select', + options: ['SMA', 'EMA', 'RMA', 'WMA', 'VWMA'], + default: 'SMA' + } + ], + plots: [ + { + id: 'ma', + color: '#2962ff', + title: 'MA', + style: 'solid', + width: 1 + } + ], + displayMode: 'overlay' + }; + } + + return maValues; } getMetadata() { diff --git a/src/api/dashboard/static/js/ui/chart.js b/src/api/dashboard/static/js/ui/chart.js index 34bde29..96e18cc 100644 --- a/src/api/dashboard/static/js/ui/chart.js +++ b/src/api/dashboard/static/js/ui/chart.js @@ -560,18 +560,17 @@ renderTA() { const summary = this.summarySignal || {}; const summarySignalClass = summary.signal || 'hold'; - const signalsHtml = this.indicatorSignals?.length > 0 ? this.indicatorSignals.map(indSignal => { - const signalIcon = indSignal.signal === 'buy' ? '🟢' : indSignal.signal === 'sell' ? '🔴' : '🟡'; - const signalClass = indSignal.signal || 'hold'; - const valueStr = indSignal.value !== null && indSignal.value !== undefined ? indSignal.value.toFixed(2) : 'N/A'; - const indicatorConfig = indSignal.params ? `\nConfiguration: ${indSignal.params}` : ''; - const tooltipText = `Value: ${valueStr}${indicatorConfig}\n\n${indSignal.reasoning}`; +const signalsHtml = this.indicatorSignals?.length > 0 ? this.indicatorSignals.map(indSignal => { + const signalIcon = indSignal.signal === 'buy' ? '🟢' : indSignal.signal === 'sell' ? '🔴' : '⚪'; + const signalColor = indSignal.signal === 'buy' ? '#26a69a' : indSignal.signal === 'sell' ? '#ef5350' : '#787b86'; + const lastSignalDate = indSignal.lastSignalDate ? new Date(indSignal.lastSignalDate * 1000).toLocaleDateString() : '-'; return ` -