- Build indicator list dynamically from class getMetadata() instead of hardcoded array - Remove checkboxes; single-click previews config, double-click adds to chart - Support multiple instances of same indicator type (unique IDs) - Add TradingView-style column legend overlay on chart (top-left) - Recalculate indicators when historical data is prefetched on scroll - Make indicator list and config panels scrollable (hidden scrollbars) - Remove AVAILABLE_INDICATORS from strategies/config.js
44 lines
1.4 KiB
JavaScript
44 lines
1.4 KiB
JavaScript
export { MA } from './ma.js';
|
|
export { BaseIndicator } from './base.js';
|
|
export { HTSIndicator } from './hts.js';
|
|
export { MAIndicator } from './ma_indicator.js';
|
|
export { RSIIndicator } from './rsi.js';
|
|
export { BollingerBandsIndicator } from './bb.js';
|
|
export { MACDIndicator } from './macd.js';
|
|
export { StochasticIndicator } from './stoch.js';
|
|
export { ATRIndicator } from './atr.js';
|
|
|
|
import { HTSIndicator } from './hts.js';
|
|
import { MAIndicator } from './ma_indicator.js';
|
|
import { RSIIndicator } from './rsi.js';
|
|
import { BollingerBandsIndicator } from './bb.js';
|
|
import { MACDIndicator } from './macd.js';
|
|
import { StochasticIndicator } from './stoch.js';
|
|
import { ATRIndicator } from './atr.js';
|
|
|
|
export const IndicatorRegistry = {
|
|
hts: HTSIndicator,
|
|
ma: MAIndicator,
|
|
rsi: RSIIndicator,
|
|
bb: BollingerBandsIndicator,
|
|
macd: MACDIndicator,
|
|
stoch: StochasticIndicator,
|
|
atr: ATRIndicator
|
|
};
|
|
|
|
/**
|
|
* Dynamically build the available indicators list from the registry.
|
|
* Each indicator class provides its own name and description via getMetadata().
|
|
*/
|
|
export function getAvailableIndicators() {
|
|
return Object.entries(IndicatorRegistry).map(([type, IndicatorClass]) => {
|
|
const instance = new IndicatorClass({ type, params: {}, name: '' });
|
|
const meta = instance.getMetadata();
|
|
return {
|
|
type,
|
|
name: meta.name || type.toUpperCase(),
|
|
description: meta.description || ''
|
|
};
|
|
});
|
|
}
|